ident(require) string ident(require) string ident(require) string ident(include) constant(Config) comment(# this was adapted from rdoc's install.rb by way of Log4r) global_variable($sitedir) operator(=) constant(CONFIG)operator([)stringoperator(]) reserved(unless) global_variable($sitedir) ident(version) operator(=) constant(CONFIG)operator([)stringoperator(]) operator(+) string operator(+) constant(CONFIG)operator([)stringoperator(]) global_variable($libdir) operator(=) constant(File)operator(.)ident(join)operator(()constant(CONFIG)operator([)stringoperator(])operator(,) stringoperator(,) ident(version)operator(\)) global_variable($sitedir) operator(=) global_variable($:)operator(.)ident(find) operator({)operator(|)ident(x)operator(|) ident(x) operator(=)operator(~) regexp operator(}) reserved(if) operator(!)global_variable($sitedir) global_variable($sitedir) operator(=) constant(File)operator(.)ident(join)operator(()global_variable($libdir)operator(,) stringoperator(\)) reserved(elsif) global_variable($sitedir) operator(!)operator(~) constant(Regexp)operator(.)ident(quote)operator(()ident(version)operator(\)) global_variable($sitedir) operator(=) constant(File)operator(.)ident(join)operator(()global_variable($sitedir)operator(,) ident(version)operator(\)) reserved(end) reserved(end) comment(# the acual gruntwork) constant(Dir)operator(.)ident(chdir)operator(()stringoperator(\)) constant(Find)operator(.)ident(find)operator(()stringoperator(,) stringoperator(\)) operator({) operator(|)ident(f)operator(|) reserved(if) ident(f)operator([)integer(-3)operator(..)integer(-1)operator(]) operator(==) string constant(File)operator(::)ident(install)operator(()ident(f)operator(,) constant(File)operator(.)ident(join)operator(()global_variable($sitedir)operator(,) operator(*)ident(f)operator(.)ident(split)operator(()regexpoperator(\))operator(\))operator(,) integer(0644)operator(,) pre_constant(true)operator(\)) reserved(else) constant(File)operator(::)ident(makedirs)operator(()constant(File)operator(.)ident(join)operator(()global_variable($sitedir)operator(,) operator(*)ident(f)operator(.)ident(split)operator(()regexpoperator(\))operator(\))operator(\)) reserved(end) operator(}) reserved(module) class(ActionMailer) reserved(module) class(AdvAttrAccessor) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(#:nodoc:) reserved(def) method(adv_attr_accessor)operator(()operator(*)ident(names)operator(\)) ident(names)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(ivar) operator(=) stringdelimiter(")> ident(define_method)operator(()stringcontent(=)delimiter(")>operator(\)) reserved(do) operator(|)ident(value)operator(|) ident(instance_variable_set)operator(()ident(ivar)operator(,) ident(value)operator(\)) reserved(end) ident(define_method)operator(()ident(name)operator(\)) reserved(do) operator(|*)ident(parameters)operator(|) ident(raise) constant(ArgumentError)operator(,) string reserved(unless) ident(parameters)operator(.)ident(length) operator(<=) integer(1) reserved(if) ident(parameters)operator(.)ident(empty?) reserved(if) ident(instance_variables)operator(.)ident(include?)operator(()ident(ivar)operator(\)) ident(instance_variable_get)operator(()ident(ivar)operator(\)) reserved(end) reserved(else) ident(instance_variable_set)operator(()ident(ivar)operator(,) ident(parameters)operator(.)ident(first)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(module) class(ActionMailer) comment(#:nodoc:) comment(# ActionMailer allows you to send email from your application using a mailer model and views.) comment(#) comment(# = Mailer Models) comment(# To use ActionMailer, you need to create a mailer model.) comment(# ) comment(# $ script/generate mailer Notifier) comment(#) comment(# The generated model inherits from ActionMailer::Base. Emails are defined by creating methods within the model which are then ) comment(# used to set variables to be used in the mail template, to change options on the mail, or ) comment(# to add attachments.) comment(#) comment(# Examples:) comment(#) comment(# class Notifier < ActionMailer::Base) comment(# def signup_notification(recipient\)) comment(# recipients recipient.email_address_with_name) comment(# from "system@example.com") comment(# subject "New account information") comment(# body "account" => recipient) comment(# end) comment(# end) comment(#) comment(# Mailer methods have the following configuration methods available.) comment(#) comment(# * recipients - Takes one or more email addresses. These addresses are where your email will be delivered to. Sets the To: header.) comment(# * subject - The subject of your email. Sets the Subject: header.) comment(# * from - Who the email you are sending is from. Sets the From: header.) comment(# * cc - Takes one or more email addresses. These addresses will receive a carbon copy of your email. Sets the Cc: header.) comment(# * bcc - Takes one or more email address. These addresses will receive a blind carbon copy of your email. Sets the Bcc header.) comment(# * sent_on - The date on which the message was sent. If not set, the header wil be set by the delivery agent.) comment(# * content_type - Specify the content type of the message. Defaults to text/plain.) comment(# * headers - Specify additional headers to be set for the message, e.g. headers 'X-Mail-Count' => 107370.) comment(#) comment(# The body method has special behavior. It takes a hash which generates an instance variable) comment(# named after each key in the hash containing the value that that key points to.) comment(#) comment(# So, for example, body "account" => recipient would result) comment(# in an instance variable @account with the value of recipient being accessible in the ) comment(# view.) comment(#) comment(# = Mailer Views) comment(# Like ActionController, each mailer class has a corresponding view directory) comment(# in which each method of the class looks for a template with its name.) comment(# To define a template to be used with a mailing, create an .rhtml file with the same name as the method) comment(# in your mailer model. For example, in the mailer defined above, the template at ) comment(# app/views/notifier/signup_notification.rhtml would be used to generate the email.) comment(#) comment(# Variables defined in the model are accessible as instance variables in the view.) comment(#) comment(# Emails by default are sent in plain text, so a sample view for our model example might look like this:) comment(#) comment(# Hi <%= @account.name %>,) comment(# Thanks for joining our service! Please check back often.) comment(#) comment(# = Sending Mail) comment(# Once a mailer action and template are defined, you can deliver your message or create it and save it ) comment(# for delivery later:) comment(#) comment(# Notifier.deliver_signup_notification(david\) # sends the email) comment(# mail = Notifier.create_signup_notification(david\) # => a tmail object) comment(# Notifier.deliver(mail\)) comment(# ) comment(# You never instantiate your mailer class. Rather, your delivery instance) comment(# methods are automatically wrapped in class methods that start with the word) comment(# deliver_ followed by the name of the mailer method that you would) comment(# like to deliver. The signup_notification method defined above is) comment(# delivered by invoking Notifier.deliver_signup_notification.) comment(#) comment(# = HTML Email) comment(# To send mail as HTML, make sure your view (the .rhtml file\) generates HTML and) comment(# set the content type to html.) comment(#) comment(# class MyMailer < ActionMailer::Base) comment(# def signup_notification(recipient\)) comment(# recipients recipient.email_address_with_name) comment(# subject "New account information") comment(# body "account" => recipient) comment(# from "system@example.com") comment(# content_type "text/html" # Here's where the magic happens) comment(# end) comment(# end ) comment(#) comment(# = Multipart Email) comment(# You can explicitly specify multipart messages:) comment(#) comment(# class ApplicationMailer < ActionMailer::Base) comment(# def signup_notification(recipient\)) comment(# recipients recipient.email_address_with_name) comment(# subject "New account information") comment(# from "system@example.com") comment(#) comment(# part :content_type => "text/html",) comment(# :body => render_message("signup-as-html", :account => recipient\)) comment(#) comment(# part "text/plain" do |p|) comment(# p.body = render_message("signup-as-plain", :account => recipient\)) comment(# p.transfer_encoding = "base64") comment(# end) comment(# end) comment(# end) comment(# ) comment(# Multipart messages can also be used implicitly because ActionMailer will automatically) comment(# detect and use multipart templates, where each template is named after the name of the action, followed) comment(# by the content type. Each such detected template will be added as separate part to the message.) comment(# ) comment(# For example, if the following templates existed:) comment(# * signup_notification.text.plain.rhtml) comment(# * signup_notification.text.html.rhtml) comment(# * signup_notification.text.xml.rxml) comment(# * signup_notification.text.x-yaml.rhtml) comment(# ) comment(# Each would be rendered and added as a separate part to the message,) comment(# with the corresponding content type. The same body hash is passed to) comment(# each template.) comment(#) comment(# = Attachments) comment(# Attachments can be added by using the +attachment+ method.) comment(#) comment(# Example:) comment(#) comment(# class ApplicationMailer < ActionMailer::Base) comment(# # attachments) comment(# def signup_notification(recipient\)) comment(# recipients recipient.email_address_with_name) comment(# subject "New account information") comment(# from "system@example.com") comment(#) comment(# attachment :content_type => "image/jpeg",) comment(# :body => File.read("an-image.jpg"\)) comment(#) comment(# attachment "application/pdf" do |a|) comment(# a.body = generate_your_pdf_here(\)) comment(# end) comment(# end) comment(# end ) comment(#) comment(# = Configuration options) comment(#) comment(# These options are specified on the class level, like ActionMailer::Base.template_root = "/my/templates") comment(#) comment(# * template_root - template root determines the base from which template references will be made.) comment(#) comment(# * logger - the logger is used for generating information on the mailing run if available.) comment(# Can be set to nil for no logging. Compatible with both Ruby's own Logger and Log4r loggers.) comment(#) comment(# * server_settings - Allows detailed configuration of the server:) comment(# * :address Allows you to use a remote mail server. Just change it from its default "localhost" setting.) comment(# * :port On the off chance that your mail server doesn't run on port 25, you can change it.) comment(# * :domain If you need to specify a HELO domain, you can do it here.) comment(# * :user_name If your mail server requires authentication, set the username in this setting.) comment(# * :password If your mail server requires authentication, set the password in this setting.) comment(# * :authentication If your mail server requires authentication, you need to specify the authentication type here. ) comment(# This is a symbol and one of :plain, :login, :cram_md5) comment(#) comment(# * raise_delivery_errors - whether or not errors should be raised if the email fails to be delivered.) comment(#) comment(# * delivery_method - Defines a delivery method. Possible values are :smtp (default\), :sendmail, and :test.) comment(# Sendmail is assumed to be present at "/usr/sbin/sendmail".) comment(#) comment(# * perform_deliveries - Determines whether deliver_* methods are actually carried out. By default they are,) comment(# but this can be turned off to help functional testing.) comment(#) comment(# * deliveries - Keeps an array of all the emails sent out through the Action Mailer with delivery_method :test. Most useful) comment(# for unit and functional testing.) comment(#) comment(# * default_charset - The default charset used for the body and to encode the subject. Defaults to UTF-8. You can also ) comment(# pick a different charset from inside a method with @charset.) comment(# * default_content_type - The default content type used for the main part of the message. Defaults to "text/plain". You) comment(# can also pick a different content type from inside a method with @content_type. ) comment(# * default_mime_version - The default mime version used for the message. Defaults to nil. You) comment(# can also pick a different value from inside a method with @mime_version. When multipart messages are in) comment(# use, @mime_version will be set to "1.0" if it is not set inside a method.) comment(# * default_implicit_parts_order - When a message is built implicitly (i.e. multiple parts are assembled from templates) comment(# which specify the content type in their filenames\) this variable controls how the parts are ordered. Defaults to) comment(# ["text/html", "text/enriched", "text/plain"]. Items that appear first in the array have higher priority in the mail client) comment(# and appear last in the mime encoded message. You can also pick a different order from inside a method with) comment(# @implicit_parts_order.) reserved(class) class(Base) ident(include) constant(AdvAttrAccessor)operator(,) constant(PartContainer) comment(# Action Mailer subclasses should be reloaded by the dispatcher in Rails) comment(# when Dependencies.mechanism = :load.) ident(include) constant(Reloadable)operator(::)constant(Subclasses) ident(private_class_method) symbol(:new) comment(#:nodoc:) ident(class_inheritable_accessor) symbol(:template_root) ident(cattr_accessor) symbol(:logger) class_variable(@@server_settings) operator(=) operator({) symbol(:address) operator(=)operator(>) stringoperator(,) symbol(:port) operator(=)operator(>) integer(25)operator(,) symbol(:domain) operator(=)operator(>) stringoperator(,) symbol(:user_name) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:password) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:authentication) operator(=)operator(>) pre_constant(nil) operator(}) ident(cattr_accessor) symbol(:server_settings) class_variable(@@raise_delivery_errors) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:raise_delivery_errors) class_variable(@@delivery_method) operator(=) symbol(:smtp) ident(cattr_accessor) symbol(:delivery_method) class_variable(@@perform_deliveries) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:perform_deliveries) class_variable(@@deliveries) operator(=) operator([)operator(]) ident(cattr_accessor) symbol(:deliveries) class_variable(@@default_charset) operator(=) string ident(cattr_accessor) symbol(:default_charset) class_variable(@@default_content_type) operator(=) string ident(cattr_accessor) symbol(:default_content_type) class_variable(@@default_mime_version) operator(=) pre_constant(nil) ident(cattr_accessor) symbol(:default_mime_version) class_variable(@@default_implicit_parts_order) operator(=) operator([) stringoperator(,) stringoperator(,) string operator(]) ident(cattr_accessor) symbol(:default_implicit_parts_order) comment(# Specify the BCC addresses for the message) ident(adv_attr_accessor) symbol(:bcc) comment(# Define the body of the message. This is either a Hash (in which case it) comment(# specifies the variables to pass to the template when it is rendered\),) comment(# or a string, in which case it specifies the actual text of the message.) ident(adv_attr_accessor) symbol(:body) comment(# Specify the CC addresses for the message.) ident(adv_attr_accessor) symbol(:cc) comment(# Specify the charset to use for the message. This defaults to the) comment(# +default_charset+ specified for ActionMailer::Base.) ident(adv_attr_accessor) symbol(:charset) comment(# Specify the content type for the message. This defaults to text/plain) comment(# in most cases, but can be automatically set in some situations.) ident(adv_attr_accessor) symbol(:content_type) comment(# Specify the from address for the message.) ident(adv_attr_accessor) symbol(:from) comment(# Specify additional headers to be added to the message.) ident(adv_attr_accessor) symbol(:headers) comment(# Specify the order in which parts should be sorted, based on content-type.) comment(# This defaults to the value for the +default_implicit_parts_order+.) ident(adv_attr_accessor) symbol(:implicit_parts_order) comment(# Override the mailer name, which defaults to an inflected version of the) comment(# mailer's class name. If you want to use a template in a non-standard) comment(# location, you can use this to specify that location.) ident(adv_attr_accessor) symbol(:mailer_name) comment(# Defaults to "1.0", but may be explicitly given if needed.) ident(adv_attr_accessor) symbol(:mime_version) comment(# The recipient addresses for the message, either as a string (for a single) comment(# address\) or an array (for multiple addresses\).) ident(adv_attr_accessor) symbol(:recipients) comment(# The date on which the message was sent. If not set (the default\), the) comment(# header will be set by the delivery agent.) ident(adv_attr_accessor) symbol(:sent_on) comment(# Specify the subject of the message.) ident(adv_attr_accessor) symbol(:subject) comment(# Specify the template name to use for current message. This is the "base") comment(# template name, without the extension or directory, and may be used to) comment(# have multiple mailer methods share the same template.) ident(adv_attr_accessor) symbol(:template) comment(# The mail object instance referenced by this mailer.) ident(attr_reader) symbol(:mail) reserved(class) operator(<<) class(self) reserved(def) method(method_missing)operator(()ident(method_symbol)operator(,) operator(*)ident(parameters)operator(\))comment(#:nodoc:) reserved(case) ident(method_symbol)operator(.)ident(id2name) reserved(when) regexp reserved(then) ident(new)operator(()global_variable($1)operator(,) operator(*)ident(parameters)operator(\))operator(.)ident(mail) reserved(when) regexp reserved(then) ident(new)operator(()global_variable($1)operator(,) operator(*)ident(parameters)operator(\))operator(.)ident(deliver!) reserved(when) string reserved(then) pre_constant(nil) reserved(else) reserved(super) reserved(end) reserved(end) comment(# Receives a raw email, parses it into an email object, decodes it,) comment(# instantiates a new mailer, and passes the email object to the mailer) comment(# object's #receive method. If you want your mailer to be able to) comment(# process incoming messages, you'll need to implement a #receive) comment(# method that accepts the email object as a parameter:) comment(#) comment(# class MyMailer < ActionMailer::Base) comment(# def receive(mail\)) comment(# ...) comment(# end) comment(# end) reserved(def) method(receive)operator(()ident(raw_email)operator(\)) ident(logger)operator(.)ident(info) stringdelimiter(")> reserved(unless) ident(logger)operator(.)ident(nil?) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(raw_email)operator(\)) ident(mail)operator(.)ident(base64_decode) ident(new)operator(.)ident(receive)operator(()ident(mail)operator(\)) reserved(end) comment(# Deliver the given mail object directly. This can be used to deliver) comment(# a preconstructed mail object, like:) comment(#) comment(# email = MyMailer.create_some_mail(parameters\)) comment(# email.set_some_obscure_header "frobnicate") comment(# MyMailer.deliver(email\)) reserved(def) method(deliver)operator(()ident(mail)operator(\)) ident(new)operator(.)ident(deliver!)operator(()ident(mail)operator(\)) reserved(end) reserved(end) comment(# Instantiate a new mailer object. If +method_name+ is not +nil+, the mailer) comment(# will be initialized according to the named method. If not, the mailer will) comment(# remain uninitialized (useful when you only need to invoke the "receive") comment(# method, for instance\).) reserved(def) method(initialize)operator(()ident(method_name)operator(=)pre_constant(nil)operator(,) operator(*)ident(parameters)operator(\)) comment(#:nodoc:) ident(create!)operator(()ident(method_name)operator(,) operator(*)ident(parameters)operator(\)) reserved(if) ident(method_name) reserved(end) comment(# Initialize the mailer via the given +method_name+. The body will be) comment(# rendered and a new TMail::Mail object created.) reserved(def) method(create!)operator(()ident(method_name)operator(,) operator(*)ident(parameters)operator(\)) comment(#:nodoc:) ident(initialize_defaults)operator(()ident(method_name)operator(\)) ident(send)operator(()ident(method_name)operator(,) operator(*)ident(parameters)operator(\)) comment(# If an explicit, textual body has not been set, we check assumptions.) reserved(unless) constant(String) operator(===) instance_variable(@body) comment(# First, we look to see if there are any likely templates that match,) comment(# which include the content-type in their file name (i.e.,) comment(# "the_template_file.text.html.rhtml", etc.\). Only do this if parts) comment(# have not already been specified manually.) reserved(if) instance_variable(@parts)operator(.)ident(empty?) ident(templates) operator(=) constant(Dir)operator(.)ident(glob)operator(()stringcontent(/)inlinecontent(.*)delimiter(")>operator(\)) ident(templates)operator(.)ident(each) reserved(do) operator(|)ident(path)operator(|) comment(# TODO: don't hardcode rhtml|rxml) ident(basename) operator(=) constant(File)operator(.)ident(basename)operator(()ident(path)operator(\)) reserved(next) reserved(unless) ident(md) operator(=) regexpoperator(.)ident(match)operator(()ident(basename)operator(\)) ident(template_name) operator(=) ident(basename) ident(content_type) operator(=) ident(md)operator(.)ident(captures)operator([)integer(1)operator(])operator(.)ident(gsub)operator(()stringoperator(,) stringoperator(\)) instance_variable(@parts) operator(<<) constant(Part)operator(.)ident(new)operator(()symbol(:content_type) operator(=)operator(>) ident(content_type)operator(,) symbol(:disposition) operator(=)operator(>) stringoperator(,) symbol(:charset) operator(=)operator(>) ident(charset)operator(,) symbol(:body) operator(=)operator(>) ident(render_message)operator(()ident(template_name)operator(,) instance_variable(@body)operator(\))operator(\)) reserved(end) reserved(unless) instance_variable(@parts)operator(.)ident(empty?) instance_variable(@content_type) operator(=) string instance_variable(@parts) operator(=) ident(sort_parts)operator(()instance_variable(@parts)operator(,) instance_variable(@implicit_parts_order)operator(\)) reserved(end) reserved(end) comment(# Then, if there were such templates, we check to see if we ought to) comment(# also render a "normal" template (without the content type\). If a) comment(# normal template exists (or if there were no implicit parts\) we render) comment(# it.) ident(template_exists) operator(=) instance_variable(@parts)operator(.)ident(empty?) ident(template_exists) operator(||=) constant(Dir)operator(.)ident(glob)operator(()stringcontent(/)inlinecontent(.*)delimiter(")>operator(\))operator(.)ident(any?) operator({) operator(|)ident(i)operator(|) constant(File)operator(.)ident(basename)operator(()ident(i)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(length) operator(==) integer(2) operator(}) instance_variable(@body) operator(=) ident(render_message)operator(()instance_variable(@template)operator(,) instance_variable(@body)operator(\)) reserved(if) ident(template_exists) comment(# Finally, if there are other message parts and a textual body exists,) comment(# we shift it onto the front of the parts and set the body to nil (so) comment(# that create_mail doesn't try to render it in addition to the parts\).) reserved(if) operator(!)instance_variable(@parts)operator(.)ident(empty?) operator(&&) constant(String) operator(===) instance_variable(@body) instance_variable(@parts)operator(.)ident(unshift) constant(Part)operator(.)ident(new)operator(()symbol(:charset) operator(=)operator(>) ident(charset)operator(,) symbol(:body) operator(=)operator(>) instance_variable(@body)operator(\)) instance_variable(@body) operator(=) pre_constant(nil) reserved(end) reserved(end) comment(# If this is a multipart e-mail add the mime_version if it is not) comment(# already set.) instance_variable(@mime_version) operator(||=) string reserved(if) operator(!)instance_variable(@parts)operator(.)ident(empty?) comment(# build the mail object itself) instance_variable(@mail) operator(=) ident(create_mail) reserved(end) comment(# Delivers a TMail::Mail object. By default, it delivers the cached mail) comment(# object (from the #create! method\). If no cached mail object exists, and) comment(# no alternate has been given as the parameter, this will fail.) reserved(def) method(deliver!)operator(()ident(mail) operator(=) instance_variable(@mail)operator(\)) ident(raise) string reserved(unless) ident(mail) ident(logger)operator(.)ident(info) stringdelimiter(")> reserved(unless) ident(logger)operator(.)ident(nil?) reserved(begin) ident(send)operator(()stringdelimiter(")>operator(,) ident(mail)operator(\)) reserved(if) ident(perform_deliveries) reserved(rescue) constant(Object) operator(=)operator(>) ident(e) ident(raise) ident(e) reserved(if) ident(raise_delivery_errors) reserved(end) reserved(return) ident(mail) reserved(end) ident(private) comment(# Set up the default values for the various instance variables of this) comment(# mailer. Subclasses may override this method to provide different) comment(# defaults.) reserved(def) method(initialize_defaults)operator(()ident(method_name)operator(\)) instance_variable(@charset) operator(||=) class_variable(@@default_charset)operator(.)ident(dup) instance_variable(@content_type) operator(||=) class_variable(@@default_content_type)operator(.)ident(dup) instance_variable(@implicit_parts_order) operator(||=) class_variable(@@default_implicit_parts_order)operator(.)ident(dup) instance_variable(@template) operator(||=) ident(method_name) instance_variable(@mailer_name) operator(||=) constant(Inflector)operator(.)ident(underscore)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(name)operator(\)) instance_variable(@parts) operator(||=) operator([)operator(]) instance_variable(@headers) operator(||=) operator({)operator(}) instance_variable(@body) operator(||=) operator({)operator(}) instance_variable(@mime_version) operator(=) class_variable(@@default_mime_version)operator(.)ident(dup) reserved(if) class_variable(@@default_mime_version) reserved(end) reserved(def) method(render_message)operator(()ident(method_name)operator(,) ident(body)operator(\)) ident(render) symbol(:file) operator(=)operator(>) ident(method_name)operator(,) symbol(:body) operator(=)operator(>) ident(body) reserved(end) reserved(def) method(render)operator(()ident(opts)operator(\)) ident(body) operator(=) ident(opts)operator(.)ident(delete)operator(()symbol(:body)operator(\)) ident(initialize_template_class)operator(()ident(body)operator(\))operator(.)ident(render)operator(()ident(opts)operator(\)) reserved(end) reserved(def) method(template_path) stringcontent(/)inlinedelimiter(")> reserved(end) reserved(def) method(initialize_template_class)operator(()ident(assigns)operator(\)) constant(ActionView)operator(::)constant(Base)operator(.)ident(new)operator(()ident(template_path)operator(,) ident(assigns)operator(,) pre_constant(self)operator(\)) reserved(end) reserved(def) method(sort_parts)operator(()ident(parts)operator(,) ident(order) operator(=) operator([)operator(])operator(\)) ident(order) operator(=) ident(order)operator(.)ident(collect) operator({) operator(|)ident(s)operator(|) ident(s)operator(.)ident(downcase) operator(}) ident(parts) operator(=) ident(parts)operator(.)ident(sort) reserved(do) operator(|)ident(a)operator(,) ident(b)operator(|) ident(a_ct) operator(=) ident(a)operator(.)ident(content_type)operator(.)ident(downcase) ident(b_ct) operator(=) ident(b)operator(.)ident(content_type)operator(.)ident(downcase) ident(a_in) operator(=) ident(order)operator(.)ident(include?) ident(a_ct) ident(b_in) operator(=) ident(order)operator(.)ident(include?) ident(b_ct) ident(s) operator(=) reserved(case) reserved(when) ident(a_in) operator(&&) ident(b_in) ident(order)operator(.)ident(index)operator(()ident(a_ct)operator(\)) operator(<=>) ident(order)operator(.)ident(index)operator(()ident(b_ct)operator(\)) reserved(when) ident(a_in) integer(-1) reserved(when) ident(b_in) integer(1) reserved(else) ident(a_ct) operator(<=>) ident(b_ct) reserved(end) comment(# reverse the ordering because parts that come last are displayed) comment(# first in mail clients) operator(()ident(s) operator(*) integer(-1)operator(\)) reserved(end) ident(parts) reserved(end) reserved(def) method(create_mail) ident(m) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(new) ident(m)operator(.)ident(subject)operator(,) operator(=) ident(quote_any_if_necessary)operator(()ident(charset)operator(,) ident(subject)operator(\)) ident(m)operator(.)ident(to)operator(,) ident(m)operator(.)ident(from) operator(=) ident(quote_any_address_if_necessary)operator(()ident(charset)operator(,) ident(recipients)operator(,) ident(from)operator(\)) ident(m)operator(.)ident(bcc) operator(=) ident(quote_address_if_necessary)operator(()ident(bcc)operator(,) ident(charset)operator(\)) reserved(unless) ident(bcc)operator(.)ident(nil?) ident(m)operator(.)ident(cc) operator(=) ident(quote_address_if_necessary)operator(()ident(cc)operator(,) ident(charset)operator(\)) reserved(unless) ident(cc)operator(.)ident(nil?) ident(m)operator(.)ident(mime_version) operator(=) ident(mime_version) reserved(unless) ident(mime_version)operator(.)ident(nil?) ident(m)operator(.)ident(date) operator(=) ident(sent_on)operator(.)ident(to_time) reserved(rescue) ident(sent_on) reserved(if) ident(sent_on) ident(headers)operator(.)ident(each) operator({) operator(|)ident(k)operator(,) ident(v)operator(|) ident(m)operator([)ident(k)operator(]) operator(=) ident(v) operator(}) ident(real_content_type)operator(,) ident(ctype_attrs) operator(=) ident(parse_content_type) reserved(if) instance_variable(@parts)operator(.)ident(empty?) ident(m)operator(.)ident(set_content_type)operator(()ident(real_content_type)operator(,) pre_constant(nil)operator(,) ident(ctype_attrs)operator(\)) ident(m)operator(.)ident(body) operator(=) constant(Utils)operator(.)ident(normalize_new_lines)operator(()ident(body)operator(\)) reserved(else) reserved(if) constant(String) operator(===) ident(body) ident(part) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(new) ident(part)operator(.)ident(body) operator(=) constant(Utils)operator(.)ident(normalize_new_lines)operator(()ident(body)operator(\)) ident(part)operator(.)ident(set_content_type)operator(()ident(real_content_type)operator(,) pre_constant(nil)operator(,) ident(ctype_attrs)operator(\)) ident(part)operator(.)ident(set_content_disposition) string ident(m)operator(.)ident(parts) operator(<<) ident(part) reserved(end) instance_variable(@parts)operator(.)ident(each) reserved(do) operator(|)ident(p)operator(|) ident(part) operator(=) operator(()constant(TMail)operator(::)constant(Mail) operator(===) ident(p) operator(?) ident(p) operator(:) ident(p)operator(.)ident(to_mail)operator(()pre_constant(self)operator(\))operator(\)) ident(m)operator(.)ident(parts) operator(<<) ident(part) reserved(end) reserved(if) ident(real_content_type) operator(=)operator(~) regexp ident(ctype_attrs)operator(.)ident(delete) string ident(m)operator(.)ident(set_content_type)operator(()ident(real_content_type)operator(,) pre_constant(nil)operator(,) ident(ctype_attrs)operator(\)) reserved(end) reserved(end) instance_variable(@mail) operator(=) ident(m) reserved(end) reserved(def) method(perform_delivery_smtp)operator(()ident(mail)operator(\)) ident(destinations) operator(=) ident(mail)operator(.)ident(destinations) ident(mail)operator(.)ident(ready_to_send) constant(Net)operator(::)constant(SMTP)operator(.)ident(start)operator(()ident(server_settings)operator([)symbol(:address)operator(])operator(,) ident(server_settings)operator([)symbol(:port)operator(])operator(,) ident(server_settings)operator([)symbol(:domain)operator(])operator(,) ident(server_settings)operator([)symbol(:user_name)operator(])operator(,) ident(server_settings)operator([)symbol(:password)operator(])operator(,) ident(server_settings)operator([)symbol(:authentication)operator(])operator(\)) reserved(do) operator(|)ident(smtp)operator(|) ident(smtp)operator(.)ident(sendmail)operator(()ident(mail)operator(.)ident(encoded)operator(,) ident(mail)operator(.)ident(from)operator(,) ident(destinations)operator(\)) reserved(end) reserved(end) reserved(def) method(perform_delivery_sendmail)operator(()ident(mail)operator(\)) constant(IO)operator(.)ident(popen)operator(()stringoperator(,)stringoperator(\)) reserved(do) operator(|)ident(sm)operator(|) ident(sm)operator(.)ident(print)operator(()ident(mail)operator(.)ident(encoded)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(\)) ident(sm)operator(.)ident(flush) reserved(end) reserved(end) reserved(def) method(perform_delivery_test)operator(()ident(mail)operator(\)) ident(deliveries) operator(<<) ident(mail) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionMailer) reserved(module) class(Helpers) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) comment(# Initialize the base module to aggregate its helpers.) ident(base)operator(.)ident(class_inheritable_accessor) symbol(:master_helper_module) ident(base)operator(.)ident(master_helper_module) operator(=) constant(Module)operator(.)ident(new) comment(# Extend base with class methods to declare helpers.) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) comment(# Wrap inherited to create a new master helper module for subclasses.) reserved(class) operator(<<) class(self) ident(alias_method) symbol(:inherited_without_helper)operator(,) symbol(:inherited) ident(alias_method) symbol(:inherited)operator(,) symbol(:inherited_with_helper) reserved(end) comment(# Wrap initialize_template_class to extend new template class) comment(# instances with the master helper module.) ident(alias_method) symbol(:initialize_template_class_without_helper)operator(,) symbol(:initialize_template_class) ident(alias_method) symbol(:initialize_template_class)operator(,) symbol(:initialize_template_class_with_helper) reserved(end) reserved(end) reserved(module) class(ClassMethods) comment(# Makes all the (instance\) methods in the helper module available to templates rendered through this controller.) comment(# See ActionView::Helpers (link:classes/ActionView/Helpers.html\) for more about making your own helper modules ) comment(# available to the templates.) reserved(def) method(add_template_helper)operator(()ident(helper_module)operator(\)) comment(#:nodoc:) ident(master_helper_module)operator(.)ident(module_eval) stringdelimiter(")> reserved(end) comment(# Declare a helper:) comment(# helper :foo) comment(# requires 'foo_helper' and includes FooHelper in the template class.) comment(# helper FooHelper) comment(# includes FooHelper in the template class.) comment(# helper { def foo(\) "#{bar} is the very best" end }) comment(# evaluates the block in the template class, adding method #foo.) comment(# helper(:three, BlindHelper\) { def mice(\) 'mice' end }) comment(# does all three.) reserved(def) method(helper)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(args)operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(arg)operator(|) reserved(case) ident(arg) reserved(when) constant(Module) ident(add_template_helper)operator(()ident(arg)operator(\)) reserved(when) constant(String)operator(,) constant(Symbol) ident(file_name) operator(=) ident(arg)operator(.)ident(to_s)operator(.)ident(underscore) operator(+) string ident(class_name) operator(=) ident(file_name)operator(.)ident(camelize) reserved(begin) ident(require_dependency)operator(()ident(file_name)operator(\)) reserved(rescue) constant(LoadError) operator(=)operator(>) ident(load_error) ident(requiree) operator(=) regexpoperator(.)ident(match)operator(()ident(load_error)operator(\))operator(.)ident(to_a)operator([)integer(1)operator(]) ident(msg) operator(=) operator(()ident(requiree) operator(==) ident(file_name)operator(\)) operator(?) stringcontent(.rb)delimiter(")> operator(:) stringdelimiter(")> ident(raise) constant(LoadError)operator(.)ident(new)operator(()ident(msg)operator(\))operator(.)ident(copy_blame!)operator(()ident(load_error)operator(\)) reserved(end) ident(add_template_helper)operator(()ident(class_name)operator(.)ident(constantize)operator(\)) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(end) comment(# Evaluate block in template class if given.) ident(master_helper_module)operator(.)ident(module_eval)operator(()operator(&)ident(block)operator(\)) reserved(if) ident(block_given?) reserved(end) comment(# Declare a controller method as a helper. For example,) comment(# helper_method :link_to) comment(# def link_to(name, options\) ... end) comment(# makes the link_to controller method available in the view.) reserved(def) method(helper_method)operator(()operator(*)ident(methods)operator(\)) ident(methods)operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(master_helper_module)operator(.)ident(module_eval) stringstringcontent((*args, &block\) controller.send(%()inlinecontent(\), *args, &block\) end)delimiter( end_eval)> reserved(end) reserved(end) comment(# Declare a controller attribute as a helper. For example,) comment(# helper_attr :name) comment(# attr_accessor :name) comment(# makes the name and name= controller methods available in the view.) comment(# The is a convenience wrapper for helper_method.) reserved(def) method(helper_attr)operator(()operator(*)ident(attrs)operator(\)) ident(attrs)operator(.)ident(flatten)operator(.)ident(each) operator({) operator(|)ident(attr)operator(|) ident(helper_method)operator(()ident(attr)operator(,) stringcontent(=)delimiter(")>operator(\)) operator(}) reserved(end) ident(private) reserved(def) method(inherited_with_helper)operator(()ident(child)operator(\)) ident(inherited_without_helper)operator(()ident(child)operator(\)) reserved(begin) ident(child)operator(.)ident(master_helper_module) operator(=) constant(Module)operator(.)ident(new) ident(child)operator(.)ident(master_helper_module)operator(.)ident(send) symbol(:include)operator(,) ident(master_helper_module) ident(child)operator(.)ident(helper) ident(child)operator(.)ident(name)operator(.)ident(underscore) reserved(rescue) constant(MissingSourceFile) operator(=)operator(>) ident(e) ident(raise) reserved(unless) ident(e)operator(.)ident(is_missing?)operator(()stringcontent(_helper)delimiter(")>operator(\)) reserved(end) reserved(end) reserved(end) ident(private) comment(# Extend the template class instance with our controller's helper module.) reserved(def) method(initialize_template_class_with_helper)operator(()ident(assigns)operator(\)) ident(returning)operator(()ident(template) operator(=) ident(initialize_template_class_without_helper)operator(()ident(assigns)operator(\))operator(\)) reserved(do) ident(template)operator(.)ident(extend) pre_constant(self)operator(.)ident(class)operator(.)ident(master_helper_module) reserved(end) reserved(end) reserved(end) ident(endrequire) string reserved(module) class(MailHelper) comment(# Uses Text::Format to take the text and format it, indented two spaces for) comment(# each line, and wrapped at 72 columns.) reserved(def) method(block_format)operator(()ident(text)operator(\)) ident(formatted) operator(=) ident(text)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(collect) operator({) operator(|)ident(paragraph)operator(|) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(() symbol(:columns) operator(=)operator(>) integer(72)operator(,) symbol(:first_indent) operator(=)operator(>) integer(2)operator(,) symbol(:body_indent) operator(=)operator(>) integer(2)operator(,) symbol(:text) operator(=)operator(>) ident(paragraph) operator(\))operator(.)ident(format) operator(})operator(.)ident(join)operator(()stringoperator(\)) comment(# Make list points stand on their own line) ident(formatted)operator(.)ident(gsub!)operator(()regexpoperator(\)) operator({) operator(|)ident(s)operator(|) stringcontent( )inlinechar(\\n)delimiter(")> operator(}) ident(formatted)operator(.)ident(gsub!)operator(()regexpoperator(\)) operator({) operator(|)ident(s)operator(|) stringcontent( )inlinechar(\\n)delimiter(")> operator(}) ident(formatted) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(module) class(ActionMailer) comment(# Represents a subpart of an email message. It shares many similar) comment(# attributes of ActionMailer::Base. Although you can create parts manually) comment(# and add them to the #parts list of the mailer, it is easier) comment(# to use the helper methods in ActionMailer::PartContainer.) reserved(class) class(Part) ident(include) constant(ActionMailer)operator(::)constant(AdvAttrAccessor) ident(include) constant(ActionMailer)operator(::)constant(PartContainer) comment(# Represents the body of the part, as a string. This should not be a) comment(# Hash (like ActionMailer::Base\), but if you want a template to be rendered) comment(# into the body of a subpart you can do it with the mailer's #render method) comment(# and assign the result here.) ident(adv_attr_accessor) symbol(:body) comment(# Specify the charset for this subpart. By default, it will be the charset) comment(# of the containing part or mailer.) ident(adv_attr_accessor) symbol(:charset) comment(# The content disposition of this part, typically either "inline" or) comment(# "attachment".) ident(adv_attr_accessor) symbol(:content_disposition) comment(# The content type of the part.) ident(adv_attr_accessor) symbol(:content_type) comment(# The filename to use for this subpart (usually for attachments\).) ident(adv_attr_accessor) symbol(:filename) comment(# Accessor for specifying additional headers to include with this part.) ident(adv_attr_accessor) symbol(:headers) comment(# The transfer encoding to use for this subpart, like "base64" or) comment(# "quoted-printable".) ident(adv_attr_accessor) symbol(:transfer_encoding) comment(# Create a new part from the given +params+ hash. The valid params keys) comment(# correspond to the accessors.) reserved(def) method(initialize)operator(()ident(params)operator(\)) instance_variable(@content_type) operator(=) ident(params)operator([)symbol(:content_type)operator(]) instance_variable(@content_disposition) operator(=) ident(params)operator([)symbol(:disposition)operator(]) operator(||) string instance_variable(@charset) operator(=) ident(params)operator([)symbol(:charset)operator(]) instance_variable(@body) operator(=) ident(params)operator([)symbol(:body)operator(]) instance_variable(@filename) operator(=) ident(params)operator([)symbol(:filename)operator(]) instance_variable(@transfer_encoding) operator(=) ident(params)operator([)symbol(:transfer_encoding)operator(]) operator(||) string instance_variable(@headers) operator(=) ident(params)operator([)symbol(:headers)operator(]) operator(||) operator({)operator(}) instance_variable(@parts) operator(=) operator([)operator(]) reserved(end) comment(# Convert the part to a mail object which can be included in the parts) comment(# list of another mail object.) reserved(def) method(to_mail)operator(()ident(defaults)operator(\)) ident(part) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(new) ident(real_content_type)operator(,) ident(ctype_attrs) operator(=) ident(parse_content_type)operator(()ident(defaults)operator(\)) reserved(if) instance_variable(@parts)operator(.)ident(empty?) ident(part)operator(.)ident(content_transfer_encoding) operator(=) ident(transfer_encoding) operator(||) string reserved(case) operator(()ident(transfer_encoding) operator(||) stringoperator(\))operator(.)ident(downcase) reserved(when) string reserved(then) ident(part)operator(.)ident(body) operator(=) constant(TMail)operator(::)constant(Base64)operator(.)ident(folding_encode)operator(()ident(body)operator(\)) reserved(when) string ident(part)operator(.)ident(body) operator(=) operator([)constant(Utils)operator(.)ident(normalize_new_lines)operator(()ident(body)operator(\))operator(])operator(.)ident(pack)operator(()stringoperator(\)) reserved(else) ident(part)operator(.)ident(body) operator(=) ident(body) reserved(end) comment(# Always set the content_type after setting the body and or parts!) comment(# Also don't set filename and name when there is none (like in) comment(# non-attachment parts\)) reserved(if) ident(content_disposition) operator(==) string ident(ctype_attrs)operator(.)ident(delete) string ident(part)operator(.)ident(set_content_type)operator(()ident(real_content_type)operator(,) pre_constant(nil)operator(,) ident(squish)operator(()string operator(=)operator(>) ident(filename)operator(\))operator(.)ident(merge)operator(()ident(ctype_attrs)operator(\))operator(\)) ident(part)operator(.)ident(set_content_disposition)operator(()ident(content_disposition)operator(,) ident(squish)operator(()string operator(=)operator(>) ident(filename)operator(\))operator(.)ident(merge)operator(()ident(ctype_attrs)operator(\))operator(\)) reserved(else) ident(part)operator(.)ident(set_content_type)operator(()ident(real_content_type)operator(,) pre_constant(nil)operator(,) ident(ctype_attrs)operator(\)) ident(part)operator(.)ident(set_content_disposition)operator(()ident(content_disposition)operator(\)) reserved(end) reserved(else) reserved(if) constant(String) operator(===) ident(body) ident(part) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(new) ident(part)operator(.)ident(body) operator(=) ident(body) ident(part)operator(.)ident(set_content_type)operator(()ident(real_content_type)operator(,) pre_constant(nil)operator(,) ident(ctype_attrs)operator(\)) ident(part)operator(.)ident(set_content_disposition) string ident(m)operator(.)ident(parts) operator(<<) ident(part) reserved(end) instance_variable(@parts)operator(.)ident(each) reserved(do) operator(|)ident(p)operator(|) ident(prt) operator(=) operator(()constant(TMail)operator(::)constant(Mail) operator(===) ident(p) operator(?) ident(p) operator(:) ident(p)operator(.)ident(to_mail)operator(()ident(defaults)operator(\))operator(\)) ident(part)operator(.)ident(parts) operator(<<) ident(prt) reserved(end) ident(part)operator(.)ident(set_content_type)operator(()ident(real_content_type)operator(,) pre_constant(nil)operator(,) ident(ctype_attrs)operator(\)) reserved(if) ident(real_content_type) operator(=)operator(~) regexp reserved(end) ident(headers)operator(.)ident(each) operator({) operator(|)ident(k)operator(,)ident(v)operator(|) ident(part)operator([)ident(k)operator(]) operator(=) ident(v) operator(}) ident(part) reserved(end) ident(private) reserved(def) method(squish)operator(()ident(values)operator(=)operator({)operator(})operator(\)) ident(values)operator(.)ident(delete_if) operator({) operator(|)ident(k)operator(,)ident(v)operator(|) ident(v)operator(.)ident(nil?) operator(}) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionMailer) comment(# Accessors and helpers that ActionMailer::Base and ActionMailer::Part have) comment(# in common. Using these helpers you can easily add subparts or attachments) comment(# to your message:) comment(#) comment(# def my_mail_message(...\)) comment(# ...) comment(# part "text/plain" do |p|) comment(# p.body "hello, world") comment(# p.transfer_encoding "base64") comment(# end) comment(#) comment(# attachment "image/jpg" do |a|) comment(# a.body = File.read("hello.jpg"\)) comment(# a.filename = "hello.jpg") comment(# end) comment(# end) reserved(module) class(PartContainer) comment(# The list of subparts of this container) ident(attr_reader) symbol(:parts) comment(# Add a part to a multipart message, with the given content-type. The) comment(# part itself is yielded to the block so that other properties (charset,) comment(# body, headers, etc.\) can be set on it.) reserved(def) method(part)operator(()ident(params)operator(\)) ident(params) operator(=) operator({)symbol(:content_type) operator(=)operator(>) ident(params)operator(}) reserved(if) constant(String) operator(===) ident(params) ident(part) operator(=) constant(Part)operator(.)ident(new)operator(()ident(params)operator(\)) reserved(yield) ident(part) reserved(if) ident(block_given?) instance_variable(@parts) operator(<<) ident(part) reserved(end) comment(# Add an attachment to a multipart message. This is simply a part with the) comment(# content-disposition set to "attachment".) reserved(def) method(attachment)operator(()ident(params)operator(,) operator(&)ident(block)operator(\)) ident(params) operator(=) operator({) symbol(:content_type) operator(=)operator(>) ident(params) operator(}) reserved(if) constant(String) operator(===) ident(params) ident(params) operator(=) operator({) symbol(:disposition) operator(=)operator(>) stringoperator(,) symbol(:transfer_encoding) operator(=)operator(>) string operator(})operator(.)ident(merge)operator(()ident(params)operator(\)) ident(part)operator(()ident(params)operator(,) operator(&)ident(block)operator(\)) reserved(end) ident(private) reserved(def) method(parse_content_type)operator(()ident(defaults)operator(=)pre_constant(nil)operator(\)) reserved(return) operator([)ident(defaults) operator(&&) ident(defaults)operator(.)ident(content_type)operator(,) operator({)operator(})operator(]) reserved(if) ident(content_type)operator(.)ident(blank?) ident(ctype)operator(,) operator(*)ident(attrs) operator(=) ident(content_type)operator(.)ident(split)operator(()regexpoperator(\)) ident(attrs) operator(=) ident(attrs)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({) operator(|)ident(h)operator(,)ident(s)operator(|) ident(k)operator(,)ident(v) operator(=) ident(s)operator(.)ident(split)operator(()regexpoperator(,) integer(2)operator(\))operator(;) ident(h)operator([)ident(k)operator(]) operator(=) ident(v)operator(;) ident(h) operator(}) operator([)ident(ctype)operator(,) operator({)string operator(=)operator(>) ident(charset) operator(||) ident(defaults) operator(&&) ident(defaults)operator(.)ident(charset)operator(})operator(.)ident(merge)operator(()ident(attrs)operator(\))operator(]) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionMailer) reserved(module) class(Quoting) comment(#:nodoc:) comment(# Convert the given text into quoted printable format, with an instruction) comment(# that the text be eventually interpreted in the given charset.) reserved(def) method(quoted_printable)operator(()ident(text)operator(,) ident(charset)operator(\)) ident(text) operator(=) ident(text)operator(.)ident(gsub)operator(() regexp operator(\)) operator({) ident(quoted_printable_encode)operator(()global_variable($&)operator(\)) operator(})operator(.) ident(gsub)operator(() regexpoperator(,) string operator(\)) stringcontent(?Q?)inlinecontent(?=)delimiter(")> reserved(end) comment(# Convert the given character to quoted printable format, taking into) comment(# account multi-byte characters (if executing with $KCODE="u", for instance\)) reserved(def) method(quoted_printable_encode)operator(()ident(character)operator(\)) ident(result) operator(=) string ident(character)operator(.)ident(each_byte) operator({) operator(|)ident(b)operator(|) ident(result) operator(<<) string operator(%) ident(b) operator(}) ident(result) reserved(end) comment(# A quick-and-dirty regexp for determining whether a string contains any) comment(# characters that need escaping.) reserved(if) operator(!)reserved(defined?)operator(()constant(CHARS_NEEDING_QUOTING)operator(\)) constant(CHARS_NEEDING_QUOTING) operator(=) regexp reserved(end) comment(# Quote the given text if it contains any "illegal" characters) reserved(def) method(quote_if_necessary)operator(()ident(text)operator(,) ident(charset)operator(\)) operator(()ident(text) operator(=)operator(~) constant(CHARS_NEEDING_QUOTING)operator(\)) operator(?) ident(quoted_printable)operator(()ident(text)operator(,) ident(charset)operator(\)) operator(:) ident(text) reserved(end) comment(# Quote any of the given strings if they contain any "illegal" characters) reserved(def) method(quote_any_if_necessary)operator(()ident(charset)operator(,) operator(*)ident(args)operator(\)) ident(args)operator(.)ident(map) operator({) operator(|)ident(v)operator(|) ident(quote_if_necessary)operator(()ident(v)operator(,) ident(charset)operator(\)) operator(}) reserved(end) comment(# Quote the given address if it needs to be. The address may be a) comment(# regular email address, or it can be a phrase followed by an address in) comment(# brackets. The phrase is the only part that will be quoted, and only if) comment(# it needs to be. This allows extended characters to be used in the) comment(# "to", "from", "cc", and "bcc" headers.) reserved(def) method(quote_address_if_necessary)operator(()ident(address)operator(,) ident(charset)operator(\)) reserved(if) constant(Array) operator(===) ident(address) ident(address)operator(.)ident(map) operator({) operator(|)ident(a)operator(|) ident(quote_address_if_necessary)operator(()ident(a)operator(,) ident(charset)operator(\)) operator(}) reserved(elsif) ident(address) operator(=)operator(~) regexp\)$)delimiter(/)> ident(address) operator(=) global_variable($2) ident(phrase) operator(=) ident(quote_if_necessary)operator(()global_variable($1)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(,) ident(charset)operator(\)) stringchar(\\")content( )inlinedelimiter(")> reserved(else) ident(address) reserved(end) reserved(end) comment(# Quote any of the given addresses, if they need to be.) reserved(def) method(quote_any_address_if_necessary)operator(()ident(charset)operator(,) operator(*)ident(args)operator(\)) ident(args)operator(.)ident(map) operator({) operator(|)ident(v)operator(|) ident(quote_address_if_necessary)operator(()ident(v)operator(,) ident(charset)operator(\)) operator(}) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionMailer) reserved(module) class(Utils) comment(#:nodoc:) reserved(def) method(normalize_new_lines)operator(()ident(text)operator(\)) ident(text)operator(.)ident(to_s)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) ident(module_function) symbol(:normalize_new_lines) reserved(end) reserved(end) comment(#--) comment(# Text::Format for Ruby) comment(# Version 0.63) comment(#) comment(# Copyright (c\) 2002 - 2003 Austin Ziegler) comment(#) comment(# $Id: format.rb,v 1.1.1.1 2004/10/14 11:59:57 webster132 Exp $) comment(#) comment(# ==========================================================================) comment(# Revision History ::) comment(# YYYY.MM.DD Change ID Developer) comment(# Description) comment(# --------------------------------------------------------------------------) comment(# 2002.10.18 Austin Ziegler) comment(# Fixed a minor problem with tabs not being counted. Changed) comment(# abbreviations from Hash to Array to better suit Ruby's) comment(# capabilities. Fixed problems with the way that Array arguments) comment(# are handled in calls to the major object types, excepting in) comment(# Text::Format#expand and Text::Format#unexpand (these will) comment(# probably need to be fixed\).) comment(# 2002.10.30 Austin Ziegler) comment(# Fixed the ordering of the <=> for binary tests. Fixed) comment(# Text::Format#expand and Text::Format#unexpand to handle array) comment(# arguments better.) comment(# 2003.01.24 Austin Ziegler) comment(# Fixed a problem with Text::Format::RIGHT_FILL handling where a) comment(# single word is larger than #columns. Removed Comparable) comment(# capabilities (<=> doesn't make sense; == does\). Added Symbol) comment(# equivalents for the Hash initialization. Hash initialization has) comment(# been modified so that values are set as follows (Symbols are) comment(# highest priority; strings are middle; defaults are lowest\):) comment(# @columns = arg[:columns] || arg['columns'] || @columns) comment(# Added #hard_margins, #split_rules, #hyphenator, and #split_words.) comment(# 2003.02.07 Austin Ziegler) comment(# Fixed the installer for proper case-sensitive handling.) comment(# 2003.03.28 Austin Ziegler) comment(# Added the ability for a hyphenator to receive the formatter) comment(# object. Fixed a bug for strings matching /\\A\\s*\\Z/ failing) comment(# entirely. Fixed a test case failing under 1.6.8. ) comment(# 2003.04.04 Austin Ziegler) comment(# Handle the case of hyphenators returning nil for first/rest.) comment(# 2003.09.17 Austin Ziegler) comment(# Fixed a problem where #paragraphs(" "\) was raising) comment(# NoMethodError.) comment(#) comment(# ==========================================================================) comment(#++) reserved(module) class(Text) comment(#:nodoc:) comment(# Text::Format for Ruby is copyright 2002 - 2005 by Austin Ziegler. It) comment(# is available under Ruby's licence, the Perl Artistic licence, or the) comment(# GNU GPL version 2 (or at your option, any later version\). As a) comment(# special exception, for use with official Rails (provided by the) comment(# rubyonrails.org development team\) and any project created with) comment(# official Rails, the following alternative MIT-style licence may be) comment(# used:) comment(#) comment(# == Text::Format Licence for Rails and Rails Applications) comment(# Permission is hereby granted, free of charge, to any person) comment(# obtaining a copy of this software and associated documentation files) comment(# (the "Software"\), to deal in the Software without restriction,) comment(# including without limitation the rights to use, copy, modify, merge,) comment(# publish, distribute, sublicense, and/or sell copies of the Software,) comment(# and to permit persons to whom the Software is furnished to do so,) comment(# subject to the following conditions:) comment(#) comment(# * The names of its contributors may not be used to endorse or) comment(# promote products derived from this software without specific prior) comment(# written permission.) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS) comment(# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN) comment(# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN) comment(# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE) comment(# SOFTWARE. ) reserved(class) class(Format) constant(VERSION) operator(=) string comment(# Local abbreviations. More can be added with Text::Format.abbreviations) constant(ABBREV) operator(=) operator([) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(]) comment(# Formatting values) constant(LEFT_ALIGN) operator(=) integer(0) constant(RIGHT_ALIGN) operator(=) integer(1) constant(RIGHT_FILL) operator(=) integer(2) constant(JUSTIFY) operator(=) integer(3) comment(# Word split modes (only applies when #hard_margins is true\).) constant(SPLIT_FIXED) operator(=) integer(1) constant(SPLIT_CONTINUATION) operator(=) integer(2) constant(SPLIT_HYPHENATION) operator(=) integer(4) constant(SPLIT_CONTINUATION_FIXED) operator(=) constant(SPLIT_CONTINUATION) operator(|) constant(SPLIT_FIXED) constant(SPLIT_HYPHENATION_FIXED) operator(=) constant(SPLIT_HYPHENATION) operator(|) constant(SPLIT_FIXED) constant(SPLIT_HYPHENATION_CONTINUATION) operator(=) constant(SPLIT_HYPHENATION) operator(|) constant(SPLIT_CONTINUATION) constant(SPLIT_ALL) operator(=) constant(SPLIT_HYPHENATION) operator(|) constant(SPLIT_CONTINUATION) operator(|) constant(SPLIT_FIXED) comment(# Words forcibly split by Text::Format will be stored as split words.) comment(# This class represents a word forcibly split.) reserved(class) class(SplitWord) comment(# The word that was split.) ident(attr_reader) symbol(:word) comment(# The first part of the word that was split.) ident(attr_reader) symbol(:first) comment(# The remainder of the word that was split.) ident(attr_reader) symbol(:rest) reserved(def) method(initialize)operator(()ident(word)operator(,) ident(first)operator(,) ident(rest)operator(\)) comment(#:nodoc:) instance_variable(@word) operator(=) ident(word) instance_variable(@first) operator(=) ident(first) instance_variable(@rest) operator(=) ident(rest) reserved(end) reserved(end) ident(private) constant(LEQ_RE) operator(=) regexp reserved(def) method(brk_re)operator(()ident(i)operator(\)) comment(#:nodoc:) regexpcontent(}\)(.+\))delimiter(/)> reserved(end) reserved(def) method(posint)operator(()ident(p)operator(\)) comment(#:nodoc:) ident(p)operator(.)ident(to_i)operator(.)ident(abs) reserved(end) ident(public) comment(# Compares two Text::Format objects. All settings of the objects are) comment(# compared *except* #hyphenator. Generated results (e.g., #split_words\)) comment(# are not compared, either.) reserved(def) method(==)operator(()ident(o)operator(\)) operator(()instance_variable(@text) operator(==) ident(o)operator(.)ident(text)operator(\)) operator(&&) operator(()instance_variable(@columns) operator(==) ident(o)operator(.)ident(columns)operator(\)) operator(&&) operator(()instance_variable(@left_margin) operator(==) ident(o)operator(.)ident(left_margin)operator(\)) operator(&&) operator(()instance_variable(@right_margin) operator(==) ident(o)operator(.)ident(right_margin)operator(\)) operator(&&) operator(()instance_variable(@hard_margins) operator(==) ident(o)operator(.)ident(hard_margins)operator(\)) operator(&&) operator(()instance_variable(@split_rules) operator(==) ident(o)operator(.)ident(split_rules)operator(\)) operator(&&) operator(()instance_variable(@first_indent) operator(==) ident(o)operator(.)ident(first_indent)operator(\)) operator(&&) operator(()instance_variable(@body_indent) operator(==) ident(o)operator(.)ident(body_indent)operator(\)) operator(&&) operator(()instance_variable(@tag_text) operator(==) ident(o)operator(.)ident(tag_text)operator(\)) operator(&&) operator(()instance_variable(@tabstop) operator(==) ident(o)operator(.)ident(tabstop)operator(\)) operator(&&) operator(()instance_variable(@format_style) operator(==) ident(o)operator(.)ident(format_style)operator(\)) operator(&&) operator(()instance_variable(@extra_space) operator(==) ident(o)operator(.)ident(extra_space)operator(\)) operator(&&) operator(()instance_variable(@tag_paragraph) operator(==) ident(o)operator(.)ident(tag_paragraph)operator(\)) operator(&&) operator(()instance_variable(@nobreak) operator(==) ident(o)operator(.)ident(nobreak)operator(\)) operator(&&) operator(()instance_variable(@abbreviations) operator(==) ident(o)operator(.)ident(abbreviations)operator(\)) operator(&&) operator(()instance_variable(@nobreak_regex) operator(==) ident(o)operator(.)ident(nobreak_regex)operator(\)) reserved(end) comment(# The text to be manipulated. Note that value is optional, but if the) comment(# formatting functions are called without values, this text is what will) comment(# be formatted.) comment(#) comment(# *Default*:: []) comment(# Used in:: All methods) ident(attr_accessor) symbol(:text) comment(# The total width of the format area. The margins, indentation, and text) comment(# are formatted into this space.) comment(#) comment(# COLUMNS) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# left margin indent text is formatted into here right margin) comment(#) comment(# *Default*:: 72) comment(# Used in:: #format, #paragraphs,) comment(# #center) ident(attr_reader) symbol(:columns) comment(# The total width of the format area. The margins, indentation, and text) comment(# are formatted into this space. The value provided is silently) comment(# converted to a positive integer.) comment(#) comment(# COLUMNS) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# left margin indent text is formatted into here right margin) comment(#) comment(# *Default*:: 72) comment(# Used in:: #format, #paragraphs,) comment(# #center) reserved(def) method(columns=)operator(()ident(c)operator(\)) instance_variable(@columns) operator(=) ident(posint)operator(()ident(c)operator(\)) reserved(end) comment(# The number of spaces used for the left margin.) comment(#) comment(# columns) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# LEFT MARGIN indent text is formatted into here right margin) comment(#) comment(# *Default*:: 0) comment(# Used in:: #format, #paragraphs,) comment(# #center) ident(attr_reader) symbol(:left_margin) comment(# The number of spaces used for the left margin. The value provided is) comment(# silently converted to a positive integer value.) comment(#) comment(# columns) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# LEFT MARGIN indent text is formatted into here right margin) comment(#) comment(# *Default*:: 0) comment(# Used in:: #format, #paragraphs,) comment(# #center) reserved(def) method(left_margin=)operator(()ident(left)operator(\)) instance_variable(@left_margin) operator(=) ident(posint)operator(()ident(left)operator(\)) reserved(end) comment(# The number of spaces used for the right margin.) comment(#) comment(# columns) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# left margin indent text is formatted into here RIGHT MARGIN) comment(#) comment(# *Default*:: 0) comment(# Used in:: #format, #paragraphs,) comment(# #center) ident(attr_reader) symbol(:right_margin) comment(# The number of spaces used for the right margin. The value provided is) comment(# silently converted to a positive integer value.) comment(#) comment(# columns) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# left margin indent text is formatted into here RIGHT MARGIN) comment(#) comment(# *Default*:: 0) comment(# Used in:: #format, #paragraphs,) comment(# #center) reserved(def) method(right_margin=)operator(()ident(r)operator(\)) instance_variable(@right_margin) operator(=) ident(posint)operator(()ident(r)operator(\)) reserved(end) comment(# The number of spaces to indent the first line of a paragraph.) comment(#) comment(# columns) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# left margin INDENT text is formatted into here right margin) comment(#) comment(# *Default*:: 4) comment(# Used in:: #format, #paragraphs) ident(attr_reader) symbol(:first_indent) comment(# The number of spaces to indent the first line of a paragraph. The) comment(# value provided is silently converted to a positive integer value.) comment(#) comment(# columns) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# left margin INDENT text is formatted into here right margin) comment(#) comment(# *Default*:: 4) comment(# Used in:: #format, #paragraphs) reserved(def) method(first_indent=)operator(()ident(f)operator(\)) instance_variable(@first_indent) operator(=) ident(posint)operator(()ident(f)operator(\)) reserved(end) comment(# The number of spaces to indent all lines after the first line of a) comment(# paragraph.) comment(#) comment(# columns) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# left margin INDENT text is formatted into here right margin) comment(#) comment(# *Default*:: 0) comment(# Used in:: #format, #paragraphs) ident(attr_reader) symbol(:body_indent) comment(# The number of spaces to indent all lines after the first line of) comment(# a paragraph. The value provided is silently converted to a) comment(# positive integer value.) comment(#) comment(# columns) comment(# <-------------------------------------------------------------->) comment(# <-----------><------><---------------------------><------------>) comment(# left margin INDENT text is formatted into here right margin) comment(#) comment(# *Default*:: 0) comment(# Used in:: #format, #paragraphs) reserved(def) method(body_indent=)operator(()ident(b)operator(\)) instance_variable(@body_indent) operator(=) ident(posint)operator(()ident(b)operator(\)) reserved(end) comment(# Normally, words larger than the format area will be placed on a line) comment(# by themselves. Setting this to +true+ will force words larger than the) comment(# format area to be split into one or more "words" each at most the size) comment(# of the format area. The first line and the original word will be) comment(# placed into #split_words. Note that this will cause the) comment(# output to look *similar* to a #format_style of JUSTIFY. (Lines will be) comment(# filled as much as possible.\)) comment(#) comment(# *Default*:: +false+) comment(# Used in:: #format, #paragraphs) ident(attr_accessor) symbol(:hard_margins) comment(# An array of words split during formatting if #hard_margins is set to) comment(# +true+.) comment(# #split_words << Text::Format::SplitWord.new(word, first, rest\)) ident(attr_reader) symbol(:split_words) comment(# The object responsible for hyphenating. It must respond to) comment(# #hyphenate_to(word, size\) or #hyphenate_to(word, size, formatter\) and) comment(# return an array of the word split into two parts; if there is a) comment(# hyphenation mark to be applied, responsibility belongs to the) comment(# hyphenator object. The size is the MAXIMUM size permitted, including) comment(# any hyphenation marks. If the #hyphenate_to method has an arity of 3,) comment(# the formatter will be provided to the method. This allows the) comment(# hyphenator to make decisions about the hyphenation based on the) comment(# formatting rules.) comment(#) comment(# *Default*:: +nil+) comment(# Used in:: #format, #paragraphs) ident(attr_reader) symbol(:hyphenator) comment(# The object responsible for hyphenating. It must respond to) comment(# #hyphenate_to(word, size\) and return an array of the word hyphenated) comment(# into two parts. The size is the MAXIMUM size permitted, including any) comment(# hyphenation marks.) comment(#) comment(# *Default*:: +nil+) comment(# Used in:: #format, #paragraphs) reserved(def) method(hyphenator=)operator(()ident(h)operator(\)) ident(raise) constant(ArgumentError)operator(,) stringcontent( is not a valid hyphenator.)delimiter(")> reserved(unless) ident(h)operator(.)ident(respond_to?)operator(()symbol(:hyphenate_to)operator(\)) ident(arity) operator(=) ident(h)operator(.)ident(method)operator(()symbol(:hyphenate_to)operator(\))operator(.)ident(arity) ident(raise) constant(ArgumentError)operator(,) stringcontent( must have exactly two or three arguments.)delimiter(")> reserved(unless) operator([)integer(2)operator(,) integer(3)operator(])operator(.)ident(include?)operator(()ident(arity)operator(\)) instance_variable(@hyphenator) operator(=) ident(h) instance_variable(@hyphenator_arity) operator(=) ident(arity) reserved(end) comment(# Specifies the split mode; used only when #hard_margins is set to) comment(# +true+. Allowable values are:) comment(# [+SPLIT_FIXED+] The word will be split at the number of) comment(# characters needed, with no marking at all.) comment(# repre) comment(# senta) comment(# ion) comment(# [+SPLIT_CONTINUATION+] The word will be split at the number of) comment(# characters needed, with a C-style continuation) comment(# character. If a word is the only item on a) comment(# line and it cannot be split into an) comment(# appropriate size, SPLIT_FIXED will be used.) comment(# repr\\) comment(# esen\\) comment(# tati\\) comment(# on) comment(# [+SPLIT_HYPHENATION+] The word will be split according to the) comment(# hyphenator specified in #hyphenator. If there) comment(# is no #hyphenator specified, works like) comment(# SPLIT_CONTINUATION. The example is using) comment(# TeX::Hyphen. If a word is the only item on a) comment(# line and it cannot be split into an) comment(# appropriate size, SPLIT_CONTINUATION mode will) comment(# be used.) comment(# rep-) comment(# re-) comment(# sen-) comment(# ta-) comment(# tion) comment(#) comment(# *Default*:: Text::Format::SPLIT_FIXED) comment(# Used in:: #format, #paragraphs) ident(attr_reader) symbol(:split_rules) comment(# Specifies the split mode; used only when #hard_margins is set to) comment(# +true+. Allowable values are:) comment(# [+SPLIT_FIXED+] The word will be split at the number of) comment(# characters needed, with no marking at all.) comment(# repre) comment(# senta) comment(# ion) comment(# [+SPLIT_CONTINUATION+] The word will be split at the number of) comment(# characters needed, with a C-style continuation) comment(# character.) comment(# repr\\) comment(# esen\\) comment(# tati\\) comment(# on) comment(# [+SPLIT_HYPHENATION+] The word will be split according to the) comment(# hyphenator specified in #hyphenator. If there) comment(# is no #hyphenator specified, works like) comment(# SPLIT_CONTINUATION. The example is using) comment(# TeX::Hyphen as the #hyphenator.) comment(# rep-) comment(# re-) comment(# sen-) comment(# ta-) comment(# tion) comment(#) comment(# These values can be bitwise ORed together (e.g., SPLIT_FIXED |) comment(# SPLIT_CONTINUATION\) to provide fallback split methods. In the) comment(# example given, an attempt will be made to split the word using the) comment(# rules of SPLIT_CONTINUATION; if there is not enough room, the word) comment(# will be split with the rules of SPLIT_FIXED. These combinations are) comment(# also available as the following values:) comment(# * +SPLIT_CONTINUATION_FIXED+) comment(# * +SPLIT_HYPHENATION_FIXED+) comment(# * +SPLIT_HYPHENATION_CONTINUATION+) comment(# * +SPLIT_ALL+) comment(#) comment(# *Default*:: Text::Format::SPLIT_FIXED) comment(# Used in:: #format, #paragraphs) reserved(def) method(split_rules=)operator(()ident(s)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(if) operator(()operator(()ident(s) operator(<) constant(SPLIT_FIXED)operator(\)) operator(||) operator(()ident(s) operator(>) constant(SPLIT_ALL)operator(\))operator(\)) instance_variable(@split_rules) operator(=) ident(s) reserved(end) comment(# Indicates whether sentence terminators should be followed by a single) comment(# space (+false+\), or two spaces (+true+\).) comment(#) comment(# *Default*:: +false+) comment(# Used in:: #format, #paragraphs) ident(attr_accessor) symbol(:extra_space) comment(# Defines the current abbreviations as an array. This is only used if) comment(# extra_space is turned on.) comment(#) comment(# If one is abbreviating "President" as "Pres." (abbreviations =) comment(# ["Pres"]\), then the results of formatting will be as illustrated in) comment(# the table below:) comment(#) comment(# extra_space | include? | !include?) comment(# true | Pres. Lincoln | Pres. Lincoln) comment(# false | Pres. Lincoln | Pres. Lincoln) comment(#) comment(# *Default*:: {}) comment(# Used in:: #format, #paragraphs) ident(attr_accessor) symbol(:abbreviations) comment(# Indicates whether the formatting of paragraphs should be done with) comment(# tagged paragraphs. Useful only with #tag_text.) comment(#) comment(# *Default*:: +false+) comment(# Used in:: #format, #paragraphs) ident(attr_accessor) symbol(:tag_paragraph) comment(# The array of text to be placed before each paragraph when) comment(# #tag_paragraph is +true+. When #format(\) is called,) comment(# only the first element of the array is used. When #paragraphs) comment(# is called, then each entry in the array will be used once, with) comment(# corresponding paragraphs. If the tag elements are exhausted before the) comment(# text is exhausted, then the remaining paragraphs will not be tagged.) comment(# Regardless of indentation settings, a blank line will be inserted) comment(# between all paragraphs when #tag_paragraph is +true+.) comment(#) comment(# *Default*:: []) comment(# Used in:: #format, #paragraphs) ident(attr_accessor) symbol(:tag_text) comment(# Indicates whether or not the non-breaking space feature should be) comment(# used.) comment(#) comment(# *Default*:: +false+) comment(# Used in:: #format, #paragraphs) ident(attr_accessor) symbol(:nobreak) comment(# A hash which holds the regular expressions on which spaces should not) comment(# be broken. The hash is set up such that the key is the first word and) comment(# the value is the second word.) comment(#) comment(# For example, if +nobreak_regex+ contains the following hash:) comment(#) comment(# { '^Mrs?\\.$' => '\\S+$', '^\\S+$' => '^(?:S|J\)r\\.$'}) comment(#) comment(# Then "Mr. Jones", "Mrs. Jones", and "Jones Jr." would not be broken.) comment(# If this simple matching algorithm indicates that there should not be a) comment(# break at the current end of line, then a backtrack is done until there) comment(# are two words on which line breaking is permitted. If two such words) comment(# are not found, then the end of the line will be broken *regardless*.) comment(# If there is a single word on the current line, then no backtrack is) comment(# done and the word is stuck on the end.) comment(#) comment(# *Default*:: {}) comment(# Used in:: #format, #paragraphs) ident(attr_accessor) symbol(:nobreak_regex) comment(# Indicates the number of spaces that a single tab represents.) comment(#) comment(# *Default*:: 8) comment(# Used in:: #expand, #unexpand,) comment(# #paragraphs) ident(attr_reader) symbol(:tabstop) comment(# Indicates the number of spaces that a single tab represents.) comment(#) comment(# *Default*:: 8) comment(# Used in:: #expand, #unexpand,) comment(# #paragraphs) reserved(def) method(tabstop=)operator(()ident(t)operator(\)) instance_variable(@tabstop) operator(=) ident(posint)operator(()ident(t)operator(\)) reserved(end) comment(# Specifies the format style. Allowable values are:) comment(# [+LEFT_ALIGN+] Left justified, ragged right.) comment(# |A paragraph that is|) comment(# |left aligned.|) comment(# [+RIGHT_ALIGN+] Right justified, ragged left.) comment(# |A paragraph that is|) comment(# | right aligned.|) comment(# [+RIGHT_FILL+] Left justified, right ragged, filled to width by) comment(# spaces. (Essentially the same as +LEFT_ALIGN+ except) comment(# that lines are padded on the right.\)) comment(# |A paragraph that is|) comment(# |left aligned. |) comment(# [+JUSTIFY+] Fully justified, words filled to width by spaces,) comment(# except the last line.) comment(# |A paragraph that|) comment(# |is justified.|) comment(#) comment(# *Default*:: Text::Format::LEFT_ALIGN) comment(# Used in:: #format, #paragraphs) ident(attr_reader) symbol(:format_style) comment(# Specifies the format style. Allowable values are:) comment(# [+LEFT_ALIGN+] Left justified, ragged right.) comment(# |A paragraph that is|) comment(# |left aligned.|) comment(# [+RIGHT_ALIGN+] Right justified, ragged left.) comment(# |A paragraph that is|) comment(# | right aligned.|) comment(# [+RIGHT_FILL+] Left justified, right ragged, filled to width by) comment(# spaces. (Essentially the same as +LEFT_ALIGN+ except) comment(# that lines are padded on the right.\)) comment(# |A paragraph that is|) comment(# |left aligned. |) comment(# [+JUSTIFY+] Fully justified, words filled to width by spaces.) comment(# |A paragraph that|) comment(# |is justified.|) comment(#) comment(# *Default*:: Text::Format::LEFT_ALIGN) comment(# Used in:: #format, #paragraphs) reserved(def) method(format_style=)operator(()ident(fs)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(if) operator(()operator(()ident(fs) operator(<) constant(LEFT_ALIGN)operator(\)) operator(||) operator(()ident(fs) operator(>) constant(JUSTIFY)operator(\))operator(\)) instance_variable(@format_style) operator(=) ident(fs) reserved(end) comment(# Indicates that the format style is left alignment.) comment(#) comment(# *Default*:: +true+) comment(# Used in:: #format, #paragraphs) reserved(def) method(left_align?) reserved(return) instance_variable(@format_style) operator(==) constant(LEFT_ALIGN) reserved(end) comment(# Indicates that the format style is right alignment.) comment(#) comment(# *Default*:: +false+) comment(# Used in:: #format, #paragraphs) reserved(def) method(right_align?) reserved(return) instance_variable(@format_style) operator(==) constant(RIGHT_ALIGN) reserved(end) comment(# Indicates that the format style is right fill.) comment(#) comment(# *Default*:: +false+) comment(# Used in:: #format, #paragraphs) reserved(def) method(right_fill?) reserved(return) instance_variable(@format_style) operator(==) constant(RIGHT_FILL) reserved(end) comment(# Indicates that the format style is full justification.) comment(#) comment(# *Default*:: +false+) comment(# Used in:: #format, #paragraphs) reserved(def) method(justify?) reserved(return) instance_variable(@format_style) operator(==) constant(JUSTIFY) reserved(end) comment(# The default implementation of #hyphenate_to implements) comment(# SPLIT_CONTINUATION.) reserved(def) method(hyphenate_to)operator(()ident(word)operator(,) ident(size)operator(\)) operator([)ident(word)operator([)integer(0) operator(..) operator(()ident(size) operator(-) integer(2)operator(\))operator(]) operator(+) stringoperator(,) ident(word)operator([)operator(()ident(size) operator(-) integer(1)operator(\)) operator(..) integer(-1)operator(])operator(]) reserved(end) ident(private) reserved(def) method(__do_split_word)operator(()ident(word)operator(,) ident(size)operator(\)) comment(#:nodoc:) operator([)ident(word)operator([)integer(0) operator(..) operator(()ident(size) operator(-) integer(1)operator(\))operator(])operator(,) ident(word)operator([)ident(size) operator(..) integer(-1)operator(])operator(]) reserved(end) reserved(def) method(__format)operator(()ident(to_wrap)operator(\)) comment(#:nodoc:) ident(words) operator(=) ident(to_wrap)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(compact) ident(words)operator(.)ident(shift) reserved(if) ident(words)operator([)integer(0)operator(])operator(.)ident(nil?) reserved(or) ident(words)operator([)integer(0)operator(])operator(.)ident(empty?) ident(to_wrap) operator(=) operator([)operator(]) ident(abbrev) operator(=) pre_constant(false) ident(width) operator(=) instance_variable(@columns) operator(-) instance_variable(@first_indent) operator(-) instance_variable(@left_margin) operator(-) instance_variable(@right_margin) ident(indent_str) operator(=) string operator(*) instance_variable(@first_indent) ident(first_line) operator(=) pre_constant(true) ident(line) operator(=) ident(words)operator(.)ident(shift) ident(abbrev) operator(=) ident(__is_abbrev)operator(()ident(line)operator(\)) reserved(unless) ident(line)operator(.)ident(nil?) operator(||) ident(line)operator(.)ident(empty?) reserved(while) ident(w) operator(=) ident(words)operator(.)ident(shift) reserved(if) operator(()ident(w)operator(.)ident(size) operator(+) ident(line)operator(.)ident(size) operator(<) operator(()ident(width) operator(-) integer(1)operator(\))operator(\)) operator(||) operator(()operator(()ident(line) operator(!)operator(~) constant(LEQ_RE) operator(||) ident(abbrev)operator(\)) operator(&&) operator(()ident(w)operator(.)ident(size) operator(+) ident(line)operator(.)ident(size) operator(<) ident(width)operator(\))operator(\)) ident(line) operator(<<) string reserved(if) operator(()ident(line) operator(=)operator(~) constant(LEQ_RE)operator(\)) operator(&&) operator(()reserved(not) ident(abbrev)operator(\)) ident(line) operator(<<) stringdelimiter(")> reserved(else) ident(line)operator(,) ident(w) operator(=) ident(__do_break)operator(()ident(line)operator(,) ident(w)operator(\)) reserved(if) instance_variable(@nobreak) ident(line)operator(,) ident(w) operator(=) ident(__do_hyphenate)operator(()ident(line)operator(,) ident(w)operator(,) ident(width)operator(\)) reserved(if) instance_variable(@hard_margins) reserved(if) ident(w)operator(.)ident(index)operator(()regexpoperator(\)) ident(w)operator(,) operator(*)ident(w2) operator(=) ident(w)operator(.)ident(split)operator(()regexpoperator(\)) ident(words)operator(.)ident(unshift)operator(()ident(w2)operator(\)) ident(words)operator(.)ident(flatten!) reserved(end) ident(to_wrap) operator(<<) ident(__make_line)operator(()ident(line)operator(,) ident(indent_str)operator(,) ident(width)operator(,) ident(w)operator(.)ident(nil?)operator(\)) reserved(unless) ident(line)operator(.)ident(nil?) reserved(if) ident(first_line) ident(first_line) operator(=) pre_constant(false) ident(width) operator(=) instance_variable(@columns) operator(-) instance_variable(@body_indent) operator(-) instance_variable(@left_margin) operator(-) instance_variable(@right_margin) ident(indent_str) operator(=) string operator(*) instance_variable(@body_indent) reserved(end) ident(line) operator(=) ident(w) reserved(end) ident(abbrev) operator(=) ident(__is_abbrev)operator(()ident(w)operator(\)) reserved(unless) ident(w)operator(.)ident(nil?) reserved(end) ident(loop) reserved(do) reserved(break) reserved(if) ident(line)operator(.)ident(nil?) reserved(or) ident(line)operator(.)ident(empty?) ident(line)operator(,) ident(w) operator(=) ident(__do_hyphenate)operator(()ident(line)operator(,) ident(w)operator(,) ident(width)operator(\)) reserved(if) instance_variable(@hard_margins) ident(to_wrap) operator(<<) ident(__make_line)operator(()ident(line)operator(,) ident(indent_str)operator(,) ident(width)operator(,) ident(w)operator(.)ident(nil?)operator(\)) ident(line) operator(=) ident(w) reserved(end) reserved(if) operator(()instance_variable(@tag_paragraph) operator(&&) operator(()ident(to_wrap)operator(.)ident(size) operator(>) integer(0)operator(\))operator(\)) reserved(then) ident(clr) operator(=) regexpoperator(.)ident(match)operator(()operator([)ident(caller)operator(()integer(1)operator(\))operator(])operator(.)ident(flatten)operator([)integer(0)operator(])operator(\))operator([)integer(1)operator(]) ident(clr) operator(=) string reserved(if) ident(clr)operator(.)ident(nil?) reserved(if) operator(()operator(()reserved(not) instance_variable(@tag_text)operator([)integer(0)operator(])operator(.)ident(nil?)operator(\)) operator(&&) operator(()instance_variable(@tag_cur)operator(.)ident(size) operator(<) integer(1)operator(\)) operator(&&) operator(()ident(clr) operator(!=) stringoperator(\))operator(\)) reserved(then) instance_variable(@tag_cur) operator(=) instance_variable(@tag_text)operator([)integer(0)operator(]) reserved(end) ident(fchar) operator(=) regexpoperator(.)ident(match)operator(()ident(to_wrap)operator([)integer(0)operator(])operator(\))operator([)integer(1)operator(]) ident(white) operator(=) ident(to_wrap)operator([)integer(0)operator(])operator(.)ident(index)operator(()ident(fchar)operator(\)) reserved(if) operator(()operator(()ident(white) operator(-) instance_variable(@left_margin) operator(-) integer(1)operator(\)) operator(>) instance_variable(@tag_cur)operator(.)ident(size)operator(\)) reserved(then) ident(white) operator(=) instance_variable(@tag_cur)operator(.)ident(size) operator(+) instance_variable(@left_margin) ident(to_wrap)operator([)integer(0)operator(])operator(.)ident(gsub!)operator(()regexpcontent(})delimiter(/)>operator(,) string operator(*) instance_variable(@left_margin)inline_delimiter(})>inlinedelimiter(")>operator(\)) reserved(else) ident(to_wrap)operator(.)ident(unshift)operator(()string operator(*) instance_variable(@left_margin)inline_delimiter(})>inlinechar(\\n)delimiter(")>operator(\)) reserved(end) reserved(end) ident(to_wrap)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) comment(# format lines in text into paragraphs with each element of @wrap a) comment(# paragraph; uses Text::Format.format for the formatting) reserved(def) method(__paragraphs)operator(()ident(to_wrap)operator(\)) comment(#:nodoc:) reserved(if) operator(()operator(()instance_variable(@first_indent) operator(==) instance_variable(@body_indent)operator(\)) operator(||) instance_variable(@tag_paragraph)operator(\)) reserved(then) ident(p_end) operator(=) string reserved(else) ident(p_end) operator(=) string reserved(end) ident(cnt) operator(=) integer(0) ident(ret) operator(=) operator([)operator(]) ident(to_wrap)operator(.)ident(each) reserved(do) operator(|)ident(tw)operator(|) instance_variable(@tag_cur) operator(=) instance_variable(@tag_text)operator([)ident(cnt)operator(]) reserved(if) instance_variable(@tag_paragraph) instance_variable(@tag_cur) operator(=) string reserved(if) instance_variable(@tag_cur)operator(.)ident(nil?) ident(line) operator(=) ident(__format)operator(()ident(tw)operator(\)) ident(ret) operator(<<) stringinlinedelimiter(")> reserved(if) operator(()reserved(not) ident(line)operator(.)ident(nil?)operator(\)) operator(&&) operator(()ident(line)operator(.)ident(size) operator(>) integer(0)operator(\)) ident(cnt) operator(+=) integer(1) reserved(end) ident(ret)operator([)integer(-1)operator(])operator(.)ident(chomp!) reserved(unless) ident(ret)operator(.)ident(empty?) ident(ret)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) comment(# center text using spaces on left side to pad it out empty lines) comment(# are preserved) reserved(def) method(__center)operator(()ident(to_center)operator(\)) comment(#:nodoc:) ident(tabs) operator(=) integer(0) ident(width) operator(=) instance_variable(@columns) operator(-) instance_variable(@left_margin) operator(-) instance_variable(@right_margin) ident(centered) operator(=) operator([)operator(]) ident(to_center)operator(.)ident(each) reserved(do) operator(|)ident(tc)operator(|) ident(s) operator(=) ident(tc)operator(.)ident(strip) ident(tabs) operator(=) ident(s)operator(.)ident(count)operator(()stringoperator(\)) ident(tabs) operator(=) integer(0) reserved(if) ident(tabs)operator(.)ident(nil?) ident(ct) operator(=) operator(()operator(()ident(width) operator(-) ident(s)operator(.)ident(size) operator(-) operator(()ident(tabs) operator(*) instance_variable(@tabstop)operator(\)) operator(+) ident(tabs)operator(\)) operator(/) integer(2)operator(\)) ident(ct) operator(=) operator(()ident(width) operator(-) instance_variable(@left_margin) operator(-) instance_variable(@right_margin)operator(\)) operator(-) ident(ct) ident(centered) operator(<<) stringchar(\\n)delimiter(")> reserved(end) ident(centered)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) comment(# expand tabs to spaces should be similar to Text::Tabs::expand) reserved(def) method(__expand)operator(()ident(to_expand)operator(\)) comment(#:nodoc:) ident(expanded) operator(=) operator([)operator(]) ident(to_expand)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(each) operator({) operator(|)ident(te)operator(|) ident(expanded) operator(<<) ident(te)operator(.)ident(gsub)operator(()regexpoperator(,) string operator(*) instance_variable(@tabstop)operator(\)) operator(}) ident(expanded)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(__unexpand)operator(()ident(to_unexpand)operator(\)) comment(#:nodoc:) ident(unexpanded) operator(=) operator([)operator(]) ident(to_unexpand)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(each) operator({) operator(|)ident(tu)operator(|) ident(unexpanded) operator(<<) ident(tu)operator(.)ident(gsub)operator(()regexpcontent(})delimiter(/)>operator(,) stringoperator(\)) operator(}) ident(unexpanded)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(__is_abbrev)operator(()ident(word)operator(\)) comment(#:nodoc:) comment(# remove period if there is one.) ident(w) operator(=) ident(word)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(unless) ident(word)operator(.)ident(nil?) reserved(return) pre_constant(true) reserved(if) operator(()operator(!)instance_variable(@extra_space) operator(||) constant(ABBREV)operator(.)ident(include?)operator(()ident(w)operator(\)) operator(||) instance_variable(@abbreviations)operator(.)ident(include?)operator(()ident(w)operator(\))operator(\)) pre_constant(false) reserved(end) reserved(def) method(__make_line)operator(()ident(line)operator(,) ident(indent)operator(,) ident(width)operator(,) ident(last) operator(=) pre_constant(false)operator(\)) comment(#:nodoc:) ident(lmargin) operator(=) string operator(*) instance_variable(@left_margin) ident(fill) operator(=) string operator(*) operator(()ident(width) operator(-) ident(line)operator(.)ident(size)operator(\)) reserved(if) ident(right_fill?) operator(&&) operator(()ident(line)operator(.)ident(size) operator(<=) ident(width)operator(\)) reserved(if) operator(()ident(justify?) operator(&&) operator(()operator(()reserved(not) ident(line)operator(.)ident(nil?)operator(\)) operator(&&) operator(()reserved(not) ident(line)operator(.)ident(empty?)operator(\))operator(\)) operator(&&) ident(line) operator(=)operator(~) regexp operator(&&) operator(!)ident(last)operator(\)) ident(spaces) operator(=) ident(width) operator(-) ident(line)operator(.)ident(size) ident(words) operator(=) ident(line)operator(.)ident(split)operator(()regexpoperator(\)) ident(ws) operator(=) ident(spaces) operator(/) operator(()ident(words)operator(.)ident(size) operator(/) integer(2)operator(\)) ident(spaces) operator(=) ident(spaces) operator(%) operator(()ident(words)operator(.)ident(size) operator(/) integer(2)operator(\)) reserved(if) ident(ws) operator(>) integer(0) ident(words)operator(.)ident(reverse)operator(.)ident(each) reserved(do) operator(|)ident(rw)operator(|) reserved(next) reserved(if) operator(()ident(rw) operator(=)operator(~) regexpoperator(\)) ident(rw)operator(.)ident(sub!)operator(()regexpoperator(,) string operator(*) ident(ws)operator(\)) reserved(next) reserved(unless) operator(()ident(spaces) operator(>) integer(0)operator(\)) ident(rw)operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) ident(spaces) operator(-=) integer(1) reserved(end) ident(line) operator(=) ident(words)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) ident(line) operator(=) stringinlineinlineinlinechar(\\n)delimiter(")> reserved(unless) ident(line)operator(.)ident(nil?) reserved(if) ident(right_align?) operator(&&) operator(()reserved(not) ident(line)operator(.)ident(nil?)operator(\)) ident(line)operator(.)ident(sub)operator(()regexpoperator(,) string operator(*) operator(()instance_variable(@columns) operator(-) instance_variable(@right_margin) operator(-) operator(()ident(line)operator(.)ident(size) operator(-) integer(1)operator(\))operator(\))operator(\)) reserved(else) ident(line) reserved(end) reserved(end) reserved(def) method(__do_hyphenate)operator(()ident(line)operator(,) ident(next_line)operator(,) ident(width)operator(\)) comment(#:nodoc:) ident(rline) operator(=) ident(line)operator(.)ident(dup) reserved(rescue) ident(line) ident(rnext) operator(=) ident(next_line)operator(.)ident(dup) reserved(rescue) ident(next_line) ident(loop) reserved(do) reserved(if) ident(rline)operator(.)ident(size) operator(==) ident(width) reserved(break) reserved(elsif) ident(rline)operator(.)ident(size) operator(>) ident(width) ident(words) operator(=) ident(rline)operator(.)ident(strip)operator(.)ident(split)operator(()regexpoperator(\)) ident(word) operator(=) ident(words)operator([)integer(-1)operator(])operator(.)ident(dup) ident(size) operator(=) ident(width) operator(-) ident(rline)operator(.)ident(size) operator(+) ident(word)operator(.)ident(size) reserved(if) operator(()ident(size) operator(<=) integer(0)operator(\)) ident(words)operator([)integer(-1)operator(]) operator(=) pre_constant(nil) ident(rline) operator(=) ident(words)operator(.)ident(join)operator(()stringoperator(\))operator(.)ident(strip) ident(rnext) operator(=) stringcontent( )inlinedelimiter(")>operator(.)ident(strip) reserved(next) reserved(end) ident(first) operator(=) ident(rest) operator(=) pre_constant(nil) reserved(if) operator(()operator(()instance_variable(@split_rules) operator(&) constant(SPLIT_HYPHENATION)operator(\)) operator(!=) integer(0)operator(\)) reserved(if) instance_variable(@hyphenator_arity) operator(==) integer(2) ident(first)operator(,) ident(rest) operator(=) instance_variable(@hyphenator)operator(.)ident(hyphenate_to)operator(()ident(word)operator(,) ident(size)operator(\)) reserved(else) ident(first)operator(,) ident(rest) operator(=) instance_variable(@hyphenator)operator(.)ident(hyphenate_to)operator(()ident(word)operator(,) ident(size)operator(,) pre_constant(self)operator(\)) reserved(end) reserved(end) reserved(if) operator(()operator(()instance_variable(@split_rules) operator(&) constant(SPLIT_CONTINUATION)operator(\)) operator(!=) integer(0)operator(\)) reserved(and) ident(first)operator(.)ident(nil?) ident(first)operator(,) ident(rest) operator(=) pre_constant(self)operator(.)ident(hyphenate_to)operator(()ident(word)operator(,) ident(size)operator(\)) reserved(end) reserved(if) operator(()operator(()instance_variable(@split_rules) operator(&) constant(SPLIT_FIXED)operator(\)) operator(!=) integer(0)operator(\)) reserved(and) ident(first)operator(.)ident(nil?) ident(first)operator(.)ident(nil?) reserved(or) instance_variable(@split_rules) operator(==) constant(SPLIT_FIXED) ident(first)operator(,) ident(rest) operator(=) ident(__do_split_word)operator(()ident(word)operator(,) ident(size)operator(\)) reserved(end) reserved(if) ident(first)operator(.)ident(nil?) ident(words)operator([)integer(-1)operator(]) operator(=) pre_constant(nil) ident(rest) operator(=) ident(word) reserved(else) ident(words)operator([)integer(-1)operator(]) operator(=) ident(first) instance_variable(@split_words) operator(<<) constant(SplitWord)operator(.)ident(new)operator(()ident(word)operator(,) ident(first)operator(,) ident(rest)operator(\)) reserved(end) ident(rline) operator(=) ident(words)operator(.)ident(join)operator(()stringoperator(\))operator(.)ident(strip) ident(rnext) operator(=) stringcontent( )inlinedelimiter(")>operator(.)ident(strip) reserved(break) reserved(else) reserved(break) reserved(if) ident(rnext)operator(.)ident(nil?) reserved(or) ident(rnext)operator(.)ident(empty?) reserved(or) ident(rline)operator(.)ident(nil?) reserved(or) ident(rline)operator(.)ident(empty?) ident(words) operator(=) ident(rnext)operator(.)ident(split)operator(()regexpoperator(\)) ident(word) operator(=) ident(words)operator(.)ident(shift) ident(size) operator(=) ident(width) operator(-) ident(rline)operator(.)ident(size) operator(-) integer(1) reserved(if) operator(()ident(size) operator(<=) integer(0)operator(\)) ident(rnext) operator(=) stringcontent( )inlineoperator(\))inline_delimiter(})>delimiter(")>operator(.)ident(strip) reserved(break) reserved(end) ident(first) operator(=) ident(rest) operator(=) pre_constant(nil) reserved(if) operator(()operator(()instance_variable(@split_rules) operator(&) constant(SPLIT_HYPHENATION)operator(\)) operator(!=) integer(0)operator(\)) reserved(if) instance_variable(@hyphenator_arity) operator(==) integer(2) ident(first)operator(,) ident(rest) operator(=) instance_variable(@hyphenator)operator(.)ident(hyphenate_to)operator(()ident(word)operator(,) ident(size)operator(\)) reserved(else) ident(first)operator(,) ident(rest) operator(=) instance_variable(@hyphenator)operator(.)ident(hyphenate_to)operator(()ident(word)operator(,) ident(size)operator(,) pre_constant(self)operator(\)) reserved(end) reserved(end) ident(first)operator(,) ident(rest) operator(=) pre_constant(self)operator(.)ident(hyphenate_to)operator(()ident(word)operator(,) ident(size)operator(\)) reserved(if) operator(()operator(()instance_variable(@split_rules) operator(&) constant(SPLIT_CONTINUATION)operator(\)) operator(!=) integer(0)operator(\)) reserved(and) ident(first)operator(.)ident(nil?) ident(first)operator(,) ident(rest) operator(=) ident(__do_split_word)operator(()ident(word)operator(,) ident(size)operator(\)) reserved(if) operator(()operator(()instance_variable(@split_rules) operator(&) constant(SPLIT_FIXED)operator(\)) operator(!=) integer(0)operator(\)) reserved(and) ident(first)operator(.)ident(nil?) reserved(if) operator(()ident(rline)operator(.)ident(size) operator(+) operator(()ident(first) operator(?) ident(first)operator(.)ident(size) operator(:) integer(0)operator(\))operator(\)) operator(<) ident(width) instance_variable(@split_words) operator(<<) constant(SplitWord)operator(.)ident(new)operator(()ident(word)operator(,) ident(first)operator(,) ident(rest)operator(\)) ident(rline) operator(=) stringcontent( )inlinedelimiter(")>operator(.)ident(strip) ident(rnext) operator(=) stringcontent( )inlineoperator(\))inline_delimiter(})>delimiter(")>operator(.)ident(strip) reserved(end) reserved(break) reserved(end) reserved(end) operator([)ident(rline)operator(,) ident(rnext)operator(]) reserved(end) reserved(def) method(__do_break)operator(()ident(line)operator(,) ident(next_line)operator(\)) comment(#:nodoc:) ident(no_brk) operator(=) pre_constant(false) ident(words) operator(=) operator([)operator(]) ident(words) operator(=) ident(line)operator(.)ident(split)operator(()regexpoperator(\)) reserved(unless) ident(line)operator(.)ident(nil?) ident(last_word) operator(=) ident(words)operator([)integer(-1)operator(]) instance_variable(@nobreak_regex)operator(.)ident(each) operator({) operator(|)ident(k)operator(,) ident(v)operator(|) ident(no_brk) operator(=) operator(()operator(()ident(last_word) operator(=)operator(~) regexpdelimiter(/)>operator(\)) reserved(and) operator(()ident(next_line) operator(=)operator(~) regexpdelimiter(/)>operator(\))operator(\)) operator(}) reserved(if) ident(no_brk) operator(&&) ident(words)operator(.)ident(size) operator(>) integer(1) ident(i) operator(=) ident(words)operator(.)ident(size) reserved(while) ident(i) operator(>) integer(0) ident(no_brk) operator(=) pre_constant(false) instance_variable(@nobreak_regex)operator(.)ident(each) operator({) operator(|)ident(k)operator(,) ident(v)operator(|) ident(no_brk) operator(=) operator(()operator(()ident(words)operator([)ident(i) operator(+) integer(1)operator(]) operator(=)operator(~) regexpdelimiter(/)>operator(\)) operator(&&) operator(()ident(words)operator([)ident(i)operator(]) operator(=)operator(~) regexpdelimiter(/)>operator(\))operator(\)) operator(}) ident(i) operator(-=) integer(1) reserved(break) reserved(if) reserved(not) ident(no_brk) reserved(end) reserved(if) ident(i) operator(>) integer(0) ident(l) operator(=) ident(brk_re)operator(()ident(i)operator(\))operator(.)ident(match)operator(()ident(line)operator(\)) ident(line)operator(.)ident(sub!)operator(()ident(brk_re)operator(()ident(i)operator(\))operator(,) ident(l)operator([)integer(1)operator(])operator(\)) ident(next_line) operator(=) stringcontent( )inlinedelimiter(")> ident(line)operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(end) operator([)ident(line)operator(,) ident(next_line)operator(]) reserved(end) reserved(def) method(__create)operator(()ident(arg) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) comment(#:nodoc:) comment(# Format::Text.new(text-to-wrap\)) instance_variable(@text) operator(=) ident(arg) reserved(unless) ident(arg)operator(.)ident(nil?) comment(# Defaults) instance_variable(@columns) operator(=) integer(72) instance_variable(@tabstop) operator(=) integer(8) instance_variable(@first_indent) operator(=) integer(4) instance_variable(@body_indent) operator(=) integer(0) instance_variable(@format_style) operator(=) constant(LEFT_ALIGN) instance_variable(@left_margin) operator(=) integer(0) instance_variable(@right_margin) operator(=) integer(0) instance_variable(@extra_space) operator(=) pre_constant(false) instance_variable(@text) operator(=) constant(Array)operator(.)ident(new) reserved(if) instance_variable(@text)operator(.)ident(nil?) instance_variable(@tag_paragraph) operator(=) pre_constant(false) instance_variable(@tag_text) operator(=) constant(Array)operator(.)ident(new) instance_variable(@tag_cur) operator(=) string instance_variable(@abbreviations) operator(=) constant(Array)operator(.)ident(new) instance_variable(@nobreak) operator(=) pre_constant(false) instance_variable(@nobreak_regex) operator(=) constant(Hash)operator(.)ident(new) instance_variable(@split_words) operator(=) constant(Array)operator(.)ident(new) instance_variable(@hard_margins) operator(=) pre_constant(false) instance_variable(@split_rules) operator(=) constant(SPLIT_FIXED) instance_variable(@hyphenator) operator(=) pre_constant(self) instance_variable(@hyphenator_arity) operator(=) pre_constant(self)operator(.)ident(method)operator(()symbol(:hyphenate_to)operator(\))operator(.)ident(arity) ident(instance_eval)operator(()operator(&)ident(block)operator(\)) reserved(unless) ident(block)operator(.)ident(nil?) reserved(end) ident(public) comment(# Formats text into a nice paragraph format. The text is separated) comment(# into words and then reassembled a word at a time using the settings) comment(# of this Format object. If a word is larger than the number of) comment(# columns available for formatting, then that word will appear on the) comment(# line by itself.) comment(#) comment(# If +to_wrap+ is +nil+, then the value of #text will be) comment(# worked on.) reserved(def) method(format)operator(()ident(to_wrap) operator(=) pre_constant(nil)operator(\)) ident(to_wrap) operator(=) instance_variable(@text) reserved(if) ident(to_wrap)operator(.)ident(nil?) reserved(if) ident(to_wrap)operator(.)ident(class) operator(==) constant(Array) ident(__format)operator(()ident(to_wrap)operator([)integer(0)operator(])operator(\)) reserved(else) ident(__format)operator(()ident(to_wrap)operator(\)) reserved(end) reserved(end) comment(# Considers each element of text (provided or internal\) as a paragraph.) comment(# If #first_indent is the same as #body_indent, then) comment(# paragraphs will be separated by a single empty line in the result;) comment(# otherwise, the paragraphs will follow immediately after each other.) comment(# Uses #format to do the heavy lifting.) reserved(def) method(paragraphs)operator(()ident(to_wrap) operator(=) pre_constant(nil)operator(\)) ident(to_wrap) operator(=) instance_variable(@text) reserved(if) ident(to_wrap)operator(.)ident(nil?) ident(__paragraphs)operator(()operator([)ident(to_wrap)operator(])operator(.)ident(flatten)operator(\)) reserved(end) comment(# Centers the text, preserving empty lines and tabs.) reserved(def) method(center)operator(()ident(to_center) operator(=) pre_constant(nil)operator(\)) ident(to_center) operator(=) instance_variable(@text) reserved(if) ident(to_center)operator(.)ident(nil?) ident(__center)operator(()operator([)ident(to_center)operator(])operator(.)ident(flatten)operator(\)) reserved(end) comment(# Replaces all tab characters in the text with #tabstop spaces.) reserved(def) method(expand)operator(()ident(to_expand) operator(=) pre_constant(nil)operator(\)) ident(to_expand) operator(=) instance_variable(@text) reserved(if) ident(to_expand)operator(.)ident(nil?) reserved(if) ident(to_expand)operator(.)ident(class) operator(==) constant(Array) ident(to_expand)operator(.)ident(collect) operator({) operator(|)ident(te)operator(|) ident(__expand)operator(()ident(te)operator(\)) operator(}) reserved(else) ident(__expand)operator(()ident(to_expand)operator(\)) reserved(end) reserved(end) comment(# Replaces all occurrences of #tabstop consecutive spaces) comment(# with a tab character.) reserved(def) method(unexpand)operator(()ident(to_unexpand) operator(=) pre_constant(nil)operator(\)) ident(to_unexpand) operator(=) instance_variable(@text) reserved(if) ident(to_unexpand)operator(.)ident(nil?) reserved(if) ident(to_unexpand)operator(.)ident(class) operator(==) constant(Array) ident(to_unexpand)operator(.)ident(collect) operator({) operator(|)ident(te)operator(|) ident(v) operator(<<) ident(__unexpand)operator(()ident(te)operator(\)) operator(}) reserved(else) ident(__unexpand)operator(()ident(to_unexpand)operator(\)) reserved(end) reserved(end) comment(# This constructor takes advantage of a technique for Ruby object) comment(# construction introduced by Andy Hunt and Dave Thomas (see reference\),) comment(# where optional values are set using commands in a block.) comment(#) comment(# Text::Format.new {) comment(# columns = 72) comment(# left_margin = 0) comment(# right_margin = 0) comment(# first_indent = 4) comment(# body_indent = 0) comment(# format_style = Text::Format::LEFT_ALIGN) comment(# extra_space = false) comment(# abbreviations = {}) comment(# tag_paragraph = false) comment(# tag_text = []) comment(# nobreak = false) comment(# nobreak_regex = {}) comment(# tabstop = 8) comment(# text = nil) comment(# }) comment(#) comment(# As shown above, +arg+ is optional. If +arg+ is specified and is a) comment(# +String+, then arg is used as the default value of #text.) comment(# Alternately, an existing Text::Format object can be used or a Hash can) comment(# be used. With all forms, a block can be specified.) comment(#) comment(# *Reference*:: "Object Construction and Blocks") comment(# ) comment(#) reserved(def) method(initialize)operator(()ident(arg) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) reserved(case) ident(arg) reserved(when) constant(Text)operator(::)constant(Format) ident(__create)operator(()ident(arg)operator(.)ident(text)operator(\)) reserved(do) instance_variable(@columns) operator(=) ident(arg)operator(.)ident(columns) instance_variable(@tabstop) operator(=) ident(arg)operator(.)ident(tabstop) instance_variable(@first_indent) operator(=) ident(arg)operator(.)ident(first_indent) instance_variable(@body_indent) operator(=) ident(arg)operator(.)ident(body_indent) instance_variable(@format_style) operator(=) ident(arg)operator(.)ident(format_style) instance_variable(@left_margin) operator(=) ident(arg)operator(.)ident(left_margin) instance_variable(@right_margin) operator(=) ident(arg)operator(.)ident(right_margin) instance_variable(@extra_space) operator(=) ident(arg)operator(.)ident(extra_space) instance_variable(@tag_paragraph) operator(=) ident(arg)operator(.)ident(tag_paragraph) instance_variable(@tag_text) operator(=) ident(arg)operator(.)ident(tag_text) instance_variable(@abbreviations) operator(=) ident(arg)operator(.)ident(abbreviations) instance_variable(@nobreak) operator(=) ident(arg)operator(.)ident(nobreak) instance_variable(@nobreak_regex) operator(=) ident(arg)operator(.)ident(nobreak_regex) instance_variable(@text) operator(=) ident(arg)operator(.)ident(text) instance_variable(@hard_margins) operator(=) ident(arg)operator(.)ident(hard_margins) instance_variable(@split_words) operator(=) ident(arg)operator(.)ident(split_words) instance_variable(@split_rules) operator(=) ident(arg)operator(.)ident(split_rules) instance_variable(@hyphenator) operator(=) ident(arg)operator(.)ident(hyphenator) reserved(end) ident(instance_eval)operator(()operator(&)ident(block)operator(\)) reserved(unless) ident(block)operator(.)ident(nil?) reserved(when) constant(Hash) ident(__create) reserved(do) instance_variable(@columns) operator(=) ident(arg)operator([)symbol(:columns)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@columns) instance_variable(@tabstop) operator(=) ident(arg)operator([)symbol(:tabstop)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@tabstop) instance_variable(@first_indent) operator(=) ident(arg)operator([)symbol(:first_indent)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@first_indent) instance_variable(@body_indent) operator(=) ident(arg)operator([)symbol(:body_indent)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@body_indent) instance_variable(@format_style) operator(=) ident(arg)operator([)symbol(:format_style)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@format_style) instance_variable(@left_margin) operator(=) ident(arg)operator([)symbol(:left_margin)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@left_margin) instance_variable(@right_margin) operator(=) ident(arg)operator([)symbol(:right_margin)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@right_margin) instance_variable(@extra_space) operator(=) ident(arg)operator([)symbol(:extra_space)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@extra_space) instance_variable(@text) operator(=) ident(arg)operator([)symbol(:text)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@text) instance_variable(@tag_paragraph) operator(=) ident(arg)operator([)symbol(:tag_paragraph)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@tag_paragraph) instance_variable(@tag_text) operator(=) ident(arg)operator([)symbol(:tag_text)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@tag_text) instance_variable(@abbreviations) operator(=) ident(arg)operator([)symbol(:abbreviations)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@abbreviations) instance_variable(@nobreak) operator(=) ident(arg)operator([)symbol(:nobreak)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@nobreak) instance_variable(@nobreak_regex) operator(=) ident(arg)operator([)symbol(:nobreak_regex)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@nobreak_regex) instance_variable(@hard_margins) operator(=) ident(arg)operator([)symbol(:hard_margins)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@hard_margins) instance_variable(@split_rules) operator(=) ident(arg)operator([)symbol(:split_rules)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@split_rules) instance_variable(@hyphenator) operator(=) ident(arg)operator([)symbol(:hyphenator)operator(]) operator(||) ident(arg)operator([)stringoperator(]) operator(||) instance_variable(@hyphenator) reserved(end) ident(instance_eval)operator(()operator(&)ident(block)operator(\)) reserved(unless) ident(block)operator(.)ident(nil?) reserved(when) constant(String) ident(__create)operator(()ident(arg)operator(,) operator(&)ident(block)operator(\)) reserved(when) constant(NilClass) ident(__create)operator(()operator(&)ident(block)operator(\)) reserved(else) ident(raise) constant(TypeError) reserved(end) reserved(end) reserved(end) reserved(end) reserved(if) pre_constant(__FILE__) operator(==) global_variable($0) ident(require) string reserved(class) class(TestText__Format) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) comment(#:nodoc:) ident(attr_accessor) symbol(:format_o) constant(GETTYSBURG) operator(=) stringstring constant(FIVE_COL) operator(=) string constant(FIVE_CNT) operator(=) string comment(# Tests both abbreviations and abbreviations=) reserved(def) method(test_abbreviations) ident(abbr) operator(=) operator([)stringoperator(,) stringoperator(]) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()operator([)operator(])operator(,) instance_variable(@format_o)operator(.)ident(abbreviations)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(abbreviations) operator(=) operator([) stringoperator(,) string operator(]) operator(}) ident(assert_equal)operator(()operator([) stringoperator(,) string operator(])operator(,) instance_variable(@format_o)operator(.)ident(abbreviations)operator(\)) ident(assert_equal)operator(()ident(abbr)operator([)integer(0)operator(])operator(,) instance_variable(@format_o)operator(.)ident(format)operator(()ident(abbr)operator([)integer(0)operator(])operator(\))operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(extra_space) operator(=) pre_constant(true) operator(}) ident(assert_equal)operator(()ident(abbr)operator([)integer(1)operator(])operator(,) instance_variable(@format_o)operator(.)ident(format)operator(()ident(abbr)operator([)integer(0)operator(])operator(\))operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(abbreviations) operator(=) operator([) string operator(]) operator(}) ident(assert_equal)operator(()operator([) string operator(])operator(,) instance_variable(@format_o)operator(.)ident(abbreviations)operator(\)) ident(assert_equal)operator(()ident(abbr)operator([)integer(0)operator(])operator(,) instance_variable(@format_o)operator(.)ident(format)operator(()ident(abbr)operator([)integer(0)operator(])operator(\))operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(extra_space) operator(=) pre_constant(false) operator(}) ident(assert_equal)operator(()ident(abbr)operator([)integer(0)operator(])operator(,) instance_variable(@format_o)operator(.)ident(format)operator(()ident(abbr)operator([)integer(0)operator(])operator(\))operator(\)) reserved(end) comment(# Tests both body_indent and body_indent=) reserved(def) method(test_body_indent) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()integer(0)operator(,) instance_variable(@format_o)operator(.)ident(body_indent)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(body_indent) operator(=) integer(7) operator(}) ident(assert_equal)operator(()integer(7)operator(,) instance_variable(@format_o)operator(.)ident(body_indent)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(body_indent) operator(=) integer(-3) operator(}) ident(assert_equal)operator(()integer(3)operator(,) instance_variable(@format_o)operator(.)ident(body_indent)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(body_indent) operator(=) string operator(}) ident(assert_equal)operator(()integer(9)operator(,) instance_variable(@format_o)operator(.)ident(body_indent)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(body_indent) operator(=) string operator(}) ident(assert_equal)operator(()integer(2)operator(,) instance_variable(@format_o)operator(.)ident(body_indent)operator(\)) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator([)integer(1)operator(])operator(\)) reserved(end) comment(# Tests both columns and columns=) reserved(def) method(test_columns) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()integer(72)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(columns) operator(=) integer(7) operator(}) ident(assert_equal)operator(()integer(7)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(columns) operator(=) integer(-3) operator(}) ident(assert_equal)operator(()integer(3)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(columns) operator(=) string operator(}) ident(assert_equal)operator(()integer(9)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(columns) operator(=) string operator(}) ident(assert_equal)operator(()integer(2)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(columns) operator(=) integer(40) operator(}) ident(assert_equal)operator(()integer(40)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator([)integer(1)operator(])operator(\)) reserved(end) comment(# Tests both extra_space and extra_space=) reserved(def) method(test_extra_space) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(extra_space)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(extra_space) operator(=) pre_constant(true) operator(}) ident(assert)operator(()instance_variable(@format_o)operator(.)ident(extra_space)operator(\)) comment(# The behaviour of extra_space is tested in test_abbreviations. There) comment(# is no need to reproduce it here.) reserved(end) comment(# Tests both first_indent and first_indent=) reserved(def) method(test_first_indent) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()integer(4)operator(,) instance_variable(@format_o)operator(.)ident(first_indent)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(first_indent) operator(=) integer(7) operator(}) ident(assert_equal)operator(()integer(7)operator(,) instance_variable(@format_o)operator(.)ident(first_indent)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(first_indent) operator(=) integer(-3) operator(}) ident(assert_equal)operator(()integer(3)operator(,) instance_variable(@format_o)operator(.)ident(first_indent)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(first_indent) operator(=) string operator(}) ident(assert_equal)operator(()integer(9)operator(,) instance_variable(@format_o)operator(.)ident(first_indent)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(first_indent) operator(=) string operator(}) ident(assert_equal)operator(()integer(2)operator(,) instance_variable(@format_o)operator(.)ident(first_indent)operator(\)) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator([)integer(0)operator(])operator(\)) reserved(end) reserved(def) method(test_format_style) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()constant(Text)operator(::)constant(Format)operator(::)constant(LEFT_ALIGN)operator(,) instance_variable(@format_o)operator(.)ident(format_style)operator(\)) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator([)integer(-1)operator(])operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_ALIGN) operator(}) ident(assert_equal)operator(()constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_ALIGN)operator(,) instance_variable(@format_o)operator(.)ident(format_style)operator(\)) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator([)integer(-1)operator(])operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_FILL) operator(}) ident(assert_equal)operator(()constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_FILL)operator(,) instance_variable(@format_o)operator(.)ident(format_style)operator(\)) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator([)integer(-1)operator(])operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(JUSTIFY) operator(}) ident(assert_equal)operator(()constant(Text)operator(::)constant(Format)operator(::)constant(JUSTIFY)operator(,) instance_variable(@format_o)operator(.)ident(format_style)operator(\)) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator([)integer(-3)operator(])operator(\)) ident(assert_raises)operator(()constant(ArgumentError)operator(\)) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) integer(33) operator(}) reserved(end) reserved(def) method(test_tag_paragraph) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(tag_paragraph)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(tag_paragraph) operator(=) pre_constant(true) operator(}) ident(assert)operator(()instance_variable(@format_o)operator(.)ident(tag_paragraph)operator(\)) ident(assert_not_equal)operator(()instance_variable(@format_o)operator(.)ident(paragraphs)operator(()operator([)constant(GETTYSBURG)operator(,) constant(GETTYSBURG)operator(])operator(\))operator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()operator([)constant(GETTYSBURG)operator(,) constant(GETTYSBURG)operator(])operator(\))operator(\)) reserved(end) reserved(def) method(test_tag_text) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()operator([)operator(])operator(,) instance_variable(@format_o)operator(.)ident(tag_text)operator(\)) ident(assert_equal)operator(()instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(tag_paragraph) operator(=) pre_constant(true) instance_variable(@format_o)operator(.)ident(tag_text) operator(=) operator([)stringoperator(,) stringoperator(]) operator(}) ident(assert_not_equal)operator(()instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(\)) ident(assert_not_equal)operator(()instance_variable(@format_o)operator(.)ident(paragraphs)operator(()operator([)constant(GETTYSBURG)operator(,) constant(GETTYSBURG)operator(])operator(\))operator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()operator([)constant(GETTYSBURG)operator(,) constant(GETTYSBURG)operator(])operator(\))operator(\)) ident(assert_not_equal)operator(()instance_variable(@format_o)operator(.)ident(paragraphs)operator(()operator([)constant(GETTYSBURG)operator(,) constant(GETTYSBURG)operator(,) constant(GETTYSBURG)operator(])operator(\))operator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()operator([)constant(GETTYSBURG)operator(,) constant(GETTYSBURG)operator(,) constant(GETTYSBURG)operator(])operator(\))operator(\)) reserved(end) reserved(def) method(test_justify?) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(justify?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_ALIGN) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(justify?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_FILL) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(justify?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(JUSTIFY) operator(}) ident(assert)operator(()instance_variable(@format_o)operator(.)ident(justify?)operator(\)) comment(# The format testing is done in test_format_style) reserved(end) reserved(def) method(test_left_align?) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert)operator(()instance_variable(@format_o)operator(.)ident(left_align?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_ALIGN) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(left_align?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_FILL) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(left_align?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(JUSTIFY) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(left_align?)operator(\)) comment(# The format testing is done in test_format_style) reserved(end) reserved(def) method(test_left_margin) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()integer(0)operator(,) instance_variable(@format_o)operator(.)ident(left_margin)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(left_margin) operator(=) integer(-3) operator(}) ident(assert_equal)operator(()integer(3)operator(,) instance_variable(@format_o)operator(.)ident(left_margin)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(left_margin) operator(=) string operator(}) ident(assert_equal)operator(()integer(9)operator(,) instance_variable(@format_o)operator(.)ident(left_margin)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(left_margin) operator(=) string operator(}) ident(assert_equal)operator(()integer(2)operator(,) instance_variable(@format_o)operator(.)ident(left_margin)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(left_margin) operator(=) integer(7) operator(}) ident(assert_equal)operator(()integer(7)operator(,) instance_variable(@format_o)operator(.)ident(left_margin)operator(\)) ident(assert_nothing_raised) operator({) ident(ft) operator(=) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\)) ident(assert_match)operator(()regexpoperator(,) ident(ft)operator([)integer(0)operator(])operator(\)) ident(assert_match)operator(()regexpoperator(,) ident(ft)operator([)integer(-1)operator(])operator(\)) operator(}) reserved(end) reserved(def) method(test_hard_margins) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(hard_margins)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(hard_margins) operator(=) pre_constant(true) instance_variable(@format_o)operator(.)ident(columns) operator(=) integer(5) instance_variable(@format_o)operator(.)ident(first_indent) operator(=) integer(0) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_FILL) operator(}) ident(assert)operator(()instance_variable(@format_o)operator(.)ident(hard_margins)operator(\)) ident(assert_equal)operator(()constant(FIVE_COL)operator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(split_rules) operator(|=) constant(Text)operator(::)constant(Format)operator(::)constant(SPLIT_CONTINUATION) ident(assert_equal)operator(()constant(Text)operator(::)constant(Format)operator(::)constant(SPLIT_CONTINUATION_FIXED)operator(,) instance_variable(@format_o)operator(.)ident(split_rules)operator(\)) operator(}) ident(assert_equal)operator(()constant(FIVE_CNT)operator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(\)) reserved(end) comment(# Tests both nobreak and nobreak_regex, since one is only useful) comment(# with the other.) reserved(def) method(test_nobreak) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(nobreak)operator(\)) ident(assert)operator(()instance_variable(@format_o)operator(.)ident(nobreak_regex)operator(.)ident(empty?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(nobreak) operator(=) pre_constant(true) instance_variable(@format_o)operator(.)ident(nobreak_regex) operator(=) operator({) string operator(=)operator(>) string operator(}) instance_variable(@format_o)operator(.)ident(columns) operator(=) integer(77) operator(}) ident(assert)operator(()instance_variable(@format_o)operator(.)ident(nobreak)operator(\)) ident(assert_equal)operator(()operator({) string operator(=)operator(>) string operator(})operator(,) instance_variable(@format_o)operator(.)ident(nobreak_regex)operator(\)) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator([)integer(1)operator(])operator(\)) reserved(end) reserved(def) method(test_right_align?) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(right_align?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_ALIGN) operator(}) ident(assert)operator(()instance_variable(@format_o)operator(.)ident(right_align?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_FILL) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(right_align?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(JUSTIFY) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(right_align?)operator(\)) comment(# The format testing is done in test_format_style) reserved(end) reserved(def) method(test_right_fill?) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(right_fill?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_ALIGN) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(right_fill?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(RIGHT_FILL) operator(}) ident(assert)operator(()instance_variable(@format_o)operator(.)ident(right_fill?)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(format_style) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(JUSTIFY) operator(}) ident(assert)operator(()operator(!)instance_variable(@format_o)operator(.)ident(right_fill?)operator(\)) comment(# The format testing is done in test_format_style) reserved(end) reserved(def) method(test_right_margin) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()integer(0)operator(,) instance_variable(@format_o)operator(.)ident(right_margin)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(right_margin) operator(=) integer(-3) operator(}) ident(assert_equal)operator(()integer(3)operator(,) instance_variable(@format_o)operator(.)ident(right_margin)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(right_margin) operator(=) string operator(}) ident(assert_equal)operator(()integer(9)operator(,) instance_variable(@format_o)operator(.)ident(right_margin)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(right_margin) operator(=) string operator(}) ident(assert_equal)operator(()integer(2)operator(,) instance_variable(@format_o)operator(.)ident(right_margin)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(right_margin) operator(=) integer(7) operator(}) ident(assert_equal)operator(()integer(7)operator(,) instance_variable(@format_o)operator(.)ident(right_margin)operator(\)) ident(assert_nothing_raised) operator({) ident(ft) operator(=) instance_variable(@format_o)operator(.)ident(format)operator(()constant(GETTYSBURG)operator(\))operator(.)ident(split)operator(()stringoperator(\)) ident(assert_match)operator(()regexpoperator(,) ident(ft)operator([)integer(0)operator(])operator(\)) ident(assert_match)operator(()regexpoperator(,) ident(ft)operator([)integer(-1)operator(])operator(\)) operator(}) reserved(end) reserved(def) method(test_tabstop) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()integer(8)operator(,) instance_variable(@format_o)operator(.)ident(tabstop)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(tabstop) operator(=) integer(7) operator(}) ident(assert_equal)operator(()integer(7)operator(,) instance_variable(@format_o)operator(.)ident(tabstop)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(tabstop) operator(=) integer(-3) operator(}) ident(assert_equal)operator(()integer(3)operator(,) instance_variable(@format_o)operator(.)ident(tabstop)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(tabstop) operator(=) string operator(}) ident(assert_equal)operator(()integer(9)operator(,) instance_variable(@format_o)operator(.)ident(tabstop)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(tabstop) operator(=) string operator(}) ident(assert_equal)operator(()integer(2)operator(,) instance_variable(@format_o)operator(.)ident(tabstop)operator(\)) reserved(end) reserved(def) method(test_text) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()operator([)operator(])operator(,) instance_variable(@format_o)operator(.)ident(text)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(text) operator(=) string operator(}) ident(assert_equal)operator(()stringoperator(,) instance_variable(@format_o)operator(.)ident(text)operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(text) operator(=) operator([)stringoperator(,) stringoperator(]) operator(}) ident(assert_equal)operator(()operator([)stringoperator(,) stringoperator(])operator(,) instance_variable(@format_o)operator(.)ident(text)operator(\)) reserved(end) reserved(def) method(test_s_new) comment(# new(NilClass\) { block }) ident(assert_nothing_raised) reserved(do) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator({) pre_constant(self)operator(.)ident(text) operator(=) string operator(}) reserved(end) ident(assert_equal)operator(()stringoperator(,) instance_variable(@format_o)operator(.)ident(text)operator(\)) comment(# new(Hash Symbols\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(()symbol(:columns) operator(=)operator(>) integer(72)operator(\)) operator(}) ident(assert_equal)operator(()integer(72)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) comment(# new(Hash String\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(()string operator(=)operator(>) integer(72)operator(\)) operator(}) ident(assert_equal)operator(()integer(72)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) comment(# new(Hash\) { block }) ident(assert_nothing_raised) reserved(do) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(()string operator(=)operator(>) integer(80)operator(\)) operator({) pre_constant(self)operator(.)ident(text) operator(=) string operator(}) reserved(end) ident(assert_equal)operator(()stringoperator(,) instance_variable(@format_o)operator(.)ident(text)operator(\)) ident(assert_equal)operator(()integer(80)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) comment(# new(Text::Format\)) ident(assert_nothing_raised) reserved(do) ident(fo) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(()instance_variable(@format_o)operator(\)) ident(assert)operator(()ident(fo) operator(==) instance_variable(@format_o)operator(\)) reserved(end) comment(# new(Text::Format\) { block }) ident(assert_nothing_raised) reserved(do) ident(fo) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(()instance_variable(@format_o)operator(\)) operator({) pre_constant(self)operator(.)ident(columns) operator(=) integer(79) operator(}) ident(assert)operator(()ident(fo) operator(!=) instance_variable(@format_o)operator(\)) reserved(end) comment(# new(String\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(()stringoperator(\)) operator(}) ident(assert_equal)operator(()stringoperator(,) instance_variable(@format_o)operator(.)ident(text)operator(\)) comment(# new(String\) { block }) ident(assert_nothing_raised) reserved(do) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(()stringoperator(\)) operator({) pre_constant(self)operator(.)ident(columns) operator(=) integer(-5) operator(}) reserved(end) ident(assert_equal)operator(()stringoperator(,) instance_variable(@format_o)operator(.)ident(text)operator(\)) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@format_o)operator(.)ident(columns)operator(\)) reserved(end) reserved(def) method(test_center) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_nothing_raised) reserved(do) ident(ct) operator(=) instance_variable(@format_o)operator(.)ident(center)operator(()constant(GETTYSBURG)operator(.)ident(split)operator(()stringoperator(\))operator(\))operator(.)ident(split)operator(()stringoperator(\)) ident(assert_match)operator(()regexpoperator(,) ident(ct)operator([)integer(0)operator(])operator(\)) ident(assert_match)operator(()regexpoperator(,) ident(ct)operator([)integer(-3)operator(])operator(\)) reserved(end) reserved(end) reserved(def) method(test_expand) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()stringoperator(,) instance_variable(@format_o)operator(.)ident(expand)operator(()stringoperator(\))operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(tabstop) operator(=) integer(4) operator(}) ident(assert_equal)operator(()stringoperator(,) instance_variable(@format_o)operator(.)ident(expand)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_unexpand) ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new) operator(}) ident(assert_equal)operator(()stringoperator(,) instance_variable(@format_o)operator(.)ident(unexpand)operator(()stringoperator(\))operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(tabstop) operator(=) integer(4) operator(}) ident(assert_equal)operator(()stringoperator(,) instance_variable(@format_o)operator(.)ident(unexpand)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_space_only) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(format)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(format)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(format)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(format)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()operator([)stringoperator(])operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()operator([)stringoperator(])operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()operator([)stringoperator(])operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(.)ident(paragraphs)operator(()operator([)stringoperator(])operator(\))operator(\)) reserved(end) reserved(def) method(test_splendiferous) ident(h) operator(=) pre_constant(nil) ident(test) operator(=) string ident(assert_nothing_raised) operator({) instance_variable(@format_o) operator(=) constant(Text)operator(::)constant(Format)operator(.)ident(new)operator(()symbol(:columns) operator(=)operator(>) integer(6)operator(,) symbol(:left_margin) operator(=)operator(>) integer(0)operator(,) symbol(:indent) operator(=)operator(>) integer(0)operator(,) symbol(:first_indent) operator(=)operator(>) integer(0)operator(\)) operator(}) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()ident(test)operator(\))operator(\)) ident(assert_nothing_raised) operator({) instance_variable(@format_o)operator(.)ident(hard_margins) operator(=) pre_constant(true) operator(}) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()ident(test)operator(\))operator(\)) ident(assert_nothing_raised) operator({) ident(h) operator(=) constant(Object)operator(.)ident(new) operator(}) ident(assert_nothing_raised) reserved(do) instance_variable(@format_o)operator(.)ident(split_rules) operator(=) constant(Text)operator(::)constant(Format)operator(::)constant(SPLIT_HYPHENATION) reserved(class) operator(<<) class(h) comment(#:nodoc:) reserved(def) method(hyphenate_to)operator(()ident(word)operator(,) ident(size)operator(\)) reserved(return) operator([)stringoperator(,) ident(word)operator(]) reserved(if) ident(size) operator(<) integer(2) operator([)ident(word)operator([)integer(0) operator(...) ident(size)operator(])operator(,) ident(word)operator([)ident(size) operator(..) integer(-1)operator(])operator(]) reserved(end) reserved(end) instance_variable(@format_o)operator(.)ident(hyphenator) operator(=) ident(h) reserved(end) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()ident(test)operator(\))operator(\)) ident(assert_nothing_raised) operator({) ident(h) operator(=) constant(Object)operator(.)ident(new) operator(}) ident(assert_nothing_raised) reserved(do) reserved(class) operator(<<) class(h) comment(#:nodoc:) reserved(def) method(hyphenate_to)operator(()ident(word)operator(,) ident(size)operator(,) ident(formatter)operator(\)) reserved(return) operator([)stringoperator(,) ident(word)operator(]) reserved(if) ident(word)operator(.)ident(size) operator(<) ident(formatter)operator(.)ident(columns) operator([)ident(word)operator([)integer(0) operator(...) ident(size)operator(])operator(,) ident(word)operator([)ident(size) operator(..) integer(-1)operator(])operator(]) reserved(end) reserved(end) instance_variable(@format_o)operator(.)ident(hyphenator) operator(=) ident(h) reserved(end) ident(assert_match)operator(()regexpoperator(,) instance_variable(@format_o)operator(.)ident(format)operator(()ident(test)operator(\))operator(\)) reserved(end) reserved(end) reserved(end) comment(#) comment(# address.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string ident(require) string reserved(module) class(TMail) reserved(class) class(Address) ident(include) constant(TextUtils) reserved(def) constant(Address)operator(.)method(parse)operator(() ident(str) operator(\)) constant(Parser)operator(.)ident(parse) symbol(:ADDRESS)operator(,) ident(str) reserved(end) reserved(def) method(address_group?) pre_constant(false) reserved(end) reserved(def) method(initialize)operator(() ident(local)operator(,) ident(domain) operator(\)) reserved(if) ident(domain) ident(domain)operator(.)ident(each) reserved(do) operator(|)ident(s)operator(|) ident(raise) constant(SyntaxError)operator(,) string reserved(if) ident(s)operator(.)ident(empty?) reserved(end) reserved(end) instance_variable(@local) operator(=) ident(local) instance_variable(@domain) operator(=) ident(domain) instance_variable(@name) operator(=) pre_constant(nil) instance_variable(@routes) operator(=) operator([)operator(]) reserved(end) ident(attr_reader) symbol(:name) reserved(def) method(name=)operator(() ident(str) operator(\)) instance_variable(@name) operator(=) ident(str) instance_variable(@name) operator(=) pre_constant(nil) reserved(if) ident(str) reserved(and) ident(str)operator(.)ident(empty?) reserved(end) reserved(alias) method(phrase) method(name) reserved(alias) method(phrase=) method(name=) ident(attr_reader) symbol(:routes) reserved(def) method(inspect) stringcontent( )inlinecontent(>)delimiter(")> reserved(end) reserved(def) method(local) reserved(return) pre_constant(nil) reserved(unless) instance_variable(@local) reserved(return) string reserved(if) instance_variable(@local)operator(.)ident(size) operator(==) integer(1) reserved(and) instance_variable(@local)operator([)integer(0)operator(])operator(.)ident(empty?) instance_variable(@local)operator(.)ident(map) operator({)operator(|)ident(i)operator(|) ident(quote_atom)operator(()ident(i)operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(domain) reserved(return) pre_constant(nil) reserved(unless) instance_variable(@domain) ident(join_domain)operator(()instance_variable(@domain)operator(\)) reserved(end) reserved(def) method(spec) ident(s) operator(=) pre_constant(self)operator(.)ident(local) ident(d) operator(=) pre_constant(self)operator(.)ident(domain) reserved(if) ident(s) reserved(and) ident(d) ident(s) operator(+) string operator(+) ident(d) reserved(else) ident(s) reserved(end) reserved(end) reserved(alias) method(address) method(spec) reserved(def) method(==)operator(() ident(other) operator(\)) ident(other)operator(.)ident(respond_to?) symbol(:spec) reserved(and) pre_constant(self)operator(.)ident(spec) operator(==) ident(other)operator(.)ident(spec) reserved(end) reserved(alias) method(eql?) method(==) reserved(def) method(hash) instance_variable(@local)operator(.)ident(hash) operator(^) instance_variable(@domain)operator(.)ident(hash) reserved(end) reserved(def) method(dup) ident(obj) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(new)operator(()instance_variable(@local)operator(.)ident(dup)operator(,) instance_variable(@domain)operator(.)ident(dup)operator(\)) ident(obj)operator(.)ident(name) operator(=) instance_variable(@name)operator(.)ident(dup) reserved(if) instance_variable(@name) ident(obj)operator(.)ident(routes)operator(.)ident(replace) instance_variable(@routes) ident(obj) reserved(end) ident(include) constant(StrategyInterface) reserved(def) method(accept)operator(() ident(strategy)operator(,) ident(dummy1) operator(=) pre_constant(nil)operator(,) ident(dummy2) operator(=) pre_constant(nil) operator(\)) reserved(unless) instance_variable(@local) ident(strategy)operator(.)ident(meta) string)delimiter(')> comment(# empty return-path) reserved(return) reserved(end) ident(spec_p) operator(=) operator(()reserved(not) instance_variable(@name) reserved(and) instance_variable(@routes)operator(.)ident(empty?)operator(\)) reserved(if) instance_variable(@name) ident(strategy)operator(.)ident(phrase) instance_variable(@name) ident(strategy)operator(.)ident(space) reserved(end) ident(tmp) operator(=) ident(spec_p) operator(?) string operator(:) string reserved(unless) instance_variable(@routes)operator(.)ident(empty?) ident(tmp) operator(<<) instance_variable(@routes)operator(.)ident(map) operator({)operator(|)ident(i)operator(|) string operator(+) ident(i) operator(})operator(.)ident(join)operator(()stringoperator(\)) operator(<<) string reserved(end) ident(tmp) operator(<<) pre_constant(self)operator(.)ident(spec) ident(tmp) operator(<<) string)delimiter(')> reserved(unless) ident(spec_p) ident(strategy)operator(.)ident(meta) ident(tmp) ident(strategy)operator(.)ident(lwsp) string reserved(end) reserved(end) reserved(class) class(AddressGroup) ident(include) constant(Enumerable) reserved(def) method(address_group?) pre_constant(true) reserved(end) reserved(def) method(initialize)operator(() ident(name)operator(,) ident(addrs) operator(\)) instance_variable(@name) operator(=) ident(name) instance_variable(@addresses) operator(=) ident(addrs) reserved(end) ident(attr_reader) symbol(:name) reserved(def) method(==)operator(() ident(other) operator(\)) ident(other)operator(.)ident(respond_to?) symbol(:to_a) reserved(and) instance_variable(@addresses) operator(==) ident(other)operator(.)ident(to_a) reserved(end) reserved(alias) method(eql?) method(==) reserved(def) method(hash) ident(map) operator({)operator(|)ident(i)operator(|) ident(i)operator(.)ident(hash) operator(})operator(.)ident(hash) reserved(end) reserved(def) method([])operator(() ident(idx) operator(\)) instance_variable(@addresses)operator([)ident(idx)operator(]) reserved(end) reserved(def) method(size) instance_variable(@addresses)operator(.)ident(size) reserved(end) reserved(def) method(empty?) instance_variable(@addresses)operator(.)ident(empty?) reserved(end) reserved(def) method(each)operator(() operator(&)ident(block) operator(\)) instance_variable(@addresses)operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(to_a) instance_variable(@addresses)operator(.)ident(dup) reserved(end) reserved(alias) method(to_ary) method(to_a) reserved(def) method(include?)operator(() ident(a) operator(\)) instance_variable(@addresses)operator(.)ident(include?) ident(a) reserved(end) reserved(def) method(flatten) ident(set) operator(=) operator([)operator(]) instance_variable(@addresses)operator(.)ident(each) reserved(do) operator(|)ident(a)operator(|) reserved(if) ident(a)operator(.)ident(respond_to?) symbol(:flatten) ident(set)operator(.)ident(concat) ident(a)operator(.)ident(flatten) reserved(else) ident(set)operator(.)ident(push) ident(a) reserved(end) reserved(end) ident(set) reserved(end) reserved(def) method(each_address)operator(() operator(&)ident(block) operator(\)) ident(flatten)operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(add)operator(() ident(a) operator(\)) instance_variable(@addresses)operator(.)ident(push) ident(a) reserved(end) reserved(alias) method(push) method(add) reserved(def) method(delete)operator(() ident(a) operator(\)) instance_variable(@addresses)operator(.)ident(delete) ident(a) reserved(end) ident(include) constant(StrategyInterface) reserved(def) method(accept)operator(() ident(strategy)operator(,) ident(dummy1) operator(=) pre_constant(nil)operator(,) ident(dummy2) operator(=) pre_constant(nil) operator(\)) ident(strategy)operator(.)ident(phrase) instance_variable(@name) ident(strategy)operator(.)ident(meta) string ident(strategy)operator(.)ident(space) ident(first) operator(=) pre_constant(true) ident(each) reserved(do) operator(|)ident(mbox)operator(|) reserved(if) ident(first) ident(first) operator(=) pre_constant(false) reserved(else) ident(strategy)operator(.)ident(meta) string reserved(end) ident(strategy)operator(.)ident(space) ident(mbox)operator(.)ident(accept) ident(strategy) reserved(end) ident(strategy)operator(.)ident(meta) string ident(strategy)operator(.)ident(lwsp) string reserved(end) reserved(end) reserved(end) comment(# module TMail) ident(require) string reserved(module) class(TMail) reserved(class) class(Attachment) operator(<) constant(StringIO) ident(attr_accessor) symbol(:original_filename)operator(,) symbol(:content_type) reserved(end) reserved(class) class(Mail) reserved(def) method(has_attachments?) ident(multipart?) operator(&&) ident(parts)operator(.)ident(any?) operator({) operator(|)ident(part)operator(|) ident(attachment?)operator(()ident(part)operator(\)) operator(}) reserved(end) reserved(def) method(attachment?)operator(()ident(part)operator(\)) operator(()ident(part)operator([)stringoperator(]) operator(&&) ident(part)operator([)stringoperator(])operator(.)ident(disposition) operator(==) stringoperator(\)) operator(||) ident(part)operator(.)ident(header)operator([)stringoperator(])operator(.)ident(main_type) operator(!=) string reserved(end) reserved(def) method(attachments) reserved(if) ident(multipart?) ident(parts)operator(.)ident(collect) operator({) operator(|)ident(part)operator(|) reserved(if) ident(attachment?)operator(()ident(part)operator(\)) ident(content) operator(=) ident(part)operator(.)ident(body) comment(# unquoted automatically by TMail#body) ident(file_name) operator(=) operator(()ident(part)operator([)stringoperator(]) operator(&&) ident(part)operator([)stringoperator(])operator(.)ident(body)operator(\)) operator(||) ident(part)operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) operator(||) ident(part)operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) reserved(next) reserved(if) ident(file_name)operator(.)ident(blank?) operator(||) ident(content)operator(.)ident(blank?) ident(attachment) operator(=) constant(Attachment)operator(.)ident(new)operator(()ident(content)operator(\)) ident(attachment)operator(.)ident(original_filename) operator(=) ident(file_name)operator(.)ident(strip) ident(attachment)operator(.)ident(content_type) operator(=) ident(part)operator(.)ident(content_type) ident(attachment) reserved(end) operator(})operator(.)ident(compact) reserved(end) reserved(end) reserved(end) reserved(end) comment(#) comment(# base64.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) reserved(module) class(TMail) reserved(module) class(Base64) ident(module_function) reserved(def) method(rb_folding_encode)operator(() ident(str)operator(,) ident(eol) operator(=) stringoperator(,) ident(limit) operator(=) integer(60) operator(\)) operator([)ident(str)operator(])operator(.)ident(pack)operator(()stringoperator(\)) reserved(end) reserved(def) method(rb_encode)operator(() ident(str) operator(\)) operator([)ident(str)operator(])operator(.)ident(pack)operator(()stringoperator(\))operator(.)ident(tr)operator(() stringoperator(,) string operator(\)) reserved(end) reserved(def) method(rb_decode)operator(() ident(str)operator(,) ident(strict) operator(=) pre_constant(false) operator(\)) ident(str)operator(.)ident(unpack)operator(()stringoperator(\)) reserved(end) reserved(begin) ident(require) string reserved(alias) method(folding_encode) method(c_folding_encode) reserved(alias) method(encode) method(c_encode) reserved(alias) method(decode) method(c_decode) reserved(class) operator(<<) class(self) reserved(alias) method(folding_encode) method(c_folding_encode) reserved(alias) method(encode) method(c_encode) reserved(alias) method(decode) method(c_decode) reserved(end) reserved(rescue) constant(LoadError) reserved(alias) method(folding_encode) method(rb_folding_encode) reserved(alias) method(encode) method(rb_encode) reserved(alias) method(decode) method(rb_decode) reserved(class) operator(<<) class(self) reserved(alias) method(folding_encode) method(rb_folding_encode) reserved(alias) method(encode) method(rb_encode) reserved(alias) method(decode) method(rb_decode) reserved(end) reserved(end) reserved(end) reserved(end) comment(#) comment(# config.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) reserved(module) class(TMail) reserved(class) class(Config) reserved(def) method(initialize)operator(() ident(strict) operator(\)) instance_variable(@strict_parse) operator(=) ident(strict) instance_variable(@strict_base64decode) operator(=) ident(strict) reserved(end) reserved(def) method(strict_parse?) instance_variable(@strict_parse) reserved(end) ident(attr_writer) symbol(:strict_parse) reserved(def) method(strict_base64decode?) instance_variable(@strict_base64decode) reserved(end) ident(attr_writer) symbol(:strict_base64decode) reserved(def) method(new_body_port)operator(() ident(mail) operator(\)) constant(StringPort)operator(.)ident(new) reserved(end) reserved(alias) method(new_preamble_port) method(new_body_port) reserved(alias) method(new_part_port) method(new_body_port) reserved(end) constant(DEFAULT_CONFIG) operator(=) constant(Config)operator(.)ident(new)operator(()pre_constant(false)operator(\)) constant(DEFAULT_STRICT_CONFIG) operator(=) constant(Config)operator(.)ident(new)operator(()pre_constant(true)operator(\)) reserved(def) constant(Config)operator(.)method(to_config)operator(() ident(arg) operator(\)) reserved(return) constant(DEFAULT_STRICT_CONFIG) reserved(if) ident(arg) operator(==) pre_constant(true) reserved(return) constant(DEFAULT_CONFIG) reserved(if) ident(arg) operator(==) pre_constant(false) ident(arg) reserved(or) constant(DEFAULT_CONFIG) reserved(end) reserved(end) comment(#) comment(# encode.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string ident(require) string ident(require) string ident(require) string reserved(module) class(TMail) reserved(module) class(StrategyInterface) reserved(def) method(create_dest)operator(() ident(obj) operator(\)) reserved(case) ident(obj) reserved(when) pre_constant(nil) constant(StringOutput)operator(.)ident(new) reserved(when) constant(String) constant(StringOutput)operator(.)ident(new)operator(()ident(obj)operator(\)) reserved(when) constant(IO)operator(,) constant(StringOutput) ident(obj) reserved(else) ident(raise) constant(TypeError)operator(,) string reserved(end) reserved(end) ident(module_function) symbol(:create_dest) reserved(def) method(encoded)operator(() ident(eol) operator(=) stringoperator(,) ident(charset) operator(=) stringoperator(,) ident(dest) operator(=) pre_constant(nil) operator(\)) ident(accept_strategy) constant(Encoder)operator(,) ident(eol)operator(,) ident(charset)operator(,) ident(dest) reserved(end) reserved(def) method(decoded)operator(() ident(eol) operator(=) stringoperator(,) ident(charset) operator(=) stringoperator(,) ident(dest) operator(=) pre_constant(nil) operator(\)) ident(accept_strategy) constant(Decoder)operator(,) ident(eol)operator(,) ident(charset)operator(,) ident(dest) reserved(end) reserved(alias) method(to_s) method(decoded) reserved(def) method(accept_strategy)operator(() ident(klass)operator(,) ident(eol)operator(,) ident(charset)operator(,) ident(dest) operator(=) pre_constant(nil) operator(\)) ident(dest) operator(||=) string ident(accept) ident(klass)operator(.)ident(new)operator(()ident(create_dest)operator(()ident(dest)operator(\))operator(,) ident(charset)operator(,) ident(eol)operator(\)) ident(dest) reserved(end) reserved(end) comment(###) comment(### MIME B encoding decoder) comment(###) reserved(class) class(Decoder) ident(include) constant(TextUtils) ident(encoded) operator(=) string constant(ENCODED_WORDS) operator(=) regexpcontent((?:)char(\\s)content(+)inlinecontent(\)*)delimiter(/)modifier(i)> constant(OUTPUT_ENCODING) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) operator(}) reserved(def) pre_constant(self)operator(.)method(decode)operator(() ident(str)operator(,) ident(encoding) operator(=) pre_constant(nil) operator(\)) ident(encoding) operator(||=) operator(()constant(OUTPUT_ENCODING)operator([)global_variable($KCODE)operator(]) operator(||) stringoperator(\)) ident(opt) operator(=) string operator(+) ident(encoding) ident(str)operator(.)ident(gsub)operator(()constant(ENCODED_WORDS)operator(\)) operator({)operator(|)ident(s)operator(|) constant(NKF)operator(.)ident(nkf)operator(()ident(opt)operator(,) ident(s)operator(\)) operator(}) reserved(end) reserved(def) method(initialize)operator(() ident(dest)operator(,) ident(encoding) operator(=) pre_constant(nil)operator(,) ident(eol) operator(=) string operator(\)) instance_variable(@f) operator(=) constant(StrategyInterface)operator(.)ident(create_dest)operator(()ident(dest)operator(\)) instance_variable(@encoding) operator(=) operator(()regexp operator(===) ident(encoding)operator(\)) operator(?) ident(encoding)operator([)integer(0)operator(,)integer(1)operator(]) operator(:) pre_constant(nil) instance_variable(@eol) operator(=) ident(eol) reserved(end) reserved(def) method(decode)operator(() ident(str) operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(decode)operator(()ident(str)operator(,) instance_variable(@encoding)operator(\)) reserved(end) ident(private) symbol(:decode) reserved(def) method(terminate) reserved(end) reserved(def) method(header_line)operator(() ident(str) operator(\)) instance_variable(@f) operator(<<) ident(decode)operator(()ident(str)operator(\)) reserved(end) reserved(def) method(header_name)operator(() ident(nm) operator(\)) instance_variable(@f) operator(<<) ident(nm) operator(<<) string reserved(end) reserved(def) method(header_body)operator(() ident(str) operator(\)) instance_variable(@f) operator(<<) ident(decode)operator(()ident(str)operator(\)) reserved(end) reserved(def) method(space) instance_variable(@f) operator(<<) string reserved(end) reserved(alias) method(spc) method(space) reserved(def) method(lwsp)operator(() ident(str) operator(\)) instance_variable(@f) operator(<<) ident(str) reserved(end) reserved(def) method(meta)operator(() ident(str) operator(\)) instance_variable(@f) operator(<<) ident(str) reserved(end) reserved(def) method(text)operator(() ident(str) operator(\)) instance_variable(@f) operator(<<) ident(decode)operator(()ident(str)operator(\)) reserved(end) reserved(def) method(phrase)operator(() ident(str) operator(\)) instance_variable(@f) operator(<<) ident(quote_phrase)operator(()ident(decode)operator(()ident(str)operator(\))operator(\)) reserved(end) reserved(def) method(kv_pair)operator(() ident(k)operator(,) ident(v) operator(\)) instance_variable(@f) operator(<<) ident(k) operator(<<) string operator(<<) ident(v) reserved(end) reserved(def) method(puts)operator(() ident(str) operator(=) pre_constant(nil) operator(\)) instance_variable(@f) operator(<<) ident(str) reserved(if) ident(str) instance_variable(@f) operator(<<) instance_variable(@eol) reserved(end) reserved(def) method(write)operator(() ident(str) operator(\)) instance_variable(@f) operator(<<) ident(str) reserved(end) reserved(end) comment(###) comment(### MIME B-encoding encoder) comment(###) comment(#) comment(# FIXME: This class can handle only (euc-jp/shift_jis -> iso-2022-jp\).) comment(#) reserved(class) class(Encoder) ident(include) constant(TextUtils) constant(BENCODE_DEBUG) operator(=) pre_constant(false) reserved(unless) reserved(defined?)operator(()constant(BENCODE_DEBUG)operator(\)) reserved(def) constant(Encoder)operator(.)method(encode)operator(() ident(str) operator(\)) ident(e) operator(=) ident(new)operator(()operator(\)) ident(e)operator(.)ident(header_body) ident(str) ident(e)operator(.)ident(terminate) ident(e)operator(.)ident(dest)operator(.)ident(string) reserved(end) constant(SPACER) operator(=) string constant(MAX_LINE_LEN) operator(=) integer(70) constant(OPTIONS) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) pre_constant(nil)operator(,) comment(# FIXME) string operator(=)operator(>) pre_constant(nil) operator(}) reserved(def) method(initialize)operator(() ident(dest) operator(=) pre_constant(nil)operator(,) ident(encoding) operator(=) pre_constant(nil)operator(,) ident(eol) operator(=) stringoperator(,) ident(limit) operator(=) pre_constant(nil) operator(\)) instance_variable(@f) operator(=) constant(StrategyInterface)operator(.)ident(create_dest)operator(()ident(dest)operator(\)) instance_variable(@opt) operator(=) constant(OPTIONS)operator([)global_variable($KCODE)operator(]) instance_variable(@eol) operator(=) ident(eol) ident(reset) reserved(end) reserved(def) method(normalize_encoding)operator(() ident(str) operator(\)) reserved(if) instance_variable(@opt) reserved(then) constant(NKF)operator(.)ident(nkf)operator(()instance_variable(@opt)operator(,) ident(str)operator(\)) reserved(else) ident(str) reserved(end) reserved(end) reserved(def) method(reset) instance_variable(@text) operator(=) string instance_variable(@lwsp) operator(=) string instance_variable(@curlen) operator(=) integer(0) reserved(end) reserved(def) method(terminate) ident(add_lwsp) string ident(reset) reserved(end) reserved(def) method(dest) instance_variable(@f) reserved(end) reserved(def) method(puts)operator(() ident(str) operator(=) pre_constant(nil) operator(\)) instance_variable(@f) operator(<<) ident(str) reserved(if) ident(str) instance_variable(@f) operator(<<) instance_variable(@eol) reserved(end) reserved(def) method(write)operator(() ident(str) operator(\)) instance_variable(@f) operator(<<) ident(str) reserved(end) comment(#) comment(# add) comment(#) reserved(def) method(header_line)operator(() ident(line) operator(\)) ident(scanadd) ident(line) reserved(end) reserved(def) method(header_name)operator(() ident(name) operator(\)) ident(add_text) ident(name)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(map) operator({)operator(|)ident(i)operator(|) ident(i)operator(.)ident(capitalize) operator(})operator(.)ident(join)operator(()stringoperator(\)) ident(add_text) string ident(add_lwsp) string reserved(end) reserved(def) method(header_body)operator(() ident(str) operator(\)) ident(scanadd) ident(normalize_encoding)operator(()ident(str)operator(\)) reserved(end) reserved(def) method(space) ident(add_lwsp) string reserved(end) reserved(alias) method(spc) method(space) reserved(def) method(lwsp)operator(() ident(str) operator(\)) ident(add_lwsp) ident(str)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) method(meta)operator(() ident(str) operator(\)) ident(add_text) ident(str) reserved(end) reserved(def) method(text)operator(() ident(str) operator(\)) ident(scanadd) ident(normalize_encoding)operator(()ident(str)operator(\)) reserved(end) reserved(def) method(phrase)operator(() ident(str) operator(\)) ident(str) operator(=) ident(normalize_encoding)operator(()ident(str)operator(\)) reserved(if) constant(CONTROL_CHAR) operator(===) ident(str) ident(scanadd) ident(str) reserved(else) ident(add_text) ident(quote_phrase)operator(()ident(str)operator(\)) reserved(end) reserved(end) comment(# FIXME: implement line folding) comment(#) reserved(def) method(kv_pair)operator(() ident(k)operator(,) ident(v) operator(\)) reserved(return) reserved(if) ident(v)operator(.)ident(nil?) ident(v) operator(=) ident(normalize_encoding)operator(()ident(v)operator(\)) reserved(if) ident(token_safe?)operator(()ident(v)operator(\)) ident(add_text) ident(k) operator(+) string operator(+) ident(v) reserved(elsif) reserved(not) constant(CONTROL_CHAR) operator(===) ident(v) ident(add_text) ident(k) operator(+) string operator(+) ident(quote_token)operator(()ident(v)operator(\)) reserved(else) comment(# apply RFC2231 encoding) ident(kv) operator(=) ident(k) operator(+) string operator(+) string operator(+) ident(encode_value)operator(()ident(v)operator(\)) ident(add_text) ident(kv) reserved(end) reserved(end) reserved(def) method(encode_value)operator(() ident(str) operator(\)) ident(str)operator(.)ident(gsub)operator(()constant(TOKEN_UNSAFE)operator(\)) operator({)operator(|)ident(s)operator(|) string operator(%) ident(s)operator([)integer(0)operator(]) operator(}) reserved(end) ident(private) reserved(def) method(scanadd)operator(() ident(str)operator(,) ident(force) operator(=) pre_constant(false) operator(\)) ident(types) operator(=) string ident(strs) operator(=) operator([)operator(]) reserved(until) ident(str)operator(.)ident(empty?) reserved(if) ident(m) operator(=) regexpoperator(.)ident(match)operator(()ident(str)operator(\)) ident(types) operator(<<) operator(()ident(force) operator(?) string operator(:) stringoperator(\)) ident(strs)operator(.)ident(push) ident(m)operator([)integer(0)operator(]) reserved(elsif) ident(m) operator(=) regexpoperator(.)ident(match)operator(()ident(str)operator(\)) ident(types) operator(<<) string ident(strs)operator(.)ident(push) ident(m)operator([)integer(0)operator(]) reserved(elsif) ident(m) operator(=) regexpoperator(.)ident(match)operator(()ident(str)operator(\)) ident(esc) operator(=) ident(m)operator([)integer(0)operator(]) ident(str) operator(=) ident(m)operator(.)ident(post_match) reserved(if) ident(esc) operator(!=) string reserved(and) ident(m) operator(=) regexpoperator(.)ident(match)operator(()ident(str)operator(\)) ident(types) operator(<<) string ident(strs)operator(.)ident(push) ident(m)operator([)integer(0)operator(]) reserved(end) reserved(else) ident(raise) string reserved(end) operator(()ident(str) operator(=) ident(m)operator(.)ident(post_match)operator(\)) reserved(unless) ident(m)operator(.)ident(nil?) reserved(end) ident(do_encode) ident(types)operator(,) ident(strs) reserved(end) reserved(def) method(do_encode)operator(() ident(types)operator(,) ident(strs) operator(\)) comment(#) comment(# result : (A|E\)(S(A|E\)\)*) comment(# E : W(SW\)*) comment(# W : (J|A\)+ but must contain J # (J|A\)*J(J|A\)*) comment(# A : <>) comment(# J : <>) comment(# S : <>) comment(#) comment(# An encoding unit is `E'.) comment(# Input (parameter `types'\) is (J|A\)(J|A|S\)*(J|A\)) comment(#) reserved(if) constant(BENCODE_DEBUG) ident(puts) ident(puts) string ident(puts) ident(types)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(join)operator(()stringoperator(\)) ident(p) ident(strs) reserved(end) ident(e) operator(=) regexp reserved(while) ident(m) operator(=) ident(e)operator(.)ident(match)operator(()ident(types)operator(\)) ident(pre) operator(=) ident(m)operator(.)ident(pre_match) ident(concat_A_S) ident(pre)operator(,) ident(strs)operator([)integer(0)operator(,) ident(pre)operator(.)ident(size)operator(]) reserved(unless) ident(pre)operator(.)ident(empty?) ident(concat_E) ident(m)operator([)integer(0)operator(])operator(,) ident(strs)operator([)ident(m)operator(.)ident(begin)operator(()integer(0)operator(\)) operator(...) ident(m)operator(.)ident(end)operator(()integer(0)operator(\))operator(]) ident(types) operator(=) ident(m)operator(.)ident(post_match) ident(strs)operator(.)ident(slice!) integer(0)operator(,) ident(m)operator(.)ident(end)operator(()integer(0)operator(\)) reserved(end) ident(concat_A_S) ident(types)operator(,) ident(strs) reserved(end) reserved(def) method(concat_A_S)operator(() ident(types)operator(,) ident(strs) operator(\)) ident(i) operator(=) integer(0) ident(types)operator(.)ident(each_byte) reserved(do) operator(|)ident(t)operator(|) reserved(case) ident(t) reserved(when) integer(?a) reserved(then) ident(add_text) ident(strs)operator([)ident(i)operator(]) reserved(when) integer(?s) reserved(then) ident(add_lwsp) ident(strs)operator([)ident(i)operator(]) reserved(else) ident(raise) stringdelimiter(")> reserved(end) ident(i) operator(+=) integer(1) reserved(end) reserved(end) constant(METHOD_ID) operator(=) operator({) integer(?j) operator(=)operator(>) symbol(:extract_J)operator(,) integer(?e) operator(=)operator(>) symbol(:extract_E)operator(,) integer(?a) operator(=)operator(>) symbol(:extract_A)operator(,) integer(?s) operator(=)operator(>) symbol(:extract_S) operator(}) reserved(def) method(concat_E)operator(() ident(types)operator(,) ident(strs) operator(\)) reserved(if) constant(BENCODE_DEBUG) ident(puts) string ident(puts) stringoperator(\))operator(.)ident(join)operator(()stringoperator(\))inline_delimiter(})>delimiter(")> ident(puts) stringdelimiter(")> reserved(end) ident(flush)operator(()operator(\)) reserved(unless) instance_variable(@text)operator(.)ident(empty?) ident(chunk) operator(=) string ident(strs)operator(.)ident(each_with_index) reserved(do) operator(|)ident(s)operator(,)ident(i)operator(|) ident(mid) operator(=) constant(METHOD_ID)operator([)ident(types)operator([)ident(i)operator(])operator(]) reserved(until) ident(s)operator(.)ident(empty?) reserved(unless) ident(c) operator(=) ident(__send__)operator(()ident(mid)operator(,) ident(chunk)operator(.)ident(size)operator(,) ident(s)operator(\)) ident(add_with_encode) ident(chunk) reserved(unless) ident(chunk)operator(.)ident(empty?) ident(flush) ident(chunk) operator(=) string ident(fold) ident(c) operator(=) ident(__send__)operator(()ident(mid)operator(,) integer(0)operator(,) ident(s)operator(\)) ident(raise) string reserved(unless) ident(c) reserved(end) ident(chunk) operator(<<) ident(c) reserved(end) reserved(end) ident(add_with_encode) ident(chunk) reserved(unless) ident(chunk)operator(.)ident(empty?) reserved(end) reserved(def) method(extract_J)operator(() ident(chunksize)operator(,) ident(str) operator(\)) ident(size) operator(=) ident(max_bytes)operator(()ident(chunksize)operator(,) ident(str)operator(.)ident(size)operator(\)) operator(-) integer(6) ident(size) operator(=) operator(()ident(size) operator(%) integer(2) operator(==) integer(0)operator(\)) operator(?) operator(()ident(size)operator(\)) operator(:) operator(()ident(size) operator(-) integer(1)operator(\)) reserved(return) pre_constant(nil) reserved(if) ident(size) operator(<=) integer(0) stringchar(\\e)content((B)delimiter(")> reserved(end) reserved(def) method(extract_A)operator(() ident(chunksize)operator(,) ident(str) operator(\)) ident(size) operator(=) ident(max_bytes)operator(()ident(chunksize)operator(,) ident(str)operator(.)ident(size)operator(\)) reserved(return) pre_constant(nil) reserved(if) ident(size) operator(<=) integer(0) ident(str)operator(.)ident(slice!)operator(()integer(0)operator(,) ident(size)operator(\)) reserved(end) reserved(alias) method(extract_S) method(extract_A) reserved(def) method(max_bytes)operator(() ident(chunksize)operator(,) ident(ssize) operator(\)) operator(()ident(restsize)operator(()operator(\)) operator(-) stringoperator(.)ident(size)operator(\)) operator(/) integer(4) operator(*) integer(3) operator(-) ident(chunksize) reserved(end) comment(#) comment(# free length buffer) comment(#) reserved(def) method(add_text)operator(() ident(str) operator(\)) instance_variable(@text) operator(<<) ident(str) comment(# puts '---- text -------------------------------------') comment(# puts "+ #{str.inspect}") comment(# puts "txt >>>#{@text.inspect}<<<") reserved(end) reserved(def) method(add_with_encode)operator(() ident(str) operator(\)) instance_variable(@text) operator(<<) stringcontent(?=)delimiter(")> reserved(end) reserved(def) method(add_lwsp)operator(() ident(lwsp) operator(\)) comment(# puts '---- lwsp -------------------------------------') comment(# puts "+ #{lwsp.inspect}") ident(fold) reserved(if) ident(restsize)operator(()operator(\)) operator(<=) integer(0) ident(flush) instance_variable(@lwsp) operator(=) ident(lwsp) reserved(end) reserved(def) method(flush) comment(# puts '---- flush ----') comment(# puts "spc >>>#{@lwsp.inspect}<<<") comment(# puts "txt >>>#{@text.inspect}<<<") instance_variable(@f) operator(<<) instance_variable(@lwsp) operator(<<) instance_variable(@text) instance_variable(@curlen) operator(+=) operator(()instance_variable(@lwsp)operator(.)ident(size) operator(+) instance_variable(@text)operator(.)ident(size)operator(\)) instance_variable(@text) operator(=) string instance_variable(@lwsp) operator(=) string reserved(end) reserved(def) method(fold) comment(# puts '---- fold ----') instance_variable(@f) operator(<<) instance_variable(@eol) instance_variable(@curlen) operator(=) integer(0) instance_variable(@lwsp) operator(=) constant(SPACER) reserved(end) reserved(def) method(restsize) constant(MAX_LINE_LEN) operator(-) operator(()instance_variable(@curlen) operator(+) instance_variable(@lwsp)operator(.)ident(size) operator(+) instance_variable(@text)operator(.)ident(size)operator(\)) reserved(end) reserved(end) reserved(end) comment(# module TMail) comment(#) comment(# facade.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string reserved(module) class(TMail) reserved(class) class(Mail) reserved(def) method(header_string)operator(() ident(name)operator(,) ident(default) operator(=) pre_constant(nil) operator(\)) ident(h) operator(=) instance_variable(@header)operator([)ident(name)operator(.)ident(downcase)operator(]) reserved(or) reserved(return) ident(default) ident(h)operator(.)ident(to_s) reserved(end) comment(###) comment(### attributes) comment(###) ident(include) constant(TextUtils) reserved(def) method(set_string_array_attr)operator(() ident(key)operator(,) ident(strs) operator(\)) ident(strs)operator(.)ident(flatten!) reserved(if) ident(strs)operator(.)ident(empty?) instance_variable(@header)operator(.)ident(delete) ident(key)operator(.)ident(downcase) reserved(else) ident(store) ident(key)operator(,) ident(strs)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) ident(strs) reserved(end) ident(private) symbol(:set_string_array_attr) reserved(def) method(set_string_attr)operator(() ident(key)operator(,) ident(str) operator(\)) reserved(if) ident(str) ident(store) ident(key)operator(,) ident(str) reserved(else) instance_variable(@header)operator(.)ident(delete) ident(key)operator(.)ident(downcase) reserved(end) ident(str) reserved(end) ident(private) symbol(:set_string_attr) reserved(def) method(set_addrfield)operator(() ident(name)operator(,) ident(arg) operator(\)) reserved(if) ident(arg) ident(h) operator(=) constant(HeaderField)operator(.)ident(internal_new)operator(()ident(name)operator(,) instance_variable(@config)operator(\)) ident(h)operator(.)ident(addrs)operator(.)ident(replace) operator([)ident(arg)operator(])operator(.)ident(flatten) instance_variable(@header)operator([)ident(name)operator(]) operator(=) ident(h) reserved(else) instance_variable(@header)operator(.)ident(delete) ident(name) reserved(end) ident(arg) reserved(end) ident(private) symbol(:set_addrfield) reserved(def) method(addrs2specs)operator(() ident(addrs) operator(\)) reserved(return) pre_constant(nil) reserved(unless) ident(addrs) ident(list) operator(=) ident(addrs)operator(.)ident(map) operator({)operator(|)ident(addr)operator(|) reserved(if) ident(addr)operator(.)ident(address_group?) reserved(then) ident(addr)operator(.)ident(map) operator({)operator(|)ident(a)operator(|) ident(a)operator(.)ident(spec) operator(}) reserved(else) ident(addr)operator(.)ident(spec) reserved(end) operator(})operator(.)ident(flatten) reserved(return) pre_constant(nil) reserved(if) ident(list)operator(.)ident(empty?) ident(list) reserved(end) ident(private) symbol(:addrs2specs) comment(#) comment(# date time) comment(#) reserved(def) method(date)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(date) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(date=)operator(() ident(time) operator(\)) reserved(if) ident(time) ident(store) stringoperator(,) ident(time2str)operator(()ident(time)operator(\)) reserved(else) instance_variable(@header)operator(.)ident(delete) string reserved(end) ident(time) reserved(end) reserved(def) method(strftime)operator(() ident(fmt)operator(,) ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(t) operator(=) ident(date) ident(t)operator(.)ident(strftime)operator(()ident(fmt)operator(\)) reserved(else) ident(default) reserved(end) reserved(end) comment(#) comment(# destination) comment(#) reserved(def) method(to_addrs)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(addrs) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(cc_addrs)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(addrs) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(bcc_addrs)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(addrs) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(to_addrs=)operator(() ident(arg) operator(\)) ident(set_addrfield) stringoperator(,) ident(arg) reserved(end) reserved(def) method(cc_addrs=)operator(() ident(arg) operator(\)) ident(set_addrfield) stringoperator(,) ident(arg) reserved(end) reserved(def) method(bcc_addrs=)operator(() ident(arg) operator(\)) ident(set_addrfield) stringoperator(,) ident(arg) reserved(end) reserved(def) method(to)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(addrs2specs)operator(()ident(to_addrs)operator(()pre_constant(nil)operator(\))operator(\)) operator(||) ident(default) reserved(end) reserved(def) method(cc)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(addrs2specs)operator(()ident(cc_addrs)operator(()pre_constant(nil)operator(\))operator(\)) operator(||) ident(default) reserved(end) reserved(def) method(bcc)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(addrs2specs)operator(()ident(bcc_addrs)operator(()pre_constant(nil)operator(\))operator(\)) operator(||) ident(default) reserved(end) reserved(def) method(to=)operator(() operator(*)ident(strs) operator(\)) ident(set_string_array_attr) stringoperator(,) ident(strs) reserved(end) reserved(def) method(cc=)operator(() operator(*)ident(strs) operator(\)) ident(set_string_array_attr) stringoperator(,) ident(strs) reserved(end) reserved(def) method(bcc=)operator(() operator(*)ident(strs) operator(\)) ident(set_string_array_attr) stringoperator(,) ident(strs) reserved(end) comment(#) comment(# originator) comment(#) reserved(def) method(from_addrs)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(addrs) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(from_addrs=)operator(() ident(arg) operator(\)) ident(set_addrfield) stringoperator(,) ident(arg) reserved(end) reserved(def) method(from)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(addrs2specs)operator(()ident(from_addrs)operator(()pre_constant(nil)operator(\))operator(\)) operator(||) ident(default) reserved(end) reserved(def) method(from=)operator(() operator(*)ident(strs) operator(\)) ident(set_string_array_attr) stringoperator(,) ident(strs) reserved(end) reserved(def) method(friendly_from)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(a)operator(,) operator(=) ident(h)operator(.)ident(addrs) reserved(return) ident(default) reserved(unless) ident(a) reserved(return) ident(a)operator(.)ident(phrase) reserved(if) ident(a)operator(.)ident(phrase) reserved(return) ident(h)operator(.)ident(comments)operator(.)ident(join)operator(()stringoperator(\)) reserved(unless) ident(h)operator(.)ident(comments)operator(.)ident(empty?) ident(a)operator(.)ident(spec) reserved(end) reserved(def) method(reply_to_addrs)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(addrs) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(reply_to_addrs=)operator(() ident(arg) operator(\)) ident(set_addrfield) stringoperator(,) ident(arg) reserved(end) reserved(def) method(reply_to)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(addrs2specs)operator(()ident(reply_to_addrs)operator(()pre_constant(nil)operator(\))operator(\)) operator(||) ident(default) reserved(end) reserved(def) method(reply_to=)operator(() operator(*)ident(strs) operator(\)) ident(set_string_array_attr) stringoperator(,) ident(strs) reserved(end) reserved(def) method(sender_addr)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(f) operator(=) instance_variable(@header)operator([)stringoperator(]) reserved(or) reserved(return) ident(default) ident(f)operator(.)ident(addr) reserved(or) reserved(return) ident(default) reserved(end) reserved(def) method(sender_addr=)operator(() ident(addr) operator(\)) reserved(if) ident(addr) ident(h) operator(=) constant(HeaderField)operator(.)ident(internal_new)operator(()stringoperator(,) instance_variable(@config)operator(\)) ident(h)operator(.)ident(addr) operator(=) ident(addr) instance_variable(@header)operator([)stringoperator(]) operator(=) ident(h) reserved(else) instance_variable(@header)operator(.)ident(delete) string reserved(end) ident(addr) reserved(end) reserved(def) method(sender)operator(() ident(default) operator(\)) ident(f) operator(=) instance_variable(@header)operator([)stringoperator(]) reserved(or) reserved(return) ident(default) ident(a) operator(=) ident(f)operator(.)ident(addr) reserved(or) reserved(return) ident(default) ident(a)operator(.)ident(spec) reserved(end) reserved(def) method(sender=)operator(() ident(str) operator(\)) ident(set_string_attr) stringoperator(,) ident(str) reserved(end) comment(#) comment(# subject) comment(#) reserved(def) method(subject)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(body) reserved(else) ident(default) reserved(end) reserved(end) reserved(alias) method(quoted_subject) method(subject) reserved(def) method(subject=)operator(() ident(str) operator(\)) ident(set_string_attr) stringoperator(,) ident(str) reserved(end) comment(#) comment(# identity & threading) comment(#) reserved(def) method(message_id)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(id) operator(||) ident(default) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(message_id=)operator(() ident(str) operator(\)) ident(set_string_attr) stringoperator(,) ident(str) reserved(end) reserved(def) method(in_reply_to)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(ids) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(in_reply_to=)operator(() operator(*)ident(idstrs) operator(\)) ident(set_string_array_attr) stringoperator(,) ident(idstrs) reserved(end) reserved(def) method(references)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(refs) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(references=)operator(() operator(*)ident(strs) operator(\)) ident(set_string_array_attr) stringoperator(,) ident(strs) reserved(end) comment(#) comment(# MIME headers) comment(#) reserved(def) method(mime_version)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(version) operator(||) ident(default) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(mime_version=)operator(() ident(m)operator(,) ident(opt) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(opt) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(major) operator(=) ident(m) ident(h)operator(.)ident(minor) operator(=) ident(opt) reserved(else) ident(store) stringoperator(,) stringcontent(.)inlinedelimiter(")> reserved(end) reserved(else) ident(store) stringoperator(,) ident(m) reserved(end) ident(m) reserved(end) reserved(def) method(content_type)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(content_type) operator(||) ident(default) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(main_type)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(main_type) operator(||) ident(default) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(sub_type)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(sub_type) operator(||) ident(default) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(set_content_type)operator(() ident(str)operator(,) ident(sub) operator(=) pre_constant(nil)operator(,) ident(param) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(sub) ident(main)operator(,) ident(sub) operator(=) ident(str)operator(,) ident(sub) reserved(else) ident(main)operator(,) ident(sub) operator(=) ident(str)operator(.)ident(split)operator(()regexp)>operator(,) integer(2)operator(\)) ident(raise) constant(ArgumentError)operator(,) stringdelimiter(")> reserved(unless) ident(sub) reserved(end) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(main_type) operator(=) ident(main) ident(h)operator(.)ident(sub_type) operator(=) ident(sub) ident(h)operator(.)ident(params)operator(.)ident(clear) reserved(else) ident(store) stringoperator(,) stringcontent(/)inlinedelimiter(")> reserved(end) instance_variable(@header)operator([)stringoperator(])operator(.)ident(params)operator(.)ident(replace) ident(param) reserved(if) ident(param) ident(str) reserved(end) reserved(alias) method(content_type=) method(set_content_type) reserved(def) method(type_param)operator(() ident(name)operator(,) ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator([)ident(name)operator(]) operator(||) ident(default) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(charset)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator([)stringoperator(]) reserved(or) ident(default) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(charset=)operator(() ident(str) operator(\)) reserved(if) ident(str) reserved(if) ident(h) operator(=) instance_variable(@header)operator([) string operator(]) ident(h)operator([)stringoperator(]) operator(=) ident(str) reserved(else) ident(store) stringoperator(,) stringdelimiter(")> reserved(end) reserved(end) ident(str) reserved(end) reserved(def) method(transfer_encoding)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(encoding) operator(||) ident(default) reserved(else) ident(default) reserved(end) reserved(end) reserved(def) method(transfer_encoding=)operator(() ident(str) operator(\)) ident(set_string_attr) stringoperator(,) ident(str) reserved(end) reserved(alias) method(encoding) method(transfer_encoding) reserved(alias) method(encoding=) method(transfer_encoding=) reserved(alias) method(content_transfer_encoding) method(transfer_encoding) reserved(alias) method(content_transfer_encoding=) method(transfer_encoding=) reserved(def) method(disposition)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(disposition) operator(||) ident(default) reserved(else) ident(default) reserved(end) reserved(end) reserved(alias) method(content_disposition) method(disposition) reserved(def) method(set_disposition)operator(() ident(str)operator(,) ident(params) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator(.)ident(disposition) operator(=) ident(str) ident(h)operator(.)ident(params)operator(.)ident(clear) reserved(else) ident(store)operator(()stringoperator(,) ident(str)operator(\)) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) reserved(end) ident(h)operator(.)ident(params)operator(.)ident(replace) ident(params) reserved(if) ident(params) reserved(end) reserved(alias) method(disposition=) method(set_disposition) reserved(alias) method(set_content_disposition) method(set_disposition) reserved(alias) method(content_disposition=) method(set_disposition) reserved(def) method(disposition_param)operator(() ident(name)operator(,) ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)stringoperator(]) ident(h)operator([)ident(name)operator(]) operator(||) ident(default) reserved(else) ident(default) reserved(end) reserved(end) comment(###) comment(### utils) comment(###) reserved(def) method(create_reply) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()stringoperator(\)) ident(mail)operator(.)ident(subject) operator(=) string operator(+) ident(subject)operator(()stringoperator(\))operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) ident(mail)operator(.)ident(to_addrs) operator(=) ident(reply_addresses)operator(()operator([)operator(])operator(\)) ident(mail)operator(.)ident(in_reply_to) operator(=) operator([)ident(message_id)operator(()pre_constant(nil)operator(\))operator(])operator(.)ident(compact) ident(mail)operator(.)ident(references) operator(=) ident(references)operator(()operator([)operator(])operator(\)) operator(+) operator([)ident(message_id)operator(()pre_constant(nil)operator(\))operator(])operator(.)ident(compact) ident(mail)operator(.)ident(mime_version) operator(=) string ident(mail) reserved(end) reserved(def) method(base64_encode) ident(store) stringoperator(,) string pre_constant(self)operator(.)ident(body) operator(=) constant(Base64)operator(.)ident(folding_encode)operator(()pre_constant(self)operator(.)ident(body)operator(\)) reserved(end) reserved(def) method(base64_decode) reserved(if) regexp operator(===) pre_constant(self)operator(.)ident(transfer_encoding)operator(()stringoperator(\)) ident(store) stringoperator(,) string pre_constant(self)operator(.)ident(body) operator(=) constant(Base64)operator(.)ident(decode)operator(()pre_constant(self)operator(.)ident(body)operator(,) instance_variable(@config)operator(.)ident(strict_base64decode?)operator(\)) reserved(end) reserved(end) reserved(def) method(destinations)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(ret) operator(=) operator([)operator(]) stringoperator(.)ident(each) reserved(do) operator(|)ident(nm)operator(|) reserved(if) ident(h) operator(=) instance_variable(@header)operator([)ident(nm)operator(]) ident(h)operator(.)ident(addrs)operator(.)ident(each) operator({)operator(|)ident(i)operator(|) ident(ret)operator(.)ident(push) ident(i)operator(.)ident(address) operator(}) reserved(end) reserved(end) ident(ret)operator(.)ident(empty?) operator(?) ident(default) operator(:) ident(ret) reserved(end) reserved(def) method(each_destination)operator(() operator(&)ident(block) operator(\)) ident(destinations)operator(()operator([)operator(])operator(\))operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) reserved(if) constant(Address) operator(===) ident(i) reserved(yield) ident(i) reserved(else) ident(i)operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(end) reserved(alias) method(each_dest) method(each_destination) reserved(def) method(reply_addresses)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(reply_to_addrs)operator(()pre_constant(nil)operator(\)) reserved(or) ident(from_addrs)operator(()pre_constant(nil)operator(\)) reserved(or) ident(default) reserved(end) reserved(def) method(error_reply_addresses)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(s) operator(=) ident(sender)operator(()pre_constant(nil)operator(\)) operator([)ident(s)operator(]) reserved(else) ident(from_addrs)operator(()ident(default)operator(\)) reserved(end) reserved(end) reserved(def) method(multipart?) ident(main_type)operator(()stringoperator(\))operator(.)ident(downcase) operator(==) string reserved(end) reserved(end) comment(# class Mail) reserved(end) comment(# module TMail) comment(#) comment(# header.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(module) class(TMail) reserved(class) class(HeaderField) ident(include) constant(TextUtils) reserved(class) operator(<<) class(self) reserved(alias) method(newobj) method(new) reserved(def) method(new)operator(() ident(name)operator(,) ident(body)operator(,) ident(conf) operator(=) constant(DEFAULT_CONFIG) operator(\)) ident(klass) operator(=) constant(FNAME_TO_CLASS)operator([)ident(name)operator(.)ident(downcase)operator(]) operator(||) constant(UnstructuredHeader) ident(klass)operator(.)ident(newobj) ident(body)operator(,) ident(conf) reserved(end) reserved(def) method(new_from_port)operator(() ident(port)operator(,) ident(name)operator(,) ident(conf) operator(=) constant(DEFAULT_CONFIG) operator(\)) ident(re) operator(=) constant(Regep)operator(.)ident(new)operator(()string operator(+) constant(Regexp)operator(.)ident(quote)operator(()ident(name)operator(\)) operator(+) stringoperator(,) stringoperator(\)) ident(str) operator(=) pre_constant(nil) ident(port)operator(.)ident(ropen) operator({)operator(|)ident(f)operator(|) ident(f)operator(.)ident(each) reserved(do) operator(|)ident(line)operator(|) reserved(if) ident(m) operator(=) ident(re)operator(.)ident(match)operator(()ident(line)operator(\)) reserved(then) ident(str) operator(=) ident(m)operator(.)ident(post_match)operator(.)ident(strip) reserved(elsif) ident(str) reserved(and) regexp operator(===) ident(line) reserved(then) ident(str) operator(<<) string operator(<<) ident(line)operator(.)ident(strip) reserved(elsif) regexp operator(===) ident(line) reserved(then) reserved(break) reserved(elsif) ident(str) reserved(then) reserved(break) reserved(end) reserved(end) operator(}) ident(new)operator(()ident(name)operator(,) ident(str)operator(,) constant(Config)operator(.)ident(to_config)operator(()ident(conf)operator(\))operator(\)) reserved(end) reserved(def) method(internal_new)operator(() ident(name)operator(,) ident(conf) operator(\)) constant(FNAME_TO_CLASS)operator([)ident(name)operator(])operator(.)ident(newobj)operator(()stringoperator(,) ident(conf)operator(,) pre_constant(true)operator(\)) reserved(end) reserved(end) comment(# class << self) reserved(def) method(initialize)operator(() ident(body)operator(,) ident(conf)operator(,) ident(intern) operator(=) pre_constant(false) operator(\)) instance_variable(@body) operator(=) ident(body) instance_variable(@config) operator(=) ident(conf) instance_variable(@illegal) operator(=) pre_constant(false) instance_variable(@parsed) operator(=) pre_constant(false) reserved(if) ident(intern) instance_variable(@parsed) operator(=) pre_constant(true) ident(parse_init) reserved(end) reserved(end) reserved(def) method(inspect) stringcontent( )inlinecontent(>)delimiter(")> reserved(end) reserved(def) method(illegal?) instance_variable(@illegal) reserved(end) reserved(def) method(empty?) ident(ensure_parsed) reserved(return) pre_constant(true) reserved(if) instance_variable(@illegal) ident(isempty?) reserved(end) ident(private) reserved(def) method(ensure_parsed) reserved(return) reserved(if) instance_variable(@parsed) instance_variable(@parsed) operator(=) pre_constant(true) ident(parse) reserved(end) comment(# defabstract parse) comment(# end) reserved(def) method(clear_parse_status) instance_variable(@parsed) operator(=) pre_constant(false) instance_variable(@illegal) operator(=) pre_constant(false) reserved(end) ident(public) reserved(def) method(body) ident(ensure_parsed) ident(v) operator(=) constant(Decoder)operator(.)ident(new)operator(()ident(s) operator(=) stringoperator(\)) ident(do_accept) ident(v) ident(v)operator(.)ident(terminate) ident(s) reserved(end) reserved(def) method(body=)operator(() ident(str) operator(\)) instance_variable(@body) operator(=) ident(str) ident(clear_parse_status) reserved(end) ident(include) constant(StrategyInterface) reserved(def) method(accept)operator(() ident(strategy)operator(,) ident(dummy1) operator(=) pre_constant(nil)operator(,) ident(dummy2) operator(=) pre_constant(nil) operator(\)) ident(ensure_parsed) ident(do_accept) ident(strategy) ident(strategy)operator(.)ident(terminate) reserved(end) comment(# abstract do_accept) reserved(end) reserved(class) class(UnstructuredHeader) operator(<) constant(HeaderField) reserved(def) method(body) ident(ensure_parsed) instance_variable(@body) reserved(end) reserved(def) method(body=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@body) operator(=) ident(arg) reserved(end) ident(private) reserved(def) method(parse_init) reserved(end) reserved(def) method(parse) instance_variable(@body) operator(=) constant(Decoder)operator(.)ident(decode)operator(()instance_variable(@body)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(\)) reserved(end) reserved(def) method(isempty?) reserved(not) instance_variable(@body) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(strategy)operator(.)ident(text) instance_variable(@body) reserved(end) reserved(end) reserved(class) class(StructuredHeader) operator(<) constant(HeaderField) reserved(def) method(comments) ident(ensure_parsed) instance_variable(@comments) reserved(end) ident(private) reserved(def) method(parse) ident(save) operator(=) pre_constant(nil) reserved(begin) ident(parse_init) ident(do_parse) reserved(rescue) constant(SyntaxError) reserved(if) reserved(not) ident(save) reserved(and) ident(mime_encoded?) instance_variable(@body) ident(save) operator(=) instance_variable(@body) instance_variable(@body) operator(=) constant(Decoder)operator(.)ident(decode)operator(()ident(save)operator(\)) reserved(retry) reserved(elsif) ident(save) instance_variable(@body) operator(=) ident(save) reserved(end) instance_variable(@illegal) operator(=) pre_constant(true) ident(raise) reserved(if) instance_variable(@config)operator(.)ident(strict_parse?) reserved(end) reserved(end) reserved(def) method(parse_init) instance_variable(@comments) operator(=) operator([)operator(]) ident(init) reserved(end) reserved(def) method(do_parse) ident(obj) operator(=) constant(Parser)operator(.)ident(parse)operator(()pre_constant(self)operator(.)ident(class)operator(::)constant(PARSE_TYPE)operator(,) instance_variable(@body)operator(,) instance_variable(@comments)operator(\)) ident(set) ident(obj) reserved(if) ident(obj) reserved(end) reserved(end) reserved(class) class(DateTimeHeader) operator(<) constant(StructuredHeader) constant(PARSE_TYPE) operator(=) symbol(:DATETIME) reserved(def) method(date) ident(ensure_parsed) instance_variable(@date) reserved(end) reserved(def) method(date=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@date) operator(=) ident(arg) reserved(end) ident(private) reserved(def) method(init) instance_variable(@date) operator(=) pre_constant(nil) reserved(end) reserved(def) method(set)operator(() ident(t) operator(\)) instance_variable(@date) operator(=) ident(t) reserved(end) reserved(def) method(isempty?) reserved(not) instance_variable(@date) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(strategy)operator(.)ident(meta) ident(time2str)operator(()instance_variable(@date)operator(\)) reserved(end) reserved(end) reserved(class) class(AddressHeader) operator(<) constant(StructuredHeader) constant(PARSE_TYPE) operator(=) symbol(:MADDRESS) reserved(def) method(addrs) ident(ensure_parsed) instance_variable(@addrs) reserved(end) ident(private) reserved(def) method(init) instance_variable(@addrs) operator(=) operator([)operator(]) reserved(end) reserved(def) method(set)operator(() ident(a) operator(\)) instance_variable(@addrs) operator(=) ident(a) reserved(end) reserved(def) method(isempty?) instance_variable(@addrs)operator(.)ident(empty?) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(first) operator(=) pre_constant(true) instance_variable(@addrs)operator(.)ident(each) reserved(do) operator(|)ident(a)operator(|) reserved(if) ident(first) ident(first) operator(=) pre_constant(false) reserved(else) ident(strategy)operator(.)ident(meta) string ident(strategy)operator(.)ident(space) reserved(end) ident(a)operator(.)ident(accept) ident(strategy) reserved(end) instance_variable(@comments)operator(.)ident(each) reserved(do) operator(|)ident(c)operator(|) ident(strategy)operator(.)ident(space) ident(strategy)operator(.)ident(meta) string ident(strategy)operator(.)ident(text) ident(c) ident(strategy)operator(.)ident(meta) string reserved(end) reserved(end) reserved(end) reserved(class) class(ReturnPathHeader) operator(<) constant(AddressHeader) constant(PARSE_TYPE) operator(=) symbol(:RETPATH) reserved(def) method(addr) ident(addrs)operator(()operator(\))operator([)integer(0)operator(]) reserved(end) reserved(def) method(spec) ident(a) operator(=) ident(addr)operator(()operator(\)) reserved(or) reserved(return) pre_constant(nil) ident(a)operator(.)ident(spec) reserved(end) reserved(def) method(routes) ident(a) operator(=) ident(addr)operator(()operator(\)) reserved(or) reserved(return) pre_constant(nil) ident(a)operator(.)ident(routes) reserved(end) ident(private) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(a) operator(=) ident(addr)operator(()operator(\)) ident(strategy)operator(.)ident(meta) string reserved(unless) ident(a)operator(.)ident(routes)operator(.)ident(empty?) ident(strategy)operator(.)ident(meta) ident(a)operator(.)ident(routes)operator(.)ident(map) operator({)operator(|)ident(i)operator(|) string operator(+) ident(i) operator(})operator(.)ident(join)operator(()stringoperator(\)) ident(strategy)operator(.)ident(meta) string reserved(end) ident(spec) operator(=) ident(a)operator(.)ident(spec) ident(strategy)operator(.)ident(meta) ident(spec) reserved(if) ident(spec) ident(strategy)operator(.)ident(meta) string)delimiter(')> reserved(end) reserved(end) reserved(class) class(SingleAddressHeader) operator(<) constant(AddressHeader) reserved(def) method(addr) ident(addrs)operator(()operator(\))operator([)integer(0)operator(]) reserved(end) ident(private) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(a) operator(=) ident(addr)operator(()operator(\)) ident(a)operator(.)ident(accept) ident(strategy) instance_variable(@comments)operator(.)ident(each) reserved(do) operator(|)ident(c)operator(|) ident(strategy)operator(.)ident(space) ident(strategy)operator(.)ident(meta) string ident(strategy)operator(.)ident(text) ident(c) ident(strategy)operator(.)ident(meta) string reserved(end) reserved(end) reserved(end) reserved(class) class(MessageIdHeader) operator(<) constant(StructuredHeader) reserved(def) method(id) ident(ensure_parsed) instance_variable(@id) reserved(end) reserved(def) method(id=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@id) operator(=) ident(arg) reserved(end) ident(private) reserved(def) method(init) instance_variable(@id) operator(=) pre_constant(nil) reserved(end) reserved(def) method(isempty?) reserved(not) instance_variable(@id) reserved(end) reserved(def) method(do_parse) instance_variable(@id) operator(=) instance_variable(@body)operator(.)ident(slice)operator(()constant(MESSAGE_ID)operator(\)) reserved(or) ident(raise) constant(SyntaxError)operator(,) stringdelimiter(")> reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(strategy)operator(.)ident(meta) instance_variable(@id) reserved(end) reserved(end) reserved(class) class(ReferencesHeader) operator(<) constant(StructuredHeader) reserved(def) method(refs) ident(ensure_parsed) instance_variable(@refs) reserved(end) reserved(def) method(each_id) pre_constant(self)operator(.)ident(refs)operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) reserved(yield) ident(i) reserved(if) constant(MESSAGE_ID) operator(===) ident(i) reserved(end) reserved(end) reserved(def) method(ids) ident(ensure_parsed) instance_variable(@ids) reserved(end) reserved(def) method(each_phrase) pre_constant(self)operator(.)ident(refs)operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) reserved(yield) ident(i) reserved(unless) constant(MESSAGE_ID) operator(===) ident(i) reserved(end) reserved(end) reserved(def) method(phrases) ident(ret) operator(=) operator([)operator(]) ident(each_phrase) operator({)operator(|)ident(i)operator(|) ident(ret)operator(.)ident(push) ident(i) operator(}) ident(ret) reserved(end) ident(private) reserved(def) method(init) instance_variable(@refs) operator(=) operator([)operator(]) instance_variable(@ids) operator(=) operator([)operator(]) reserved(end) reserved(def) method(isempty?) instance_variable(@ids)operator(.)ident(empty?) reserved(end) reserved(def) method(do_parse) ident(str) operator(=) instance_variable(@body) reserved(while) ident(m) operator(=) constant(MESSAGE_ID)operator(.)ident(match)operator(()ident(str)operator(\)) ident(pre) operator(=) ident(m)operator(.)ident(pre_match)operator(.)ident(strip) instance_variable(@refs)operator(.)ident(push) ident(pre) reserved(unless) ident(pre)operator(.)ident(empty?) instance_variable(@refs)operator(.)ident(push) ident(s) operator(=) ident(m)operator([)integer(0)operator(]) instance_variable(@ids)operator(.)ident(push) ident(s) ident(str) operator(=) ident(m)operator(.)ident(post_match) reserved(end) ident(str) operator(=) ident(str)operator(.)ident(strip) instance_variable(@refs)operator(.)ident(push) ident(str) reserved(unless) ident(str)operator(.)ident(empty?) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(first) operator(=) pre_constant(true) instance_variable(@ids)operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) reserved(if) ident(first) ident(first) operator(=) pre_constant(false) reserved(else) ident(strategy)operator(.)ident(space) reserved(end) ident(strategy)operator(.)ident(meta) ident(i) reserved(end) reserved(end) reserved(end) reserved(class) class(ReceivedHeader) operator(<) constant(StructuredHeader) constant(PARSE_TYPE) operator(=) symbol(:RECEIVED) reserved(def) method(from) ident(ensure_parsed) instance_variable(@from) reserved(end) reserved(def) method(from=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@from) operator(=) ident(arg) reserved(end) reserved(def) method(by) ident(ensure_parsed) instance_variable(@by) reserved(end) reserved(def) method(by=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@by) operator(=) ident(arg) reserved(end) reserved(def) method(via) ident(ensure_parsed) instance_variable(@via) reserved(end) reserved(def) method(via=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@via) operator(=) ident(arg) reserved(end) reserved(def) method(with) ident(ensure_parsed) instance_variable(@with) reserved(end) reserved(def) method(id) ident(ensure_parsed) instance_variable(@id) reserved(end) reserved(def) method(id=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@id) operator(=) ident(arg) reserved(end) reserved(def) method(_for) ident(ensure_parsed) instance_variable(@_for) reserved(end) reserved(def) method(_for=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@_for) operator(=) ident(arg) reserved(end) reserved(def) method(date) ident(ensure_parsed) instance_variable(@date) reserved(end) reserved(def) method(date=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@date) operator(=) ident(arg) reserved(end) ident(private) reserved(def) method(init) instance_variable(@from) operator(=) instance_variable(@by) operator(=) instance_variable(@via) operator(=) instance_variable(@with) operator(=) instance_variable(@id) operator(=) instance_variable(@_for) operator(=) pre_constant(nil) instance_variable(@with) operator(=) operator([)operator(]) instance_variable(@date) operator(=) pre_constant(nil) reserved(end) reserved(def) method(set)operator(() ident(args) operator(\)) instance_variable(@from)operator(,) instance_variable(@by)operator(,) instance_variable(@via)operator(,) instance_variable(@with)operator(,) instance_variable(@id)operator(,) instance_variable(@_for)operator(,) instance_variable(@date) operator(=) operator(*)ident(args) reserved(end) reserved(def) method(isempty?) instance_variable(@with)operator(.)ident(empty?) reserved(and) reserved(not) operator(()instance_variable(@from) reserved(or) instance_variable(@by) reserved(or) instance_variable(@via) reserved(or) instance_variable(@id) reserved(or) instance_variable(@_for) reserved(or) instance_variable(@date)operator(\)) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(list) operator(=) operator([)operator(]) ident(list)operator(.)ident(push) string operator(+) instance_variable(@from) reserved(if) instance_variable(@from) ident(list)operator(.)ident(push) string operator(+) instance_variable(@by) reserved(if) instance_variable(@by) ident(list)operator(.)ident(push) string operator(+) instance_variable(@via) reserved(if) instance_variable(@via) instance_variable(@with)operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) ident(list)operator(.)ident(push) string operator(+) ident(i) reserved(end) ident(list)operator(.)ident(push) string operator(+) instance_variable(@id) reserved(if) instance_variable(@id) ident(list)operator(.)ident(push) string operator(+) instance_variable(@_for) operator(+) string)delimiter(')> reserved(if) instance_variable(@_for) ident(first) operator(=) pre_constant(true) ident(list)operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) ident(strategy)operator(.)ident(space) reserved(unless) ident(first) ident(strategy)operator(.)ident(meta) ident(i) ident(first) operator(=) pre_constant(false) reserved(end) reserved(if) instance_variable(@date) ident(strategy)operator(.)ident(meta) string ident(strategy)operator(.)ident(space) ident(strategy)operator(.)ident(meta) ident(time2str)operator(()instance_variable(@date)operator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(KeywordsHeader) operator(<) constant(StructuredHeader) constant(PARSE_TYPE) operator(=) symbol(:KEYWORDS) reserved(def) method(keys) ident(ensure_parsed) instance_variable(@keys) reserved(end) ident(private) reserved(def) method(init) instance_variable(@keys) operator(=) operator([)operator(]) reserved(end) reserved(def) method(set)operator(() ident(a) operator(\)) instance_variable(@keys) operator(=) ident(a) reserved(end) reserved(def) method(isempty?) instance_variable(@keys)operator(.)ident(empty?) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(first) operator(=) pre_constant(true) instance_variable(@keys)operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) reserved(if) ident(first) ident(first) operator(=) pre_constant(false) reserved(else) ident(strategy)operator(.)ident(meta) string reserved(end) ident(strategy)operator(.)ident(meta) ident(i) reserved(end) reserved(end) reserved(end) reserved(class) class(EncryptedHeader) operator(<) constant(StructuredHeader) constant(PARSE_TYPE) operator(=) symbol(:ENCRYPTED) reserved(def) method(encrypter) ident(ensure_parsed) instance_variable(@encrypter) reserved(end) reserved(def) method(encrypter=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@encrypter) operator(=) ident(arg) reserved(end) reserved(def) method(keyword) ident(ensure_parsed) instance_variable(@keyword) reserved(end) reserved(def) method(keyword=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@keyword) operator(=) ident(arg) reserved(end) ident(private) reserved(def) method(init) instance_variable(@encrypter) operator(=) pre_constant(nil) instance_variable(@keyword) operator(=) pre_constant(nil) reserved(end) reserved(def) method(set)operator(() ident(args) operator(\)) instance_variable(@encrypter)operator(,) instance_variable(@keyword) operator(=) ident(args) reserved(end) reserved(def) method(isempty?) reserved(not) operator(()instance_variable(@encrypter) reserved(or) instance_variable(@keyword)operator(\)) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) reserved(if) instance_variable(@key) ident(strategy)operator(.)ident(meta) instance_variable(@encrypter) operator(+) string ident(strategy)operator(.)ident(space) ident(strategy)operator(.)ident(meta) instance_variable(@keyword) reserved(else) ident(strategy)operator(.)ident(meta) instance_variable(@encrypter) reserved(end) reserved(end) reserved(end) reserved(class) class(MimeVersionHeader) operator(<) constant(StructuredHeader) constant(PARSE_TYPE) operator(=) symbol(:MIMEVERSION) reserved(def) method(major) ident(ensure_parsed) instance_variable(@major) reserved(end) reserved(def) method(major=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@major) operator(=) ident(arg) reserved(end) reserved(def) method(minor) ident(ensure_parsed) instance_variable(@minor) reserved(end) reserved(def) method(minor=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@minor) operator(=) ident(arg) reserved(end) reserved(def) method(version) ident(sprintf)operator(()stringoperator(,) ident(major)operator(,) ident(minor)operator(\)) reserved(end) ident(private) reserved(def) method(init) instance_variable(@major) operator(=) pre_constant(nil) instance_variable(@minor) operator(=) pre_constant(nil) reserved(end) reserved(def) method(set)operator(() ident(args) operator(\)) instance_variable(@major)operator(,) instance_variable(@minor) operator(=) operator(*)ident(args) reserved(end) reserved(def) method(isempty?) reserved(not) operator(()instance_variable(@major) reserved(or) instance_variable(@minor)operator(\)) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(strategy)operator(.)ident(meta) ident(sprintf)operator(()stringoperator(,) instance_variable(@major)operator(,) instance_variable(@minor)operator(\)) reserved(end) reserved(end) reserved(class) class(ContentTypeHeader) operator(<) constant(StructuredHeader) constant(PARSE_TYPE) operator(=) symbol(:CTYPE) reserved(def) method(main_type) ident(ensure_parsed) instance_variable(@main) reserved(end) reserved(def) method(main_type=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@main) operator(=) ident(arg)operator(.)ident(downcase) reserved(end) reserved(def) method(sub_type) ident(ensure_parsed) instance_variable(@sub) reserved(end) reserved(def) method(sub_type=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@sub) operator(=) ident(arg)operator(.)ident(downcase) reserved(end) reserved(def) method(content_type) ident(ensure_parsed) instance_variable(@sub) operator(?) ident(sprintf)operator(()stringoperator(,) instance_variable(@main)operator(,) instance_variable(@sub)operator(\)) operator(:) instance_variable(@main) reserved(end) reserved(def) method(params) ident(ensure_parsed) instance_variable(@params) reserved(end) reserved(def) method([])operator(() ident(key) operator(\)) ident(ensure_parsed) instance_variable(@params) reserved(and) instance_variable(@params)operator([)ident(key)operator(]) reserved(end) reserved(def) method([]=)operator(() ident(key)operator(,) ident(val) operator(\)) ident(ensure_parsed) operator(()instance_variable(@params) operator(||=) operator({)operator(})operator(\))operator([)ident(key)operator(]) operator(=) ident(val) reserved(end) ident(private) reserved(def) method(init) instance_variable(@main) operator(=) instance_variable(@sub) operator(=) instance_variable(@params) operator(=) pre_constant(nil) reserved(end) reserved(def) method(set)operator(() ident(args) operator(\)) instance_variable(@main)operator(,) instance_variable(@sub)operator(,) instance_variable(@params) operator(=) operator(*)ident(args) reserved(end) reserved(def) method(isempty?) reserved(not) operator(()instance_variable(@main) reserved(or) instance_variable(@sub)operator(\)) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) reserved(if) instance_variable(@sub) ident(strategy)operator(.)ident(meta) ident(sprintf)operator(()stringoperator(,) instance_variable(@main)operator(,) instance_variable(@sub)operator(\)) reserved(else) ident(strategy)operator(.)ident(meta) instance_variable(@main) reserved(end) instance_variable(@params)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,)ident(v)operator(|) reserved(if) ident(v) ident(strategy)operator(.)ident(meta) string ident(strategy)operator(.)ident(space) ident(strategy)operator(.)ident(kv_pair) ident(k)operator(,) ident(v) reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(ContentTransferEncodingHeader) operator(<) constant(StructuredHeader) constant(PARSE_TYPE) operator(=) symbol(:CENCODING) reserved(def) method(encoding) ident(ensure_parsed) instance_variable(@encoding) reserved(end) reserved(def) method(encoding=)operator(() ident(arg) operator(\)) ident(ensure_parsed) instance_variable(@encoding) operator(=) ident(arg) reserved(end) ident(private) reserved(def) method(init) instance_variable(@encoding) operator(=) pre_constant(nil) reserved(end) reserved(def) method(set)operator(() ident(s) operator(\)) instance_variable(@encoding) operator(=) ident(s) reserved(end) reserved(def) method(isempty?) reserved(not) instance_variable(@encoding) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(strategy)operator(.)ident(meta) instance_variable(@encoding)operator(.)ident(capitalize) reserved(end) reserved(end) reserved(class) class(ContentDispositionHeader) operator(<) constant(StructuredHeader) constant(PARSE_TYPE) operator(=) symbol(:CDISPOSITION) reserved(def) method(disposition) ident(ensure_parsed) instance_variable(@disposition) reserved(end) reserved(def) method(disposition=)operator(() ident(str) operator(\)) ident(ensure_parsed) instance_variable(@disposition) operator(=) ident(str)operator(.)ident(downcase) reserved(end) reserved(def) method(params) ident(ensure_parsed) instance_variable(@params) reserved(end) reserved(def) method([])operator(() ident(key) operator(\)) ident(ensure_parsed) instance_variable(@params) reserved(and) instance_variable(@params)operator([)ident(key)operator(]) reserved(end) reserved(def) method([]=)operator(() ident(key)operator(,) ident(val) operator(\)) ident(ensure_parsed) operator(()instance_variable(@params) operator(||=) operator({)operator(})operator(\))operator([)ident(key)operator(]) operator(=) ident(val) reserved(end) ident(private) reserved(def) method(init) instance_variable(@disposition) operator(=) instance_variable(@params) operator(=) pre_constant(nil) reserved(end) reserved(def) method(set)operator(() ident(args) operator(\)) instance_variable(@disposition)operator(,) instance_variable(@params) operator(=) operator(*)ident(args) reserved(end) reserved(def) method(isempty?) reserved(not) instance_variable(@disposition) reserved(and) operator(()reserved(not) instance_variable(@params) reserved(or) instance_variable(@params)operator(.)ident(empty?)operator(\)) reserved(end) reserved(def) method(do_accept)operator(() ident(strategy) operator(\)) ident(strategy)operator(.)ident(meta) instance_variable(@disposition) instance_variable(@params)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,)ident(v)operator(|) ident(strategy)operator(.)ident(meta) string ident(strategy)operator(.)ident(space) ident(strategy)operator(.)ident(kv_pair) ident(k)operator(,) ident(v) reserved(end) reserved(end) reserved(end) reserved(class) class(HeaderField) comment(# redefine) constant(FNAME_TO_CLASS) operator(=) operator({) string operator(=)operator(>) constant(DateTimeHeader)operator(,) string operator(=)operator(>) constant(DateTimeHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(AddressHeader)operator(,) string operator(=)operator(>) constant(SingleAddressHeader)operator(,) string operator(=)operator(>) constant(SingleAddressHeader)operator(,) string operator(=)operator(>) constant(ReturnPathHeader)operator(,) string operator(=)operator(>) constant(MessageIdHeader)operator(,) string operator(=)operator(>) constant(MessageIdHeader)operator(,) string operator(=)operator(>) constant(ReferencesHeader)operator(,) string operator(=)operator(>) constant(ReceivedHeader)operator(,) string operator(=)operator(>) constant(ReferencesHeader)operator(,) string operator(=)operator(>) constant(KeywordsHeader)operator(,) string operator(=)operator(>) constant(EncryptedHeader)operator(,) string operator(=)operator(>) constant(MimeVersionHeader)operator(,) string operator(=)operator(>) constant(ContentTypeHeader)operator(,) string operator(=)operator(>) constant(ContentTransferEncodingHeader)operator(,) string operator(=)operator(>) constant(ContentDispositionHeader)operator(,) string operator(=)operator(>) constant(MessageIdHeader)operator(,) string operator(=)operator(>) constant(UnstructuredHeader)operator(,) string operator(=)operator(>) constant(UnstructuredHeader)operator(,) string operator(=)operator(>) constant(UnstructuredHeader) operator(}) reserved(end) reserved(end) comment(# module TMail) comment(#) comment(# info.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) reserved(module) class(TMail) constant(Version) operator(=) string constant(Copyright) operator(=) string reserved(end) ident(require) string comment(#) comment(# mail.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(module) class(TMail) reserved(class) class(Mail) reserved(class) operator(<<) class(self) reserved(def) method(load)operator(() ident(fname) operator(\)) ident(new)operator(()constant(FilePort)operator(.)ident(new)operator(()ident(fname)operator(\))operator(\)) reserved(end) reserved(alias) method(load_from) method(load) reserved(alias) method(loadfrom) method(load) reserved(def) method(parse)operator(() ident(str) operator(\)) ident(new)operator(()constant(StringPort)operator(.)ident(new)operator(()ident(str)operator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(initialize)operator(() ident(port) operator(=) pre_constant(nil)operator(,) ident(conf) operator(=) constant(DEFAULT_CONFIG) operator(\)) instance_variable(@port) operator(=) ident(port) operator(||) constant(StringPort)operator(.)ident(new) instance_variable(@config) operator(=) constant(Config)operator(.)ident(to_config)operator(()ident(conf)operator(\)) instance_variable(@header) operator(=) operator({)operator(}) instance_variable(@body_port) operator(=) pre_constant(nil) instance_variable(@body_parsed) operator(=) pre_constant(false) instance_variable(@epilogue) operator(=) string instance_variable(@parts) operator(=) operator([)operator(]) instance_variable(@port)operator(.)ident(ropen) operator({)operator(|)ident(f)operator(|) ident(parse_header) ident(f) ident(parse_body) ident(f) reserved(unless) instance_variable(@port)operator(.)ident(reproducible?) operator(}) reserved(end) ident(attr_reader) symbol(:port) reserved(def) method(inspect) stringcontent( port=)inlinecontent( bodyport=)inlinecontent(>)delimiter(")> reserved(end) comment(#) comment(# to_s interfaces) comment(#) ident(public) ident(include) constant(StrategyInterface) reserved(def) method(write_back)operator(() ident(eol) operator(=) stringoperator(,) ident(charset) operator(=) string operator(\)) ident(parse_body) instance_variable(@port)operator(.)ident(wopen) operator({)operator(|)ident(stream)operator(|) ident(encoded) ident(eol)operator(,) ident(charset)operator(,) ident(stream) operator(}) reserved(end) reserved(def) method(accept)operator(() ident(strategy) operator(\)) ident(with_multipart_encoding)operator(()ident(strategy)operator(\)) operator({) ident(ordered_each) reserved(do) operator(|)ident(name)operator(,) ident(field)operator(|) reserved(next) reserved(if) ident(field)operator(.)ident(empty?) ident(strategy)operator(.)ident(header_name) ident(canonical)operator(()ident(name)operator(\)) ident(field)operator(.)ident(accept) ident(strategy) ident(strategy)operator(.)ident(puts) reserved(end) ident(strategy)operator(.)ident(puts) ident(body_port)operator(()operator(\))operator(.)ident(ropen) operator({)operator(|)ident(r)operator(|) ident(strategy)operator(.)ident(write) ident(r)operator(.)ident(read) operator(}) operator(}) reserved(end) ident(private) reserved(def) method(canonical)operator(() ident(name) operator(\)) ident(name)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(map) operator({)operator(|)ident(s)operator(|) ident(s)operator(.)ident(capitalize) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(with_multipart_encoding)operator(() ident(strategy) operator(\)) reserved(if) ident(parts)operator(()operator(\))operator(.)ident(empty?) comment(# DO NOT USE @parts) reserved(yield) reserved(else) ident(bound) operator(=) operator(::)constant(TMail)operator(.)ident(new_boundary) reserved(if) instance_variable(@header)operator(.)ident(key?) string instance_variable(@header)operator([)stringoperator(])operator(.)ident(params)operator([)stringoperator(]) operator(=) ident(bound) reserved(else) ident(store) stringoperator(,) string)> reserved(end) reserved(yield) ident(parts)operator(()operator(\))operator(.)ident(each) reserved(do) operator(|)ident(tm)operator(|) ident(strategy)operator(.)ident(puts) ident(strategy)operator(.)ident(puts) string operator(+) ident(bound) ident(tm)operator(.)ident(accept) ident(strategy) reserved(end) ident(strategy)operator(.)ident(puts) ident(strategy)operator(.)ident(puts) string operator(+) ident(bound) operator(+) string ident(strategy)operator(.)ident(write) ident(epilogue)operator(()operator(\)) reserved(end) reserved(end) comment(###) comment(### header) comment(###) ident(public) constant(ALLOW_MULTIPLE) operator(=) operator({) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true) operator(}) constant(USE_ARRAY) operator(=) constant(ALLOW_MULTIPLE) reserved(def) method(header) instance_variable(@header)operator(.)ident(dup) reserved(end) reserved(def) method([])operator(() ident(key) operator(\)) instance_variable(@header)operator([)ident(key)operator(.)ident(downcase)operator(]) reserved(end) reserved(def) method(sub_header)operator(()ident(key)operator(,) ident(param)operator(\)) operator(()ident(hdr) operator(=) pre_constant(self)operator([)ident(key)operator(])operator(\)) operator(?) ident(hdr)operator([)ident(param)operator(]) operator(:) pre_constant(nil) reserved(end) reserved(alias) method(fetch) method([]) reserved(def) method([]=)operator(() ident(key)operator(,) ident(val) operator(\)) ident(dkey) operator(=) ident(key)operator(.)ident(downcase) reserved(if) ident(val)operator(.)ident(nil?) instance_variable(@header)operator(.)ident(delete) ident(dkey) reserved(return) pre_constant(nil) reserved(end) reserved(case) ident(val) reserved(when) constant(String) ident(header) operator(=) ident(new_hf)operator(()ident(key)operator(,) ident(val)operator(\)) reserved(when) constant(HeaderField) operator(;) reserved(when) constant(Array) constant(ALLOW_MULTIPLE)operator(.)ident(include?) ident(dkey) reserved(or) ident(raise) constant(ArgumentError)operator(,) stringcontent(: Header must not be multiple)delimiter(")> instance_variable(@header)operator([)ident(dkey)operator(]) operator(=) ident(val) reserved(return) ident(val) reserved(else) ident(header) operator(=) ident(new_hf)operator(()ident(key)operator(,) ident(val)operator(.)ident(to_s)operator(\)) reserved(end) reserved(if) constant(ALLOW_MULTIPLE)operator(.)ident(include?) ident(dkey) operator(()instance_variable(@header)operator([)ident(dkey)operator(]) operator(||=) operator([)operator(])operator(\))operator(.)ident(push) ident(header) reserved(else) instance_variable(@header)operator([)ident(dkey)operator(]) operator(=) ident(header) reserved(end) ident(val) reserved(end) reserved(alias) method(store) method([]=) reserved(def) method(each_header) instance_variable(@header)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(val)operator(|) operator([)ident(val)operator(])operator(.)ident(flatten)operator(.)ident(each) operator({)operator(|)ident(v)operator(|) reserved(yield) ident(key)operator(,) ident(v) operator(}) reserved(end) reserved(end) reserved(alias) method(each_pair) method(each_header) reserved(def) method(each_header_name)operator(() operator(&)ident(block) operator(\)) instance_variable(@header)operator(.)ident(each_key)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(alias) method(each_key) method(each_header_name) reserved(def) method(each_field)operator(() operator(&)ident(block) operator(\)) instance_variable(@header)operator(.)ident(values)operator(.)ident(flatten)operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(alias) method(each_value) method(each_field) constant(FIELD_ORDER) operator(=) string reserved(def) method(ordered_each) ident(list) operator(=) instance_variable(@header)operator(.)ident(keys) constant(FIELD_ORDER)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) reserved(if) ident(list)operator(.)ident(delete)operator(()ident(name)operator(\)) operator([)instance_variable(@header)operator([)ident(name)operator(])operator(])operator(.)ident(flatten)operator(.)ident(each) operator({)operator(|)ident(v)operator(|) reserved(yield) ident(name)operator(,) ident(v) operator(}) reserved(end) reserved(end) ident(list)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) operator([)instance_variable(@header)operator([)ident(name)operator(])operator(])operator(.)ident(flatten)operator(.)ident(each) operator({)operator(|)ident(v)operator(|) reserved(yield) ident(name)operator(,) ident(v) operator(}) reserved(end) reserved(end) reserved(def) method(clear) instance_variable(@header)operator(.)ident(clear) reserved(end) reserved(def) method(delete)operator(() ident(key) operator(\)) instance_variable(@header)operator(.)ident(delete) ident(key)operator(.)ident(downcase) reserved(end) reserved(def) method(delete_if) instance_variable(@header)operator(.)ident(delete_if) reserved(do) operator(|)ident(key)operator(,)ident(val)operator(|) reserved(if) constant(Array) operator(===) ident(val) ident(val)operator(.)ident(delete_if) operator({)operator(|)ident(v)operator(|) reserved(yield) ident(key)operator(,) ident(v) operator(}) ident(val)operator(.)ident(empty?) reserved(else) reserved(yield) ident(key)operator(,) ident(val) reserved(end) reserved(end) reserved(end) reserved(def) method(keys) instance_variable(@header)operator(.)ident(keys) reserved(end) reserved(def) method(key?)operator(() ident(key) operator(\)) instance_variable(@header)operator(.)ident(key?) ident(key)operator(.)ident(downcase) reserved(end) reserved(def) method(values_at)operator(() operator(*)ident(args) operator(\)) ident(args)operator(.)ident(map) operator({)operator(|)ident(k)operator(|) instance_variable(@header)operator([)ident(k)operator(.)ident(downcase)operator(]) operator(})operator(.)ident(flatten) reserved(end) reserved(alias) method(indexes) method(values_at) reserved(alias) method(indices) method(values_at) ident(private) reserved(def) method(parse_header)operator(() ident(f) operator(\)) ident(name) operator(=) ident(field) operator(=) pre_constant(nil) ident(unixfrom) operator(=) pre_constant(nil) reserved(while) ident(line) operator(=) ident(f)operator(.)ident(gets) reserved(case) ident(line) reserved(when) regexp comment(# continue from prev line) ident(raise) constant(SyntaxError)operator(,) string reserved(unless) ident(field) ident(field) operator(<<) string operator(<<) ident(line)operator(.)ident(strip) reserved(when) regexp comment(# new header line) ident(add_hf) ident(name)operator(,) ident(field) reserved(if) ident(field) ident(name) operator(=) global_variable($1) ident(field) operator(=) global_variable($') comment(#.strip) reserved(when) regexp comment(# end of header) ident(add_hf) ident(name)operator(,) ident(field) reserved(if) ident(field) ident(name) operator(=) ident(field) operator(=) pre_constant(nil) reserved(break) reserved(when) regexp ident(unixfrom) operator(=) global_variable($1) reserved(when) regexp reserved(else) ident(raise) constant(SyntaxError)operator(,) stringcontent(')delimiter(")> reserved(end) reserved(end) ident(add_hf) ident(name)operator(,) ident(field) reserved(if) ident(name) reserved(if) ident(unixfrom) ident(add_hf) stringoperator(,) stringcontent(>)delimiter(")> reserved(unless) instance_variable(@header)operator([)stringoperator(]) reserved(end) reserved(end) reserved(def) method(add_hf)operator(() ident(name)operator(,) ident(field) operator(\)) ident(key) operator(=) ident(name)operator(.)ident(downcase) ident(field) operator(=) ident(new_hf)operator(()ident(name)operator(,) ident(field)operator(\)) reserved(if) constant(ALLOW_MULTIPLE)operator(.)ident(include?) ident(key) operator(()instance_variable(@header)operator([)ident(key)operator(]) operator(||=) operator([)operator(])operator(\))operator(.)ident(push) ident(field) reserved(else) instance_variable(@header)operator([)ident(key)operator(]) operator(=) ident(field) reserved(end) reserved(end) reserved(def) method(new_hf)operator(() ident(name)operator(,) ident(field) operator(\)) constant(HeaderField)operator(.)ident(new)operator(()ident(name)operator(,) ident(field)operator(,) instance_variable(@config)operator(\)) reserved(end) comment(###) comment(### body) comment(###) ident(public) reserved(def) method(body_port) ident(parse_body) instance_variable(@body_port) reserved(end) reserved(def) method(each)operator(() operator(&)ident(block) operator(\)) ident(body_port)operator(()operator(\))operator(.)ident(ropen) operator({)operator(|)ident(f)operator(|) ident(f)operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) operator(}) reserved(end) reserved(def) method(quoted_body) ident(parse_body) instance_variable(@body_port)operator(.)ident(ropen) operator({)operator(|)ident(f)operator(|) reserved(return) ident(f)operator(.)ident(read) operator(}) reserved(end) reserved(def) method(body=)operator(() ident(str) operator(\)) ident(parse_body) instance_variable(@body_port)operator(.)ident(wopen) operator({)operator(|)ident(f)operator(|) ident(f)operator(.)ident(write) ident(str) operator(}) ident(str) reserved(end) reserved(alias) method(preamble) method(body) reserved(alias) method(preamble=) method(body=) reserved(def) method(epilogue) ident(parse_body) instance_variable(@epilogue)operator(.)ident(dup) reserved(end) reserved(def) method(epilogue=)operator(() ident(str) operator(\)) ident(parse_body) instance_variable(@epilogue) operator(=) ident(str) ident(str) reserved(end) reserved(def) method(parts) ident(parse_body) instance_variable(@parts) reserved(end) reserved(def) method(each_part)operator(() operator(&)ident(block) operator(\)) ident(parts)operator(()operator(\))operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) reserved(end) ident(private) reserved(def) method(parse_body)operator(() ident(f) operator(=) pre_constant(nil) operator(\)) reserved(return) reserved(if) instance_variable(@body_parsed) reserved(if) ident(f) ident(parse_body_0) ident(f) reserved(else) instance_variable(@port)operator(.)ident(ropen) operator({)operator(|)ident(f)operator(|) ident(skip_header) ident(f) ident(parse_body_0) ident(f) operator(}) reserved(end) instance_variable(@body_parsed) operator(=) pre_constant(true) reserved(end) reserved(def) method(skip_header)operator(() ident(f) operator(\)) reserved(while) ident(line) operator(=) ident(f)operator(.)ident(gets) reserved(return) reserved(if) regexp operator(===) ident(line) reserved(end) reserved(end) reserved(def) method(parse_body_0)operator(() ident(f) operator(\)) reserved(if) ident(multipart?) ident(read_multipart) ident(f) reserved(else) instance_variable(@body_port) operator(=) instance_variable(@config)operator(.)ident(new_body_port)operator(()pre_constant(self)operator(\)) instance_variable(@body_port)operator(.)ident(wopen) operator({)operator(|)ident(w)operator(|) ident(w)operator(.)ident(write) ident(f)operator(.)ident(read) operator(}) reserved(end) reserved(end) reserved(def) method(read_multipart)operator(() ident(src) operator(\)) ident(bound) operator(=) instance_variable(@header)operator([)stringoperator(])operator(.)ident(params)operator([)stringoperator(]) ident(is_sep) operator(=) regexpcontent((?:--\)?[ )char(\\t)content(]*(?:)char(\\n)content(|)char(\\r)char(\\n)content(|)char(\\r)content(\))delimiter(/)> ident(lastbound) operator(=) stringcontent(--)delimiter(")> ident(ports) operator(=) operator([) instance_variable(@config)operator(.)ident(new_preamble_port)operator(()pre_constant(self)operator(\)) operator(]) reserved(begin) ident(f) operator(=) ident(ports)operator(.)ident(last)operator(.)ident(wopen) reserved(while) ident(line) operator(=) ident(src)operator(.)ident(gets) reserved(if) ident(is_sep) operator(===) ident(line) ident(f)operator(.)ident(close) reserved(break) reserved(if) ident(line)operator(.)ident(strip) operator(==) ident(lastbound) ident(ports)operator(.)ident(push) instance_variable(@config)operator(.)ident(new_part_port)operator(()pre_constant(self)operator(\)) ident(f) operator(=) ident(ports)operator(.)ident(last)operator(.)ident(wopen) reserved(else) ident(f) operator(<<) ident(line) reserved(end) reserved(end) instance_variable(@epilogue) operator(=) operator(()ident(src)operator(.)ident(read) operator(||) stringoperator(\)) reserved(ensure) ident(f)operator(.)ident(close) reserved(if) ident(f) reserved(and) reserved(not) ident(f)operator(.)ident(closed?) reserved(end) instance_variable(@body_port) operator(=) ident(ports)operator(.)ident(shift) instance_variable(@parts) operator(=) ident(ports)operator(.)ident(map) operator({)operator(|)ident(p)operator(|) pre_constant(self)operator(.)ident(class)operator(.)ident(new)operator(()ident(p)operator(,) instance_variable(@config)operator(\)) operator(}) reserved(end) reserved(end) comment(# class Mail) reserved(end) comment(# module TMail) comment(#) comment(# mailbox.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string ident(require) string ident(require) string reserved(unless) operator([)operator(])operator(.)ident(respond_to?)operator(()symbol(:sort_by)operator(\)) reserved(module) class(Enumerable)comment(#:nodoc:) reserved(def) method(sort_by) ident(map) operator({)operator(|)ident(i)operator(|) operator([)reserved(yield)operator(()ident(i)operator(\))operator(,) ident(i)operator(]) operator(})operator(.)ident(sort) operator({)operator(|)ident(a)operator(,)ident(b)operator(|) ident(a)operator(.)ident(first) operator(<=>) ident(b)operator(.)ident(first) operator(})operator(.)ident(map) operator({)operator(|)ident(i)operator(|) ident(i)operator([)integer(1)operator(]) operator(}) reserved(end) reserved(end) reserved(end) reserved(module) class(TMail) reserved(class) class(MhMailbox) constant(PORT_CLASS) operator(=) constant(MhPort) reserved(def) method(initialize)operator(() ident(dir) operator(\)) ident(edir) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(dir)operator(\)) ident(raise) constant(ArgumentError)operator(,) stringdelimiter(")>\ reserved(unless) constant(FileTest)operator(.)ident(directory?) ident(edir) instance_variable(@dirname) operator(=) ident(edir) instance_variable(@last_file) operator(=) pre_constant(nil) instance_variable(@last_atime) operator(=) pre_constant(nil) reserved(end) reserved(def) method(directory) instance_variable(@dirname) reserved(end) reserved(alias) method(dirname) method(directory) ident(attr_accessor) symbol(:last_atime) reserved(def) method(inspect) stringcontent( )inlinecontent(>)delimiter(")> reserved(end) reserved(def) method(close) reserved(end) reserved(def) method(new_port) constant(PORT_CLASS)operator(.)ident(new)operator(()ident(next_file_name)operator(()operator(\))operator(\)) reserved(end) reserved(def) method(each_port) ident(mail_files)operator(()operator(\))operator(.)ident(each) reserved(do) operator(|)ident(path)operator(|) reserved(yield) constant(PORT_CLASS)operator(.)ident(new)operator(()ident(path)operator(\)) reserved(end) instance_variable(@last_atime) operator(=) constant(Time)operator(.)ident(now) reserved(end) reserved(alias) method(each) method(each_port) reserved(def) method(reverse_each_port) ident(mail_files)operator(()operator(\))operator(.)ident(reverse_each) reserved(do) operator(|)ident(path)operator(|) reserved(yield) constant(PORT_CLASS)operator(.)ident(new)operator(()ident(path)operator(\)) reserved(end) instance_variable(@last_atime) operator(=) constant(Time)operator(.)ident(now) reserved(end) reserved(alias) method(reverse_each) method(reverse_each_port) comment(# old #each_mail returns Port) comment(#def each_mail) comment(# each_port do |port|) comment(# yield Mail.new(port\)) comment(# end) comment(#end) reserved(def) method(each_new_port)operator(() ident(mtime) operator(=) pre_constant(nil)operator(,) operator(&)ident(block) operator(\)) ident(mtime) operator(||=) instance_variable(@last_atime) reserved(return) ident(each_port)operator(()operator(&)ident(block)operator(\)) reserved(unless) ident(mtime) reserved(return) reserved(unless) constant(File)operator(.)ident(mtime)operator(()instance_variable(@dirname)operator(\)) operator(>)operator(=) ident(mtime) ident(mail_files)operator(()operator(\))operator(.)ident(each) reserved(do) operator(|)ident(path)operator(|) reserved(yield) constant(PORT_CLASS)operator(.)ident(new)operator(()ident(path)operator(\)) reserved(if) constant(File)operator(.)ident(mtime)operator(()ident(path)operator(\)) operator(>) ident(mtime) reserved(end) instance_variable(@last_atime) operator(=) constant(Time)operator(.)ident(now) reserved(end) ident(private) reserved(def) method(mail_files) constant(Dir)operator(.)ident(entries)operator(()instance_variable(@dirname)operator(\))\ operator(.)ident(select) operator({)operator(|)ident(s)operator(|) regexp operator(===) ident(s) operator(})\ operator(.)ident(map) operator({)operator(|)ident(s)operator(|) ident(s)operator(.)ident(to_i) operator(})\ operator(.)ident(sort)\ operator(.)ident(map) operator({)operator(|)ident(i)operator(|) stringcontent(/)inlinedelimiter(")> operator(})\ operator(.)ident(select) operator({)operator(|)ident(path)operator(|) constant(FileTest)operator(.)ident(file?) ident(path) operator(}) reserved(end) reserved(def) method(next_file_name) reserved(unless) ident(n) operator(=) instance_variable(@last_file) ident(n) operator(=) integer(0) constant(Dir)operator(.)ident(entries)operator(()instance_variable(@dirname)operator(\))\ operator(.)ident(select) operator({)operator(|)ident(s)operator(|) regexp operator(===) ident(s) operator(})\ operator(.)ident(map) operator({)operator(|)ident(s)operator(|) ident(s)operator(.)ident(to_i) operator(})operator(.)ident(sort)\ operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) reserved(next) reserved(unless) constant(FileTest)operator(.)ident(file?) stringcontent(/)inlinedelimiter(")> ident(n) operator(=) ident(i) reserved(end) reserved(end) reserved(begin) ident(n) operator(+=) integer(1) reserved(end) reserved(while) constant(FileTest)operator(.)ident(exist?) stringcontent(/)inlinedelimiter(")> instance_variable(@last_file) operator(=) ident(n) stringcontent(/)inlinedelimiter(")> reserved(end) reserved(end) comment(# MhMailbox) constant(MhLoader) operator(=) constant(MhMailbox) reserved(class) class(UNIXMbox) reserved(def) constant(UNIXMbox)operator(.)method(lock)operator(() ident(fname) operator(\)) reserved(begin) ident(f) operator(=) constant(File)operator(.)ident(open)operator(()ident(fname)operator(\)) ident(f)operator(.)ident(flock) constant(File)operator(::)constant(LOCK_EX) reserved(yield) ident(f) reserved(ensure) ident(f)operator(.)ident(flock) constant(File)operator(::)constant(LOCK_UN) ident(f)operator(.)ident(close) reserved(if) ident(f) reserved(and) reserved(not) ident(f)operator(.)ident(closed?) reserved(end) reserved(end) reserved(class) operator(<<) class(self) reserved(alias) method(newobj) method(new) reserved(end) reserved(def) constant(UNIXMbox)operator(.)method(new)operator(() ident(fname)operator(,) ident(tmpdir) operator(=) pre_constant(nil)operator(,) ident(readonly) operator(=) pre_constant(false) operator(\)) ident(tmpdir) operator(=) pre_constant(ENV)operator([)stringoperator(]) operator(||) pre_constant(ENV)operator([)stringoperator(]) operator(||) string ident(newobj)operator(()ident(fname)operator(,) stringcontent(/ruby_tmail_)inlinecontent(_)inlinedelimiter(")>operator(,) ident(readonly)operator(,) pre_constant(false)operator(\)) reserved(end) reserved(def) constant(UNIXMbox)operator(.)method(static_new)operator(() ident(fname)operator(,) ident(dir)operator(,) ident(readonly) operator(=) pre_constant(false) operator(\)) ident(newobj)operator(()ident(fname)operator(,) ident(dir)operator(,) ident(readonly)operator(,) pre_constant(true)operator(\)) reserved(end) reserved(def) method(initialize)operator(() ident(fname)operator(,) ident(mhdir)operator(,) ident(readonly)operator(,) ident(static) operator(\)) instance_variable(@filename) operator(=) ident(fname) instance_variable(@readonly) operator(=) ident(readonly) instance_variable(@closed) operator(=) pre_constant(false) constant(Dir)operator(.)ident(mkdir) ident(mhdir) instance_variable(@real) operator(=) constant(MhMailbox)operator(.)ident(new)operator(()ident(mhdir)operator(\)) instance_variable(@finalizer) operator(=) constant(UNIXMbox)operator(.)ident(mkfinal)operator(()instance_variable(@real)operator(,) instance_variable(@filename)operator(,) operator(!)instance_variable(@readonly)operator(,) operator(!)ident(static)operator(\)) constant(ObjectSpace)operator(.)ident(define_finalizer) pre_constant(self)operator(,) instance_variable(@finalizer) reserved(end) reserved(def) constant(UNIXMbox)operator(.)method(mkfinal)operator(() ident(mh)operator(,) ident(mboxfile)operator(,) ident(writeback_p)operator(,) ident(cleanup_p) operator(\)) ident(lambda) operator({) reserved(if) ident(writeback_p) ident(lock)operator(()ident(mboxfile)operator(\)) operator({)operator(|)ident(f)operator(|) ident(mh)operator(.)ident(each_port) reserved(do) operator(|)ident(port)operator(|) ident(f)operator(.)ident(puts) ident(create_from_line)operator(()ident(port)operator(\)) ident(port)operator(.)ident(ropen) operator({)operator(|)ident(r)operator(|) ident(f)operator(.)ident(puts) ident(r)operator(.)ident(read) operator(}) reserved(end) operator(}) reserved(end) reserved(if) ident(cleanup_p) constant(Dir)operator(.)ident(foreach)operator(()ident(mh)operator(.)ident(dirname)operator(\)) reserved(do) operator(|)ident(fname)operator(|) reserved(next) reserved(if) regexp operator(===) ident(fname) constant(File)operator(.)ident(unlink) stringcontent(/)inlinedelimiter(")> reserved(end) constant(Dir)operator(.)ident(rmdir) ident(mh)operator(.)ident(dirname) reserved(end) operator(}) reserved(end) comment(# make _From line) reserved(def) constant(UNIXMbox)operator(.)method(create_from_line)operator(() ident(port) operator(\)) ident(sprintf) stringoperator(,) ident(fromaddr)operator(()operator(\))operator(,) constant(TextUtils)operator(.)ident(time2str)operator(()constant(File)operator(.)ident(mtime)operator(()ident(port)operator(.)ident(filename)operator(\))operator(\)) reserved(end) reserved(def) constant(UNIXMbox)operator(.)method(fromaddr) ident(h) operator(=) constant(HeaderField)operator(.)ident(new_from_port)operator(()ident(port)operator(,) stringoperator(\)) operator(||) constant(HeaderField)operator(.)ident(new_from_port)operator(()ident(port)operator(,) stringoperator(\)) reserved(or) reserved(return) string ident(a) operator(=) ident(h)operator(.)ident(addrs)operator([)integer(0)operator(]) reserved(or) reserved(return) string ident(a)operator(.)ident(spec) reserved(end) ident(private_class_method) symbol(:fromaddr) reserved(def) method(close) reserved(return) reserved(if) instance_variable(@closed) constant(ObjectSpace)operator(.)ident(undefine_finalizer) pre_constant(self) instance_variable(@finalizer)operator(.)ident(call) instance_variable(@finalizer) operator(=) pre_constant(nil) instance_variable(@real) operator(=) pre_constant(nil) instance_variable(@closed) operator(=) pre_constant(true) instance_variable(@updated) operator(=) pre_constant(nil) reserved(end) reserved(def) method(each_port)operator(() operator(&)ident(block) operator(\)) ident(close_check) ident(update) instance_variable(@real)operator(.)ident(each_port)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(alias) method(each) method(each_port) reserved(def) method(reverse_each_port)operator(() operator(&)ident(block) operator(\)) ident(close_check) ident(update) instance_variable(@real)operator(.)ident(reverse_each_port)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(alias) method(reverse_each) method(reverse_each_port) comment(# old #each_mail returns Port) comment(#def each_mail( &block \)) comment(# each_port do |port|) comment(# yield Mail.new(port\)) comment(# end) comment(#end) reserved(def) method(each_new_port)operator(() ident(mtime) operator(=) pre_constant(nil) operator(\)) ident(close_check) ident(update) instance_variable(@real)operator(.)ident(each_new_port)operator(()ident(mtime)operator(\)) operator({)operator(|)ident(p)operator(|) reserved(yield) ident(p) operator(}) reserved(end) reserved(def) method(new_port) ident(close_check) instance_variable(@real)operator(.)ident(new_port) reserved(end) ident(private) reserved(def) method(close_check) instance_variable(@closed) reserved(and) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(def) method(update) reserved(return) reserved(if) constant(FileTest)operator(.)ident(zero?)operator(()instance_variable(@filename)operator(\)) reserved(return) reserved(if) instance_variable(@updated) reserved(and) constant(File)operator(.)ident(mtime)operator(()instance_variable(@filename)operator(\)) operator(<) instance_variable(@updated) ident(w) operator(=) pre_constant(nil) ident(port) operator(=) pre_constant(nil) ident(time) operator(=) pre_constant(nil) constant(UNIXMbox)operator(.)ident(lock)operator(()instance_variable(@filename)operator(\)) operator({)operator(|)ident(f)operator(|) reserved(begin) ident(f)operator(.)ident(each) reserved(do) operator(|)ident(line)operator(|) reserved(if) regexp operator(===) ident(line) ident(w)operator(.)ident(close) reserved(if) ident(w) constant(File)operator(.)ident(utime) ident(time)operator(,) ident(time)operator(,) ident(port)operator(.)ident(filename) reserved(if) ident(time) ident(port) operator(=) instance_variable(@real)operator(.)ident(new_port) ident(w) operator(=) ident(port)operator(.)ident(wopen) ident(time) operator(=) ident(fromline2time)operator(()ident(line)operator(\)) reserved(else) ident(w)operator(.)ident(print) ident(line) reserved(if) ident(w) reserved(end) reserved(end) reserved(ensure) reserved(if) ident(w) reserved(and) reserved(not) ident(w)operator(.)ident(closed?) ident(w)operator(.)ident(close) constant(File)operator(.)ident(utime) ident(time)operator(,) ident(time)operator(,) ident(port)operator(.)ident(filename) reserved(if) ident(time) reserved(end) reserved(end) ident(f)operator(.)ident(truncate)operator(()integer(0)operator(\)) reserved(unless) instance_variable(@readonly) instance_variable(@updated) operator(=) constant(Time)operator(.)ident(now) operator(}) reserved(end) reserved(def) method(fromline2time)operator(() ident(line) operator(\)) ident(m) operator(=) regexpoperator(.)ident(match)operator(()ident(line)operator(\)) \ reserved(or) reserved(return) pre_constant(nil) constant(Time)operator(.)ident(local)operator(()ident(m)operator([)integer(6)operator(])operator(.)ident(to_i)operator(,) ident(m)operator([)integer(1)operator(])operator(,) ident(m)operator([)integer(2)operator(])operator(.)ident(to_i)operator(,) ident(m)operator([)integer(3)operator(])operator(.)ident(to_i)operator(,) ident(m)operator([)integer(4)operator(])operator(.)ident(to_i)operator(,) ident(m)operator([)integer(5)operator(])operator(.)ident(to_i)operator(\)) reserved(end) reserved(end) comment(# UNIXMbox) constant(MboxLoader) operator(=) constant(UNIXMbox) reserved(class) class(Maildir) ident(extend) constant(Mutex_m) constant(PORT_CLASS) operator(=) constant(MaildirPort) instance_variable(@seq) operator(=) integer(0) reserved(def) constant(Maildir)operator(.)method(unique_number) ident(synchronize) operator({) instance_variable(@seq) operator(+=) integer(1) reserved(return) instance_variable(@seq) operator(}) reserved(end) reserved(def) method(initialize)operator(() ident(dir) operator(=) pre_constant(nil) operator(\)) instance_variable(@dirname) operator(=) ident(dir) operator(||) pre_constant(ENV)operator([)stringoperator(]) ident(raise) constant(ArgumentError)operator(,) stringdelimiter(")>\ reserved(unless) constant(FileTest)operator(.)ident(directory?) instance_variable(@dirname) instance_variable(@new) operator(=) stringcontent(/new)delimiter(")> instance_variable(@tmp) operator(=) stringcontent(/tmp)delimiter(")> instance_variable(@cur) operator(=) stringcontent(/cur)delimiter(")> reserved(end) reserved(def) method(directory) instance_variable(@dirname) reserved(end) reserved(def) method(inspect) stringcontent( )inlinecontent(>)delimiter(")> reserved(end) reserved(def) method(close) reserved(end) reserved(def) method(each_port) ident(mail_files)operator(()instance_variable(@cur)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(path)operator(|) reserved(yield) constant(PORT_CLASS)operator(.)ident(new)operator(()ident(path)operator(\)) reserved(end) reserved(end) reserved(alias) method(each) method(each_port) reserved(def) method(reverse_each_port) ident(mail_files)operator(()instance_variable(@cur)operator(\))operator(.)ident(reverse_each) reserved(do) operator(|)ident(path)operator(|) reserved(yield) constant(PORT_CLASS)operator(.)ident(new)operator(()ident(path)operator(\)) reserved(end) reserved(end) reserved(alias) method(reverse_each) method(reverse_each_port) reserved(def) method(new_port) ident(fname) operator(=) pre_constant(nil) ident(tmpfname) operator(=) pre_constant(nil) ident(newfname) operator(=) pre_constant(nil) reserved(begin) ident(fname) operator(=) stringcontent(.)inlinecontent(_)inlinecontent(.)inlinedelimiter(")> ident(tmpfname) operator(=) stringcontent(/)inlinedelimiter(")> ident(newfname) operator(=) stringcontent(/)inlinedelimiter(")> reserved(end) reserved(while) constant(FileTest)operator(.)ident(exist?) ident(tmpfname) reserved(if) ident(block_given?) constant(File)operator(.)ident(open)operator(()ident(tmpfname)operator(,) stringoperator(\)) operator({)operator(|)ident(f)operator(|) reserved(yield) ident(f) operator(}) constant(File)operator(.)ident(rename) ident(tmpfname)operator(,) ident(newfname) constant(PORT_CLASS)operator(.)ident(new)operator(()ident(newfname)operator(\)) reserved(else) constant(File)operator(.)ident(open)operator(()ident(tmpfname)operator(,) stringoperator(\)) operator({)operator(|)ident(f)operator(|) ident(f)operator(.)ident(write) string operator(}) constant(PORT_CLASS)operator(.)ident(new)operator(()ident(tmpfname)operator(\)) reserved(end) reserved(end) reserved(def) method(each_new_port) ident(mail_files)operator(()instance_variable(@new)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(path)operator(|) ident(dest) operator(=) instance_variable(@cur) operator(+) string operator(+) constant(File)operator(.)ident(basename)operator(()ident(path)operator(\)) constant(File)operator(.)ident(rename) ident(path)operator(,) ident(dest) reserved(yield) constant(PORT_CLASS)operator(.)ident(new)operator(()ident(dest)operator(\)) reserved(end) ident(check_tmp) reserved(end) constant(TOO_OLD) operator(=) integer(60) operator(*) integer(60) operator(*) integer(36) comment(# 36 hour) reserved(def) method(check_tmp) ident(old) operator(=) constant(Time)operator(.)ident(now)operator(.)ident(to_i) operator(-) constant(TOO_OLD) ident(each_filename)operator(()instance_variable(@tmp)operator(\)) reserved(do) operator(|)ident(full)operator(,) ident(fname)operator(|) reserved(if) constant(FileTest)operator(.)ident(file?) ident(full) reserved(and) constant(File)operator(.)ident(stat)operator(()ident(full)operator(\))operator(.)ident(mtime)operator(.)ident(to_i) operator(<) ident(old) constant(File)operator(.)ident(unlink) ident(full) reserved(end) reserved(end) reserved(end) ident(private) reserved(def) method(mail_files)operator(() ident(dir) operator(\)) constant(Dir)operator(.)ident(entries)operator(()ident(dir)operator(\))\ operator(.)ident(select) operator({)operator(|)ident(s)operator(|) ident(s)operator([)integer(0)operator(]) operator(!=) integer(?.) operator(})\ operator(.)ident(sort_by) operator({)operator(|)ident(s)operator(|) ident(s)operator(.)ident(slice)operator(()regexpoperator(\))operator(.)ident(to_i) operator(})\ operator(.)ident(map) operator({)operator(|)ident(s)operator(|) stringcontent(/)inlinedelimiter(")> operator(})\ operator(.)ident(select) operator({)operator(|)ident(path)operator(|) constant(FileTest)operator(.)ident(file?) ident(path) operator(}) reserved(end) reserved(def) method(each_filename)operator(() ident(dir) operator(\)) constant(Dir)operator(.)ident(foreach)operator(()ident(dir)operator(\)) reserved(do) operator(|)ident(fname)operator(|) ident(path) operator(=) stringcontent(/)inlinedelimiter(")> reserved(if) ident(fname)operator([)integer(0)operator(]) operator(!=) integer(?.) reserved(and) constant(FileTest)operator(.)ident(file?) ident(path) reserved(yield) ident(path)operator(,) ident(fname) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Maildir) constant(MaildirLoader) operator(=) constant(Maildir) reserved(end) comment(# module TMail) ident(require) string comment(#) comment(# net.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string reserved(module) class(TMail) reserved(class) class(Mail) reserved(def) method(send_to)operator(() ident(smtp) operator(\)) ident(do_send_to)operator(()ident(smtp)operator(\)) reserved(do) ident(ready_to_send) reserved(end) reserved(end) reserved(def) method(send_text_to)operator(() ident(smtp) operator(\)) ident(do_send_to)operator(()ident(smtp)operator(\)) reserved(do) ident(ready_to_send) ident(mime_encode) reserved(end) reserved(end) reserved(def) method(do_send_to)operator(() ident(smtp) operator(\)) ident(from) operator(=) ident(from_address) reserved(or) ident(raise) constant(ArgumentError)operator(,) string operator(()ident(dests) operator(=) ident(destinations)operator(\))operator(.)ident(empty?) reserved(and) ident(raise) constant(ArgumentError)operator(,) string reserved(yield) ident(send_to_0) ident(smtp)operator(,) ident(from)operator(,) ident(dests) reserved(end) ident(private) symbol(:do_send_to) reserved(def) method(send_to_0)operator(() ident(smtp)operator(,) ident(from)operator(,) ident(to) operator(\)) ident(smtp)operator(.)ident(ready)operator(()ident(from)operator(,) ident(to)operator(\)) reserved(do) operator(|)ident(f)operator(|) ident(encoded) stringoperator(,) stringoperator(,) ident(f)operator(,) string reserved(end) reserved(end) reserved(def) method(ready_to_send) ident(delete_no_send_fields) ident(add_message_id) ident(add_date) reserved(end) constant(NOSEND_FIELDS) operator(=) string reserved(def) method(delete_no_send_fields) constant(NOSEND_FIELDS)operator(.)ident(each) reserved(do) operator(|)ident(nm)operator(|) ident(delete) ident(nm) reserved(end) ident(delete_if) operator({)operator(|)ident(n)operator(,)ident(v)operator(|) ident(v)operator(.)ident(empty?) operator(}) reserved(end) reserved(def) method(add_message_id)operator(() ident(fqdn) operator(=) pre_constant(nil) operator(\)) pre_constant(self)operator(.)ident(message_id) operator(=) operator(::)constant(TMail)operator(::)ident(new_message_id)operator(()ident(fqdn)operator(\)) reserved(end) reserved(def) method(add_date) pre_constant(self)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(now) reserved(end) reserved(def) method(mime_encode) reserved(if) ident(parts)operator(.)ident(empty?) ident(mime_encode_singlepart) reserved(else) ident(mime_encode_multipart) pre_constant(true) reserved(end) reserved(end) reserved(def) method(mime_encode_singlepart) pre_constant(self)operator(.)ident(mime_version) operator(=) string ident(b) operator(=) ident(body) reserved(if) constant(NKF)operator(.)ident(guess)operator(()ident(b)operator(\)) operator(!=) constant(NKF)operator(::)constant(BINARY) ident(mime_encode_text) ident(b) reserved(else) ident(mime_encode_binary) ident(b) reserved(end) reserved(end) reserved(def) method(mime_encode_text)operator(() ident(body) operator(\)) pre_constant(self)operator(.)ident(body) operator(=) constant(NKF)operator(.)ident(nkf)operator(()stringoperator(,) ident(body)operator(\)) pre_constant(self)operator(.)ident(set_content_type) stringoperator(,) stringoperator(,) operator({)string operator(=)operator(>) stringoperator(}) pre_constant(self)operator(.)ident(encoding) operator(=) string reserved(end) reserved(def) method(mime_encode_binary)operator(() ident(body) operator(\)) pre_constant(self)operator(.)ident(body) operator(=) operator([)ident(body)operator(])operator(.)ident(pack)operator(()stringoperator(\)) pre_constant(self)operator(.)ident(set_content_type) stringoperator(,) string pre_constant(self)operator(.)ident(encoding) operator(=) string reserved(end) reserved(def) method(mime_encode_multipart)operator(() ident(top) operator(=) pre_constant(true) operator(\)) pre_constant(self)operator(.)ident(mime_version) operator(=) string reserved(if) ident(top) pre_constant(self)operator(.)ident(set_content_type) stringoperator(,) string ident(e) operator(=) ident(encoding)operator(()pre_constant(nil)operator(\)) reserved(if) ident(e) reserved(and) reserved(not) regexp operator(===) ident(e) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(end) reserved(def) method(create_empty_mail) pre_constant(self)operator(.)ident(class)operator(.)ident(new)operator(()constant(StringPort)operator(.)ident(new)operator(()stringoperator(\))operator(,) instance_variable(@config)operator(\)) reserved(end) reserved(def) method(create_reply) ident(setup_reply) ident(create_empty_mail)operator(()operator(\)) reserved(end) reserved(def) method(setup_reply)operator(() ident(m) operator(\)) reserved(if) ident(tmp) operator(=) ident(reply_addresses)operator(()pre_constant(nil)operator(\)) ident(m)operator(.)ident(to_addrs) operator(=) ident(tmp) reserved(end) ident(mid) operator(=) ident(message_id)operator(()pre_constant(nil)operator(\)) ident(tmp) operator(=) ident(references)operator(()pre_constant(nil)operator(\)) operator(||) operator([)operator(]) ident(tmp)operator(.)ident(push) ident(mid) reserved(if) ident(mid) ident(m)operator(.)ident(in_reply_to) operator(=) operator([)ident(mid)operator(]) reserved(if) ident(mid) ident(m)operator(.)ident(references) operator(=) ident(tmp) reserved(unless) ident(tmp)operator(.)ident(empty?) ident(m)operator(.)ident(subject) operator(=) string operator(+) ident(subject)operator(()stringoperator(\))operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) ident(m) reserved(end) reserved(def) method(create_forward) ident(setup_forward) ident(create_empty_mail)operator(()operator(\)) reserved(end) reserved(def) method(setup_forward)operator(() ident(mail) operator(\)) ident(m) operator(=) constant(Mail)operator(.)ident(new)operator(()constant(StringPort)operator(.)ident(new)operator(()stringoperator(\))operator(\)) ident(m)operator(.)ident(body) operator(=) ident(decoded) ident(m)operator(.)ident(set_content_type) stringoperator(,) string ident(m)operator(.)ident(encoding) operator(=) ident(encoding)operator(()stringoperator(\)) ident(mail)operator(.)ident(parts)operator(.)ident(push) ident(m) reserved(end) reserved(end) reserved(class) class(DeleteFields) constant(NOSEND_FIELDS) operator(=) string reserved(def) method(initialize)operator(() ident(nosend) operator(=) pre_constant(nil)operator(,) ident(delempty) operator(=) pre_constant(true) operator(\)) instance_variable(@no_send_fields) operator(=) ident(nosend) operator(||) constant(NOSEND_FIELDS)operator(.)ident(dup) instance_variable(@delete_empty_fields) operator(=) ident(delempty) reserved(end) ident(attr) symbol(:no_send_fields) ident(attr) symbol(:delete_empty_fields)operator(,) pre_constant(true) reserved(def) method(exec)operator(() ident(mail) operator(\)) instance_variable(@no_send_fields)operator(.)ident(each) reserved(do) operator(|)ident(nm)operator(|) ident(delete) ident(nm) reserved(end) ident(delete_if) operator({)operator(|)ident(n)operator(,)ident(v)operator(|) ident(v)operator(.)ident(empty?) operator(}) reserved(if) instance_variable(@delete_empty_fields) reserved(end) reserved(end) reserved(class) class(AddMessageId) reserved(def) method(initialize)operator(() ident(fqdn) operator(=) pre_constant(nil) operator(\)) instance_variable(@fqdn) operator(=) ident(fqdn) reserved(end) ident(attr) symbol(:fqdn)operator(,) pre_constant(true) reserved(def) method(exec)operator(() ident(mail) operator(\)) ident(mail)operator(.)ident(message_id) operator(=) operator(::)constant(TMail)operator(::)ident(new_msgid)operator(()instance_variable(@fqdn)operator(\)) reserved(end) reserved(end) reserved(class) class(AddDate) reserved(def) method(exec)operator(() ident(mail) operator(\)) ident(mail)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(now) reserved(end) reserved(end) reserved(class) class(MimeEncodeAuto) reserved(def) method(initialize)operator(() ident(s) operator(=) pre_constant(nil)operator(,) ident(m) operator(=) pre_constant(nil) operator(\)) instance_variable(@singlepart_composer) operator(=) ident(s) operator(||) constant(MimeEncodeSingle)operator(.)ident(new) instance_variable(@multipart_composer) operator(=) ident(m) operator(||) constant(MimeEncodeMulti)operator(.)ident(new) reserved(end) ident(attr) symbol(:singlepart_composer) ident(attr) symbol(:multipart_composer) reserved(def) method(exec)operator(() ident(mail) operator(\)) reserved(if) ident(mail)operator(.)ident(_builtin_multipart?) reserved(then) instance_variable(@multipart_composer) reserved(else) instance_variable(@singlepart_composer) reserved(end)operator(.)ident(exec) ident(mail) reserved(end) reserved(end) reserved(class) class(MimeEncodeSingle) reserved(def) method(exec)operator(() ident(mail) operator(\)) ident(mail)operator(.)ident(mime_version) operator(=) string ident(b) operator(=) ident(mail)operator(.)ident(body) reserved(if) constant(NKF)operator(.)ident(guess)operator(()ident(b)operator(\)) operator(!=) constant(NKF)operator(::)constant(BINARY) ident(on_text) ident(b) reserved(else) ident(on_binary) ident(b) reserved(end) reserved(end) reserved(def) method(on_text)operator(() ident(body) operator(\)) ident(mail)operator(.)ident(body) operator(=) constant(NKF)operator(.)ident(nkf)operator(()stringoperator(,) ident(body)operator(\)) ident(mail)operator(.)ident(set_content_type) stringoperator(,) stringoperator(,) operator({)string operator(=)operator(>) stringoperator(}) ident(mail)operator(.)ident(encoding) operator(=) string reserved(end) reserved(def) method(on_binary)operator(() ident(body) operator(\)) ident(mail)operator(.)ident(body) operator(=) operator([)ident(body)operator(])operator(.)ident(pack)operator(()stringoperator(\)) ident(mail)operator(.)ident(set_content_type) stringoperator(,) string ident(mail)operator(.)ident(encoding) operator(=) string reserved(end) reserved(end) reserved(class) class(MimeEncodeMulti) reserved(def) method(exec)operator(() ident(mail)operator(,) ident(top) operator(=) pre_constant(true) operator(\)) ident(mail)operator(.)ident(mime_version) operator(=) string reserved(if) ident(top) ident(mail)operator(.)ident(set_content_type) stringoperator(,) string ident(e) operator(=) ident(encoding)operator(()pre_constant(nil)operator(\)) reserved(if) ident(e) reserved(and) reserved(not) regexp operator(===) ident(e) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(mail)operator(.)ident(parts)operator(.)ident(each) reserved(do) operator(|)ident(m)operator(|) ident(exec) ident(m)operator(,) pre_constant(false) reserved(if) ident(m)operator(.)ident(_builtin_multipart?) reserved(end) reserved(end) reserved(end) reserved(end) comment(# module TMail) comment(#) comment(# obsolete.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) reserved(module) class(TMail) comment(# mail.rb) reserved(class) class(Mail) reserved(alias) method(include?) method(key?) reserved(alias) method(has_key?) method(key?) reserved(def) method(values) ident(ret) operator(=) operator([)operator(]) ident(each_field) operator({)operator(|)ident(v)operator(|) ident(ret)operator(.)ident(push) ident(v) operator(}) ident(ret) reserved(end) reserved(def) method(value?)operator(() ident(val) operator(\)) constant(HeaderField) operator(===) ident(val) reserved(or) reserved(return) pre_constant(false) operator([) instance_variable(@header)operator([)ident(val)operator(.)ident(name)operator(.)ident(downcase)operator(]) operator(])operator(.)ident(flatten)operator(.)ident(include?) ident(val) reserved(end) reserved(alias) method(has_value?) method(value?) reserved(end) comment(# facade.rb) reserved(class) class(Mail) reserved(def) method(from_addr)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) ident(addr)operator(,) operator(=) ident(from_addrs)operator(()pre_constant(nil)operator(\)) ident(addr) operator(||) ident(default) reserved(end) reserved(def) method(from_address)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(a) operator(=) ident(from_addr)operator(()pre_constant(nil)operator(\)) ident(a)operator(.)ident(spec) reserved(else) ident(default) reserved(end) reserved(end) reserved(alias) method(from_address=) method(from_addrs=) reserved(def) method(from_phrase)operator(() ident(default) operator(=) pre_constant(nil) operator(\)) reserved(if) ident(a) operator(=) ident(from_addr)operator(()pre_constant(nil)operator(\)) ident(a)operator(.)ident(phrase) reserved(else) ident(default) reserved(end) reserved(end) reserved(alias) method(msgid) method(message_id) reserved(alias) method(msgid=) method(message_id=) reserved(alias) method(each_dest) method(each_destination) reserved(end) comment(# address.rb) reserved(class) class(Address) reserved(alias) method(route) method(routes) reserved(alias) method(addr) method(spec) reserved(def) method(spec=)operator(() ident(str) operator(\)) instance_variable(@local)operator(,) instance_variable(@domain) operator(=) ident(str)operator(.)ident(split)operator(()regexpoperator(,)integer(2)operator(\))operator(.)ident(map) operator({)operator(|)ident(s)operator(|) ident(s)operator(.)ident(split)operator(()regexpoperator(\)) operator(}) reserved(end) reserved(alias) method(addr=) method(spec=) reserved(alias) method(address=) method(spec=) reserved(end) comment(# mbox.rb) reserved(class) class(MhMailbox) reserved(alias) method(new_mail) method(new_port) reserved(alias) method(each_mail) method(each_port) reserved(alias) method(each_newmail) method(each_new_port) reserved(end) reserved(class) class(UNIXMbox) reserved(alias) method(new_mail) method(new_port) reserved(alias) method(each_mail) method(each_port) reserved(alias) method(each_newmail) method(each_new_port) reserved(end) reserved(class) class(Maildir) reserved(alias) method(new_mail) method(new_port) reserved(alias) method(each_mail) method(each_port) reserved(alias) method(each_newmail) method(each_new_port) reserved(end) comment(# utils.rb) ident(extend) constant(TextUtils) reserved(class) operator(<<) class(self) reserved(alias) method(msgid?) method(message_id?) reserved(alias) method(boundary) method(new_boundary) reserved(alias) method(msgid) method(new_message_id) reserved(alias) method(new_msgid) method(new_message_id) reserved(end) reserved(def) constant(Mail)operator(.)method(boundary) operator(::)constant(TMail)operator(.)ident(new_boundary) reserved(end) reserved(def) constant(Mail)operator(.)method(msgid) operator(::)constant(TMail)operator(.)ident(new_message_id) reserved(end) reserved(end) comment(# module TMail) comment(#) comment(# DO NOT MODIFY!!!!) comment(# This file is automatically generated by racc 1.4.3) comment(# from racc grammer file "parser.y".) comment(#) comment(#) comment(# parser.rb: generated by racc (runtime embedded\)) comment(#) comment(###### racc/parser.rb) reserved(unless) global_variable($")operator(.)ident(index) string global_variable($")operator(.)ident(push) string pre_constant(self)operator(.)ident(class)operator(.)ident(module_eval) stringoperator(,) stringoperator(,) integer(1)string # # This program is free software. # You can distribute/modify this program under the same terms of ruby. # # As a special exception, when this code is copied by Racc # into a Racc output file, you may use that output file # without restriction. # # $Id: parser.rb,v 1.1.1.1 2004/10/14 11:59:58 webster132 Exp $ # unless defined? NotImplementedError NotImplementedError = NotImplementError end module Racc class ParseError < StandardError; end end unless defined?(::ParseError\) ParseError = Racc::ParseError end module Racc unless defined? Racc_No_Extentions Racc_No_Extentions = false end class Parser Racc_Runtime_Version = '1.4.3' Racc_Runtime_Revision = '$Revision: 1.1.1.1 $'.split(/)content(\\s)content(+/\)[1] Racc_Runtime_Core_Version_R = '1.4.3' Racc_Runtime_Core_Revision_R = '$Revision: 1.1.1.1 $'.split(/)content(\\s)content(+/\)[1] begin require 'racc/cparse' # Racc_Runtime_Core_Version_C = (defined in extention\) Racc_Runtime_Core_Revision_C = Racc_Runtime_Core_Id_C.split(/)content(\\s)content(+/\)[2] unless new.respond_to?(:_racc_do_parse_c, true\) raise LoadError, 'old cparse.so' end if Racc_No_Extentions raise LoadError, 'selecting ruby version of racc runtime core' end Racc_Main_Parsing_Routine = :_racc_do_parse_c Racc_YY_Parse_Method = :_racc_yyparse_c Racc_Runtime_Core_Version = Racc_Runtime_Core_Version_C Racc_Runtime_Core_Revision = Racc_Runtime_Core_Revision_C Racc_Runtime_Type = 'c' rescue LoadError Racc_Main_Parsing_Routine = :_racc_do_parse_rb Racc_YY_Parse_Method = :_racc_yyparse_rb Racc_Runtime_Core_Version = Racc_Runtime_Core_Version_R Racc_Runtime_Core_Revision = Racc_Runtime_Core_Revision_R Racc_Runtime_Type = 'ruby' end def self.racc_runtime_type Racc_Runtime_Type end private def _racc_setup @yydebug = false unless self.class::Racc_debug_parser @yydebug = false unless defined? @yydebug if @yydebug @racc_debug_out = $stderr unless defined? @racc_debug_out @racc_debug_out ||= $stderr end arg = self.class::Racc_arg arg[13] = true if arg.size < 14 arg end def _racc_init_sysvars @racc_state = [0] @racc_tstack = [] @racc_vstack = [] @racc_t = nil @racc_val = nil @racc_read_next = true @racc_user_yyerror = false @racc_error_status = 0 end ### ### do_parse ### def do_parse __send__ Racc_Main_Parsing_Routine, _racc_setup(\), false end def next_token raise NotImplementedError, "#{self.class})content(\\#)content(next_token is not defined" end def _racc_do_parse_rb( arg, in_debug \) action_table, action_check, action_default, action_pointer, goto_table, goto_check, goto_default, goto_pointer, nt_base, reduce_table, token_table, shift_n, reduce_n, use_result, * = arg _racc_init_sysvars tok = act = i = nil nerr = 0 catch(:racc_end_parse\) { while true if i = action_pointer[@racc_state[-1]] if @racc_read_next if @racc_t != 0 # not EOF tok, @racc_val = next_token(\) unless tok # EOF @racc_t = 0 else @racc_t = (token_table[tok] or 1\) # error token end racc_read_token(@racc_t, tok, @racc_val\) if @yydebug @racc_read_next = false end end i += @racc_t if i >= 0 and act = action_table[i] and action_check[i] == @racc_state[-1] ; else act = action_default[@racc_state[-1]] end else act = action_default[@racc_state[-1]] end while act = _racc_evalact(act, arg\) end end } end ### ### yyparse ### def yyparse( recv, mid \) __send__ Racc_YY_Parse_Method, recv, mid, _racc_setup(\), true end def _racc_yyparse_rb( recv, mid, arg, c_debug \) action_table, action_check, action_default, action_pointer, goto_table, goto_check, goto_default, goto_pointer, nt_base, reduce_table, token_table, shift_n, reduce_n, use_result, * = arg _racc_init_sysvars tok = nil act = nil i = nil nerr = 0 catch(:racc_end_parse\) { until i = action_pointer[@racc_state[-1]] while act = _racc_evalact(action_default[@racc_state[-1]], arg\) end end recv.__send__(mid\) do |tok, val| # $stderr.puts "rd: tok=#{tok}, val=#{val}" unless tok @racc_t = 0 else @racc_t = (token_table[tok] or 1\) # error token end @racc_val = val @racc_read_next = false i += @racc_t if i >= 0 and act = action_table[i] and action_check[i] == @racc_state[-1] ; # $stderr.puts "01: act=#{act}" else act = action_default[@racc_state[-1]] # $stderr.puts "02: act=#{act}" # $stderr.puts "curstate=#{@racc_state[-1]}" end while act = _racc_evalact(act, arg\) end while not (i = action_pointer[@racc_state[-1]]\) or not @racc_read_next or @racc_t == 0 # $ if i and i += @racc_t and i >= 0 and act = action_table[i] and action_check[i] == @racc_state[-1] ; # $stderr.puts "03: act=#{act}" else # $stderr.puts "04: act=#{act}" act = action_default[@racc_state[-1]] end while act = _racc_evalact(act, arg\) end end end } end ### ### common ### def _racc_evalact( act, arg \) # $stderr.puts "ea: act=#{act}" action_table, action_check, action_default, action_pointer, goto_table, goto_check, goto_default, goto_pointer, nt_base, reduce_table, token_table, shift_n, reduce_n, use_result, * = arg nerr = 0 # tmp if act > 0 and act < shift_n # # shift # if @racc_error_status > 0 @racc_error_status -= 1 unless @racc_t == 1 # error token end @racc_vstack.push @racc_val @racc_state.push act @racc_read_next = true if @yydebug @racc_tstack.push @racc_t racc_shift @racc_t, @racc_tstack, @racc_vstack end elsif act < 0 and act > -reduce_n # # reduce # code = catch(:racc_jump\) { @racc_state.push _racc_do_reduce(arg, act\) false } if code case code when 1 # yyerror @racc_user_yyerror = true # user_yyerror return -reduce_n when 2 # yyaccept return shift_n else raise RuntimeError, '[Racc Bug] unknown jump code' end end elsif act == shift_n # # accept # racc_accept if @yydebug throw :racc_end_parse, @racc_vstack[0] elsif act == -reduce_n # # error # case @racc_error_status when 0 unless arg[21] # user_yyerror nerr += 1 on_error @racc_t, @racc_val, @racc_vstack end when 3 if @racc_t == 0 # is $ throw :racc_end_parse, nil end @racc_read_next = true end @racc_user_yyerror = false @racc_error_status = 3 while true if i = action_pointer[@racc_state[-1]] i += 1 # error token if i >= 0 and (act = action_table[i]\) and action_check[i] == @racc_state[-1] break end end throw :racc_end_parse, nil if @racc_state.size < 2 @racc_state.pop @racc_vstack.pop if @yydebug @racc_tstack.pop racc_e_pop @racc_state, @racc_tstack, @racc_vstack end end return act else raise RuntimeError, "[Racc Bug] unknown action #{act.inspect}" end racc_next_state(@racc_state[-1], @racc_state\) if @yydebug nil end def _racc_do_reduce( arg, act \) action_table, action_check, action_default, action_pointer, goto_table, goto_check, goto_default, goto_pointer, nt_base, reduce_table, token_table, shift_n, reduce_n, use_result, * = arg state = @racc_state vstack = @racc_vstack tstack = @racc_tstack i = act * -3 len = reduce_table[i] reduce_to = reduce_table[i+1] method_id = reduce_table[i+2] void_array = [] tmp_t = tstack[-len, len] if @yydebug tmp_v = vstack[-len, len] tstack[-len, len] = void_array if @yydebug vstack[-len, len] = void_array state[-len, len] = void_array # tstack must be updated AFTER method call if use_result vstack.push __send__(method_id, tmp_v, vstack, tmp_v[0]\) else vstack.push __send__(method_id, tmp_v, vstack\) end tstack.push reduce_to racc_reduce(tmp_t, reduce_to, tstack, vstack\) if @yydebug k1 = reduce_to - nt_base if i = goto_pointer[k1] i += state[-1] if i >= 0 and (curstate = goto_table[i]\) and goto_check[i] == k1 return curstate end end goto_default[k1] end def on_error( t, val, vstack \) raise ParseError, sprintf(")content(\\n)content(parse error on value %s (%s\)", val.inspect, token_to_str(t\) || '?'\) end def yyerror throw :racc_jump, 1 end def yyaccept throw :racc_jump, 2 end def yyerrok @racc_error_status = 0 end # for debugging output def racc_read_token( t, tok, val \) @racc_debug_out.print 'read ' @racc_debug_out.print tok.inspect, '(', racc_token2str(t\), '\) ' @racc_debug_out.puts val.inspect @racc_debug_out.puts end def racc_shift( tok, tstack, vstack \) @racc_debug_out.puts "shift #{racc_token2str tok}" racc_print_stacks tstack, vstack @racc_debug_out.puts end def racc_reduce( toks, sim, tstack, vstack \) out = @racc_debug_out out.print 'reduce ' if toks.empty? out.print ' ' else toks.each {|t| out.print ' ', racc_token2str(t\) } end out.puts " --> #{racc_token2str(sim\)}" racc_print_stacks tstack, vstack @racc_debug_out.puts end def racc_accept @racc_debug_out.puts 'accept' @racc_debug_out.puts end def racc_e_pop( state, tstack, vstack \) @racc_debug_out.puts 'error recovering mode: pop token' racc_print_states state racc_print_stacks tstack, vstack @racc_debug_out.puts end def racc_next_state( curstate, state \) @racc_debug_out.puts "goto #{curstate}" racc_print_states state @racc_debug_out.puts end def racc_print_stacks( t, v \) out = @racc_debug_out out.print ' [' t.each_index do |i| out.print ' (', racc_token2str(t[i]\), ' ', v[i].inspect, '\)' end out.puts ' ]' end def racc_print_states( s \) out = @racc_debug_out out.print ' [' s.each {|st| out.print ' ', st } out.puts ' ]' end def racc_token2str( tok \) self.class::Racc_token_to_s_table[tok] or raise RuntimeError, "[Racc Bug] can't convert token #{tok} to string" end def token_to_str( t \) self.class::Racc_token_to_s_table[t] end end end)delimiter( ..end /home/aamine/lib/ruby/racc/parser.rb modeval..idb76f2e220d)> reserved(end) comment(# end of racc/parser.rb) comment(#) comment(# parser.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string ident(require) string reserved(module) class(TMail) reserved(class) class(Parser) operator(<) constant(Racc)operator(::)constant(Parser) ident(module_eval) stringoperator(,) stringoperator(,) integer(331)string comment(##### racc 1.4.3 generates ###) ident(racc_reduce_table) operator(=) operator([) integer(0)operator(,) integer(0)operator(,) symbol(:racc_error)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_1)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_2)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_3)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_4)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_5)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_6)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_7)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_8)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_9)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_10)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_11)operator(,) integer(2)operator(,) integer(35)operator(,) symbol(:_reduce_12)operator(,) integer(6)operator(,) integer(36)operator(,) symbol(:_reduce_13)operator(,) integer(0)operator(,) integer(48)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(48)operator(,) symbol(:_reduce_none)operator(,) integer(3)operator(,) integer(49)operator(,) symbol(:_reduce_16)operator(,) integer(5)operator(,) integer(49)operator(,) symbol(:_reduce_17)operator(,) integer(1)operator(,) integer(50)operator(,) symbol(:_reduce_18)operator(,) integer(7)operator(,) integer(37)operator(,) symbol(:_reduce_19)operator(,) integer(0)operator(,) integer(51)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(51)operator(,) symbol(:_reduce_21)operator(,) integer(0)operator(,) integer(52)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(52)operator(,) symbol(:_reduce_23)operator(,) integer(1)operator(,) integer(58)operator(,) symbol(:_reduce_24)operator(,) integer(3)operator(,) integer(58)operator(,) symbol(:_reduce_25)operator(,) integer(2)operator(,) integer(58)operator(,) symbol(:_reduce_26)operator(,) integer(0)operator(,) integer(53)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(53)operator(,) symbol(:_reduce_28)operator(,) integer(0)operator(,) integer(54)operator(,) symbol(:_reduce_29)operator(,) integer(3)operator(,) integer(54)operator(,) symbol(:_reduce_30)operator(,) integer(0)operator(,) integer(55)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(55)operator(,) symbol(:_reduce_32)operator(,) integer(2)operator(,) integer(55)operator(,) symbol(:_reduce_33)operator(,) integer(0)operator(,) integer(56)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(56)operator(,) symbol(:_reduce_35)operator(,) integer(1)operator(,) integer(61)operator(,) symbol(:_reduce_36)operator(,) integer(1)operator(,) integer(61)operator(,) symbol(:_reduce_37)operator(,) integer(0)operator(,) integer(57)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(57)operator(,) symbol(:_reduce_39)operator(,) integer(1)operator(,) integer(38)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(38)operator(,) symbol(:_reduce_none)operator(,) integer(3)operator(,) integer(38)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(46)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(46)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(46)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(39)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(39)operator(,) symbol(:_reduce_47)operator(,) integer(1)operator(,) integer(64)operator(,) symbol(:_reduce_48)operator(,) integer(3)operator(,) integer(64)operator(,) symbol(:_reduce_49)operator(,) integer(1)operator(,) integer(68)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(68)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(69)operator(,) symbol(:_reduce_52)operator(,) integer(3)operator(,) integer(69)operator(,) symbol(:_reduce_53)operator(,) integer(1)operator(,) integer(47)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(47)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(47)operator(,) symbol(:_reduce_56)operator(,) integer(2)operator(,) integer(67)operator(,) symbol(:_reduce_none)operator(,) integer(3)operator(,) integer(65)operator(,) symbol(:_reduce_58)operator(,) integer(2)operator(,) integer(65)operator(,) symbol(:_reduce_59)operator(,) integer(1)operator(,) integer(70)operator(,) symbol(:_reduce_60)operator(,) integer(2)operator(,) integer(70)operator(,) symbol(:_reduce_61)operator(,) integer(4)operator(,) integer(62)operator(,) symbol(:_reduce_62)operator(,) integer(3)operator(,) integer(62)operator(,) symbol(:_reduce_63)operator(,) integer(2)operator(,) integer(72)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(73)operator(,) symbol(:_reduce_65)operator(,) integer(4)operator(,) integer(73)operator(,) symbol(:_reduce_66)operator(,) integer(3)operator(,) integer(63)operator(,) symbol(:_reduce_67)operator(,) integer(1)operator(,) integer(63)operator(,) symbol(:_reduce_68)operator(,) integer(1)operator(,) integer(74)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(74)operator(,) symbol(:_reduce_70)operator(,) integer(1)operator(,) integer(71)operator(,) symbol(:_reduce_71)operator(,) integer(3)operator(,) integer(71)operator(,) symbol(:_reduce_72)operator(,) integer(1)operator(,) integer(59)operator(,) symbol(:_reduce_73)operator(,) integer(3)operator(,) integer(59)operator(,) symbol(:_reduce_74)operator(,) integer(1)operator(,) integer(76)operator(,) symbol(:_reduce_75)operator(,) integer(2)operator(,) integer(76)operator(,) symbol(:_reduce_76)operator(,) integer(1)operator(,) integer(75)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(75)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(75)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(77)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(77)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(77)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(66)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(66)operator(,) symbol(:_reduce_none)operator(,) integer(3)operator(,) integer(60)operator(,) symbol(:_reduce_85)operator(,) integer(1)operator(,) integer(40)operator(,) symbol(:_reduce_86)operator(,) integer(3)operator(,) integer(40)operator(,) symbol(:_reduce_87)operator(,) integer(1)operator(,) integer(79)operator(,) symbol(:_reduce_none)operator(,) integer(2)operator(,) integer(79)operator(,) symbol(:_reduce_89)operator(,) integer(1)operator(,) integer(41)operator(,) symbol(:_reduce_90)operator(,) integer(2)operator(,) integer(41)operator(,) symbol(:_reduce_91)operator(,) integer(3)operator(,) integer(42)operator(,) symbol(:_reduce_92)operator(,) integer(5)operator(,) integer(43)operator(,) symbol(:_reduce_93)operator(,) integer(3)operator(,) integer(43)operator(,) symbol(:_reduce_94)operator(,) integer(0)operator(,) integer(80)operator(,) symbol(:_reduce_95)operator(,) integer(5)operator(,) integer(80)operator(,) symbol(:_reduce_96)operator(,) integer(1)operator(,) integer(82)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(82)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(44)operator(,) symbol(:_reduce_99)operator(,) integer(3)operator(,) integer(45)operator(,) symbol(:_reduce_100)operator(,) integer(0)operator(,) integer(81)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(81)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(78)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(78)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(78)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(78)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(78)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(78)operator(,) symbol(:_reduce_none)operator(,) integer(1)operator(,) integer(78)operator(,) symbol(:_reduce_none) operator(]) ident(racc_reduce_n) operator(=) integer(110) ident(racc_shift_n) operator(=) integer(168) ident(racc_action_table) operator(=) operator([) integer(-70)operator(,) integer(-69)operator(,) integer(23)operator(,) integer(25)operator(,) integer(146)operator(,) integer(147)operator(,) integer(29)operator(,) integer(31)operator(,) integer(105)operator(,) integer(106)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(136)operator(,) integer(27)operator(,) integer(-70)operator(,) integer(-69)operator(,) integer(32)operator(,) integer(101)operator(,) integer(-70)operator(,) integer(-69)operator(,) integer(154)operator(,) integer(100)operator(,) integer(113)operator(,) integer(115)operator(,) integer(-70)operator(,) integer(-69)operator(,) integer(-70)operator(,) integer(109)operator(,) integer(75)operator(,) integer(23)operator(,) integer(25)operator(,) integer(101)operator(,) integer(155)operator(,) integer(29)operator(,) integer(31)operator(,) integer(142)operator(,) integer(143)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(107)operator(,) integer(27)operator(,) integer(23)operator(,) integer(25)operator(,) integer(32)operator(,) integer(98)operator(,) integer(29)operator(,) integer(31)operator(,) integer(96)operator(,) integer(94)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(78)operator(,) integer(27)operator(,) integer(23)operator(,) integer(25)operator(,) integer(32)operator(,) integer(112)operator(,) integer(29)operator(,) integer(31)operator(,) integer(74)operator(,) integer(91)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(88)operator(,) integer(117)operator(,) integer(92)operator(,) integer(81)operator(,) integer(32)operator(,) integer(23)operator(,) integer(25)operator(,) integer(80)operator(,) integer(123)operator(,) integer(29)operator(,) integer(31)operator(,) integer(100)operator(,) integer(125)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(126)operator(,) integer(23)operator(,) integer(25)operator(,) integer(109)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) integer(91)operator(,) integer(128)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(129)operator(,) integer(27)operator(,) integer(23)operator(,) integer(25)operator(,) integer(32)operator(,) integer(101)operator(,) integer(29)operator(,) integer(31)operator(,) integer(101)operator(,) integer(130)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(79)operator(,) integer(52)operator(,) integer(23)operator(,) integer(25)operator(,) integer(32)operator(,) integer(78)operator(,) integer(29)operator(,) integer(31)operator(,) integer(133)operator(,) integer(78)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(77)operator(,) integer(23)operator(,) integer(25)operator(,) integer(75)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) integer(65)operator(,) integer(62)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(139)operator(,) integer(23)operator(,) integer(25)operator(,) integer(101)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) integer(60)operator(,) integer(100)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(44)operator(,) integer(27)operator(,) integer(101)operator(,) integer(148)operator(,) integer(32)operator(,) integer(23)operator(,) integer(25)operator(,) integer(120)operator(,) integer(149)operator(,) integer(29)operator(,) integer(31)operator(,) integer(152)operator(,) integer(153)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(42)operator(,) integer(27)operator(,) integer(157)operator(,) integer(159)operator(,) integer(32)operator(,) integer(23)operator(,) integer(25)operator(,) integer(120)operator(,) integer(40)operator(,) integer(29)operator(,) integer(31)operator(,) integer(15)operator(,) integer(164)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(40)operator(,) integer(27)operator(,) integer(23)operator(,) integer(25)operator(,) integer(32)operator(,) integer(68)operator(,) integer(29)operator(,) integer(31)operator(,) integer(166)operator(,) integer(167)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(27)operator(,) integer(23)operator(,) integer(25)operator(,) integer(32)operator(,) pre_constant(nil)operator(,) integer(29)operator(,) integer(31)operator(,) integer(74)operator(,) pre_constant(nil)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(23)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(23)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(23)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(23)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(27)operator(,) integer(23)operator(,) integer(25)operator(,) integer(32)operator(,) pre_constant(nil)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(23)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(23)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(84)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) integer(32)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) integer(87)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(4)operator(,) integer(6)operator(,) integer(7)operator(,) integer(8)operator(,) integer(9)operator(,) integer(10)operator(,) integer(11)operator(,) integer(12)operator(,) integer(13)operator(,) integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) integer(84)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) integer(87)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(84)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) integer(87)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(84)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) integer(87)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(84)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) integer(87)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(84)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) integer(87)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22)operator(,) integer(84)operator(,) integer(25)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(29)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) integer(87)operator(,) integer(16)operator(,) integer(17)operator(,) integer(20)operator(,) integer(22) operator(]) ident(racc_action_check) operator(=) operator([) integer(75)operator(,) integer(28)operator(,) integer(68)operator(,) integer(68)operator(,) integer(136)operator(,) integer(136)operator(,) integer(68)operator(,) integer(68)operator(,) integer(72)operator(,) integer(72)operator(,) integer(68)operator(,) integer(68)operator(,) integer(68)operator(,) integer(68)operator(,) integer(126)operator(,) integer(68)operator(,) integer(75)operator(,) integer(28)operator(,) integer(68)operator(,) integer(67)operator(,) integer(75)operator(,) integer(28)operator(,) integer(143)operator(,) integer(66)operator(,) integer(86)operator(,) integer(86)operator(,) integer(75)operator(,) integer(28)operator(,) integer(75)operator(,) integer(75)operator(,) integer(28)operator(,) integer(3)operator(,) integer(3)operator(,) integer(86)operator(,) integer(143)operator(,) integer(3)operator(,) integer(3)operator(,) integer(134)operator(,) integer(134)operator(,) integer(3)operator(,) integer(3)operator(,) integer(3)operator(,) integer(3)operator(,) integer(73)operator(,) integer(3)operator(,) integer(152)operator(,) integer(152)operator(,) integer(3)operator(,) integer(62)operator(,) integer(152)operator(,) integer(152)operator(,) integer(60)operator(,) integer(56)operator(,) integer(152)operator(,) integer(152)operator(,) integer(152)operator(,) integer(152)operator(,) integer(51)operator(,) integer(152)operator(,) integer(52)operator(,) integer(52)operator(,) integer(152)operator(,) integer(80)operator(,) integer(52)operator(,) integer(52)operator(,) integer(52)operator(,) integer(50)operator(,) integer(52)operator(,) integer(52)operator(,) integer(52)operator(,) integer(52)operator(,) integer(45)operator(,) integer(89)operator(,) integer(52)operator(,) integer(42)operator(,) integer(52)operator(,) integer(71)operator(,) integer(71)operator(,) integer(41)operator(,) integer(96)operator(,) integer(71)operator(,) integer(71)operator(,) integer(97)operator(,) integer(98)operator(,) integer(71)operator(,) integer(71)operator(,) integer(71)operator(,) integer(71)operator(,) integer(100)operator(,) integer(7)operator(,) integer(7)operator(,) integer(101)operator(,) integer(71)operator(,) integer(7)operator(,) integer(7)operator(,) integer(102)operator(,) integer(104)operator(,) integer(7)operator(,) integer(7)operator(,) integer(7)operator(,) integer(7)operator(,) integer(105)operator(,) integer(7)operator(,) integer(8)operator(,) integer(8)operator(,) integer(7)operator(,) integer(108)operator(,) integer(8)operator(,) integer(8)operator(,) integer(111)operator(,) integer(112)operator(,) integer(8)operator(,) integer(8)operator(,) integer(8)operator(,) integer(8)operator(,) integer(40)operator(,) integer(8)operator(,) integer(9)operator(,) integer(9)operator(,) integer(8)operator(,) integer(36)operator(,) integer(9)operator(,) integer(9)operator(,) integer(117)operator(,) integer(121)operator(,) integer(9)operator(,) integer(9)operator(,) integer(9)operator(,) integer(9)operator(,) integer(33)operator(,) integer(10)operator(,) integer(10)operator(,) integer(70)operator(,) integer(9)operator(,) integer(10)operator(,) integer(10)operator(,) integer(13)operator(,) integer(12)operator(,) integer(10)operator(,) integer(10)operator(,) integer(10)operator(,) integer(10)operator(,) integer(130)operator(,) integer(2)operator(,) integer(2)operator(,) integer(131)operator(,) integer(10)operator(,) integer(2)operator(,) integer(2)operator(,) integer(11)operator(,) integer(135)operator(,) integer(2)operator(,) integer(2)operator(,) integer(2)operator(,) integer(2)operator(,) integer(6)operator(,) integer(2)operator(,) integer(138)operator(,) integer(139)operator(,) integer(2)operator(,) integer(90)operator(,) integer(90)operator(,) integer(90)operator(,) integer(140)operator(,) integer(90)operator(,) integer(90)operator(,) integer(141)operator(,) integer(142)operator(,) integer(90)operator(,) integer(90)operator(,) integer(90)operator(,) integer(90)operator(,) integer(5)operator(,) integer(90)operator(,) integer(148)operator(,) integer(151)operator(,) integer(90)operator(,) integer(127)operator(,) integer(127)operator(,) integer(127)operator(,) integer(4)operator(,) integer(127)operator(,) integer(127)operator(,) integer(1)operator(,) integer(157)operator(,) integer(127)operator(,) integer(127)operator(,) integer(127)operator(,) integer(127)operator(,) integer(159)operator(,) integer(127)operator(,) integer(26)operator(,) integer(26)operator(,) integer(127)operator(,) integer(26)operator(,) integer(26)operator(,) integer(26)operator(,) integer(163)operator(,) integer(164)operator(,) integer(26)operator(,) integer(26)operator(,) integer(26)operator(,) integer(26)operator(,) pre_constant(nil)operator(,) integer(26)operator(,) integer(27)operator(,) integer(27)operator(,) integer(26)operator(,) pre_constant(nil)operator(,) integer(27)operator(,) integer(27)operator(,) integer(27)operator(,) pre_constant(nil)operator(,) integer(27)operator(,) integer(27)operator(,) integer(27)operator(,) integer(27)operator(,) pre_constant(nil)operator(,) integer(155)operator(,) integer(155)operator(,) pre_constant(nil)operator(,) integer(27)operator(,) integer(155)operator(,) integer(155)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(155)operator(,) integer(155)operator(,) integer(155)operator(,) integer(155)operator(,) pre_constant(nil)operator(,) integer(122)operator(,) integer(122)operator(,) pre_constant(nil)operator(,) integer(155)operator(,) integer(122)operator(,) integer(122)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(122)operator(,) integer(122)operator(,) integer(122)operator(,) integer(122)operator(,) pre_constant(nil)operator(,) integer(76)operator(,) integer(76)operator(,) pre_constant(nil)operator(,) integer(122)operator(,) integer(76)operator(,) integer(76)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(76)operator(,) integer(76)operator(,) integer(76)operator(,) integer(76)operator(,) pre_constant(nil)operator(,) integer(38)operator(,) integer(38)operator(,) pre_constant(nil)operator(,) integer(76)operator(,) integer(38)operator(,) integer(38)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(38)operator(,) integer(38)operator(,) integer(38)operator(,) integer(38)operator(,) pre_constant(nil)operator(,) integer(38)operator(,) integer(55)operator(,) integer(55)operator(,) integer(38)operator(,) pre_constant(nil)operator(,) integer(55)operator(,) integer(55)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(55)operator(,) integer(55)operator(,) integer(55)operator(,) integer(55)operator(,) pre_constant(nil)operator(,) integer(94)operator(,) integer(94)operator(,) pre_constant(nil)operator(,) integer(55)operator(,) integer(94)operator(,) integer(94)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(94)operator(,) integer(94)operator(,) integer(94)operator(,) integer(94)operator(,) pre_constant(nil)operator(,) integer(59)operator(,) integer(59)operator(,) pre_constant(nil)operator(,) integer(94)operator(,) integer(59)operator(,) integer(59)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(59)operator(,) integer(59)operator(,) integer(59)operator(,) integer(59)operator(,) pre_constant(nil)operator(,) integer(114)operator(,) integer(114)operator(,) pre_constant(nil)operator(,) integer(59)operator(,) integer(114)operator(,) integer(114)operator(,) pre_constant(nil)operator(,) integer(114)operator(,) integer(114)operator(,) integer(114)operator(,) integer(114)operator(,) integer(114)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(77)operator(,) integer(77)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(77)operator(,) integer(77)operator(,) pre_constant(nil)operator(,) integer(77)operator(,) integer(77)operator(,) integer(77)operator(,) integer(77)operator(,) integer(77)operator(,) integer(44)operator(,) integer(44)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(44)operator(,) integer(44)operator(,) pre_constant(nil)operator(,) integer(44)operator(,) integer(44)operator(,) integer(44)operator(,) integer(44)operator(,) integer(44)operator(,) integer(113)operator(,) integer(113)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(113)operator(,) integer(113)operator(,) pre_constant(nil)operator(,) integer(113)operator(,) integer(113)operator(,) integer(113)operator(,) integer(113)operator(,) integer(113)operator(,) integer(88)operator(,) integer(88)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(88)operator(,) integer(88)operator(,) pre_constant(nil)operator(,) integer(88)operator(,) integer(88)operator(,) integer(88)operator(,) integer(88)operator(,) integer(88)operator(,) integer(74)operator(,) integer(74)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(74)operator(,) integer(74)operator(,) pre_constant(nil)operator(,) integer(74)operator(,) integer(74)operator(,) integer(74)operator(,) integer(74)operator(,) integer(74)operator(,) integer(129)operator(,) integer(129)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(129)operator(,) integer(129)operator(,) pre_constant(nil)operator(,) integer(129)operator(,) integer(129)operator(,) integer(129)operator(,) integer(129)operator(,) integer(129) operator(]) ident(racc_action_pointer) operator(=) operator([) integer(320)operator(,) integer(152)operator(,) integer(129)operator(,) integer(17)operator(,) integer(165)operator(,) integer(172)operator(,) integer(137)operator(,) integer(75)operator(,) integer(89)operator(,) integer(103)operator(,) integer(116)operator(,) integer(135)operator(,) integer(106)operator(,) integer(105)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(177)operator(,) integer(191)operator(,) integer(1)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(109)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(94)operator(,) pre_constant(nil)operator(,) integer(243)operator(,) pre_constant(nil)operator(,) integer(99)operator(,) integer(64)operator(,) integer(74)operator(,) pre_constant(nil)operator(,) integer(332)operator(,) integer(52)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(50)operator(,) integer(31)operator(,) integer(45)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(257)operator(,) integer(36)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(283)operator(,) integer(22)operator(,) pre_constant(nil)operator(,) integer(16)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(-3)operator(,) integer(-10)operator(,) integer(-12)operator(,) pre_constant(nil)operator(,) integer(103)operator(,) integer(62)operator(,) integer(-8)operator(,) integer(15)operator(,) integer(368)operator(,) integer(0)operator(,) integer(230)operator(,) integer(320)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(47)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(4)operator(,) pre_constant(nil)operator(,) integer(356)operator(,) integer(50)operator(,) integer(146)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(270)operator(,) pre_constant(nil)operator(,) integer(65)operator(,) integer(56)operator(,) integer(52)operator(,) pre_constant(nil)operator(,) integer(57)operator(,) integer(62)operator(,) integer(79)operator(,) pre_constant(nil)operator(,) integer(68)operator(,) integer(81)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(77)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(80)operator(,) integer(96)operator(,) integer(344)operator(,) integer(296)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(108)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(98)operator(,) integer(217)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(-19)operator(,) integer(163)operator(,) pre_constant(nil)operator(,) integer(380)operator(,) integer(128)operator(,) integer(116)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(14)operator(,) integer(124)operator(,) integer(-26)operator(,) pre_constant(nil)operator(,) integer(128)operator(,) integer(141)operator(,) integer(148)operator(,) integer(141)operator(,) integer(152)operator(,) integer(7)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(160)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(149)operator(,) integer(31)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(204)operator(,) pre_constant(nil)operator(,) integer(167)operator(,) pre_constant(nil)operator(,) integer(174)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(169)operator(,) integer(184)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil) operator(]) ident(racc_action_default) operator(=) operator([) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-14)operator(,) integer(-110)operator(,) integer(-20)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-10)operator(,) integer(-95)operator(,) integer(-106)operator(,) integer(-107)operator(,) integer(-77)operator(,) integer(-44)operator(,) integer(-108)operator(,) integer(-11)operator(,) integer(-109)operator(,) integer(-79)operator(,) integer(-43)operator(,) integer(-103)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-60)operator(,) integer(-104)operator(,) integer(-55)operator(,) integer(-105)operator(,) integer(-78)operator(,) integer(-68)operator(,) integer(-54)operator(,) integer(-71)operator(,) integer(-45)operator(,) integer(-12)operator(,) integer(-110)operator(,) integer(-1)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-2)operator(,) integer(-110)operator(,) integer(-22)operator(,) integer(-51)operator(,) integer(-48)operator(,) integer(-50)operator(,) integer(-3)operator(,) integer(-40)operator(,) integer(-41)operator(,) integer(-110)operator(,) integer(-46)operator(,) integer(-4)operator(,) integer(-86)operator(,) integer(-5)operator(,) integer(-88)operator(,) integer(-6)operator(,) integer(-90)operator(,) integer(-110)operator(,) integer(-7)operator(,) integer(-95)operator(,) integer(-8)operator(,) integer(-9)operator(,) integer(-99)operator(,) integer(-101)operator(,) integer(-61)operator(,) integer(-59)operator(,) integer(-56)operator(,) integer(-69)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-75)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-57)operator(,) integer(-15)operator(,) integer(-110)operator(,) integer(168)operator(,) integer(-73)operator(,) integer(-80)operator(,) integer(-82)operator(,) integer(-21)operator(,) integer(-24)operator(,) integer(-81)operator(,) integer(-110)operator(,) integer(-27)operator(,) integer(-110)operator(,) integer(-83)operator(,) integer(-47)operator(,) integer(-89)operator(,) integer(-110)operator(,) integer(-91)operator(,) integer(-110)operator(,) integer(-101)operator(,) integer(-110)operator(,) integer(-100)operator(,) integer(-102)operator(,) integer(-75)operator(,) integer(-58)operator(,) integer(-52)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-64)operator(,) integer(-63)operator(,) integer(-65)operator(,) integer(-76)operator(,) integer(-72)operator(,) integer(-67)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-26)operator(,) integer(-23)operator(,) integer(-110)operator(,) integer(-29)operator(,) integer(-49)operator(,) integer(-84)operator(,) integer(-42)operator(,) integer(-87)operator(,) integer(-92)operator(,) integer(-94)operator(,) integer(-95)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-62)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-25)operator(,) integer(-74)operator(,) integer(-28)operator(,) integer(-31)operator(,) integer(-101)operator(,) integer(-110)operator(,) integer(-53)operator(,) integer(-66)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-34)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-93)operator(,) integer(-96)operator(,) integer(-98)operator(,) integer(-97)operator(,) integer(-110)operator(,) integer(-18)operator(,) integer(-13)operator(,) integer(-38)operator(,) integer(-110)operator(,) integer(-30)operator(,) integer(-33)operator(,) integer(-110)operator(,) integer(-32)operator(,) integer(-16)operator(,) integer(-19)operator(,) integer(-14)operator(,) integer(-35)operator(,) integer(-36)operator(,) integer(-37)operator(,) integer(-110)operator(,) integer(-110)operator(,) integer(-39)operator(,) integer(-85)operator(,) integer(-17) operator(]) ident(racc_goto_table) operator(=) operator([) integer(39)operator(,) integer(67)operator(,) integer(70)operator(,) integer(73)operator(,) integer(24)operator(,) integer(37)operator(,) integer(69)operator(,) integer(66)operator(,) integer(36)operator(,) integer(38)operator(,) integer(57)operator(,) integer(59)operator(,) integer(55)operator(,) integer(67)operator(,) integer(108)operator(,) integer(83)operator(,) integer(90)operator(,) integer(111)operator(,) integer(69)operator(,) integer(99)operator(,) integer(85)operator(,) integer(49)operator(,) integer(53)operator(,) integer(76)operator(,) integer(158)operator(,) integer(134)operator(,) integer(141)operator(,) integer(70)operator(,) integer(73)operator(,) integer(151)operator(,) integer(118)operator(,) integer(89)operator(,) integer(45)operator(,) integer(156)operator(,) integer(160)operator(,) integer(150)operator(,) integer(140)operator(,) integer(21)operator(,) integer(14)operator(,) integer(19)operator(,) integer(119)operator(,) integer(102)operator(,) integer(64)operator(,) integer(63)operator(,) integer(61)operator(,) integer(83)operator(,) integer(70)operator(,) integer(104)operator(,) integer(83)operator(,) integer(58)operator(,) integer(124)operator(,) integer(132)operator(,) integer(56)operator(,) integer(131)operator(,) integer(97)operator(,) integer(54)operator(,) integer(93)operator(,) integer(43)operator(,) integer(5)operator(,) integer(83)operator(,) integer(95)operator(,) integer(145)operator(,) integer(76)operator(,) pre_constant(nil)operator(,) integer(116)operator(,) integer(76)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(127)operator(,) integer(138)operator(,) integer(103)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(38)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(110)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(83)operator(,) integer(83)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(144)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(57)operator(,) integer(121)operator(,) integer(122)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(83)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(135)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(93)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(70)operator(,) integer(162)operator(,) integer(137)operator(,) integer(70)operator(,) integer(163)operator(,) integer(161)operator(,) integer(38)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(165) operator(]) ident(racc_goto_check) operator(=) operator([) integer(2)operator(,) integer(37)operator(,) integer(37)operator(,) integer(29)operator(,) integer(13)operator(,) integer(13)operator(,) integer(28)operator(,) integer(46)operator(,) integer(31)operator(,) integer(36)operator(,) integer(41)operator(,) integer(41)operator(,) integer(45)operator(,) integer(37)operator(,) integer(25)operator(,) integer(44)operator(,) integer(32)operator(,) integer(25)operator(,) integer(28)operator(,) integer(47)operator(,) integer(24)operator(,) integer(4)operator(,) integer(4)operator(,) integer(42)operator(,) integer(23)operator(,) integer(20)operator(,) integer(21)operator(,) integer(37)operator(,) integer(29)operator(,) integer(22)operator(,) integer(19)operator(,) integer(18)operator(,) integer(17)operator(,) integer(26)operator(,) integer(27)operator(,) integer(16)operator(,) integer(15)operator(,) integer(12)operator(,) integer(11)operator(,) integer(33)operator(,) integer(34)operator(,) integer(35)operator(,) integer(10)operator(,) integer(9)operator(,) integer(8)operator(,) integer(44)operator(,) integer(37)operator(,) integer(29)operator(,) integer(44)operator(,) integer(7)operator(,) integer(47)operator(,) integer(43)operator(,) integer(6)operator(,) integer(25)operator(,) integer(46)operator(,) integer(5)operator(,) integer(41)operator(,) integer(3)operator(,) integer(1)operator(,) integer(44)operator(,) integer(41)operator(,) integer(48)operator(,) integer(42)operator(,) pre_constant(nil)operator(,) integer(24)operator(,) integer(42)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(32)operator(,) integer(25)operator(,) integer(13)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(36)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(41)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(44)operator(,) integer(44)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(47)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(41)operator(,) integer(31)operator(,) integer(45)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(44)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(46)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(41)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(37)operator(,) integer(29)operator(,) integer(13)operator(,) integer(37)operator(,) integer(29)operator(,) integer(28)operator(,) integer(36)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(2) operator(]) ident(racc_goto_pointer) operator(=) operator([) pre_constant(nil)operator(,) integer(58)operator(,) integer(-4)operator(,) integer(51)operator(,) integer(14)operator(,) integer(47)operator(,) integer(43)operator(,) integer(39)operator(,) integer(33)operator(,) integer(31)operator(,) integer(29)operator(,) integer(37)operator(,) integer(35)operator(,) integer(2)operator(,) pre_constant(nil)operator(,) integer(-94)operator(,) integer(-105)operator(,) integer(26)operator(,) integer(-14)operator(,) integer(-59)operator(,) integer(-93)operator(,) integer(-108)operator(,) integer(-112)operator(,) integer(-127)operator(,) integer(-24)operator(,) integer(-60)operator(,) integer(-110)operator(,) integer(-118)operator(,) integer(-20)operator(,) integer(-24)operator(,) pre_constant(nil)operator(,) integer(6)operator(,) integer(-34)operator(,) integer(37)operator(,) integer(-50)operator(,) integer(-27)operator(,) integer(6)operator(,) integer(-25)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(1)operator(,) integer(-5)operator(,) integer(-63)operator(,) integer(-29)operator(,) integer(3)operator(,) integer(-8)operator(,) integer(-47)operator(,) integer(-75) operator(]) ident(racc_goto_default) operator(=) operator([) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(48)operator(,) integer(41)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(86)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) integer(30)operator(,) integer(34)operator(,) integer(50)operator(,) integer(51)operator(,) pre_constant(nil)operator(,) integer(46)operator(,) integer(47)operator(,) pre_constant(nil)operator(,) integer(26)operator(,) integer(28)operator(,) integer(71)operator(,) integer(72)operator(,) integer(33)operator(,) integer(35)operator(,) integer(114)operator(,) integer(82)operator(,) integer(18)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil) operator(]) ident(racc_token_table) operator(=) operator({) pre_constant(false) operator(=)operator(>) integer(0)operator(,) constant(Object)operator(.)ident(new) operator(=)operator(>) integer(1)operator(,) symbol(:DATETIME) operator(=)operator(>) integer(2)operator(,) symbol(:RECEIVED) operator(=)operator(>) integer(3)operator(,) symbol(:MADDRESS) operator(=)operator(>) integer(4)operator(,) symbol(:RETPATH) operator(=)operator(>) integer(5)operator(,) symbol(:KEYWORDS) operator(=)operator(>) integer(6)operator(,) symbol(:ENCRYPTED) operator(=)operator(>) integer(7)operator(,) symbol(:MIMEVERSION) operator(=)operator(>) integer(8)operator(,) symbol(:CTYPE) operator(=)operator(>) integer(9)operator(,) symbol(:CENCODING) operator(=)operator(>) integer(10)operator(,) symbol(:CDISPOSITION) operator(=)operator(>) integer(11)operator(,) symbol(:ADDRESS) operator(=)operator(>) integer(12)operator(,) symbol(:MAILBOX) operator(=)operator(>) integer(13)operator(,) symbol(:DIGIT) operator(=)operator(>) integer(14)operator(,) symbol(:ATOM) operator(=)operator(>) integer(15)operator(,) string operator(=)operator(>) integer(16)operator(,) string operator(=)operator(>) integer(17)operator(,) symbol(:FROM) operator(=)operator(>) integer(18)operator(,) symbol(:BY) operator(=)operator(>) integer(19)operator(,) string operator(=)operator(>) integer(20)operator(,) symbol(:DOMLIT) operator(=)operator(>) integer(21)operator(,) symbol(:VIA) operator(=)operator(>) integer(22)operator(,) symbol(:WITH) operator(=)operator(>) integer(23)operator(,) symbol(:ID) operator(=)operator(>) integer(24)operator(,) symbol(:FOR) operator(=)operator(>) integer(25)operator(,) string operator(=)operator(>) integer(26)operator(,) string operator(=)operator(>) integer(27)operator(,) string)delimiter(")> operator(=)operator(>) integer(28)operator(,) string operator(=)operator(>) integer(29)operator(,) symbol(:QUOTED) operator(=)operator(>) integer(30)operator(,) symbol(:TOKEN) operator(=)operator(>) integer(31)operator(,) string operator(=)operator(>) integer(32)operator(,) string operator(=)operator(>) integer(33) operator(}) ident(racc_use_result_var) operator(=) pre_constant(false) ident(racc_nt_base) operator(=) integer(34) constant(Racc_arg) operator(=) operator([) ident(racc_action_table)operator(,) ident(racc_action_check)operator(,) ident(racc_action_default)operator(,) ident(racc_action_pointer)operator(,) ident(racc_goto_table)operator(,) ident(racc_goto_check)operator(,) ident(racc_goto_default)operator(,) ident(racc_goto_pointer)operator(,) ident(racc_nt_base)operator(,) ident(racc_reduce_table)operator(,) ident(racc_token_table)operator(,) ident(racc_shift_n)operator(,) ident(racc_reduce_n)operator(,) ident(racc_use_result_var) operator(]) constant(Racc_token_to_s_table) operator(=) operator([) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string")delimiter(')>operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(]) constant(Racc_debug_parser) operator(=) pre_constant(false) comment(##### racc system variables end #####) comment(# reduce 0 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(16)string ident(module_eval) stringoperator(,) stringoperator(,) integer(17)string ident(module_eval) stringoperator(,) stringoperator(,) integer(18)string ident(module_eval) stringoperator(,) stringoperator(,) integer(19)string ident(module_eval) stringoperator(,) stringoperator(,) integer(20)string ident(module_eval) stringoperator(,) stringoperator(,) integer(21)string ident(module_eval) stringoperator(,) stringoperator(,) integer(22)string ident(module_eval) stringoperator(,) stringoperator(,) integer(23)string ident(module_eval) stringoperator(,) stringoperator(,) integer(24)string ident(module_eval) stringoperator(,) stringoperator(,) integer(25)string ident(module_eval) stringoperator(,) stringoperator(,) integer(26)string ident(module_eval) stringoperator(,) stringoperator(,) integer(27)string ident(module_eval) stringoperator(,) stringoperator(,) integer(33)string comment(# reduce 14 omitted) comment(# reduce 15 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(42)string ident(module_eval) stringoperator(,) stringoperator(,) integer(47)string ident(module_eval) stringoperator(,) stringoperator(,) integer(54)string ident(module_eval) stringoperator(,) stringoperator(,) integer(59)string comment(# reduce 20 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(65)string comment(# reduce 22 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(71)string ident(module_eval) stringoperator(,) stringoperator(,) integer(77)string ident(module_eval) stringoperator(,) stringoperator(,) integer(81)string ident(module_eval) stringoperator(,) stringoperator(,) integer(85)string comment(# reduce 27 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(91)string ident(module_eval) stringoperator(,) stringoperator(,) integer(96)string ident(module_eval) stringoperator(,) stringoperator(,) integer(100)string comment(# reduce 31 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(107)string ident(module_eval) stringoperator(,) stringoperator(,) integer(111)string comment(# reduce 34 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(117)string ident(module_eval) stringoperator(,) stringoperator(,) integer(123)string ident(module_eval) stringoperator(,) stringoperator(,) integer(127)string comment(# reduce 38 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(134)string comment(# reduce 40 omitted) comment(# reduce 41 omitted) comment(# reduce 42 omitted) comment(# reduce 43 omitted) comment(# reduce 44 omitted) comment(# reduce 45 omitted) comment(# reduce 46 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(146)string ident(module_eval) stringoperator(,) stringoperator(,) integer(148)string ident(module_eval) stringoperator(,) stringoperator(,) integer(149)string comment(# reduce 50 omitted) comment(# reduce 51 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(156)string ident(module_eval) stringoperator(,) stringoperator(,) integer(160)string comment(# reduce 54 omitted) comment(# reduce 55 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(168)string comment(# reduce 57 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(176)string ident(module_eval) stringoperator(,) stringoperator(,) integer(178)string ident(module_eval) stringoperator(,) stringoperator(,) integer(181)string ident(module_eval) stringoperator(,) stringoperator(,) integer(182)string ident(module_eval) stringoperator(,) stringoperator(,) integer(186)string ident(module_eval) stringoperator(,) stringoperator(,) integer(191)string comment(# reduce 64 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(196)string ident(module_eval) stringoperator(,) stringoperator(,) integer(197)string ident(module_eval) stringoperator(,) stringoperator(,) integer(199)string ident(module_eval) stringoperator(,) stringoperator(,) integer(200)string comment(# reduce 69 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(203)string ident(module_eval) stringoperator(,) stringoperator(,) integer(206)string ident(module_eval) stringoperator(,) stringoperator(,) integer(209)string ident(module_eval) stringoperator(,) stringoperator(,) integer(217)string ident(module_eval) stringoperator(,) stringoperator(,) integer(220)string ident(module_eval) stringoperator(,) stringoperator(,) integer(227)string ident(module_eval) stringoperator(,) stringoperator(,) integer(228)string comment(# reduce 77 omitted) comment(# reduce 78 omitted) comment(# reduce 79 omitted) comment(# reduce 80 omitted) comment(# reduce 81 omitted) comment(# reduce 82 omitted) comment(# reduce 83 omitted) comment(# reduce 84 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(243)string ident(module_eval) stringoperator(,) stringoperator(,) integer(247)string ident(module_eval) stringoperator(,) stringoperator(,) integer(248)string comment(# reduce 88 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(251)string ident(module_eval) stringoperator(,) stringoperator(,) integer(255)string ident(module_eval) stringoperator(,) stringoperator(,) integer(260)string ident(module_eval) stringoperator(,) stringoperator(,) integer(265)string ident(module_eval) stringoperator(,) stringoperator(,) integer(270)string ident(module_eval) stringoperator(,) stringoperator(,) integer(274)string ident(module_eval) stringoperator(,) stringoperator(,) integer(279)string ident(module_eval) stringoperator(,) stringoperator(,) integer(283)string comment(# reduce 97 omitted) comment(# reduce 98 omitted) ident(module_eval) stringoperator(,) stringoperator(,) integer(292)string ident(module_eval) stringoperator(,) stringoperator(,) integer(297)string comment(# reduce 101 omitted) comment(# reduce 102 omitted) comment(# reduce 103 omitted) comment(# reduce 104 omitted) comment(# reduce 105 omitted) comment(# reduce 106 omitted) comment(# reduce 107 omitted) comment(# reduce 108 omitted) comment(# reduce 109 omitted) reserved(def) method(_reduce_none)operator(() ident(val)operator(,) ident(_values)operator(\)) ident(val)operator([)integer(0)operator(]) reserved(end) reserved(end) comment(# class Parser) reserved(end) comment(# module TMail) comment(#) comment(# port.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string reserved(module) class(TMail) reserved(class) class(Port) reserved(def) method(reproducible?) pre_constant(false) reserved(end) reserved(end) comment(###) comment(### FilePort) comment(###) reserved(class) class(FilePort) operator(<) constant(Port) reserved(def) method(initialize)operator(() ident(fname) operator(\)) instance_variable(@filename) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(fname)operator(\)) reserved(super)operator(()operator(\)) reserved(end) ident(attr_reader) symbol(:filename) reserved(alias) method(ident) method(filename) reserved(def) method(==)operator(() ident(other) operator(\)) ident(other)operator(.)ident(respond_to?)operator(()symbol(:filename)operator(\)) reserved(and) instance_variable(@filename) operator(==) ident(other)operator(.)ident(filename) reserved(end) reserved(alias) method(eql?) method(==) reserved(def) method(hash) instance_variable(@filename)operator(.)ident(hash) reserved(end) reserved(def) method(inspect) stringcontent(:)inlinecontent(>)delimiter(")> reserved(end) reserved(def) method(reproducible?) pre_constant(true) reserved(end) reserved(def) method(size) constant(File)operator(.)ident(size) instance_variable(@filename) reserved(end) reserved(def) method(ropen)operator(() operator(&)ident(block) operator(\)) constant(File)operator(.)ident(open)operator(()instance_variable(@filename)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(wopen)operator(() operator(&)ident(block) operator(\)) constant(File)operator(.)ident(open)operator(()instance_variable(@filename)operator(,) stringoperator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(aopen)operator(() operator(&)ident(block) operator(\)) constant(File)operator(.)ident(open)operator(()instance_variable(@filename)operator(,) stringoperator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(read_all) ident(ropen) operator({)operator(|)ident(f)operator(|) reserved(return) ident(f)operator(.)ident(read) operator(}) reserved(end) reserved(def) method(remove) constant(File)operator(.)ident(unlink) instance_variable(@filename) reserved(end) reserved(def) method(move_to)operator(() ident(port) operator(\)) reserved(begin) constant(File)operator(.)ident(link) instance_variable(@filename)operator(,) ident(port)operator(.)ident(filename) reserved(rescue) constant(Errno)operator(::)constant(EXDEV) ident(copy_to) ident(port) reserved(end) constant(File)operator(.)ident(unlink) instance_variable(@filename) reserved(end) reserved(alias) method(mv) method(move_to) reserved(def) method(copy_to)operator(() ident(port) operator(\)) reserved(if) constant(FilePort) operator(===) ident(port) ident(copy_file) instance_variable(@filename)operator(,) ident(port)operator(.)ident(filename) reserved(else) constant(File)operator(.)ident(open)operator(()instance_variable(@filename)operator(\)) operator({)operator(|)ident(r)operator(|) ident(port)operator(.)ident(wopen) operator({)operator(|)ident(w)operator(|) reserved(while) ident(s) operator(=) ident(r)operator(.)ident(sysread)operator(()integer(4096)operator(\)) ident(w)operator(.)ident(write) operator(<<) ident(s) reserved(end) operator(}) operator(}) reserved(end) reserved(end) reserved(alias) method(cp) method(copy_to) ident(private) comment(# from fileutils.rb) reserved(def) method(copy_file)operator(() ident(src)operator(,) ident(dest) operator(\)) ident(st) operator(=) ident(r) operator(=) ident(w) operator(=) pre_constant(nil) constant(File)operator(.)ident(open)operator(()ident(src)operator(,) stringoperator(\)) operator({)operator(|)ident(r)operator(|) constant(File)operator(.)ident(open)operator(()ident(dest)operator(,) stringoperator(\)) operator({)operator(|)ident(w)operator(|) ident(st) operator(=) ident(r)operator(.)ident(stat) reserved(begin) reserved(while) pre_constant(true) ident(w)operator(.)ident(write) ident(r)operator(.)ident(sysread)operator(()ident(st)operator(.)ident(blksize)operator(\)) reserved(end) reserved(rescue) constant(EOFError) reserved(end) operator(}) operator(}) reserved(end) reserved(end) reserved(module) class(MailFlags) reserved(def) method(seen=)operator(() ident(b) operator(\)) ident(set_status) stringoperator(,) ident(b) reserved(end) reserved(def) method(seen?) ident(get_status) string reserved(end) reserved(def) method(replied=)operator(() ident(b) operator(\)) ident(set_status) stringoperator(,) ident(b) reserved(end) reserved(def) method(replied?) ident(get_status) string reserved(end) reserved(def) method(flagged=)operator(() ident(b) operator(\)) ident(set_status) stringoperator(,) ident(b) reserved(end) reserved(def) method(flagged?) ident(get_status) string reserved(end) ident(private) reserved(def) method(procinfostr)operator(() ident(str)operator(,) ident(tag)operator(,) ident(true_p) operator(\)) ident(a) operator(=) ident(str)operator(.)ident(upcase)operator(.)ident(split)operator(()regexpoperator(\)) ident(a)operator(.)ident(push) ident(true_p) operator(?) ident(tag) operator(:) pre_constant(nil) ident(a)operator(.)ident(delete) ident(tag) reserved(unless) ident(true_p) ident(a)operator(.)ident(compact)operator(.)ident(sort)operator(.)ident(join)operator(()stringoperator(\))operator(.)ident(squeeze) reserved(end) reserved(end) reserved(class) class(MhPort) operator(<) constant(FilePort) ident(include) constant(MailFlags) ident(private) reserved(def) method(set_status)operator(() ident(tag)operator(,) ident(flag) operator(\)) reserved(begin) ident(tmpfile) operator(=) instance_variable(@filename) operator(+) string operator(+) global_variable($$)operator(.)ident(to_s) constant(File)operator(.)ident(open)operator(()ident(tmpfile)operator(,) stringoperator(\)) operator({)operator(|)ident(f)operator(|) ident(write_status) ident(f)operator(,) ident(tag)operator(,) ident(flag) operator(}) constant(File)operator(.)ident(unlink) instance_variable(@filename) constant(File)operator(.)ident(link) ident(tmpfile)operator(,) instance_variable(@filename) reserved(ensure) constant(File)operator(.)ident(unlink) ident(tmpfile) reserved(end) reserved(end) reserved(def) method(write_status)operator(() ident(f)operator(,) ident(tag)operator(,) ident(flag) operator(\)) ident(stat) operator(=) string constant(File)operator(.)ident(open)operator(()instance_variable(@filename)operator(\)) operator({)operator(|)ident(r)operator(|) reserved(while) ident(line) operator(=) ident(r)operator(.)ident(gets) reserved(if) ident(line)operator(.)ident(strip)operator(.)ident(empty?) reserved(break) reserved(elsif) ident(m) operator(=) regexpoperator(.)ident(match)operator(()ident(line)operator(\)) ident(stat) operator(=) ident(m)operator(.)ident(post_match)operator(.)ident(strip) reserved(else) ident(f)operator(.)ident(print) ident(line) reserved(end) reserved(end) ident(s) operator(=) ident(procinfostr)operator(()ident(stat)operator(,) ident(tag)operator(,) ident(flag)operator(\)) ident(f)operator(.)ident(puts) string operator(+) ident(s) reserved(unless) ident(s)operator(.)ident(empty?) ident(f)operator(.)ident(puts) reserved(while) ident(s) operator(=) ident(r)operator(.)ident(read)operator(()integer(2048)operator(\)) ident(f)operator(.)ident(write) ident(s) reserved(end) operator(}) reserved(end) reserved(def) method(get_status)operator(() ident(tag) operator(\)) constant(File)operator(.)ident(foreach)operator(()instance_variable(@filename)operator(\)) operator({)operator(|)ident(line)operator(|) reserved(return) pre_constant(false) reserved(if) ident(line)operator(.)ident(strip)operator(.)ident(empty?) reserved(if) ident(m) operator(=) regexpoperator(.)ident(match)operator(()ident(line)operator(\)) reserved(return) ident(m)operator(.)ident(post_match)operator(.)ident(strip)operator(.)ident(include?)operator(()ident(tag)operator([)integer(0)operator(])operator(\)) reserved(end) operator(}) pre_constant(false) reserved(end) reserved(end) reserved(class) class(MaildirPort) operator(<) constant(FilePort) reserved(def) method(move_to_new) ident(new) operator(=) ident(replace_dir)operator(()instance_variable(@filename)operator(,) stringoperator(\)) constant(File)operator(.)ident(rename) instance_variable(@filename)operator(,) ident(new) instance_variable(@filename) operator(=) ident(new) reserved(end) reserved(def) method(move_to_cur) ident(new) operator(=) ident(replace_dir)operator(()instance_variable(@filename)operator(,) stringoperator(\)) constant(File)operator(.)ident(rename) instance_variable(@filename)operator(,) ident(new) instance_variable(@filename) operator(=) ident(new) reserved(end) reserved(def) method(replace_dir)operator(() ident(path)operator(,) ident(dir) operator(\)) stringcontent(/)inlinecontent(/)inlinedelimiter(")> reserved(end) ident(private) symbol(:replace_dir) ident(include) constant(MailFlags) ident(private) constant(MAIL_FILE) operator(=) regexp reserved(def) method(set_status)operator(() ident(tag)operator(,) ident(flag) operator(\)) reserved(if) ident(m) operator(=) constant(MAIL_FILE)operator(.)ident(match)operator(()constant(File)operator(.)ident(basename)operator(()instance_variable(@filename)operator(\))operator(\)) ident(s)operator(,) ident(uniq)operator(,) ident(type)operator(,) ident(info)operator(,) operator(=) ident(m)operator(.)ident(to_a) reserved(return) reserved(if) ident(type) reserved(and) ident(type) operator(!=) string comment(# do not change anything) ident(newname) operator(=) constant(File)operator(.)ident(dirname)operator(()instance_variable(@filename)operator(\)) operator(+) string operator(+) ident(uniq) operator(+) string operator(+) ident(procinfostr)operator(()ident(info)operator(.)ident(to_s)operator(,) ident(tag)operator(,) ident(flag)operator(\)) reserved(else) ident(newname) operator(=) instance_variable(@filename) operator(+) string operator(+) ident(tag) reserved(end) constant(File)operator(.)ident(link) instance_variable(@filename)operator(,) ident(newname) constant(File)operator(.)ident(unlink) instance_variable(@filename) instance_variable(@filename) operator(=) ident(newname) reserved(end) reserved(def) method(get_status)operator(() ident(tag) operator(\)) ident(m) operator(=) constant(MAIL_FILE)operator(.)ident(match)operator(()constant(File)operator(.)ident(basename)operator(()instance_variable(@filename)operator(\))operator(\)) reserved(or) reserved(return) pre_constant(false) ident(m)operator([)integer(2)operator(]) operator(==) string reserved(and) ident(m)operator([)integer(3)operator(])operator(.)ident(to_s)operator(.)ident(include?)operator(()ident(tag)operator([)integer(0)operator(])operator(\)) reserved(end) reserved(end) comment(###) comment(### StringPort) comment(###) reserved(class) class(StringPort) operator(<) constant(Port) reserved(def) method(initialize)operator(() ident(str) operator(=) string operator(\)) instance_variable(@buffer) operator(=) ident(str) reserved(super)operator(()operator(\)) reserved(end) reserved(def) method(string) instance_variable(@buffer) reserved(end) reserved(def) method(to_s) instance_variable(@buffer)operator(.)ident(dup) reserved(end) reserved(alias) method(read_all) method(to_s) reserved(def) method(size) instance_variable(@buffer)operator(.)ident(size) reserved(end) reserved(def) method(==)operator(() ident(other) operator(\)) constant(StringPort) operator(===) ident(other) reserved(and) instance_variable(@buffer)operator(.)ident(equal?) ident(other)operator(.)ident(string) reserved(end) reserved(alias) method(eql?) method(==) reserved(def) method(hash) instance_variable(@buffer)operator(.)ident(object_id)operator(.)ident(hash) reserved(end) reserved(def) method(inspect) stringcontent(:id=)inlineoperator(,) instance_variable(@buffer)operator(.)ident(object_id)inline_delimiter(})>content(>)delimiter(")> reserved(end) reserved(def) method(reproducible?) pre_constant(true) reserved(end) reserved(def) method(ropen)operator(() operator(&)ident(block) operator(\)) instance_variable(@buffer) reserved(or) ident(raise) constant(Errno)operator(::)constant(ENOENT)operator(,) stringcontent( is already removed)delimiter(")> constant(StringInput)operator(.)ident(open)operator(()instance_variable(@buffer)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(wopen)operator(() operator(&)ident(block) operator(\)) instance_variable(@buffer) operator(=) string constant(StringOutput)operator(.)ident(new)operator(()instance_variable(@buffer)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(aopen)operator(() operator(&)ident(block) operator(\)) instance_variable(@buffer) operator(||=) string constant(StringOutput)operator(.)ident(new)operator(()instance_variable(@buffer)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(remove) instance_variable(@buffer) operator(=) pre_constant(nil) reserved(end) reserved(alias) method(rm) method(remove) reserved(def) method(copy_to)operator(() ident(port) operator(\)) ident(port)operator(.)ident(wopen) operator({)operator(|)ident(f)operator(|) ident(f)operator(.)ident(write) instance_variable(@buffer) operator(}) reserved(end) reserved(alias) method(cp) method(copy_to) reserved(def) method(move_to)operator(() ident(port) operator(\)) reserved(if) constant(StringPort) operator(===) ident(port) ident(str) operator(=) instance_variable(@buffer) ident(port)operator(.)ident(instance_eval) operator({) instance_variable(@buffer) operator(=) ident(str) operator(}) reserved(else) ident(copy_to) ident(port) reserved(end) ident(remove) reserved(end) reserved(end) reserved(end) comment(# module TMail) reserved(module) class(TMail) reserved(class) class(Mail) reserved(def) method(subject)operator(()ident(to_charset) operator(=) stringoperator(\)) constant(Unquoter)operator(.)ident(unquote_and_convert_to)operator(()ident(quoted_subject)operator(,) ident(to_charset)operator(\)) reserved(end) reserved(def) method(unquoted_body)operator(()ident(to_charset) operator(=) stringoperator(\)) ident(from_charset) operator(=) ident(sub_header)operator(()stringoperator(,) stringoperator(\)) reserved(case) operator(()ident(content_transfer_encoding) operator(||) stringoperator(\))operator(.)ident(downcase) reserved(when) string constant(Unquoter)operator(.)ident(unquote_quoted_printable_and_convert_to)operator(()ident(quoted_body)operator(,) ident(to_charset)operator(,) ident(from_charset)operator(,) pre_constant(true)operator(\)) reserved(when) string constant(Unquoter)operator(.)ident(unquote_base64_and_convert_to)operator(()ident(quoted_body)operator(,) ident(to_charset)operator(,) ident(from_charset)operator(\)) reserved(when) stringoperator(,) string constant(Unquoter)operator(.)ident(convert_to)operator(()ident(quoted_body)operator(,) ident(to_charset)operator(,) ident(from_charset)operator(\)) reserved(when) string ident(quoted_body) reserved(else) ident(quoted_body) reserved(end) reserved(end) reserved(def) method(body)operator(()ident(to_charset) operator(=) stringoperator(,) operator(&)ident(block)operator(\)) ident(attachment_presenter) operator(=) ident(block) operator(||) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(file_name)operator(|) stringchar(\\n)delimiter(")> operator(}) reserved(if) ident(multipart?) ident(parts)operator(.)ident(collect) operator({) operator(|)ident(part)operator(|) ident(header) operator(=) ident(part)operator([)stringoperator(]) reserved(if) ident(part)operator(.)ident(multipart?) ident(part)operator(.)ident(body)operator(()ident(to_charset)operator(,) operator(&)ident(attachment_presenter)operator(\)) reserved(elsif) ident(header)operator(.)ident(nil?) string reserved(elsif) operator(!)ident(attachment?)operator(()ident(part)operator(\)) ident(part)operator(.)ident(unquoted_body)operator(()ident(to_charset)operator(\)) reserved(else) ident(attachment_presenter)operator(.)ident(call)operator(()ident(header)operator([)stringoperator(]) operator(||) stringoperator(\)) reserved(end) operator(})operator(.)ident(join) reserved(else) ident(unquoted_body)operator(()ident(to_charset)operator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(Unquoter) reserved(class) operator(<<) class(self) reserved(def) method(unquote_and_convert_to)operator(()ident(text)operator(,) ident(to_charset)operator(,) ident(from_charset) operator(=) stringoperator(,) ident(preserve_underscores)operator(=)pre_constant(false)operator(\)) reserved(return) string reserved(if) ident(text)operator(.)ident(nil?) reserved(if) ident(text) operator(=)operator(~) regexp ident(from_charset) operator(=) global_variable($1) ident(quoting_method) operator(=) global_variable($2) ident(text) operator(=) global_variable($3) reserved(case) ident(quoting_method)operator(.)ident(upcase) reserved(when) string reserved(then) ident(unquote_quoted_printable_and_convert_to)operator(()ident(text)operator(,) ident(to_charset)operator(,) ident(from_charset)operator(,) ident(preserve_underscores)operator(\)) reserved(when) string reserved(then) ident(unquote_base64_and_convert_to)operator(()ident(text)operator(,) ident(to_charset)operator(,) ident(from_charset)operator(\)) reserved(else) ident(raise) stringdelimiter(")> reserved(end) reserved(else) ident(convert_to)operator(()ident(text)operator(,) ident(to_charset)operator(,) ident(from_charset)operator(\)) reserved(end) reserved(end) reserved(def) method(unquote_quoted_printable_and_convert_to)operator(()ident(text)operator(,) ident(to)operator(,) ident(from)operator(,) ident(preserve_underscores)operator(=)pre_constant(false)operator(\)) ident(text) operator(=) ident(text)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(unless) ident(preserve_underscores) ident(convert_to)operator(()ident(text)operator(.)ident(unpack)operator(()stringoperator(\))operator(.)ident(first)operator(,) ident(to)operator(,) ident(from)operator(\)) reserved(end) reserved(def) method(unquote_base64_and_convert_to)operator(()ident(text)operator(,) ident(to)operator(,) ident(from)operator(\)) ident(convert_to)operator(()constant(Base64)operator(.)ident(decode)operator(()ident(text)operator(\))operator(.)ident(first)operator(,) ident(to)operator(,) ident(from)operator(\)) reserved(end) reserved(begin) ident(require) string reserved(def) method(convert_to)operator(()ident(text)operator(,) ident(to)operator(,) ident(from)operator(\)) reserved(return) ident(text) reserved(unless) ident(to) operator(&&) ident(from) ident(text) operator(?) constant(Iconv)operator(.)ident(iconv)operator(()ident(to)operator(,) ident(from)operator(,) ident(text)operator(\))operator(.)ident(first) operator(:) string reserved(rescue) constant(Iconv)operator(::)constant(IllegalSequence)operator(,) constant(Errno)operator(::)constant(EINVAL) comment(# the 'from' parameter specifies a charset other than what the text) comment(# actually is...not much we can do in this case but just return the) comment(# unconverted text.) comment(#) comment(# Ditto if either parameter represents an unknown charset, like) comment(# X-UNKNOWN.) ident(text) reserved(end) reserved(rescue) constant(LoadError) comment(# Not providing quoting support) reserved(def) method(convert_to)operator(()ident(text)operator(,) ident(to)operator(,) ident(from)operator(\)) ident(warn) stringcontent( to )inlinecontent( ()inlinecontent(:)inlinecontent(\))delimiter(")> ident(text) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(if) pre_constant(__FILE__) operator(==) global_variable($0) ident(require) string reserved(class) class(TC_Unquoter) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_unquote_quoted_printable) ident(a) operator(=)string ident(b) operator(=) constant(TMail)operator(::)constant(Unquoter)operator(.)ident(unquote_and_convert_to)operator(()ident(a)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(b) reserved(end) reserved(def) method(test_unquote_base64) ident(a) operator(=)string ident(b) operator(=) constant(TMail)operator(::)constant(Unquoter)operator(.)ident(unquote_and_convert_to)operator(()ident(a)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(b) reserved(end) reserved(def) method(test_unquote_without_charset) ident(a) operator(=)string ident(b) operator(=) constant(TMail)operator(::)constant(Unquoter)operator(.)ident(unquote_and_convert_to)operator(()ident(a)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(b) reserved(end) reserved(end) reserved(end) comment(#) comment(# scanner.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string reserved(module) class(TMail) ident(require) string reserved(begin) ident(raise) constant(LoadError)operator(,) string reserved(if) pre_constant(ENV)operator([)stringoperator(]) ident(require) string constant(Scanner) operator(=) constant(Scanner_C) reserved(rescue) constant(LoadError) constant(Scanner) operator(=) constant(Scanner_R) reserved(end) reserved(end) comment(#) comment(# scanner_r.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) ident(require) string reserved(module) class(TMail) reserved(class) class(Scanner_R) constant(Version) operator(=) string constant(Version)operator(.)ident(freeze) constant(MIME_HEADERS) operator(=) operator({) symbol(:CTYPE) operator(=)operator(>) pre_constant(true)operator(,) symbol(:CENCODING) operator(=)operator(>) pre_constant(true)operator(,) symbol(:CDISPOSITION) operator(=)operator(>) pre_constant(true) operator(}) ident(alnum) operator(=) string ident(atomsyms) operator(=) stringoperator(.)ident(strip) ident(tokensyms) operator(=) stringoperator(.)ident(strip) ident(atomchars) operator(=) ident(alnum) operator(+) constant(Regexp)operator(.)ident(quote)operator(()ident(atomsyms)operator(\)) ident(tokenchars) operator(=) ident(alnum) operator(+) constant(Regexp)operator(.)ident(quote)operator(()ident(tokensyms)operator(\)) ident(iso2022str) operator(=) string ident(eucstr) operator(=) string ident(sjisstr) operator(=) string ident(utf8str) operator(=) string ident(quoted_with_iso2022) operator(=) regexpcontent(\)+)delimiter(/)modifier(n)> ident(domlit_with_iso2022) operator(=) regexpcontent(\)+)delimiter(/)modifier(n)> ident(comment_with_iso2022) operator(=) regexpcontent(\)+)delimiter(/)modifier(n)> ident(quoted_without_iso2022) operator(=) regexp ident(domlit_without_iso2022) operator(=) regexp ident(comment_without_iso2022) operator(=) regexp constant(PATTERN_TABLE) operator(=) operator({)operator(}) constant(PATTERN_TABLE)operator([)stringoperator(]) operator(=) operator([) regexpcontent(]+|)inlinecontent(|)inlinecontent(\)+)delimiter(/)modifier(n)>operator(,) regexpcontent(]+|)inlinecontent(|)inlinecontent(\)+)delimiter(/)modifier(n)>operator(,) ident(quoted_with_iso2022)operator(,) ident(domlit_with_iso2022)operator(,) ident(comment_with_iso2022) operator(]) constant(PATTERN_TABLE)operator([)stringoperator(]) operator(=) operator([) regexpcontent(]+|)inlinecontent(|)inlinecontent(\)+)delimiter(/)modifier(n)>operator(,) regexpcontent(]+|)inlinecontent(|)inlinecontent(\)+)delimiter(/)modifier(n)>operator(,) ident(quoted_with_iso2022)operator(,) ident(domlit_with_iso2022)operator(,) ident(comment_with_iso2022) operator(]) constant(PATTERN_TABLE)operator([)stringoperator(]) operator(=) operator([) regexpcontent(]+|)inlinecontent(\)+)delimiter(/)modifier(n)>operator(,) regexpcontent(]+|)inlinecontent(\)+)delimiter(/)modifier(n)>operator(,) ident(quoted_without_iso2022)operator(,) ident(domlit_without_iso2022)operator(,) ident(comment_without_iso2022) operator(]) constant(PATTERN_TABLE)operator([)stringoperator(]) operator(=) operator([) regexpcontent(]+)delimiter(/)modifier(n)>operator(,) regexpcontent(]+)delimiter(/)modifier(n)>operator(,) ident(quoted_without_iso2022)operator(,) ident(domlit_without_iso2022)operator(,) ident(comment_without_iso2022) operator(]) reserved(def) method(initialize)operator(() ident(str)operator(,) ident(scantype)operator(,) ident(comments) operator(\)) ident(init_scanner) ident(str) instance_variable(@comments) operator(=) ident(comments) operator(||) operator([)operator(]) instance_variable(@debug) operator(=) pre_constant(false) comment(# fix scanner mode) instance_variable(@received) operator(=) operator(()ident(scantype) operator(==) symbol(:RECEIVED)operator(\)) instance_variable(@is_mime_header) operator(=) constant(MIME_HEADERS)operator([)ident(scantype)operator(]) ident(atom)operator(,) ident(token)operator(,) instance_variable(@quoted_re)operator(,) instance_variable(@domlit_re)operator(,) instance_variable(@comment_re) operator(=) constant(PATTERN_TABLE)operator([)global_variable($KCODE)operator(]) instance_variable(@word_re) operator(=) operator(()constant(MIME_HEADERS)operator([)ident(scantype)operator(]) operator(?) ident(token) operator(:) ident(atom)operator(\)) reserved(end) ident(attr_accessor) symbol(:debug) reserved(def) method(scan)operator(() operator(&)ident(block) operator(\)) reserved(if) instance_variable(@debug) ident(scan_main) reserved(do) operator(|)ident(arr)operator(|) ident(s)operator(,) ident(v) operator(=) ident(arr) ident(printf) stringoperator(,) ident(rest_size)operator(()operator(\))operator(,) ident(s)operator(.)ident(respond_to?)operator(()symbol(:id2name)operator(\)) operator(?) ident(s)operator(.)ident(id2name) operator(:) ident(s)operator(.)ident(inspect)operator(,) ident(v)operator(.)ident(inspect) reserved(yield) ident(arr) reserved(end) reserved(else) ident(scan_main)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(end) ident(private) constant(RECV_TOKEN) operator(=) operator({) string operator(=)operator(>) symbol(:FROM)operator(,) string operator(=)operator(>) symbol(:BY)operator(,) string operator(=)operator(>) symbol(:VIA)operator(,) string operator(=)operator(>) symbol(:WITH)operator(,) string operator(=)operator(>) symbol(:ID)operator(,) string operator(=)operator(>) symbol(:FOR) operator(}) reserved(def) method(scan_main) reserved(until) ident(eof?) reserved(if) ident(skip)operator(()regexpoperator(\)) comment(# LWSP) reserved(break) reserved(if) ident(eof?) reserved(end) reserved(if) ident(s) operator(=) ident(readstr)operator(()instance_variable(@word_re)operator(\)) reserved(if) instance_variable(@is_mime_header) reserved(yield) symbol(:TOKEN)operator(,) ident(s) reserved(else) comment(# atom) reserved(if) regexp operator(===) ident(s) reserved(yield) symbol(:DIGIT)operator(,) ident(s) reserved(elsif) instance_variable(@received) reserved(yield) constant(RECV_TOKEN)operator([)ident(s)operator(.)ident(downcase)operator(]) operator(||) symbol(:ATOM)operator(,) ident(s) reserved(else) reserved(yield) symbol(:ATOM)operator(,) ident(s) reserved(end) reserved(end) reserved(elsif) ident(skip)operator(()regexpoperator(\)) reserved(yield) symbol(:QUOTED)operator(,) ident(scan_quoted_word)operator(()operator(\)) reserved(elsif) ident(skip)operator(()regexpoperator(\)) reserved(yield) symbol(:DOMLIT)operator(,) ident(scan_domain_literal)operator(()operator(\)) reserved(elsif) ident(skip)operator(()regexpoperator(\)) instance_variable(@comments)operator(.)ident(push) ident(scan_comment)operator(()operator(\)) reserved(else) ident(c) operator(=) ident(readchar)operator(()operator(\)) reserved(yield) ident(c)operator(,) ident(c) reserved(end) reserved(end) reserved(yield) pre_constant(false)operator(,) string reserved(end) reserved(def) method(scan_quoted_word) ident(scan_qstr)operator(()instance_variable(@quoted_re)operator(,) regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) method(scan_domain_literal) string operator(+) ident(scan_qstr)operator(()instance_variable(@domlit_re)operator(,) regexpoperator(,) stringoperator(\)) operator(+) string reserved(end) reserved(def) method(scan_qstr)operator(() ident(pattern)operator(,) ident(terminal)operator(,) ident(type) operator(\)) ident(result) operator(=) string reserved(until) ident(eof?) reserved(if) ident(s) operator(=) ident(readstr)operator(()ident(pattern)operator(\)) reserved(then) ident(result) operator(<<) ident(s) reserved(elsif) ident(skip)operator(()ident(terminal)operator(\)) reserved(then) reserved(return) ident(result) reserved(elsif) ident(skip)operator(()regexpoperator(\)) reserved(then) ident(result) operator(<<) ident(readchar)operator(()operator(\)) reserved(else) ident(raise) stringdelimiter(")> reserved(end) reserved(end) ident(scan_error!) stringdelimiter(")> reserved(end) reserved(def) method(scan_comment) ident(result) operator(=) string ident(nest) operator(=) integer(1) ident(content) operator(=) instance_variable(@comment_re) reserved(until) ident(eof?) reserved(if) ident(s) operator(=) ident(readstr)operator(()ident(content)operator(\)) reserved(then) ident(result) operator(<<) ident(s) reserved(elsif) ident(skip)operator(()regexpoperator(\)) reserved(then) ident(nest) operator(-=) integer(1) reserved(return) ident(result) reserved(if) ident(nest) operator(==) integer(0) ident(result) operator(<<) string reserved(elsif) ident(skip)operator(()regexpoperator(\)) reserved(then) ident(nest) operator(+=) integer(1) ident(result) operator(<<) string reserved(elsif) ident(skip)operator(()regexpoperator(\)) reserved(then) ident(result) operator(<<) ident(readchar)operator(()operator(\)) reserved(else) ident(raise) string reserved(end) reserved(end) ident(scan_error!) string reserved(end) comment(# string scanner) reserved(def) method(init_scanner)operator(() ident(str) operator(\)) instance_variable(@src) operator(=) ident(str) reserved(end) reserved(def) method(eof?) instance_variable(@src)operator(.)ident(empty?) reserved(end) reserved(def) method(rest_size) instance_variable(@src)operator(.)ident(size) reserved(end) reserved(def) method(readstr)operator(() ident(re) operator(\)) reserved(if) ident(m) operator(=) ident(re)operator(.)ident(match)operator(()instance_variable(@src)operator(\)) instance_variable(@src) operator(=) ident(m)operator(.)ident(post_match) ident(m)operator([)integer(0)operator(]) reserved(else) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(readchar) ident(readstr)operator(()regexpoperator(\)) reserved(end) reserved(def) method(skip)operator(() ident(re) operator(\)) reserved(if) ident(m) operator(=) ident(re)operator(.)ident(match)operator(()instance_variable(@src)operator(\)) instance_variable(@src) operator(=) ident(m)operator(.)ident(post_match) pre_constant(true) reserved(else) pre_constant(false) reserved(end) reserved(end) reserved(def) method(scan_error!)operator(() ident(msg) operator(\)) ident(raise) constant(SyntaxError)operator(,) ident(msg) reserved(end) reserved(end) reserved(end) comment(# module TMail) comment(#) comment(# stringio.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) reserved(class) class(StringInput)comment(#:nodoc:) ident(include) constant(Enumerable) reserved(class) operator(<<) class(self) reserved(def) method(new)operator(() ident(str) operator(\)) reserved(if) ident(block_given?) reserved(begin) ident(f) operator(=) reserved(super) reserved(yield) ident(f) reserved(ensure) ident(f)operator(.)ident(close) reserved(if) ident(f) reserved(end) reserved(else) reserved(super) reserved(end) reserved(end) reserved(alias) method(open) method(new) reserved(end) reserved(def) method(initialize)operator(() ident(str) operator(\)) instance_variable(@src) operator(=) ident(str) instance_variable(@pos) operator(=) integer(0) instance_variable(@closed) operator(=) pre_constant(false) instance_variable(@lineno) operator(=) integer(0) reserved(end) ident(attr_reader) symbol(:lineno) reserved(def) method(string) instance_variable(@src) reserved(end) reserved(def) method(inspect) stringcontent(:)inline operator(:) stringinline_delimiter(})>content(,src=)inlinecontent(>)delimiter(")> reserved(end) reserved(def) method(close) ident(stream_check!) instance_variable(@pos) operator(=) pre_constant(nil) instance_variable(@closed) operator(=) pre_constant(true) reserved(end) reserved(def) method(closed?) instance_variable(@closed) reserved(end) reserved(def) method(pos) ident(stream_check!) operator([)instance_variable(@pos)operator(,) instance_variable(@src)operator(.)ident(size)operator(])operator(.)ident(min) reserved(end) reserved(alias) method(tell) method(pos) reserved(def) method(seek)operator(() ident(offset)operator(,) ident(whence) operator(=) constant(IO)operator(::)constant(SEEK_SET) operator(\)) ident(stream_check!) reserved(case) ident(whence) reserved(when) constant(IO)operator(::)constant(SEEK_SET) instance_variable(@pos) operator(=) ident(offset) reserved(when) constant(IO)operator(::)constant(SEEK_CUR) instance_variable(@pos) operator(+=) ident(offset) reserved(when) constant(IO)operator(::)constant(SEEK_END) instance_variable(@pos) operator(=) instance_variable(@src)operator(.)ident(size) operator(-) ident(offset) reserved(else) ident(raise) constant(ArgumentError)operator(,) stringdelimiter(")> reserved(end) instance_variable(@pos) operator(=) integer(0) reserved(if) instance_variable(@pos) operator(<) integer(0) instance_variable(@pos) operator(=) operator([)instance_variable(@pos)operator(,) instance_variable(@src)operator(.)ident(size) operator(+) integer(1)operator(])operator(.)ident(min) ident(offset) reserved(end) reserved(def) method(rewind) ident(stream_check!) instance_variable(@pos) operator(=) integer(0) reserved(end) reserved(def) method(eof?) ident(stream_check!) instance_variable(@pos) operator(>) instance_variable(@src)operator(.)ident(size) reserved(end) reserved(def) method(each)operator(() operator(&)ident(block) operator(\)) ident(stream_check!) reserved(begin) instance_variable(@src)operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) reserved(ensure) instance_variable(@pos) operator(=) integer(0) reserved(end) reserved(end) reserved(def) method(gets) ident(stream_check!) reserved(if) ident(idx) operator(=) instance_variable(@src)operator(.)ident(index)operator(()integer(?\\n)operator(,) instance_variable(@pos)operator(\)) ident(idx) operator(+=) integer(1) comment(# "\\n".size) ident(line) operator(=) instance_variable(@src)operator([) instance_variable(@pos) operator(...) ident(idx) operator(]) instance_variable(@pos) operator(=) ident(idx) instance_variable(@pos) operator(+=) integer(1) reserved(if) instance_variable(@pos) operator(==) instance_variable(@src)operator(.)ident(size) reserved(else) ident(line) operator(=) instance_variable(@src)operator([) instance_variable(@pos) operator(..) integer(-1) operator(]) instance_variable(@pos) operator(=) instance_variable(@src)operator(.)ident(size) operator(+) integer(1) reserved(end) instance_variable(@lineno) operator(+=) integer(1) ident(line) reserved(end) reserved(def) method(getc) ident(stream_check!) ident(ch) operator(=) instance_variable(@src)operator([)instance_variable(@pos)operator(]) instance_variable(@pos) operator(+=) integer(1) instance_variable(@pos) operator(+=) integer(1) reserved(if) instance_variable(@pos) operator(==) instance_variable(@src)operator(.)ident(size) ident(ch) reserved(end) reserved(def) method(read)operator(() ident(len) operator(=) pre_constant(nil) operator(\)) ident(stream_check!) reserved(return) ident(read_all) reserved(unless) ident(len) ident(str) operator(=) instance_variable(@src)operator([)instance_variable(@pos)operator(,) ident(len)operator(]) instance_variable(@pos) operator(+=) ident(len) instance_variable(@pos) operator(+=) integer(1) reserved(if) instance_variable(@pos) operator(==) instance_variable(@src)operator(.)ident(size) ident(str) reserved(end) reserved(alias) method(sysread) method(read) reserved(def) method(read_all) ident(stream_check!) reserved(return) pre_constant(nil) reserved(if) ident(eof?) ident(rest) operator(=) instance_variable(@src)operator([)instance_variable(@pos) operator(...) instance_variable(@src)operator(.)ident(size)operator(]) instance_variable(@pos) operator(=) instance_variable(@src)operator(.)ident(size) operator(+) integer(1) ident(rest) reserved(end) reserved(def) method(stream_check!) instance_variable(@closed) reserved(and) ident(raise) constant(IOError)operator(,) string reserved(end) reserved(end) reserved(class) class(StringOutput)comment(#:nodoc:) reserved(class) operator(<<) class(self) reserved(def) method(new)operator(() ident(str) operator(=) string operator(\)) reserved(if) ident(block_given?) reserved(begin) ident(f) operator(=) reserved(super) reserved(yield) ident(f) reserved(ensure) ident(f)operator(.)ident(close) reserved(if) ident(f) reserved(end) reserved(else) reserved(super) reserved(end) reserved(end) reserved(alias) method(open) method(new) reserved(end) reserved(def) method(initialize)operator(() ident(str) operator(=) string operator(\)) instance_variable(@dest) operator(=) ident(str) instance_variable(@closed) operator(=) pre_constant(false) reserved(end) reserved(def) method(close) instance_variable(@closed) operator(=) pre_constant(true) reserved(end) reserved(def) method(closed?) instance_variable(@closed) reserved(end) reserved(def) method(string) instance_variable(@dest) reserved(end) reserved(alias) method(value) method(string) reserved(alias) method(to_str) method(string) reserved(def) method(size) instance_variable(@dest)operator(.)ident(size) reserved(end) reserved(alias) method(pos) method(size) reserved(def) method(inspect) stringcontent(:)inline operator(:) stringinline_delimiter(})>content(,)inlinecontent(>)delimiter(")> reserved(end) reserved(def) method(print)operator(() operator(*)ident(args) operator(\)) ident(stream_check!) ident(raise) constant(ArgumentError)operator(,) string1\))delimiter(')> reserved(if) ident(args)operator(.)ident(empty?) ident(args)operator(.)ident(each) reserved(do) operator(|)ident(s)operator(|) ident(raise) constant(ArgumentError)operator(,) string reserved(if) ident(s)operator(.)ident(nil?) instance_variable(@dest) operator(<<) ident(s)operator(.)ident(to_s) reserved(end) pre_constant(nil) reserved(end) reserved(def) method(puts)operator(() operator(*)ident(args) operator(\)) ident(stream_check!) ident(args)operator(.)ident(each) reserved(do) operator(|)ident(str)operator(|) instance_variable(@dest) operator(<<) operator(()ident(s) operator(=) ident(str)operator(.)ident(to_s)operator(\)) instance_variable(@dest) operator(<<) string reserved(unless) ident(s)operator([)integer(-1)operator(]) operator(==) integer(?\\n) reserved(end) instance_variable(@dest) operator(<<) string reserved(if) ident(args)operator(.)ident(empty?) pre_constant(nil) reserved(end) reserved(def) method(putc)operator(() ident(ch) operator(\)) ident(stream_check!) instance_variable(@dest) operator(<<) ident(ch)operator(.)ident(chr) pre_constant(nil) reserved(end) reserved(def) method(printf)operator(() operator(*)ident(args) operator(\)) ident(stream_check!) instance_variable(@dest) operator(<<) ident(sprintf)operator(()operator(*)ident(args)operator(\)) pre_constant(nil) reserved(end) reserved(def) method(write)operator(() ident(str) operator(\)) ident(stream_check!) ident(s) operator(=) ident(str)operator(.)ident(to_s) instance_variable(@dest) operator(<<) ident(s) ident(s)operator(.)ident(size) reserved(end) reserved(alias) method(syswrite) method(write) reserved(def) method(<<)operator(() ident(str) operator(\)) ident(stream_check!) instance_variable(@dest) operator(<<) ident(str)operator(.)ident(to_s) pre_constant(self) reserved(end) ident(private) reserved(def) method(stream_check!) instance_variable(@closed) reserved(and) ident(raise) constant(IOError)operator(,) string reserved(end) reserved(end) ident(require) string comment(#) comment(# utils.rb) comment(#) comment(#--) comment(# Copyright (c\) 1998-2003 Minero Aoki ) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#++) reserved(module) class(TMail) reserved(class) class(SyntaxError) operator(<) constant(StandardError)operator(;) reserved(end) reserved(def) constant(TMail)operator(.)method(new_boundary) string operator(+) ident(random_tag) reserved(end) reserved(def) constant(TMail)operator(.)method(new_message_id)operator(() ident(fqdn) operator(=) pre_constant(nil) operator(\)) ident(fqdn) operator(||=) operator(::)constant(Socket)operator(.)ident(gethostname) stringcontent(@)inlinecontent(.tmail>)delimiter(")> reserved(end) reserved(def) constant(TMail)operator(.)method(random_tag) instance_variable(@uniq) operator(+=) integer(1) ident(t) operator(=) constant(Time)operator(.)ident(now) ident(sprintf)operator(()stringoperator(,) ident(t)operator(.)ident(to_i)operator(,) ident(t)operator(.)ident(tv_usec)operator(,) global_variable($$)operator(,) constant(Thread)operator(.)ident(current)operator(.)ident(object_id)operator(,) instance_variable(@uniq)operator(,) ident(rand)operator(()integer(255)operator(\))operator(\)) reserved(end) ident(private_class_method) symbol(:random_tag) instance_variable(@uniq) operator(=) integer(0) reserved(module) class(TextUtils) ident(aspecial) operator(=) string[]:;.)char(\\\\)content(,")delimiter(')> ident(tspecial) operator(=) string[];:)char(\\\\)content(,"/?=)delimiter(')> ident(lwsp) operator(=) string ident(control) operator(=) string constant(ATOM_UNSAFE) operator(=) regexpinlineinlinecontent(])delimiter(/)modifier(n)> constant(PHRASE_UNSAFE) operator(=) regexpinlinecontent(])delimiter(/)modifier(n)> constant(TOKEN_UNSAFE) operator(=) regexpinlineinlinecontent(])delimiter(/)modifier(n)> constant(CONTROL_CHAR) operator(=) regexpcontent(])delimiter(/)modifier(n)> reserved(def) method(atom_safe?)operator(() ident(str) operator(\)) reserved(not) constant(ATOM_UNSAFE) operator(===) ident(str) reserved(end) reserved(def) method(quote_atom)operator(() ident(str) operator(\)) operator(()constant(ATOM_UNSAFE) operator(===) ident(str)operator(\)) operator(?) ident(dquote)operator(()ident(str)operator(\)) operator(:) ident(str) reserved(end) reserved(def) method(quote_phrase)operator(() ident(str) operator(\)) operator(()constant(PHRASE_UNSAFE) operator(===) ident(str)operator(\)) operator(?) ident(dquote)operator(()ident(str)operator(\)) operator(:) ident(str) reserved(end) reserved(def) method(token_safe?)operator(() ident(str) operator(\)) reserved(not) constant(TOKEN_UNSAFE) operator(===) ident(str) reserved(end) reserved(def) method(quote_token)operator(() ident(str) operator(\)) operator(()constant(TOKEN_UNSAFE) operator(===) ident(str)operator(\)) operator(?) ident(dquote)operator(()ident(str)operator(\)) operator(:) ident(str) reserved(end) reserved(def) method(dquote)operator(() ident(str) operator(\)) string operator(+) ident(str)operator(.)ident(gsub)operator(()regexpoperator(\)) operator({)operator(|)ident(s)operator(|) string operator(+) ident(s) operator(}) operator(+) string reserved(end) ident(private) symbol(:dquote) reserved(def) method(join_domain)operator(() ident(arr) operator(\)) ident(arr)operator(.)ident(map) operator({)operator(|)ident(i)operator(|) reserved(if) regexp operator(===) ident(i) ident(i) reserved(else) ident(quote_atom)operator(()ident(i)operator(\)) reserved(end) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) constant(ZONESTR_TABLE) operator(=) operator({) string operator(=)operator(>) integer(9) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(2) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(1) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(1) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(0)operator(,) string operator(=)operator(>) integer(0)operator(,) string operator(=)operator(>) integer(0)operator(,) string operator(=)operator(>) operator(-)operator(()integer(3) operator(*) integer(60) operator(+) integer(30)operator(\))operator(,) string operator(=)operator(>) integer(-4) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-4) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-5) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-5) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-6) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-6) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-7) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-7) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-8) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-1) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-2) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-3) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-4) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-5) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-6) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-7) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-8) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-9) operator(*) integer(60)operator(,) comment(# j not use) string operator(=)operator(>) integer(-10) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-11) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(-12) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(1) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(2) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(3) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(4) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(5) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(6) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(7) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(8) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(9) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(10) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(11) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(12) operator(*) integer(60)operator(,) string operator(=)operator(>) integer(0) operator(*) integer(60) operator(}) reserved(def) method(timezone_string_to_unixtime)operator(() ident(str) operator(\)) reserved(if) ident(m) operator(=) regexpoperator(.)ident(match)operator(()ident(str)operator(\)) ident(sec) operator(=) operator(()ident(m)operator([)integer(2)operator(])operator(.)ident(to_i) operator(*) integer(60) operator(+) ident(m)operator([)integer(3)operator(])operator(.)ident(to_i)operator(\)) operator(*) integer(60) ident(m)operator([)integer(1)operator(]) operator(==) string operator(?) operator(-)ident(sec) operator(:) ident(sec) reserved(else) ident(min) operator(=) constant(ZONESTR_TABLE)operator([)ident(str)operator(.)ident(downcase)operator(]) reserved(or) ident(raise) constant(SyntaxError)operator(,) stringcontent(')delimiter(")> ident(min) operator(*) integer(60) reserved(end) reserved(end) constant(WDAY) operator(=) string constant(MONTH) operator(=) string reserved(def) method(time2str)operator(() ident(tm) operator(\)) comment(# [ruby-list:7928]) ident(gmt) operator(=) constant(Time)operator(.)ident(at)operator(()ident(tm)operator(.)ident(to_i)operator(\)) ident(gmt)operator(.)ident(gmtime) ident(offset) operator(=) ident(tm)operator(.)ident(to_i) operator(-) constant(Time)operator(.)ident(local)operator(()operator(*)ident(gmt)operator(.)ident(to_a)operator([)integer(0)operator(,)integer(6)operator(])operator(.)ident(reverse)operator(\))operator(.)ident(to_i) comment(# DO NOT USE strftime: setlocale(\) breaks it) ident(sprintf) stringoperator(,) constant(WDAY)operator([)ident(tm)operator(.)ident(wday)operator(])operator(,) ident(tm)operator(.)ident(mday)operator(,) constant(MONTH)operator([)ident(tm)operator(.)ident(month)operator(])operator(,) ident(tm)operator(.)ident(year)operator(,) ident(tm)operator(.)ident(hour)operator(,) ident(tm)operator(.)ident(min)operator(,) ident(tm)operator(.)ident(sec)operator(,) operator(*)operator(()ident(offset) operator(/) integer(60)operator(\))operator(.)ident(divmod)operator(()integer(60)operator(\)) reserved(end) constant(MESSAGE_ID) operator(=) regexp]+)char(\\@)content([^>)char(\\@)content(]+>)delimiter(/)> reserved(def) method(message_id?)operator(() ident(str) operator(\)) constant(MESSAGE_ID) operator(===) ident(str) reserved(end) constant(MIME_ENCODED) operator(=) regexp reserved(def) method(mime_encoded?)operator(() ident(str) operator(\)) constant(MIME_ENCODED) operator(===) ident(str) reserved(end) reserved(def) method(decode_params)operator(() ident(hash) operator(\)) ident(new) operator(=) constant(Hash)operator(.)ident(new) ident(encoded) operator(=) pre_constant(nil) ident(hash)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(if) ident(m) operator(=) regexpoperator(.)ident(match)operator(()ident(key)operator(\)) operator(()operator(()ident(encoded) operator(||=) operator({)operator(})operator(\))operator([)ident(m)operator(.)ident(pre_match)operator(]) operator(||=) operator([)operator(])operator(\))operator([)operator(()ident(m)operator([)integer(1)operator(]) operator(||) integer(0)operator(\))operator(.)ident(to_i)operator(]) operator(=) ident(value) reserved(else) ident(new)operator([)ident(key)operator(]) operator(=) ident(to_kcode)operator(()ident(value)operator(\)) reserved(end) reserved(end) reserved(if) ident(encoded) ident(encoded)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(strings)operator(|) ident(new)operator([)ident(key)operator(]) operator(=) ident(decode_RFC2231)operator(()ident(strings)operator(.)ident(join)operator(()stringoperator(\))operator(\)) reserved(end) reserved(end) ident(new) reserved(end) constant(NKF_FLAGS) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) reserved(def) method(to_kcode)operator(() ident(str) operator(\)) ident(flag) operator(=) constant(NKF_FLAGS)operator([)global_variable($KCODE)operator(]) reserved(or) reserved(return) ident(str) constant(NKF)operator(.)ident(nkf)operator(()ident(flag)operator(,) ident(str)operator(\)) reserved(end) constant(RFC2231_ENCODED) operator(=) regexp reserved(def) method(decode_RFC2231)operator(() ident(str) operator(\)) ident(m) operator(=) constant(RFC2231_ENCODED)operator(.)ident(match)operator(()ident(str)operator(\)) reserved(or) reserved(return) ident(str) reserved(begin) constant(NKF)operator(.)ident(nkf)operator(()constant(NKF_FLAGS)operator([)global_variable($KCODE)operator(])operator(,) ident(m)operator(.)ident(post_match)operator(.)ident(gsub)operator(()regexpoperator(\)) operator({)operator(|)ident(s)operator(|) ident(s)operator([)integer(1)operator(,)integer(2)operator(])operator(.)ident(hex)operator(.)ident(chr) operator(})operator(\)) reserved(rescue) ident(m)operator(.)ident(post_match)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(module) class(ActionMailer) reserved(module) class(VERSION) comment(#:nodoc:) constant(MAJOR) operator(=) integer(1) constant(MINOR) operator(=) integer(2) constant(TINY) operator(=) integer(5) constant(STRING) operator(=) operator([)constant(MAJOR)operator(,) constant(MINOR)operator(,) constant(TINY)operator(])operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) comment(#--) comment(# Copyright (c\) 2004 David Heinemeier Hansson) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#++) reserved(begin) ident(require) string reserved(rescue) constant(LoadError) reserved(begin) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(rescue) constant(LoadError) ident(require) string ident(require_gem) stringoperator(,) string= 1.9.1)delimiter(')> reserved(end) reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string constant(ActionMailer)operator(::)constant(Base)operator(.)ident(class_eval) reserved(do) ident(include) constant(ActionMailer)operator(::)constant(Quoting) ident(include) constant(ActionMailer)operator(::)constant(Helpers) ident(helper) constant(MailHelper) reserved(end) ident(silence_warnings) operator({) constant(TMail)operator(::)constant(Encoder)operator(.)ident(const_set)operator(()stringoperator(,) integer(200)operator(\)) operator(})reserved(module) class(TestHelper) reserved(def) method(test_format)operator(()ident(text)operator(\)) string)inlinecontent()delimiter(")> reserved(end) reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string ident(require) string reserved(module) class(MailerHelper) reserved(def) method(person_name) string reserved(end) reserved(end) reserved(class) class(HelperMailer) operator(<) constant(ActionMailer)operator(::)constant(Base) ident(helper) constant(MailerHelper) ident(helper) symbol(:test) reserved(def) method(use_helper)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string reserved(end) reserved(def) method(use_test_helper)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string pre_constant(self)operator(.)ident(body) operator(=) operator({) symbol(:text) operator(=)operator(>) string operator(}) reserved(end) reserved(def) method(use_mail_helper)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string pre_constant(self)operator(.)ident(body) operator(=) operator({) symbol(:text) operator(=)operator(>) string operator(+) string operator(+) string operator(+) string operator(+) string operator(+) string operator(}) reserved(end) reserved(def) method(use_helper_method)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string pre_constant(self)operator(.)ident(body) operator(=) operator({) symbol(:text) operator(=)operator(>) string operator(}) reserved(end) ident(private) reserved(def) method(name_of_the_mailer_class) pre_constant(self)operator(.)ident(class)operator(.)ident(name) reserved(end) ident(helper_method) symbol(:name_of_the_mailer_class) reserved(end) constant(HelperMailer)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(MailerHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(new_mail)operator(() ident(charset)operator(=)string operator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(new) ident(mail)operator(.)ident(set_content_type) stringoperator(,) stringoperator(,) operator({) string operator(=)operator(>) ident(charset) operator(}) reserved(if) ident(charset) ident(mail) reserved(end) reserved(def) method(setup) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(delivery_method) operator(=) symbol(:test) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(perform_deliveries) operator(=) pre_constant(true) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries) operator(=) operator([)operator(]) instance_variable(@recipient) operator(=) string reserved(end) reserved(def) method(test_use_helper) ident(mail) operator(=) constant(HelperMailer)operator(.)ident(create_use_helper)operator(()instance_variable(@recipient)operator(\)) ident(assert_match) regexpoperator(,) ident(mail)operator(.)ident(encoded) reserved(end) reserved(def) method(test_use_test_helper) ident(mail) operator(=) constant(HelperMailer)operator(.)ident(create_use_test_helper)operator(()instance_variable(@recipient)operator(\)) ident(assert_match) regexpemphasize me!)delimiter(})>operator(,) ident(mail)operator(.)ident(encoded) reserved(end) reserved(def) method(test_use_helper_method) ident(mail) operator(=) constant(HelperMailer)operator(.)ident(create_use_helper_method)operator(()instance_variable(@recipient)operator(\)) ident(assert_match) regexpoperator(,) ident(mail)operator(.)ident(encoded) reserved(end) reserved(def) method(test_use_mail_helper) ident(mail) operator(=) constant(HelperMailer)operator(.)ident(create_use_mail_helper)operator(()instance_variable(@recipient)operator(\)) ident(assert_match) regexpoperator(,) ident(mail)operator(.)ident(encoded) ident(assert_match) regexpoperator(,) ident(mail)operator(.)ident(encoded) reserved(end) reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string reserved(class) class(RenderMailer) operator(<) constant(ActionMailer)operator(::)constant(Base) reserved(def) method(inline_template)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(body) ident(render)operator(()symbol(:inline) operator(=)operator(>) string)delimiter(")>operator(,) symbol(:body) operator(=)operator(>) operator({) symbol(:world) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(file_template)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(body) ident(render)operator(()symbol(:file) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) operator({) symbol(:recipient) operator(=)operator(>) ident(recipient) operator(})operator(\)) reserved(end) reserved(def) method(initialize_defaults)operator(()ident(method_name)operator(\)) reserved(super) ident(mailer_name) string reserved(end) reserved(end) constant(RenderMailer)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(RenderHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(delivery_method) operator(=) symbol(:test) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(perform_deliveries) operator(=) pre_constant(true) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries) operator(=) operator([)operator(]) instance_variable(@recipient) operator(=) string reserved(end) reserved(def) method(test_inline_template) ident(mail) operator(=) constant(RenderMailer)operator(.)ident(create_inline_template)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(body)operator(.)ident(strip) reserved(end) reserved(def) method(test_file_template) ident(mail) operator(=) constant(RenderMailer)operator(.)ident(create_file_template)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(body)operator(.)ident(strip) reserved(end) reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string reserved(class) class(MockSMTP) reserved(def) pre_constant(self)operator(.)method(deliveries) class_variable(@@deliveries) reserved(end) reserved(def) method(initialize) class_variable(@@deliveries) operator(=) operator([)operator(]) reserved(end) reserved(def) method(sendmail)operator(()ident(mail)operator(,) ident(from)operator(,) ident(to)operator(\)) class_variable(@@deliveries) operator(<<) operator([)ident(mail)operator(,) ident(from)operator(,) ident(to)operator(]) reserved(end) reserved(end) reserved(class) class(Net::SMTP) reserved(def) pre_constant(self)operator(.)method(start)operator(()operator(*)ident(args)operator(\)) reserved(yield) constant(MockSMTP)operator(.)ident(new) reserved(end) reserved(end) reserved(class) class(FunkyPathMailer) operator(<) constant(ActionMailer)operator(::)constant(Base) pre_constant(self)operator(.)ident(template_root) operator(=) stringcontent(/fixtures/path.with.dots)delimiter(")> reserved(def) method(multipart_with_template_path_with_dots)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string)delimiter(")> ident(attachment) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) string reserved(end) reserved(def) method(template_path) stringcontent(/fixtures/path.with.dots)delimiter(")> reserved(end) reserved(end) reserved(class) class(TestMailer) operator(<) constant(ActionMailer)operator(::)constant(Base) reserved(def) method(signed_up)operator(()ident(recipient)operator(\)) instance_variable(@recipients) operator(=) ident(recipient) instance_variable(@subject) operator(=) stringdelimiter(")> instance_variable(@from) operator(=) string instance_variable(@sent_on) operator(=) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(12)operator(,) integer(12)operator(\)) instance_variable(@body)operator([)stringoperator(]) operator(=) ident(recipient) reserved(end) reserved(def) method(cancelled_account)operator(()ident(recipient)operator(\)) pre_constant(self)operator(.)ident(recipients) operator(=) ident(recipient) pre_constant(self)operator(.)ident(subject) operator(=) stringdelimiter(")> pre_constant(self)operator(.)ident(from) operator(=) string pre_constant(self)operator(.)ident(sent_on) operator(=) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(12)operator(,) integer(12)operator(\)) pre_constant(self)operator(.)ident(body) operator(=) stringdelimiter(")> reserved(end) reserved(def) method(cc_bcc)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(sent_on) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(12)operator(,) integer(12)operator(\)) ident(cc) string ident(bcc) string ident(body) string reserved(end) reserved(def) method(iso_charset)operator(()ident(recipient)operator(\)) instance_variable(@recipients) operator(=) ident(recipient) instance_variable(@subject) operator(=) string instance_variable(@from) operator(=) string instance_variable(@sent_on) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) instance_variable(@cc) operator(=) string instance_variable(@bcc) operator(=) string instance_variable(@body) operator(=) string instance_variable(@charset) operator(=) string reserved(end) reserved(def) method(unencoded_subject)operator(()ident(recipient)operator(\)) instance_variable(@recipients) operator(=) ident(recipient) instance_variable(@subject) operator(=) string instance_variable(@from) operator(=) string instance_variable(@sent_on) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) instance_variable(@cc) operator(=) string instance_variable(@bcc) operator(=) string instance_variable(@body) operator(=) string reserved(end) reserved(def) method(extended_headers)operator(()ident(recipient)operator(\)) instance_variable(@recipients) operator(=) ident(recipient) instance_variable(@subject) operator(=) string instance_variable(@from) operator(=) string)delimiter(")> instance_variable(@sent_on) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) instance_variable(@cc) operator(=) string)delimiter(")> instance_variable(@bcc) operator(=) string)delimiter(")> instance_variable(@body) operator(=) string instance_variable(@charset) operator(=) string reserved(end) reserved(def) method(utf8_body)operator(()ident(recipient)operator(\)) instance_variable(@recipients) operator(=) ident(recipient) instance_variable(@subject) operator(=) string instance_variable(@from) operator(=) string)delimiter(")> instance_variable(@sent_on) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) instance_variable(@cc) operator(=) string)delimiter(")> instance_variable(@bcc) operator(=) string)delimiter(")> instance_variable(@body) operator(=) string instance_variable(@charset) operator(=) string reserved(end) reserved(def) method(multipart_with_mime_version)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(sent_on) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(12)operator(,) integer(12)operator(\)) ident(mime_version) string ident(content_type) string ident(part) string reserved(do) operator(|)ident(p)operator(|) ident(p)operator(.)ident(body) operator(=) string reserved(end) ident(part) string reserved(do) operator(|)ident(p)operator(|) ident(p)operator(.)ident(body) operator(=) stringblah)delimiter(")> reserved(end) reserved(end) reserved(def) method(multipart_with_utf8_subject)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(charset) string ident(part) string reserved(do) operator(|)ident(p)operator(|) ident(p)operator(.)ident(body) operator(=) string reserved(end) ident(part) string reserved(do) operator(|)ident(p)operator(|) ident(p)operator(.)ident(body) operator(=) stringblah)delimiter(")> reserved(end) reserved(end) reserved(def) method(explicitly_multipart_example)operator(()ident(recipient)operator(,) ident(ct)operator(=)pre_constant(nil)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(sent_on) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(12)operator(,) integer(12)operator(\)) ident(body) string ident(content_type) ident(ct) reserved(if) ident(ct) ident(part) string reserved(do) operator(|)ident(p)operator(|) ident(p)operator(.)ident(charset) operator(=) string ident(p)operator(.)ident(body) operator(=) string reserved(end) ident(attachment) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:filename) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) string reserved(end) reserved(def) method(implicitly_multipart_example)operator(()ident(recipient)operator(,) ident(cs) operator(=) pre_constant(nil)operator(,) ident(order) operator(=) pre_constant(nil)operator(\)) instance_variable(@recipients) operator(=) ident(recipient) instance_variable(@subject) operator(=) string instance_variable(@from) operator(=) string instance_variable(@sent_on) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) instance_variable(@body) operator(=) operator({) string operator(=)operator(>) ident(recipient) operator(}) instance_variable(@charset) operator(=) ident(cs) reserved(if) ident(cs) instance_variable(@implicit_parts_order) operator(=) ident(order) reserved(if) ident(order) reserved(end) reserved(def) method(implicitly_multipart_with_utf8) ident(recipients) string ident(subject) string ident(from) string ident(template) string ident(body) operator(()operator({) string operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(html_mail)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(body) stringEmphasize this)delimiter(")> ident(content_type) string reserved(end) reserved(def) method(html_mail_with_underscores)operator(()ident(recipient)operator(\)) ident(subject) string ident(body) string_Google)delimiter(})> reserved(end) reserved(def) method(custom_template)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) stringdelimiter(")> ident(from) string ident(sent_on) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(12)operator(,) integer(12)operator(\)) ident(template) string ident(body)operator([)stringoperator(]) operator(=) ident(recipient) reserved(end) reserved(def) method(various_newlines)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(body) string operator(+) string reserved(end) reserved(def) method(various_newlines_multipart)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(content_type) string ident(part) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) string ident(part) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) stringline #1

)char(\\n)content(

line #2

)char(\\r)content(

line #3

)char(\\r)char(\\n)content(

line #4

)char(\\r)char(\\r)delimiter(")> reserved(end) reserved(def) method(nested_multipart)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(content_type) string ident(part) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:content_disposition) operator(=)operator(>) string reserved(do) operator(|)ident(p)operator(|) ident(p)operator(.)ident(part) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) string ident(p)operator(.)ident(part) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) stringtest HTML
)char(\\n)content(line #2)delimiter(")> reserved(end) ident(attachment) symbol(:content_type) operator(=)operator(>) stringoperator(,)symbol(:filename) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) string reserved(end) reserved(def) method(attachment_with_custom_header)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(content_type) string ident(part) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) string ident(attachment) symbol(:content_type) operator(=)operator(>) stringoperator(,)symbol(:filename) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) stringoperator(,) symbol(:headers) operator(=)operator(>) operator({) string operator(=)operator(>) string)delimiter(')> operator(}) reserved(end) reserved(def) method(unnamed_attachment)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string ident(content_type) string ident(part) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) string ident(attachment) symbol(:content_type) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) string reserved(end) reserved(def) method(headers_with_nonalpha_chars)operator(()ident(recipient)operator(\)) ident(recipients) ident(recipient) ident(subject) string ident(from) string)delimiter(")> ident(cc) string)delimiter(")> ident(bcc) string)delimiter(")> ident(body) string reserved(end) reserved(def) method(custom_content_type_attributes) ident(recipients) string ident(subject) string ident(from) string ident(content_type) string ident(body) string reserved(end) reserved(class) operator(<<)class(self) ident(attr_accessor) symbol(:received_body) reserved(end) reserved(def) method(receive)operator(()ident(mail)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(received_body) operator(=) ident(mail)operator(.)ident(body) reserved(end) reserved(end) constant(TestMailer)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(ActionMailerTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionMailer)operator(::)constant(Quoting) reserved(def) method(encode)operator(() ident(text)operator(,) ident(charset)operator(=)string operator(\)) ident(quoted_printable)operator(() ident(text)operator(,) ident(charset) operator(\)) reserved(end) reserved(def) method(new_mail)operator(() ident(charset)operator(=)string operator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(new) reserved(if) ident(charset) ident(mail)operator(.)ident(set_content_type) stringoperator(,) stringoperator(,) operator({) string operator(=)operator(>) ident(charset) operator(}) reserved(end) ident(mail) reserved(end) reserved(def) method(setup) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(delivery_method) operator(=) symbol(:test) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(perform_deliveries) operator(=) pre_constant(true) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries) operator(=) operator([)operator(]) instance_variable(@recipient) operator(=) string reserved(end) reserved(def) method(test_nested_parts) ident(created) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_nested_multipart)operator(()instance_variable(@recipient)operator(\))operator(}) ident(assert_equal) integer(2)operator(,)ident(created)operator(.)ident(parts)operator(.)ident(size) ident(assert_equal) integer(2)operator(,)ident(created)operator(.)ident(parts)operator(.)ident(first)operator(.)ident(parts)operator(.)ident(size) ident(assert_equal) stringoperator(,) ident(created)operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(created)operator(.)ident(parts)operator(.)ident(first)operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(created)operator(.)ident(parts)operator(.)ident(first)operator(.)ident(parts)operator(.)ident(first)operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(created)operator(.)ident(parts)operator(.)ident(first)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(created)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(content_type) reserved(end) reserved(def) method(test_attachment_with_custom_header) ident(created) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_attachment_with_custom_header)operator(()instance_variable(@recipient)operator(\))operator(}) ident(assert_equal) string)delimiter(")>operator(,) ident(created)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(header)operator([)stringoperator(])operator(.)ident(to_s) reserved(end) reserved(def) method(test_signed_up) ident(expected) operator(=) ident(new_mail) ident(expected)operator(.)ident(to) operator(=) instance_variable(@recipient) ident(expected)operator(.)ident(subject) operator(=) stringdelimiter(")> ident(expected)operator(.)ident(body) operator(=) stringdelimiter(")> ident(expected)operator(.)ident(from) operator(=) string ident(expected)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(12)operator(,) integer(12)operator(\)) ident(expected)operator(.)ident(mime_version) operator(=) pre_constant(nil) ident(created) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_signed_up)operator(()instance_variable(@recipient)operator(\)) operator(}) ident(assert_not_nil) ident(created) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) ident(created)operator(.)ident(encoded) ident(assert_nothing_raised) operator({) constant(TestMailer)operator(.)ident(deliver_signed_up)operator(()instance_variable(@recipient)operator(\)) operator(}) ident(assert_not_nil) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first)operator(.)ident(encoded) reserved(end) reserved(def) method(test_custom_template) ident(expected) operator(=) ident(new_mail) ident(expected)operator(.)ident(to) operator(=) instance_variable(@recipient) ident(expected)operator(.)ident(subject) operator(=) stringdelimiter(")> ident(expected)operator(.)ident(body) operator(=) stringdelimiter(")> ident(expected)operator(.)ident(from) operator(=) string ident(expected)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(12)operator(,) integer(12)operator(\)) ident(created) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_custom_template)operator(()instance_variable(@recipient)operator(\)) operator(}) ident(assert_not_nil) ident(created) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) ident(created)operator(.)ident(encoded) reserved(end) reserved(def) method(test_cancelled_account) ident(expected) operator(=) ident(new_mail) ident(expected)operator(.)ident(to) operator(=) instance_variable(@recipient) ident(expected)operator(.)ident(subject) operator(=) stringdelimiter(")> ident(expected)operator(.)ident(body) operator(=) stringdelimiter(")> ident(expected)operator(.)ident(from) operator(=) string ident(expected)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(12)operator(,) integer(12)operator(\)) ident(created) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_cancelled_account)operator(()instance_variable(@recipient)operator(\)) operator(}) ident(assert_not_nil) ident(created) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) ident(created)operator(.)ident(encoded) ident(assert_nothing_raised) operator({) constant(TestMailer)operator(.)ident(deliver_cancelled_account)operator(()instance_variable(@recipient)operator(\)) operator(}) ident(assert_not_nil) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first)operator(.)ident(encoded) reserved(end) reserved(def) method(test_cc_bcc) ident(expected) operator(=) ident(new_mail) ident(expected)operator(.)ident(to) operator(=) instance_variable(@recipient) ident(expected)operator(.)ident(subject) operator(=) string ident(expected)operator(.)ident(body) operator(=) string ident(expected)operator(.)ident(from) operator(=) string ident(expected)operator(.)ident(cc) operator(=) string ident(expected)operator(.)ident(bcc) operator(=) string ident(expected)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) ident(created) operator(=) pre_constant(nil) ident(assert_nothing_raised) reserved(do) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_cc_bcc) instance_variable(@recipient) reserved(end) ident(assert_not_nil) ident(created) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) ident(created)operator(.)ident(encoded) ident(assert_nothing_raised) reserved(do) constant(TestMailer)operator(.)ident(deliver_cc_bcc) instance_variable(@recipient) reserved(end) ident(assert_not_nil) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first)operator(.)ident(encoded) reserved(end) reserved(def) method(test_iso_charset) ident(expected) operator(=) ident(new_mail)operator(() string operator(\)) ident(expected)operator(.)ident(to) operator(=) instance_variable(@recipient) ident(expected)operator(.)ident(subject) operator(=) ident(encode) stringoperator(,) string ident(expected)operator(.)ident(body) operator(=) string ident(expected)operator(.)ident(from) operator(=) string ident(expected)operator(.)ident(cc) operator(=) string ident(expected)operator(.)ident(bcc) operator(=) string ident(expected)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) ident(created) operator(=) pre_constant(nil) ident(assert_nothing_raised) reserved(do) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_iso_charset) instance_variable(@recipient) reserved(end) ident(assert_not_nil) ident(created) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) ident(created)operator(.)ident(encoded) ident(assert_nothing_raised) reserved(do) constant(TestMailer)operator(.)ident(deliver_iso_charset) instance_variable(@recipient) reserved(end) ident(assert_not_nil) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first)operator(.)ident(encoded) reserved(end) reserved(def) method(test_unencoded_subject) ident(expected) operator(=) ident(new_mail) ident(expected)operator(.)ident(to) operator(=) instance_variable(@recipient) ident(expected)operator(.)ident(subject) operator(=) string ident(expected)operator(.)ident(body) operator(=) string ident(expected)operator(.)ident(from) operator(=) string ident(expected)operator(.)ident(cc) operator(=) string ident(expected)operator(.)ident(bcc) operator(=) string ident(expected)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) ident(created) operator(=) pre_constant(nil) ident(assert_nothing_raised) reserved(do) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_unencoded_subject) instance_variable(@recipient) reserved(end) ident(assert_not_nil) ident(created) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) ident(created)operator(.)ident(encoded) ident(assert_nothing_raised) reserved(do) constant(TestMailer)operator(.)ident(deliver_unencoded_subject) instance_variable(@recipient) reserved(end) ident(assert_not_nil) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first)operator(.)ident(encoded) reserved(end) reserved(def) method(test_instances_are_nil) ident(assert_nil) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(new) ident(assert_nil) constant(TestMailer)operator(.)ident(new) reserved(end) reserved(def) method(test_deliveries_array) ident(assert_not_nil) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries) ident(assert_equal) integer(0)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(size) constant(TestMailer)operator(.)ident(deliver_signed_up)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) integer(1)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(size) ident(assert_not_nil) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first) reserved(end) reserved(def) method(test_perform_deliveries_flag) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(perform_deliveries) operator(=) pre_constant(false) constant(TestMailer)operator(.)ident(deliver_signed_up)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) integer(0)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(size) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(perform_deliveries) operator(=) pre_constant(true) constant(TestMailer)operator(.)ident(deliver_signed_up)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) integer(1)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(size) reserved(end) reserved(def) method(test_unquote_quoted_printable_subject) ident(msg) operator(=) stringstring ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(msg)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(subject) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(quoted_subject) reserved(end) reserved(def) method(test_unquote_7bit_subject) ident(msg) operator(=) stringstring ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(msg)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(subject) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(quoted_subject) reserved(end) reserved(def) method(test_unquote_7bit_body) ident(msg) operator(=) stringstring ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(msg)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(body)operator(.)ident(strip) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(quoted_body)operator(.)ident(strip) reserved(end) reserved(def) method(test_unquote_quoted_printable_body) ident(msg) operator(=) stringstring ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(msg)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(body)operator(.)ident(strip) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(quoted_body)operator(.)ident(strip) reserved(end) reserved(def) method(test_unquote_base64_body) ident(msg) operator(=) stringstring ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(msg)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(body)operator(.)ident(strip) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(quoted_body)operator(.)ident(strip) reserved(end) reserved(def) method(test_extended_headers) instance_variable(@recipient) operator(=) string)delimiter(")> ident(expected) operator(=) ident(new_mail) string ident(expected)operator(.)ident(to) operator(=) ident(quote_address_if_necessary) instance_variable(@recipient)operator(,) string ident(expected)operator(.)ident(subject) operator(=) string ident(expected)operator(.)ident(body) operator(=) string ident(expected)operator(.)ident(from) operator(=) ident(quote_address_if_necessary) string)delimiter(")>operator(,) string ident(expected)operator(.)ident(cc) operator(=) ident(quote_address_if_necessary) string)delimiter(")>operator(,) string ident(expected)operator(.)ident(bcc) operator(=) ident(quote_address_if_necessary) string)delimiter(")>operator(,) string ident(expected)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) ident(created) operator(=) pre_constant(nil) ident(assert_nothing_raised) reserved(do) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_extended_headers) instance_variable(@recipient) reserved(end) ident(assert_not_nil) ident(created) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) ident(created)operator(.)ident(encoded) ident(assert_nothing_raised) reserved(do) constant(TestMailer)operator(.)ident(deliver_extended_headers) instance_variable(@recipient) reserved(end) ident(assert_not_nil) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first) ident(assert_equal) ident(expected)operator(.)ident(encoded)operator(,) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(deliveries)operator(.)ident(first)operator(.)ident(encoded) reserved(end) reserved(def) method(test_utf8_body_is_not_quoted) instance_variable(@recipient) operator(=) string)delimiter(")> ident(expected) operator(=) ident(new_mail) string ident(expected)operator(.)ident(to) operator(=) ident(quote_address_if_necessary) instance_variable(@recipient)operator(,) string ident(expected)operator(.)ident(subject) operator(=) string ident(expected)operator(.)ident(body) operator(=) string ident(expected)operator(.)ident(from) operator(=) ident(quote_address_if_necessary) instance_variable(@recipient)operator(,) string ident(expected)operator(.)ident(cc) operator(=) ident(quote_address_if_necessary) instance_variable(@recipient)operator(,) string ident(expected)operator(.)ident(bcc) operator(=) ident(quote_address_if_necessary) instance_variable(@recipient)operator(,) string ident(expected)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_utf8_body) instance_variable(@recipient) ident(assert_match)operator(()regexpoperator(,) ident(created)operator(.)ident(encoded)operator(\)) reserved(end) reserved(def) method(test_multiple_utf8_recipients) instance_variable(@recipient) operator(=) operator([)string)delimiter(")>operator(,) string)delimiter(")>operator(]) ident(expected) operator(=) ident(new_mail) string ident(expected)operator(.)ident(to) operator(=) ident(quote_address_if_necessary) instance_variable(@recipient)operator(,) string ident(expected)operator(.)ident(subject) operator(=) string ident(expected)operator(.)ident(body) operator(=) string ident(expected)operator(.)ident(from) operator(=) ident(quote_address_if_necessary) instance_variable(@recipient)operator(.)ident(first)operator(,) string ident(expected)operator(.)ident(cc) operator(=) ident(quote_address_if_necessary) instance_variable(@recipient)operator(,) string ident(expected)operator(.)ident(bcc) operator(=) ident(quote_address_if_necessary) instance_variable(@recipient)operator(,) string ident(expected)operator(.)ident(date) operator(=) constant(Time)operator(.)ident(local) integer(2004)operator(,) integer(12)operator(,) integer(12) ident(created) operator(=) constant(TestMailer)operator(.)ident(create_utf8_body) instance_variable(@recipient) ident(assert_match)operator(()regexp)char(\\r)delimiter(/)>operator(,) ident(created)operator(.)ident(encoded)operator(\)) ident(assert_match)operator(()regexp, Example Recipient operator(,) ident(created)operator(.)ident(encoded)operator(\)) reserved(end) reserved(def) method(test_receive_decodes_base64_encoded_mail) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) constant(TestMailer)operator(.)ident(receive)operator(()ident(fixture)operator(\)) ident(assert_match)operator(()regexpoperator(,) constant(TestMailer)operator(.)ident(received_body)operator(\)) reserved(end) reserved(def) method(test_receive_attachments) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(attachment) operator(=) ident(mail)operator(.)ident(attachments)operator(.)ident(last) ident(assert_equal) stringoperator(,) ident(attachment)operator(.)ident(original_filename) ident(assert_equal) stringoperator(,) ident(attachment)operator(.)ident(content_type) reserved(end) reserved(def) method(test_decode_attachment_without_charset) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(attachment) operator(=) ident(mail)operator(.)ident(attachments)operator(.)ident(last) ident(assert_equal) integer(1026)operator(,) ident(attachment)operator(.)ident(read)operator(.)ident(length) reserved(end) reserved(def) method(test_attachment_using_content_location) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(assert_equal) integer(1)operator(,) ident(mail)operator(.)ident(attachments)operator(.)ident(length) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(attachments)operator(.)ident(first)operator(.)ident(original_filename) reserved(end) reserved(def) method(test_attachment_with_text_type) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(assert) ident(mail)operator(.)ident(has_attachments?) ident(assert_equal) integer(1)operator(,) ident(mail)operator(.)ident(attachments)operator(.)ident(length) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(attachments)operator(.)ident(first)operator(.)ident(original_filename) reserved(end) reserved(def) method(test_decode_part_without_content_type) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(assert_nothing_raised) operator({) ident(mail)operator(.)ident(body) operator(}) reserved(end) reserved(def) method(test_decode_message_without_content_type) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(assert_nothing_raised) operator({) ident(mail)operator(.)ident(body) operator(}) reserved(end) reserved(def) method(test_decode_message_with_incorrect_charset) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(assert_nothing_raised) operator({) ident(mail)operator(.)ident(body) operator(}) reserved(end) reserved(def) method(test_multipart_with_mime_version) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_multipart_with_mime_version)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(mime_version) reserved(end) reserved(def) method(test_multipart_with_utf8_subject) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_multipart_with_utf8_subject)operator(()instance_variable(@recipient)operator(\)) ident(assert_match)operator(()regexpoperator(,) ident(mail)operator(.)ident(encoded)operator(\)) reserved(end) reserved(def) method(test_implicitly_multipart_with_utf8) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_implicitly_multipart_with_utf8) ident(assert_match)operator(()regexpoperator(,) ident(mail)operator(.)ident(encoded)operator(\)) reserved(end) reserved(def) method(test_explicitly_multipart_messages) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_explicitly_multipart_example)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) integer(3)operator(,) ident(mail)operator(.)ident(parts)operator(.)ident(length) ident(assert_nil) ident(mail)operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(0)operator(])operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(content_disposition) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(2)operator(])operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(2)operator(])operator(.)ident(content_disposition) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(2)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(2)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) ident(assert_nil) ident(mail)operator(.)ident(parts)operator([)integer(2)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_explicitly_multipart_with_content_type) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_explicitly_multipart_example)operator(()instance_variable(@recipient)operator(,) stringoperator(\)) ident(assert_equal) integer(3)operator(,) ident(mail)operator(.)ident(parts)operator(.)ident(length) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(content_type) reserved(end) reserved(def) method(test_explicitly_multipart_with_invalid_content_type) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_explicitly_multipart_example)operator(()instance_variable(@recipient)operator(,) stringoperator(\)) ident(assert_equal) integer(3)operator(,) ident(mail)operator(.)ident(parts)operator(.)ident(length) ident(assert_nil) ident(mail)operator(.)ident(content_type) reserved(end) reserved(def) method(test_implicitly_multipart_messages) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_implicitly_multipart_example)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) integer(3)operator(,) ident(mail)operator(.)ident(parts)operator(.)ident(length) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(mime_version) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(0)operator(])operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(0)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(2)operator(])operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(2)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_implicitly_multipart_messages_with_custom_order) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_implicitly_multipart_example)operator(()instance_variable(@recipient)operator(,) pre_constant(nil)operator(,) operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_equal) integer(3)operator(,) ident(mail)operator(.)ident(parts)operator(.)ident(length) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(0)operator(])operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(2)operator(])operator(.)ident(content_type) reserved(end) reserved(def) method(test_implicitly_multipart_messages_with_charset) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_implicitly_multipart_example)operator(()instance_variable(@recipient)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(header)operator([)stringoperator(])operator(.)ident(body) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(0)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(2)operator(])operator(.)ident(sub_header)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_html_mail) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_html_mail)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(content_type) reserved(end) reserved(def) method(test_html_mail_with_underscores) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_html_mail_with_underscores)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) string_Google)delimiter(})>operator(,) ident(mail)operator(.)ident(body) reserved(end) reserved(def) method(test_various_newlines) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_various_newlines)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal)operator(()string operator(+) stringoperator(,) ident(mail)operator(.)ident(body)operator(\)) reserved(end) reserved(def) method(test_various_newlines_multipart) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_various_newlines_multipart)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(parts)operator([)integer(0)operator(])operator(.)ident(body) ident(assert_equal) stringline #1

)char(\\n)content(

line #2

)char(\\n)content(

line #3

)char(\\n)content(

line #4

)char(\\n)char(\\n)delimiter(")>operator(,) ident(mail)operator(.)ident(parts)operator([)integer(1)operator(])operator(.)ident(body) reserved(end) reserved(def) method(test_headers_removed_on_smtp_delivery) constant(ActionMailer)operator(::)constant(Base)operator(.)ident(delivery_method) operator(=) symbol(:smtp) constant(TestMailer)operator(.)ident(deliver_cc_bcc)operator(()instance_variable(@recipient)operator(\)) ident(assert) constant(MockSMTP)operator(.)ident(deliveries)operator([)integer(0)operator(])operator([)integer(2)operator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) constant(MockSMTP)operator(.)ident(deliveries)operator([)integer(0)operator(])operator([)integer(2)operator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) constant(MockSMTP)operator(.)ident(deliveries)operator([)integer(0)operator(])operator([)integer(2)operator(])operator(.)ident(include?)operator(()instance_variable(@recipient)operator(\)) ident(assert_match) regexpoperator(,) constant(MockSMTP)operator(.)ident(deliveries)operator([)integer(0)operator(])operator([)integer(0)operator(]) ident(assert_match) regexpdelimiter(})>operator(,) constant(MockSMTP)operator(.)ident(deliveries)operator([)integer(0)operator(])operator([)integer(0)operator(]) ident(assert_no_match) regexpoperator(,) constant(MockSMTP)operator(.)ident(deliveries)operator([)integer(0)operator(])operator([)integer(0)operator(]) reserved(end) reserved(def) method(test_recursive_multipart_processing) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(assert_equal) stringoperator(,) ident(mail)operator(.)ident(body) reserved(end) reserved(def) method(test_decode_encoded_attachment_filename) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(attachment) operator(=) ident(mail)operator(.)ident(attachments)operator(.)ident(last) ident(assert_equal) stringoperator(,) ident(attachment)operator(.)ident(original_filename) reserved(end) reserved(def) method(test_wrong_mail_header) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(assert_raise)operator(()constant(TMail)operator(::)constant(SyntaxError)operator(\)) operator({) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) operator(}) reserved(end) reserved(def) method(test_decode_message_with_unknown_charset) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(assert_nothing_raised) operator({) ident(mail)operator(.)ident(body) operator(}) reserved(end) reserved(def) method(test_decode_message_with_unquoted_atchar_in_header) ident(fixture) operator(=) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(mail) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(parse)operator(()ident(fixture)operator(\)) ident(assert_not_nil) ident(mail)operator(.)ident(from) reserved(end) reserved(def) method(test_empty_header_values_omitted) ident(result) operator(=) constant(TestMailer)operator(.)ident(create_unnamed_attachment)operator(()instance_variable(@recipient)operator(\))operator(.)ident(encoded) ident(assert_match) regexpoperator(,) ident(result) ident(assert_match) regexpoperator(,) ident(result) reserved(end) reserved(def) method(test_headers_with_nonalpha_chars) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_headers_with_nonalpha_chars)operator(()instance_variable(@recipient)operator(\)) ident(assert) operator(!)ident(mail)operator(.)ident(from_addrs)operator(.)ident(empty?) ident(assert) operator(!)ident(mail)operator(.)ident(cc_addrs)operator(.)ident(empty?) ident(assert) operator(!)ident(mail)operator(.)ident(bcc_addrs)operator(.)ident(empty?) ident(assert_match)operator(()regexpoperator(,) ident(mail)operator(.)ident(from_addrs)operator(.)ident(to_s)operator(\)) ident(assert_match)operator(()regexpoperator(,) ident(mail)operator(.)ident(cc_addrs)operator(.)ident(to_s)operator(\)) ident(assert_match)operator(()regexpoperator(,) ident(mail)operator(.)ident(bcc_addrs)operator(.)ident(to_s)operator(\)) reserved(end) reserved(def) method(test_deliver_with_mail_object) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_headers_with_nonalpha_chars)operator(()instance_variable(@recipient)operator(\)) ident(assert_nothing_raised) operator({) constant(TestMailer)operator(.)ident(deliver)operator(()ident(mail)operator(\)) operator(}) ident(assert_equal) integer(1)operator(,) constant(TestMailer)operator(.)ident(deliveries)operator(.)ident(length) reserved(end) reserved(def) method(test_multipart_with_template_path_with_dots) ident(mail) operator(=) constant(FunkyPathMailer)operator(.)ident(create_multipart_with_template_path_with_dots)operator(()instance_variable(@recipient)operator(\)) ident(assert_equal) integer(2)operator(,) ident(mail)operator(.)ident(parts)operator(.)ident(length) reserved(end) reserved(def) method(test_custom_content_type_attributes) ident(mail) operator(=) constant(TestMailer)operator(.)ident(create_custom_content_type_attributes) ident(assert_match) regexpoperator(,) ident(mail)operator([)stringoperator(])operator(.)ident(to_s) ident(assert_match) regexpoperator(,) ident(mail)operator([)stringoperator(])operator(.)ident(to_s) reserved(end) reserved(end) reserved(class) class(InheritableTemplateRootTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_attr) ident(expected) operator(=) stringcontent(/fixtures/path.with.dots)delimiter(")> ident(assert_equal) ident(expected)operator(,) constant(FunkyPathMailer)operator(.)ident(template_root) ident(sub) operator(=) constant(Class)operator(.)ident(new)operator(()constant(FunkyPathMailer)operator(\)) ident(sub)operator(.)ident(template_root) operator(=) string ident(assert_equal) stringoperator(,) ident(sub)operator(.)ident(template_root) ident(assert_equal) ident(expected)operator(,) constant(FunkyPathMailer)operator(.)ident(template_root) reserved(end) reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string ident(require) string reserved(class) class(QuotingTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_quote_multibyte_chars) ident(original) operator(=) string ident(result) operator(=) ident(execute_in_sandbox)operator(()stringoperator(\))stringcontent(, "UTF-8"\))delimiter( CODE)> ident(unquoted) operator(=) constant(TMail)operator(::)constant(Unquoter)operator(.)ident(unquote_and_convert_to)operator(()ident(result)operator(,) pre_constant(nil)operator(\)) ident(assert_equal) ident(unquoted)operator(,) ident(original) reserved(end) ident(private) comment(# This whole thing *could* be much simpler, but I don't think Tempfile,) comment(# popen and others exist on all platforms (like Windows\).) reserved(def) method(execute_in_sandbox)operator(()ident(code)operator(\)) ident(test_name) operator(=) stringcontent(/am-quoting-test.)inlinecontent(.rb)delimiter(")> ident(res_name) operator(=) stringcontent(/am-quoting-test.)inlinecontent(.out)delimiter(")> constant(File)operator(.)ident(open)operator(()ident(test_name)operator(,) stringoperator(\)) reserved(do) operator(|)ident(file)operator(|) ident(file)operator(.)ident(write)operator(()stringoperator(\))stringcontent( end puts block.call)delimiter( CODE)> reserved(end) ident(system)operator(()stringcontent( > )inlinedelimiter(")>operator(\)) reserved(or) ident(raise) string constant(File)operator(.)ident(read)operator(()ident(res_name)operator(\)) reserved(ensure) constant(File)operator(.)ident(delete)operator(()ident(test_name)operator(\)) reserved(rescue) pre_constant(nil) constant(File)operator(.)ident(delete)operator(()ident(res_name)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string ident(require) string reserved(class) class(TMailMailTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_body) ident(m) operator(=) constant(TMail)operator(::)constant(Mail)operator(.)ident(new) ident(expected) operator(=) string ident(m)operator(.)ident(encoding) operator(=) string ident(quoted_body) operator(=) operator([)ident(expected)operator(])operator(.)ident(pack)operator(()stringoperator(\)) ident(m)operator(.)ident(body) operator(=) ident(quoted_body) ident(assert_equal) stringoperator(,) ident(m)operator(.)ident(quoted_body) ident(assert_equal) ident(expected)operator(,) ident(m)operator(.)ident(body) reserved(end) reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string constant(Person) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:id)operator(,) symbol(:name)operator(,) symbol(:email_address)operator(,) symbol(:phone_number)operator(\)) reserved(class) class(AddressBookService) ident(attr_reader) symbol(:people) reserved(def) method(initialize)operator(()operator(\)) instance_variable(@people) operator(=) operator([)operator(]) reserved(end) reserved(def) method(create_person)operator(()ident(data)operator(\)) ident(people)operator(.)ident(unshift)operator(()constant(Person)operator(.)ident(new)operator(()ident(next_person_id)operator(,) ident(data)operator([)stringoperator(])operator(,) ident(data)operator([)stringoperator(])operator(,) ident(data)operator([)stringoperator(])operator(\))operator(\)) reserved(end) reserved(def) method(find_person)operator(()ident(topic_id)operator(\)) ident(people)operator(.)ident(select) operator({) operator(|)ident(person)operator(|) ident(person)operator(.)ident(id) operator(==) ident(person)operator(.)ident(to_i) operator(})operator(.)ident(first) reserved(end) reserved(def) method(next_person_id)operator(()operator(\)) ident(people)operator(.)ident(first)operator(.)ident(id) operator(+) integer(1) reserved(end) reserved(end) reserved(class) class(AddressBookController) operator(<) constant(ActionController)operator(::)constant(Base) ident(layout) string ident(before_filter) symbol(:initialize_session_storage) comment(# Could also have used a proc) comment(# before_filter proc { |c| c.instance_variable_set("@address_book", c.session["address_book"] ||= AddressBookService.new\) } ) reserved(def) method(index) instance_variable(@title) operator(=) string instance_variable(@people) operator(=) instance_variable(@address_book)operator(.)ident(people) reserved(end) reserved(def) method(person) instance_variable(@person) operator(=) instance_variable(@address_book)operator(.)ident(find_person)operator(()instance_variable(@params)operator([)stringoperator(])operator(\)) reserved(end) reserved(def) method(create_person) instance_variable(@address_book)operator(.)ident(create_person)operator(()instance_variable(@params)operator([)stringoperator(])operator(\)) ident(redirect_to) symbol(:action) operator(=)operator(>) string reserved(end) ident(private) reserved(def) method(initialize_session_storage) instance_variable(@address_book) operator(=) instance_variable(@session)operator([)stringoperator(]) operator(||=) constant(AddressBookService)operator(.)ident(new) reserved(end) reserved(end) constant(ActionController)operator(::)constant(Base)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) comment(# ActionController::Base.logger = Logger.new("debug.log"\) # Remove first comment to turn on logging in current dir) reserved(begin) constant(AddressBookController)operator(.)ident(process_cgi)operator(()constant(CGI)operator(.)ident(new)operator(\)) reserved(if) global_variable($0) operator(==) pre_constant(__FILE__) reserved(rescue) operator(=)operator(>) ident(e) constant(CGI)operator(.)ident(new)operator(.)ident(out) operator({) stringcontent(: )inlinedelimiter(")> operator(}) reserved(end)global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string constant(Person) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:name)operator(,) symbol(:address)operator(,) symbol(:age)operator(\)) reserved(class) class(BenchmarkController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(message) ident(render_text) string reserved(end) reserved(def) method(list) instance_variable(@people) operator(=) operator([) constant(Person)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Person)operator(.)ident(new)operator(()stringoperator(\)) operator(]) ident(render_template) stringName: <%= person.name %><% end %>)delimiter(")> reserved(end) reserved(def) method(form_helper) instance_variable(@person) operator(=) constant(Person)operator(.)ident(new) stringoperator(,) stringoperator(,) integer(24) ident(render_template)operator(() string )delimiter(")> operator(+) string and <%= text_field 'person', 'address' %> and <%= text_field 'person', 'age' %>)delimiter(")> operator(\)) reserved(end) reserved(end) comment(#ActionController::Base.template_root = File.dirname(__FILE__\)) ident(require) string constant(RUNS) operator(=) pre_constant(ARGV)operator([)integer(0)operator(]) operator(?) pre_constant(ARGV)operator([)integer(0)operator(])operator(.)ident(to_i) operator(:) integer(50) ident(require) string reserved(if) pre_constant(ARGV)operator([)integer(1)operator(]) ident(runtime) operator(=) constant(Benchmark)operator(.)ident(measure) operator({) constant(RUNS)operator(.)ident(times) operator({) constant(BenchmarkController)operator(.)ident(process_test)operator(()constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new)operator(()operator({) string operator(=)operator(>) string operator(})operator(\))operator(\)) operator(}) operator(}) ident(puts) stringdelimiter(")> ident(runtime) operator(=) constant(Benchmark)operator(.)ident(measure) operator({) constant(RUNS)operator(.)ident(times) operator({) constant(BenchmarkController)operator(.)ident(process_test)operator(()constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new)operator(()operator({) string operator(=)operator(>) string operator(})operator(\))operator(\)) operator(}) operator(}) ident(puts) stringdelimiter(")> ident(runtime) operator(=) constant(Benchmark)operator(.)ident(measure) operator({) constant(RUNS)operator(.)ident(times) operator({) constant(BenchmarkController)operator(.)ident(process_test)operator(()constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new)operator(()operator({) string operator(=)operator(>) string operator(})operator(\))operator(\)) operator(}) operator(}) ident(puts) stringdelimiter(")> ident(require) string ident(require) string ident(require) string ident(include) constant(Config) comment(# this was adapted from rdoc's install.rb by ways of Log4r) global_variable($sitedir) operator(=) constant(CONFIG)operator([)stringoperator(]) reserved(unless) global_variable($sitedir) ident(version) operator(=) constant(CONFIG)operator([)stringoperator(]) operator(+) string operator(+) constant(CONFIG)operator([)stringoperator(]) global_variable($libdir) operator(=) constant(File)operator(.)ident(join)operator(()constant(CONFIG)operator([)stringoperator(])operator(,) stringoperator(,) ident(version)operator(\)) global_variable($sitedir) operator(=) global_variable($:)operator(.)ident(find) operator({)operator(|)ident(x)operator(|) ident(x) operator(=)operator(~) regexp operator(}) reserved(if) operator(!)global_variable($sitedir) global_variable($sitedir) operator(=) constant(File)operator(.)ident(join)operator(()global_variable($libdir)operator(,) stringoperator(\)) reserved(elsif) global_variable($sitedir) operator(!)operator(~) constant(Regexp)operator(.)ident(quote)operator(()ident(version)operator(\)) global_variable($sitedir) operator(=) constant(File)operator(.)ident(join)operator(()global_variable($sitedir)operator(,) ident(version)operator(\)) reserved(end) reserved(end) comment(# the acual gruntwork) constant(Dir)operator(.)ident(chdir)operator(()stringoperator(\)) constant(Find)operator(.)ident(find)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator({) operator(|)ident(f)operator(|) reserved(if) ident(f)operator([)integer(-3)operator(..)integer(-1)operator(]) operator(==) string constant(File)operator(::)ident(install)operator(()ident(f)operator(,) constant(File)operator(.)ident(join)operator(()global_variable($sitedir)operator(,) operator(*)ident(f)operator(.)ident(split)operator(()regexpoperator(\))operator(\))operator(,) integer(0644)operator(,) pre_constant(true)operator(\)) reserved(else) constant(File)operator(::)ident(makedirs)operator(()constant(File)operator(.)ident(join)operator(()global_variable($sitedir)operator(,) operator(*)ident(f)operator(.)ident(split)operator(()regexpoperator(\))operator(\))operator(\)) reserved(end) operator(})ident(require) string ident(require) string ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(Test) comment(#:nodoc:) reserved(module) class(Unit) comment(#:nodoc:) comment(# In addition to these specific assertions, you also have easy access to various collections that the regular test/unit assertions) comment(# can be used against. These collections are:) comment(#) comment(# * assigns: Instance variables assigned in the action that are available for the view.) comment(# * session: Objects being saved in the session.) comment(# * flash: The flash objects currently in the session.) comment(# * cookies: Cookies being sent to the user on this request.) comment(# ) comment(# These collections can be used just like any other hash:) comment(#) comment(# assert_not_nil assigns(:person\) # makes sure that a @person instance variable was set) comment(# assert_equal "Dave", cookies[:name] # makes sure that a cookie called :name was set as "Dave") comment(# assert flash.empty? # makes sure that there's nothing in the flash) comment(#) comment(# For historic reasons, the assigns hash uses string-based keys. So assigns[:person] won't work, but assigns["person"] will. To) comment(# appease our yearning for symbols, though, an alternative accessor has been deviced using a method call instead of index referencing.) comment(# So assigns(:person\) will work just like assigns["person"], but again, assigns[:person] will not work.) comment(#) comment(# On top of the collections, you have the complete url that a given action redirected to available in redirect_to_url.) comment(#) comment(# For redirects within the same controller, you can even call follow_redirect and the redirect will be followed, triggering another) comment(# action call which can then be asserted against.) comment(#) comment(# == Manipulating the request collections) comment(#) comment(# The collections described above link to the response, so you can test if what the actions were expected to do happened. But) comment(# sometimes you also want to manipulate these collections in the incoming request. This is really only relevant for sessions) comment(# and cookies, though. For sessions, you just do:) comment(#) comment(# @request.session[:key] = "value") comment(#) comment(# For cookies, you need to manually create the cookie, like this:) comment(#) comment(# @request.cookies["key"] = CGI::Cookie.new("key", "value"\)) comment(#) comment(# == Testing named routes) comment(#) comment(# If you're using named routes, they can be easily tested using the original named routes methods straight in the test case.) comment(# Example: ) comment(#) comment(# assert_redirected_to page_url(:title => 'foo'\)) reserved(module) class(Assertions) comment(# Asserts that the response is one of the following types:) comment(# ) comment(# * :success: Status code was 200) comment(# * :redirect: Status code was in the 300-399 range) comment(# * :missing: Status code was 404) comment(# * :error: Status code was in the 500-599 range) comment(#) comment(# You can also pass an explicit status code number as the type, like assert_response(501\)) reserved(def) method(assert_response)operator(()ident(type)operator(,) ident(message) operator(=) pre_constant(nil)operator(\)) ident(clean_backtrace) reserved(do) reserved(if) operator([) symbol(:success)operator(,) symbol(:missing)operator(,) symbol(:redirect)operator(,) symbol(:error) operator(])operator(.)ident(include?)operator(()ident(type)operator(\)) operator(&&) instance_variable(@response)operator(.)ident(send)operator(()stringcontent(?)delimiter(")>operator(\)) ident(assert_block)operator(()stringoperator(\)) operator({) pre_constant(true) operator(}) comment(# to count the assertion) reserved(elsif) ident(type)operator(.)ident(is_a?)operator(()constant(Fixnum)operator(\)) operator(&&) instance_variable(@response)operator(.)ident(response_code) operator(==) ident(type) ident(assert_block)operator(()stringoperator(\)) operator({) pre_constant(true) operator(}) comment(# to count the assertion) reserved(else) ident(assert_block)operator(()ident(build_message)operator(()ident(message)operator(,) string, but was )delimiter(")>operator(,) ident(type)operator(,) instance_variable(@response)operator(.)ident(response_code)operator(\))operator(\)) operator({) pre_constant(false) operator(}) reserved(end) reserved(end) reserved(end) comment(# Assert that the redirection options passed in match those of the redirect called in the latest action. This match can be partial,) comment(# such that assert_redirected_to(:controller => "weblog"\) will also match the redirection of ) comment(# redirect_to(:controller => "weblog", :action => "show"\) and so on.) reserved(def) method(assert_redirected_to)operator(()ident(options) operator(=) operator({)operator(})operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) ident(clean_backtrace) reserved(do) ident(assert_response)operator(()symbol(:redirect)operator(,) ident(message)operator(\)) reserved(if) ident(options)operator(.)ident(is_a?)operator(()constant(String)operator(\)) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string, found one to )delimiter(")>operator(,) ident(options)operator(,) instance_variable(@response)operator(.)ident(redirect_url)operator(\)) ident(url_regexp) operator(=) regexp ident(eurl)operator(,) ident(epath)operator(,) ident(url)operator(,) ident(path) operator(=) operator([)ident(options)operator(,) instance_variable(@response)operator(.)ident(redirect_url)operator(])operator(.)ident(collect) reserved(do) operator(|)ident(url)operator(|) ident(u)operator(,) ident(p) operator(=) operator(()ident(url_regexp) operator(=)operator(~) ident(url)operator(\)) operator(?) operator([)global_variable($1)operator(,) global_variable($3)operator(]) operator(:) operator([)pre_constant(nil)operator(,) ident(url)operator(]) operator([)ident(u)operator(,) operator(()ident(p)operator([)integer(0)operator(..)integer(0)operator(]) operator(==) stringoperator(\)) operator(?) ident(p) operator(:) string operator(+) ident(p)operator(]) reserved(end)operator(.)ident(flatten) ident(assert_equal)operator(()ident(eurl)operator(,) ident(url)operator(,) ident(msg)operator(\)) reserved(if) ident(eurl) operator(&&) ident(url) ident(assert_equal)operator(()ident(epath)operator(,) ident(path)operator(,) ident(msg)operator(\)) reserved(if) ident(epath) operator(&&) ident(path) reserved(else) instance_variable(@response_diff) operator(=) ident(options)operator(.)ident(diff)operator(()instance_variable(@response)operator(.)ident(redirected_to)operator(\)) reserved(if) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(&&) instance_variable(@response)operator(.)ident(redirected_to)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string\))inline)delimiter(')> reserved(if) instance_variable(@response_diff)inline_delimiter(})>delimiter(")>operator(,) instance_variable(@response)operator(.)ident(redirected_to) operator(||) instance_variable(@response)operator(.)ident(redirect_url)operator(,) instance_variable(@response_diff)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) reserved(do) reserved(if) ident(options)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) instance_variable(@response)operator(.)ident(redirected_to) operator(==) ident(options) reserved(else) ident(options)operator(.)ident(keys)operator(.)ident(all?) reserved(do) operator(|)ident(k)operator(|) reserved(if) ident(k) operator(==) symbol(:controller) reserved(then) ident(options)operator([)ident(k)operator(]) operator(==) constant(ActionController)operator(::)constant(Routing)operator(.)ident(controller_relative_to)operator(()instance_variable(@response)operator(.)ident(redirected_to)operator([)ident(k)operator(])operator(,) instance_variable(@controller)operator(.)ident(class)operator(.)ident(controller_path)operator(\)) reserved(else) ident(options)operator([)ident(k)operator(]) operator(==) operator(()instance_variable(@response)operator(.)ident(redirected_to)operator([)ident(k)operator(])operator(.)ident(respond_to?)operator(()symbol(:to_param)operator(\)) operator(?) instance_variable(@response)operator(.)ident(redirected_to)operator([)ident(k)operator(])operator(.)ident(to_param) operator(:) instance_variable(@response)operator(.)ident(redirected_to)operator([)ident(k)operator(]) reserved(unless) instance_variable(@response)operator(.)ident(redirected_to)operator([)ident(k)operator(])operator(.)ident(nil?)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Asserts that the request was rendered with the appropriate template file.) reserved(def) method(assert_template)operator(()ident(expected) operator(=) pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) ident(clean_backtrace) reserved(do) ident(rendered) operator(=) ident(expected) operator(?) instance_variable(@response)operator(.)ident(rendered_file)operator(()operator(!)ident(expected)operator(.)ident(include?)operator(()stringoperator(\))operator(\)) operator(:) instance_variable(@response)operator(.)ident(rendered_file) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string but rendering with )delimiter(")>operator(,) ident(expected)operator(,) ident(rendered)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) reserved(do) reserved(if) ident(expected)operator(.)ident(nil?) operator(!)instance_variable(@response)operator(.)ident(rendered_with_file?) reserved(else) ident(expected) operator(==) ident(rendered) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Asserts that the routing of the given path was handled correctly and that the parsed options match.) reserved(def) method(assert_recognizes)operator(()ident(expected_options)operator(,) ident(path)operator(,) ident(extras)operator(=)operator({)operator(})operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) ident(clean_backtrace) reserved(do) ident(path) operator(=) stringdelimiter(")> reserved(unless) ident(path)operator([)integer(0)operator(..)integer(0)operator(]) operator(==) string comment(# Load routes.rb if it hasn't been loaded.) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(reload) reserved(if) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(empty?) comment(# Assume given controller) ident(request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new)operator(()operator({)operator(})operator(,) operator({)operator(})operator(,) pre_constant(nil)operator(\)) ident(request)operator(.)ident(path) operator(=) ident(path) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(recognize!)operator(()ident(request)operator(\)) ident(expected_options) operator(=) ident(expected_options)operator(.)ident(clone) ident(extras)operator(.)ident(each_key) operator({) operator(|)ident(key)operator(|) ident(expected_options)operator(.)ident(delete) ident(key) operator(}) reserved(unless) ident(extras)operator(.)ident(nil?) ident(expected_options)operator(.)ident(stringify_keys!) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string did not match )delimiter(")>operator(,) ident(request)operator(.)ident(path_parameters)operator(,) ident(expected_options)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(request)operator(.)ident(path_parameters) operator(==) ident(expected_options) operator(}) reserved(end) reserved(end) comment(# Asserts that the provided options can be used to generate the provided path.) reserved(def) method(assert_generates)operator(()ident(expected_path)operator(,) ident(options)operator(,) ident(defaults)operator(=)operator({)operator(})operator(,) ident(extras) operator(=) operator({)operator(})operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) ident(clean_backtrace) reserved(do) ident(expected_path) operator(=) stringdelimiter(")> reserved(unless) ident(expected_path)operator([)integer(0)operator(]) operator(==) integer(?/) comment(# Load routes.rb if it hasn't been loaded.) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(reload) reserved(if) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(empty?) ident(generated_path)operator(,) ident(extra_keys) operator(=) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(generate)operator(()ident(options)operator(,) ident(extras)operator(\)) ident(found_extras) operator(=) ident(options)operator(.)ident(reject) operator({)operator(|)ident(k)operator(,) ident(v)operator(|) operator(!) ident(extra_keys)operator(.)ident(include?) ident(k)operator(}) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string, not )delimiter(")>operator(,) ident(found_extras)operator(,) ident(extras)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(found_extras) operator(==) ident(extras) operator(}) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string did not match )delimiter(")>operator(,) ident(generated_path)operator(,) ident(expected_path)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(expected_path) operator(==) ident(generated_path) operator(}) reserved(end) reserved(end) comment(# Asserts that path and options match both ways; in other words, the URL generated from ) comment(# options is the same as path, and also that the options recognized from path are the same as options) reserved(def) method(assert_routing)operator(()ident(path)operator(,) ident(options)operator(,) ident(defaults)operator(=)operator({)operator(})operator(,) ident(extras)operator(=)operator({)operator(})operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) ident(assert_recognizes)operator(()ident(options)operator(,) ident(path)operator(,) ident(extras)operator(,) ident(message)operator(\)) ident(controller)operator(,) ident(default_controller) operator(=) ident(options)operator([)symbol(:controller)operator(])operator(,) ident(defaults)operator([)symbol(:controller)operator(]) reserved(if) ident(controller) operator(&&) ident(controller)operator(.)ident(include?)operator(()integer(?/)operator(\)) operator(&&) ident(default_controller) operator(&&) ident(default_controller)operator(.)ident(include?)operator(()integer(?/)operator(\)) ident(options)operator([)symbol(:controller)operator(]) operator(=) stringdelimiter(")> reserved(end) ident(assert_generates)operator(()ident(path)operator(,) ident(options)operator(,) ident(defaults)operator(,) ident(extras)operator(,) ident(message)operator(\)) reserved(end) comment(# Asserts that there is a tag/node/element in the body of the response) comment(# that meets all of the given conditions. The +conditions+ parameter must) comment(# be a hash of any of the following keys (all are optional\):) comment(#) comment(# * :tag: the node type must match the corresponding value) comment(# * :attributes: a hash. The node's attributes must match the) comment(# corresponding values in the hash.) comment(# * :parent: a hash. The node's parent must match the) comment(# corresponding hash.) comment(# * :child: a hash. At least one of the node's immediate children) comment(# must meet the criteria described by the hash.) comment(# * :ancestor: a hash. At least one of the node's ancestors must) comment(# meet the criteria described by the hash.) comment(# * :descendant: a hash. At least one of the node's descendants) comment(# must meet the criteria described by the hash.) comment(# * :sibling: a hash. At least one of the node's siblings must) comment(# meet the criteria described by the hash.) comment(# * :after: a hash. The node must be after any sibling meeting) comment(# the criteria described by the hash, and at least one sibling must match.) comment(# * :before: a hash. The node must be before any sibling meeting) comment(# the criteria described by the hash, and at least one sibling must match.) comment(# * :children: a hash, for counting children of a node. Accepts) comment(# the keys:) comment(# * :count: either a number or a range which must equal (or) comment(# include\) the number of children that match.) comment(# * :less_than: the number of matching children must be less) comment(# than this number.) comment(# * :greater_than: the number of matching children must be) comment(# greater than this number.) comment(# * :only: another hash consisting of the keys to use) comment(# to match on the children, and only matching children will be) comment(# counted.) comment(# * :content: the textual content of the node must match the) comment(# given value. This will not match HTML tags in the body of a) comment(# tag--only text.) comment(#) comment(# Conditions are matched using the following algorithm:) comment(#) comment(# * if the condition is a string, it must be a substring of the value.) comment(# * if the condition is a regexp, it must match the value.) comment(# * if the condition is a number, the value must match number.to_s.) comment(# * if the condition is +true+, the value must not be +nil+.) comment(# * if the condition is +false+ or +nil+, the value must be +nil+.) comment(#) comment(# Usage:) comment(#) comment(# # assert that there is a "span" tag) comment(# assert_tag :tag => "span") comment(#) comment(# # assert that there is a "span" tag with id="x") comment(# assert_tag :tag => "span", :attributes => { :id => "x" }) comment(#) comment(# # assert that there is a "span" tag using the short-hand) comment(# assert_tag :span) comment(#) comment(# # assert that there is a "span" tag with id="x" using the short-hand) comment(# assert_tag :span, :attributes => { :id => "x" }) comment(#) comment(# # assert that there is a "span" inside of a "div") comment(# assert_tag :tag => "span", :parent => { :tag => "div" }) comment(#) comment(# # assert that there is a "span" somewhere inside a table) comment(# assert_tag :tag => "span", :ancestor => { :tag => "table" }) comment(#) comment(# # assert that there is a "span" with at least one "em" child) comment(# assert_tag :tag => "span", :child => { :tag => "em" }) comment(#) comment(# # assert that there is a "span" containing a (possibly nested\)) comment(# # "strong" tag.) comment(# assert_tag :tag => "span", :descendant => { :tag => "strong" }) comment(#) comment(# # assert that there is a "span" containing between 2 and 4 "em" tags) comment(# # as immediate children) comment(# assert_tag :tag => "span",) comment(# :children => { :count => 2..4, :only => { :tag => "em" } } ) comment(#) comment(# # get funky: assert that there is a "div", with an "ul" ancestor) comment(# # and an "li" parent (with "class" = "enum"\), and containing a ) comment(# # "span" descendant that contains text matching /hello world/) comment(# assert_tag :tag => "div",) comment(# :ancestor => { :tag => "ul" },) comment(# :parent => { :tag => "li",) comment(# :attributes => { :class => "enum" } },) comment(# :descendant => { :tag => "span",) comment(# :child => /hello world/ }) comment(#) comment(# Please noteYou must explicitly) comment(# close all of your tags to use these assertions.) reserved(def) method(assert_tag)operator(()operator(*)ident(opts)operator(\)) ident(clean_backtrace) reserved(do) ident(opts) operator(=) ident(opts)operator(.)ident(size) operator(>) integer(1) operator(?) ident(opts)operator(.)ident(last)operator(.)ident(merge)operator(()operator({) symbol(:tag) operator(=)operator(>) ident(opts)operator(.)ident(first)operator(.)ident(to_s) operator(})operator(\)) operator(:) ident(opts)operator(.)ident(first) ident(tag) operator(=) ident(find_tag)operator(()ident(opts)operator(\)) ident(assert) ident(tag)operator(,) stringcontent( in:)char(\\n)inlinedelimiter(")> reserved(end) reserved(end) comment(# Identical to #assert_tag, but asserts that a matching tag does _not_) comment(# exist. (See #assert_tag for a full discussion of the syntax.\)) reserved(def) method(assert_no_tag)operator(()operator(*)ident(opts)operator(\)) ident(clean_backtrace) reserved(do) ident(opts) operator(=) ident(opts)operator(.)ident(size) operator(>) integer(1) operator(?) ident(opts)operator(.)ident(last)operator(.)ident(merge)operator(()operator({) symbol(:tag) operator(=)operator(>) ident(opts)operator(.)ident(first)operator(.)ident(to_s) operator(})operator(\)) operator(:) ident(opts)operator(.)ident(first) ident(tag) operator(=) ident(find_tag)operator(()ident(opts)operator(\)) ident(assert) operator(!)ident(tag)operator(,) stringcontent( in:)char(\\n)inlinedelimiter(")> reserved(end) reserved(end) comment(# test 2 html strings to be equivalent, i.e. identical up to reordering of attributes) reserved(def) method(assert_dom_equal)operator(()ident(expected)operator(,) ident(actual)operator(,) ident(message)operator(=)stringoperator(\)) ident(clean_backtrace) reserved(do) ident(expected_dom) operator(=) constant(HTML)operator(::)constant(Document)operator(.)ident(new)operator(()ident(expected)operator(\))operator(.)ident(root) ident(actual_dom) operator(=) constant(HTML)operator(::)constant(Document)operator(.)ident(new)operator(()ident(actual)operator(\))operator(.)ident(root) ident(full_message) operator(=) ident(build_message)operator(()ident(message)operator(,) string expected to be == to)char(\\n)content(.)delimiter(")>operator(,) ident(expected_dom)operator(.)ident(to_s)operator(,) ident(actual_dom)operator(.)ident(to_s)operator(\)) ident(assert_block)operator(()ident(full_message)operator(\)) operator({) ident(expected_dom) operator(==) ident(actual_dom) operator(}) reserved(end) reserved(end) comment(# negated form of +assert_dom_equivalent+) reserved(def) method(assert_dom_not_equal)operator(()ident(expected)operator(,) ident(actual)operator(,) ident(message)operator(=)stringoperator(\)) ident(clean_backtrace) reserved(do) ident(expected_dom) operator(=) constant(HTML)operator(::)constant(Document)operator(.)ident(new)operator(()ident(expected)operator(\))operator(.)ident(root) ident(actual_dom) operator(=) constant(HTML)operator(::)constant(Document)operator(.)ident(new)operator(()ident(actual)operator(\))operator(.)ident(root) ident(full_message) operator(=) ident(build_message)operator(()ident(message)operator(,) string expected to be != to)char(\\n)content(.)delimiter(")>operator(,) ident(expected_dom)operator(.)ident(to_s)operator(,) ident(actual_dom)operator(.)ident(to_s)operator(\)) ident(assert_block)operator(()ident(full_message)operator(\)) operator({) ident(expected_dom) operator(!=) ident(actual_dom) operator(}) reserved(end) reserved(end) comment(# ensures that the passed record is valid by active record standards. returns the error messages if not) reserved(def) method(assert_valid)operator(()ident(record)operator(\)) ident(clean_backtrace) reserved(do) ident(assert) ident(record)operator(.)ident(valid?)operator(,) ident(record)operator(.)ident(errors)operator(.)ident(full_messages)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(clean_backtrace)operator(()operator(&)ident(block)operator(\)) reserved(yield) reserved(rescue) constant(AssertionFailedError) operator(=)operator(>) ident(e) ident(path) operator(=) constant(File)operator(.)ident(expand_path)operator(()pre_constant(__FILE__)operator(\)) ident(raise) constant(AssertionFailedError)operator(,) ident(e)operator(.)ident(message)operator(,) ident(e)operator(.)ident(backtrace)operator(.)ident(reject) operator({) operator(|)ident(line)operator(|) constant(File)operator(.)ident(expand_path)operator(()ident(line)operator(\)) operator(=)operator(~) regexpdelimiter(/)> operator(}) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(module) class(ActionController) comment(#:nodoc:) reserved(class) class(ActionControllerError) operator(<) constant(StandardError) comment(#:nodoc:) reserved(end) reserved(class) class(SessionRestoreError) operator(<) constant(ActionControllerError) comment(#:nodoc:) reserved(end) reserved(class) class(MissingTemplate) operator(<) constant(ActionControllerError) comment(#:nodoc:) reserved(end) reserved(class) class(RoutingError) operator(<) constant(ActionControllerError) comment(#:nodoc:) ident(attr_reader) symbol(:failures) reserved(def) method(initialize)operator(()ident(message)operator(,) ident(failures)operator(=)operator([)operator(])operator(\)) reserved(super)operator(()ident(message)operator(\)) instance_variable(@failures) operator(=) ident(failures) reserved(end) reserved(end) reserved(class) class(UnknownController) operator(<) constant(ActionControllerError) comment(#:nodoc:) reserved(end) reserved(class) class(UnknownAction) operator(<) constant(ActionControllerError) comment(#:nodoc:) reserved(end) reserved(class) class(MissingFile) operator(<) constant(ActionControllerError) comment(#:nodoc:) reserved(end) reserved(class) class(SessionOverflowError) operator(<) constant(ActionControllerError) comment(#:nodoc:) constant(DEFAULT_MESSAGE) operator(=) string reserved(def) method(initialize)operator(()ident(message) operator(=) pre_constant(nil)operator(\)) reserved(super)operator(()ident(message) operator(||) constant(DEFAULT_MESSAGE)operator(\)) reserved(end) reserved(end) reserved(class) class(DoubleRenderError) operator(<) constant(ActionControllerError) comment(#:nodoc:) constant(DEFAULT_MESSAGE) operator(=) string reserved(def) method(initialize)operator(()ident(message) operator(=) pre_constant(nil)operator(\)) reserved(super)operator(()ident(message) operator(||) constant(DEFAULT_MESSAGE)operator(\)) reserved(end) reserved(end) reserved(class) class(RedirectBackError) operator(<) constant(ActionControllerError) comment(#:nodoc:) constant(DEFAULT_MESSAGE) operator(=) string reserved(def) method(initialize)operator(()ident(message) operator(=) pre_constant(nil)operator(\)) reserved(super)operator(()ident(message) operator(||) constant(DEFAULT_MESSAGE)operator(\)) reserved(end) reserved(end) comment(# Action Controllers are the core of a web request in Rails. They are made up of one or more actions that are executed ) comment(# on request and then either render a template or redirect to another action. An action is defined as a public method) comment(# on the controller, which will automatically be made accessible to the web-server through Rails Routes. ) comment(#) comment(# A sample controller could look like this:) comment(#) comment(# class GuestBookController < ActionController::Base) comment(# def index) comment(# @entries = Entry.find(:all\)) comment(# end) comment(# ) comment(# def sign) comment(# Entry.create(params[:entry]\)) comment(# redirect_to :action => "index") comment(# end) comment(# end) comment(#) comment(# Actions, by default, render a template in the app/views directory corresponding to the name of the controller and action) comment(# after executing code in the action. For example, the +index+ action of the +GuestBookController+ would render the ) comment(# template app/views/guestbook/index.rhtml by default after populating the @entries instance variable.) comment(#) comment(# Unlike index, the sign action will not render a template. After performing its main purpose (creating a ) comment(# new entry in the guest book\), it initiates a redirect instead. This redirect works by returning an external ) comment(# "302 Moved" HTTP response that takes the user to the index action.) comment(#) comment(# The index and sign represent the two basic action archetypes used in Action Controllers. Get-and-show and do-and-redirect.) comment(# Most actions are variations of these themes.) comment(#) comment(# == Requests) comment(#) comment(# Requests are processed by the Action Controller framework by extracting the value of the "action" key in the request parameters.) comment(# This value should hold the name of the action to be performed. Once the action has been identified, the remaining) comment(# request parameters, the session (if one is available\), and the full request with all the http headers are made available to) comment(# the action through instance variables. Then the action is performed.) comment(#) comment(# The full request object is available with the request accessor and is primarily used to query for http headers. These queries) comment(# are made by accessing the environment hash, like this:) comment(#) comment(# def server_ip) comment(# location = request.env["SERVER_ADDR"]) comment(# render :text => "This server hosted at #{location}") comment(# end) comment(#) comment(# == Parameters) comment(#) comment(# All request parameters, whether they come from a GET or POST request, or from the URL, are available through the params method) comment(# which returns a hash. For example, an action that was performed through /weblog/list?category=All&limit=5 will include ) comment(# { "category" => "All", "limit" => 5 } in params.) comment(#) comment(# It's also possible to construct multi-dimensional parameter hashes by specifying keys using brackets, such as:) comment(#) comment(# ) comment(# ) comment(#) comment(# A request stemming from a form holding these inputs will include { "post" => { "name" => "david", "address" => "hyacintvej" } }.) comment(# If the address input had been named "post[address][street]", the params would have included ) comment(# { "post" => { "address" => { "street" => "hyacintvej" } } }. There's no limit to the depth of the nesting.) comment(#) comment(# == Sessions) comment(#) comment(# Sessions allows you to store objects in between requests. This is useful for objects that are not yet ready to be persisted,) comment(# such as a Signup object constructed in a multi-paged process, or objects that don't change much and are needed all the time, such) comment(# as a User object for a system that requires login. The session should not be used, however, as a cache for objects where it's likely ) comment(# they could be changed unknowingly. It's usually too much work to keep it all synchronized -- something databases already excel at.) comment(#) comment(# You can place objects in the session by using the session method, which accesses a hash:) comment(#) comment(# session[:person] = Person.authenticate(user_name, password\)) comment(#) comment(# And retrieved again through the same hash:) comment(#) comment(# Hello #{session[:person]}) comment(#) comment(# For removing objects from the session, you can either assign a single key to nil, like session[:person] = nil, or you can) comment(# remove the entire session with reset_session.) comment(#) comment(# By default, sessions are stored on the file system in RAILS_ROOT/tmp/sessions. Any object can be placed in the session ) comment(# (as long as it can be Marshalled\). But remember that 1000 active sessions each storing a 50kb object could lead to a 50MB store on the filesystem.) comment(# In other words, think carefully about size and caching before resorting to the use of the session on the filesystem.) comment(#) comment(# An alternative to storing sessions on disk is to use ActiveRecordStore to store sessions in your database, which can solve problems) comment(# caused by storing sessions in the file system and may speed up your application. To use ActiveRecordStore, uncomment the line:) comment(# ) comment(# config.action_controller.session_store = :active_record_store) comment(#) comment(# in your environment.rb and run rake db:sessions:create.) comment(#) comment(# == Responses) comment(#) comment(# Each action results in a response, which holds the headers and document to be sent to the user's browser. The actual response) comment(# object is generated automatically through the use of renders and redirects and requires no user intervention.) comment(#) comment(# == Renders) comment(#) comment(# Action Controller sends content to the user by using one of five rendering methods. The most versatile and common is the rendering) comment(# of a template. Included in the Action Pack is the Action View, which enables rendering of ERb templates. It's automatically configured.) comment(# The controller passes objects to the view by assigning instance variables:) comment(#) comment(# def show) comment(# @post = Post.find(params[:id]\)) comment(# end) comment(#) comment(# Which are then automatically available to the view:) comment(#) comment(# Title: <%= @post.title %>) comment(#) comment(# You don't have to rely on the automated rendering. Especially actions that could result in the rendering of different templates will use) comment(# the manual rendering methods:) comment(#) comment(# def search) comment(# @results = Search.find(params[:query]\)) comment(# case @results) comment(# when 0 then render :action => "no_results") comment(# when 1 then render :action => "show") comment(# when 2..10 then render :action => "show_many") comment(# end) comment(# end) comment(#) comment(# Read more about writing ERb and Builder templates in link:classes/ActionView/Base.html.) comment(#) comment(# == Redirects) comment(#) comment(# Redirects are used to move from one action to another. For example, after a create action, which stores a blog entry to a database,) comment(# we might like to show the user the new entry. Because we're following good DRY principles (Don't Repeat Yourself\), we're going to reuse (and redirect to\)) comment(# a show action that we'll assume has already been created. The code might look like this:) comment(#) comment(# def create) comment(# @entry = Entry.new(params[:entry]\)) comment(# if @entry.save) comment(# # The entry was saved correctly, redirect to show) comment(# redirect_to :action => 'show', :id => @entry.id) comment(# else) comment(# # things didn't go so well, do something else) comment(# end) comment(# end) comment(#) comment(# In this case, after saving our new entry to the database, the user is redirected to the show method which is then executed.) comment(#) comment(# == Calling multiple redirects or renders) comment(#) comment(# An action should conclude with a single render or redirect. Attempting to try to do either again will result in a DoubleRenderError:) comment(#) comment(# def do_something) comment(# redirect_to :action => "elsewhere") comment(# render :action => "overthere" # raises DoubleRenderError) comment(# end) comment(#) comment(# If you need to redirect on the condition of something, then be sure to add "and return" to halt execution.) comment(#) comment(# def do_something) comment(# redirect_to(:action => "elsewhere"\) and return if monkeys.nil?) comment(# render :action => "overthere" # won't be called unless monkeys is nil) comment(# end) comment(#) reserved(class) class(Base) constant(DEFAULT_RENDER_STATUS_CODE) operator(=) string ident(include) constant(Reloadable)operator(::)constant(Subclasses) comment(# Determines whether the view has access to controller internals @request, @response, @session, and @template.) comment(# By default, it does.) class_variable(@@view_controller_internals) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:view_controller_internals) comment(# Protected instance variable cache) class_variable(@@protected_variables_cache) operator(=) pre_constant(nil) ident(cattr_accessor) symbol(:protected_variables_cache) comment(# Prepends all the URL-generating helpers from AssetHelper. This makes it possible to easily move javascripts, stylesheets, ) comment(# and images to a dedicated asset server away from the main web server. Example: ) comment(# ActionController::Base.asset_host = "http://assets.example.com") class_variable(@@asset_host) operator(=) string ident(cattr_accessor) symbol(:asset_host) comment(# All requests are considered local by default, so everyone will be exposed to detailed debugging screens on errors.) comment(# When the application is ready to go public, this should be set to false, and the protected method local_request?) comment(# should instead be implemented in the controller to determine when debugging screens should be shown.) class_variable(@@consider_all_requests_local) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:consider_all_requests_local) comment(# Enable or disable the collection of failure information for RoutingErrors.) comment(# This information can be extremely useful when tweaking custom routes, but is) comment(# pointless once routes have been tested and verified.) class_variable(@@debug_routes) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:debug_routes) comment(# Controls whether the application is thread-safe, so multi-threaded servers like WEBrick know whether to apply a mutex) comment(# around the performance of each action. Action Pack and Active Record are by default thread-safe, but many applications) comment(# may not be. Turned off by default.) class_variable(@@allow_concurrency) operator(=) pre_constant(false) ident(cattr_accessor) symbol(:allow_concurrency) comment(# Modern REST web services often need to submit complex data to the web application. ) comment(# The param_parsers hash lets you register handlers wich will process the http body and add parameters to the ) comment(# params hash. These handlers are invoked for post and put requests.) comment(#) comment(# By default application/xml is enabled. A XmlSimple class with the same param name as the root will be instanciated ) comment(# in the params. This allows XML requests to mask themselves as regular form submissions, so you can have one) comment(# action serve both regular forms and web service requests.) comment(# ) comment(# Example of doing your own parser for a custom content type:) comment(#) comment(# ActionController::Base.param_parsers[Mime::Type.lookup('application/atom+xml'\)] = Proc.new do |data| ) comment(# node = REXML::Document.new(post\) ) comment(# { node.root.name => node.root }) comment(# end) comment(#) comment(# Note: Up until release 1.1 of Rails, Action Controller would default to using XmlSimple configured to discard the ) comment(# root node for such requests. The new default is to keep the root, such that "David" results) comment(# in params[:r][:name] for "David" instead of params[:name]. To get the old behavior, you can ) comment(# re-register XmlSimple as application/xml handler ike this:) comment(#) comment(# ActionController::Base.param_parsers[Mime::XML] = ) comment(# Proc.new { |data| XmlSimple.xml_in(data, 'ForceArray' => false\) }) comment(#) comment(# A YAML parser is also available and can be turned on with:) comment(#) comment(# ActionController::Base.param_parsers[Mime::YAML] = :yaml) class_variable(@@param_parsers) operator(=) operator({) constant(Mime)operator(::)constant(XML) operator(=)operator(>) symbol(:xml_simple) operator(}) ident(cattr_accessor) symbol(:param_parsers) comment(# Template root determines the base from which template references will be made. So a call to render("test/template"\)) comment(# will be converted to "#{template_root}/test/template.rhtml".) ident(class_inheritable_accessor) symbol(:template_root) comment(# The logger is used for generating information on the action run-time (including benchmarking\) if available.) comment(# Can be set to nil for no logging. Compatible with both Ruby's own Logger and Log4r loggers.) ident(cattr_accessor) symbol(:logger) comment(# Determines which template class should be used by ActionController.) ident(cattr_accessor) symbol(:template_class) comment(# Turn on +ignore_missing_templates+ if you want to unit test actions without making the associated templates.) ident(cattr_accessor) symbol(:ignore_missing_templates) comment(# Holds the request object that's primarily used to get environment variables through access like) comment(# request.env["REQUEST_URI"].) ident(attr_accessor) symbol(:request) comment(# Holds a hash of all the GET, POST, and Url parameters passed to the action. Accessed like params["post_id"]) comment(# to get the post_id. No type casts are made, so all values are returned as strings.) ident(attr_accessor) symbol(:params) comment(# Holds the response object that's primarily used to set additional HTTP headers through access like ) comment(# response.headers["Cache-Control"] = "no-cache". Can also be used to access the final body HTML after a template) comment(# has been rendered through response.body -- useful for after_filters that wants to manipulate the output,) comment(# such as a OutputCompressionFilter.) ident(attr_accessor) symbol(:response) comment(# Holds a hash of objects in the session. Accessed like session[:person] to get the object tied to the "person") comment(# key. The session will hold any type of object as values, but the key should be a string or symbol.) ident(attr_accessor) symbol(:session) comment(# Holds a hash of header names and values. Accessed like headers["Cache-Control"] to get the value of the Cache-Control) comment(# directive. Values should always be specified as strings.) ident(attr_accessor) symbol(:headers) comment(# Holds the hash of variables that are passed on to the template class to be made available to the view. This hash) comment(# is generated by taking a snapshot of all the instance variables in the current scope just before a template is rendered.) ident(attr_accessor) symbol(:assigns) comment(# Returns the name of the action this controller is processing.) ident(attr_accessor) symbol(:action_name) reserved(class) operator(<<) class(self) comment(# Factory for the standard create, process loop where the controller is discarded after processing.) reserved(def) method(process)operator(()ident(request)operator(,) ident(response)operator(\)) comment(#:nodoc:) ident(new)operator(.)ident(process)operator(()ident(request)operator(,) ident(response)operator(\)) reserved(end) comment(# Converts the class name from something like "OneModule::TwoModule::NeatController" to "NeatController".) reserved(def) method(controller_class_name) instance_variable(@controller_class_name) operator(||=) ident(name)operator(.)ident(demodulize) reserved(end) comment(# Converts the class name from something like "OneModule::TwoModule::NeatController" to "neat".) reserved(def) method(controller_name) instance_variable(@controller_name) operator(||=) ident(controller_class_name)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(underscore) reserved(end) comment(# Converts the class name from something like "OneModule::TwoModule::NeatController" to "one_module/two_module/neat".) reserved(def) method(controller_path) instance_variable(@controller_path) operator(||=) ident(name)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(underscore) reserved(end) comment(# Return an array containing the names of public methods that have been marked hidden from the action processor.) comment(# By default, all methods defined in ActionController::Base and included modules are hidden.) comment(# More methods can be hidden using hide_actions.) reserved(def) method(hidden_actions) ident(write_inheritable_attribute)operator(()symbol(:hidden_actions)operator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(public_instance_methods)operator(\)) reserved(unless) ident(read_inheritable_attribute)operator(()symbol(:hidden_actions)operator(\)) ident(read_inheritable_attribute)operator(()symbol(:hidden_actions)operator(\)) reserved(end) comment(# Hide each of the given methods from being callable as actions.) reserved(def) method(hide_action)operator(()operator(*)ident(names)operator(\)) ident(write_inheritable_attribute)operator(()symbol(:hidden_actions)operator(,) ident(hidden_actions) operator(|) ident(names)operator(.)ident(collect) operator({) operator(|)ident(n)operator(|) ident(n)operator(.)ident(to_s) operator(})operator(\)) reserved(end) comment(# Replace sensitive paramater data from the request log.) comment(# Filters paramaters that have any of the arguments as a substring.) comment(# Looks in all subhashes of the param hash for keys to filter.) comment(# If a block is given, each key and value of the paramater hash and all) comment(# subhashes is passed to it, the value or key) comment(# can be replaced using String#replace or similar method.) comment(#) comment(# Examples:) comment(# filter_parameter_logging) comment(# => Does nothing, just slows the logging process down) comment(#) comment(# filter_parameter_logging :password) comment(# => replaces the value to all keys matching /password/i with "[FILTERED]") comment(#) comment(# filter_parameter_logging :foo, "bar") comment(# => replaces the value to all keys matching /foo|bar/i with "[FILTERED]") comment(#) comment(# filter_parameter_logging { |k,v| v.reverse! if k =~ /secret/i }) comment(# => reverses the value to all keys matching /secret/i) comment(#) comment(# filter_parameter_logging(:foo, "bar"\) { |k,v| v.reverse! if k =~ /secret/i }) comment(# => reverses the value to all keys matching /secret/i, and ) comment(# replaces the value to all keys matching /foo|bar/i with "[FILTERED]") reserved(def) method(filter_parameter_logging)operator(()operator(*)ident(filter_words)operator(,) operator(&)ident(block)operator(\)) ident(parameter_filter) operator(=) constant(Regexp)operator(.)ident(new)operator(()ident(filter_words)operator(.)ident(collect)operator({) operator(|)ident(s)operator(|) ident(s)operator(.)ident(to_s) operator(})operator(.)ident(join)operator(()stringoperator(\))operator(,) pre_constant(true)operator(\)) reserved(if) ident(filter_words)operator(.)ident(length) operator(>) integer(0) ident(define_method)operator(()symbol(:filter_parameters)operator(\)) reserved(do) operator(|)ident(unfiltered_parameters)operator(|) ident(filtered_parameters) operator(=) operator({)operator(}) ident(unfiltered_parameters)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(if) ident(key) operator(=)operator(~) ident(parameter_filter) ident(filtered_parameters)operator([)ident(key)operator(]) operator(=) string reserved(elsif) ident(value)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(filtered_parameters)operator([)ident(key)operator(]) operator(=) ident(filter_parameters)operator(()ident(value)operator(\)) reserved(elsif) ident(block_given?) ident(key)operator(,) ident(value) operator(=) ident(key)operator(.)ident(dup)operator(,) ident(value)operator(.)ident(dup) reserved(yield) ident(key)operator(,) ident(value) ident(filtered_parameters)operator([)ident(key)operator(]) operator(=) ident(value) reserved(else) ident(filtered_parameters)operator([)ident(key)operator(]) operator(=) ident(value) reserved(end) reserved(end) ident(filtered_parameters) reserved(end) reserved(end) reserved(end) ident(public) comment(# Extracts the action_name from the request parameters and performs that action.) reserved(def) method(process)operator(()ident(request)operator(,) ident(response)operator(,) ident(method) operator(=) symbol(:perform_action)operator(,) operator(*)ident(arguments)operator(\)) comment(#:nodoc:) ident(initialize_template_class)operator(()ident(response)operator(\)) ident(assign_shortcuts)operator(()ident(request)operator(,) ident(response)operator(\)) ident(initialize_current_url) ident(assign_names) ident(forget_variables_added_to_assigns) ident(log_processing) ident(send)operator(()ident(method)operator(,) operator(*)ident(arguments)operator(\)) ident(response) reserved(ensure) ident(process_cleanup) reserved(end) comment(# Returns a URL that has been rewritten according to the options hash and the defined Routes. ) comment(# (For doing a complete redirect, use redirect_to\).) comment(#  ) comment(# url_for is used to:) comment(#  ) comment(# All keys given to url_for are forwarded to the Route module, save for the following:) comment(# * :anchor -- specifies the anchor name to be appended to the path. For example, ) comment(# url_for :controller => 'posts', :action => 'show', :id => 10, :anchor => 'comments' ) comment(# will produce "/posts/show/10#comments".) comment(# * :only_path -- if true, returns the absolute URL (omitting the protocol, host name, and port\)) comment(# * :trailing_slash -- if true, adds a trailing slash, as in "/archive/2005/". Note that this) comment(# is currently not recommended since it breaks caching.) comment(# * :host -- overrides the default (current\) host if provided) comment(# * :protocol -- overrides the default (current\) protocol if provided) comment(#) comment(# The URL is generated from the remaining keys in the hash. A URL contains two key parts: the and a query string.) comment(# Routes composes a query string as the key/value pairs not included in the .) comment(#) comment(# The default Routes setup supports a typical Rails path of "controller/action/id" where action and id are optional, with) comment(# action defaulting to 'index' when not given. Here are some typical url_for statements and their corresponding URLs:) comment(#  ) comment(# url_for :controller => 'posts', :action => 'recent' # => 'proto://host.com/posts/recent') comment(# url_for :controller => 'posts', :action => 'index' # => 'proto://host.com/posts') comment(# url_for :controller => 'posts', :action => 'show', :id => 10 # => 'proto://host.com/posts/show/10') comment(#) comment(# When generating a new URL, missing values may be filled in from the current request's parameters. For example,) comment(# url_for :action => 'some_action' will retain the current controller, as expected. This behavior extends to) comment(# other parameters, including :controller, :id, and any other parameters that are placed into a Route's) comment(# path.) comment(#  ) comment(# The URL helpers such as url_for have a limited form of memory: when generating a new URL, they can look for) comment(# missing values in the current request's parameters. Routes attempts to guess when a value should and should not be) comment(# taken from the defaults. There are a few simple rules on how this is performed:) comment(#) comment(# * If the controller name begins with a slash, no defaults are used: url_for :controller => '/home') comment(# * If the controller changes, the action will default to index unless provided) comment(#) comment(# The final rule is applied while the URL is being generated and is best illustrated by an example. Let us consider the) comment(# route given by map.connect 'people/:last/:first/:action', :action => 'bio', :controller => 'people'.) comment(#) comment(# Suppose that the current URL is "people/hh/david/contacts". Let's consider a few different cases of URLs which are generated) comment(# from this page.) comment(#) comment(# * url_for :action => 'bio' -- During the generation of this URL, default values will be used for the first and) comment(# last components, and the action shall change. The generated URL will be, "people/hh/david/bio".) comment(# * url_for :first => 'davids-little-brother' This generates the URL 'people/hh/davids-little-brother' -- note) comment(# that this URL leaves out the assumed action of 'bio'.) comment(#) comment(# However, you might ask why the action from the current request, 'contacts', isn't carried over into the new URL. The) comment(# answer has to do with the order in which the parameters appear in the generated path. In a nutshell, since the) comment(# value that appears in the slot for :first is not equal to default value for :first we stop using) comment(# defaults. On it's own, this rule can account for much of the typical Rails URL behavior.) comment(#  ) comment(# Although a convienence, defaults can occasionaly get in your way. In some cases a default persists longer than desired.) comment(# The default may be cleared by adding :name => nil to url_for's options.) comment(# This is often required when writing form helpers, since the defaults in play may vary greatly depending upon where the) comment(# helper is used from. The following line will redirect to PostController's default action, regardless of the page it is) comment(# displayed on:) comment(#) comment(# url_for :controller => 'posts', :action => nil) comment(# ) comment(# If you explicitly want to create a URL that's almost the same as the current URL, you can do so using the) comment(# :overwrite_params options. Say for your posts you have different views for showing and printing them.) comment(# Then, in the show view, you get the URL for the print view like this) comment(#) comment(# url_for :overwrite_params => { :action => 'print' }) comment(#) comment(# This takes the current URL as is and only exchanges the action. In contrast, url_for :action => 'print') comment(# would have slashed-off the path components after the changed action.) reserved(def) method(url_for)operator(()ident(options) operator(=) operator({)operator(})operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) comment(#:doc:) reserved(case) ident(options) reserved(when) constant(String) reserved(then) ident(options) reserved(when) constant(Symbol) reserved(then) ident(send)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) reserved(when) constant(Hash) reserved(then) instance_variable(@url)operator(.)ident(rewrite)operator(()ident(rewrite_options)operator(()ident(options)operator(\))operator(\)) reserved(end) reserved(end) comment(# Converts the class name from something like "OneModule::TwoModule::NeatController" to "NeatController".) reserved(def) method(controller_class_name) pre_constant(self)operator(.)ident(class)operator(.)ident(controller_class_name) reserved(end) comment(# Converts the class name from something like "OneModule::TwoModule::NeatController" to "neat".) reserved(def) method(controller_name) pre_constant(self)operator(.)ident(class)operator(.)ident(controller_name) reserved(end) reserved(def) method(session_enabled?) ident(request)operator(.)ident(session_options)operator([)symbol(:disabled)operator(]) operator(!=) pre_constant(false) reserved(end) ident(protected) comment(# Renders the content that will be returned to the browser as the response body.) comment(#) comment(# === Rendering an action) comment(# ) comment(# Action rendering is the most common form and the type used automatically by Action Controller when nothing else is) comment(# specified. By default, actions are rendered within the current layout (if one exists\).) comment(#) comment(# # Renders the template for the action "goal" within the current controller) comment(# render :action => "goal") comment(#) comment(# # Renders the template for the action "short_goal" within the current controller,) comment(# # but without the current active layout) comment(# render :action => "short_goal", :layout => false) comment(#) comment(# # Renders the template for the action "long_goal" within the current controller,) comment(# # but with a custom layout) comment(# render :action => "long_goal", :layout => "spectacular") comment(#) comment(# _Deprecation_ _notice_: This used to have the signatures render_action("action", status = 200\),) comment(# render_without_layout("controller/action", status = 200\), and ) comment(# render_with_layout("controller/action", status = 200, layout\).) comment(#) comment(# === Rendering partials) comment(# ) comment(# Partial rendering is most commonly used together with Ajax calls that only update one or a few elements on a page) comment(# without reloading. Rendering of partials from the controller makes it possible to use the same partial template in) comment(# both the full-page rendering (by calling it from within the template\) and when sub-page updates happen (from the) comment(# controller action responding to Ajax calls\). By default, the current layout is not used.) comment(#) comment(# # Renders the partial located at app/views/controller/_win.r(html|xml\)) comment(# render :partial => "win") comment(#) comment(# # Renders the partial with a status code of 500 (internal error\)) comment(# render :partial => "broken", :status => 500) comment(#) comment(# # Renders the same partial but also makes a local variable available to it) comment(# render :partial => "win", :locals => { :name => "david" }) comment(#) comment(# # Renders a collection of the same partial by making each element of @wins available through ) comment(# # the local variable "win" as it builds the complete response) comment(# render :partial => "win", :collection => @wins) comment(#) comment(# # Renders the same collection of partials, but also renders the win_divider partial in between) comment(# # each win partial.) comment(# render :partial => "win", :collection => @wins, :spacer_template => "win_divider") comment(#) comment(# _Deprecation_ _notice_: This used to have the signatures ) comment(# render_partial(partial_path = default_template_name, object = nil, local_assigns = {}\) and) comment(# render_partial_collection(partial_name, collection, partial_spacer_template = nil, local_assigns = {}\).) comment(#) comment(# === Rendering a template) comment(# ) comment(# Template rendering works just like action rendering except that it takes a path relative to the template root. ) comment(# The current layout is automatically applied.) comment(#) comment(# # Renders the template located in [TEMPLATE_ROOT]/weblog/show.r(html|xml\) (in Rails, app/views/weblog/show.rhtml\)) comment(# render :template => "weblog/show") comment(#) comment(# === Rendering a file) comment(# ) comment(# File rendering works just like action rendering except that it takes a filesystem path. By default, the path) comment(# is assumed to be absolute, and the current layout is not applied.) comment(#) comment(# # Renders the template located at the absolute filesystem path) comment(# render :file => "/path/to/some/template.rhtml") comment(# render :file => "c:/path/to/some/template.rhtml") comment(#) comment(# # Renders a template within the current layout, and with a 404 status code) comment(# render :file => "/path/to/some/template.rhtml", :layout => true, :status => 404) comment(# render :file => "c:/path/to/some/template.rhtml", :layout => true, :status => 404) comment(#) comment(# # Renders a template relative to the template root and chooses the proper file extension) comment(# render :file => "some/template", :use_full_path => true) comment(#) comment(# _Deprecation_ _notice_: This used to have the signature render_file(path, status = 200\)) comment(#) comment(# === Rendering text) comment(# ) comment(# Rendering of text is usually used for tests or for rendering prepared content, such as a cache. By default, text) comment(# rendering is not done within the active layout.) comment(#) comment(# # Renders the clear text "hello world" with status code 200) comment(# render :text => "hello world!") comment(#) comment(# # Renders the clear text "Explosion!" with status code 500) comment(# render :text => "Explosion!", :status => 500 ) comment(#) comment(# # Renders the clear text "Hi there!" within the current active layout (if one exists\)) comment(# render :text => "Explosion!", :layout => true) comment(#) comment(# # Renders the clear text "Hi there!" within the layout ) comment(# # placed in "app/views/layouts/special.r(html|xml\)") comment(# render :text => "Explosion!", :layout => "special") comment(#) comment(# _Deprecation_ _notice_: This used to have the signature render_text("text", status = 200\)) comment(#) comment(# === Rendering an inline template) comment(#) comment(# Rendering of an inline template works as a cross between text and action rendering where the source for the template) comment(# is supplied inline, like text, but its interpreted with ERb or Builder, like action. By default, ERb is used for rendering) comment(# and the current layout is not used.) comment(#) comment(# # Renders "hello, hello, hello, again") comment(# render :inline => "<%= 'hello, ' * 3 + 'again' %>" ) comment(#) comment(# # Renders "

Good seeing you!

" using Builder) comment(# render :inline => "xml.p { 'Good seeing you!' }", :type => :rxml) comment(#) comment(# # Renders "hello david") comment(# render :inline => "<%= 'hello ' + name %>", :locals => { :name => "david" }) comment(#) comment(# _Deprecation_ _notice_: This used to have the signature render_template(template, status = 200, type = :rhtml\)) comment(#) comment(# === Rendering inline JavaScriptGenerator page updates) comment(#) comment(# In addition to rendering JavaScriptGenerator page updates with Ajax in RJS templates (see ActionView::Base for details\),) comment(# you can also pass the :update parameter to +render+, along with a block, to render page updates inline.) comment(#) comment(# render :update do |page|) comment(# page.replace_html 'user_list', :partial => 'user', :collection => @users) comment(# page.visual_effect :highlight, 'user_list') comment(# end) comment(#) comment(# === Rendering nothing) comment(#) comment(# Rendering nothing is often convenient in combination with Ajax calls that perform their effect client-side or) comment(# when you just want to communicate a status code. Due to a bug in Safari, nothing actually means a single space.) comment(#) comment(# # Renders an empty response with status code 200) comment(# render :nothing => true) comment(#) comment(# # Renders an empty response with status code 401 (access denied\)) comment(# render :nothing => true, :status => 401) reserved(def) method(render)operator(()ident(options) operator(=) pre_constant(nil)operator(,) ident(deprecated_status) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) comment(#:doc:) ident(raise) constant(DoubleRenderError)operator(,) string reserved(if) ident(performed?) comment(# Backwards compatibility) reserved(unless) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) reserved(if) ident(options) operator(==) symbol(:update) ident(options) operator(=) operator({)symbol(:update) operator(=)operator(>) pre_constant(true)operator(}) reserved(else) reserved(return) ident(render_file)operator(()ident(options) operator(||) ident(default_template_name)operator(,) ident(deprecated_status)operator(,) pre_constant(true)operator(\)) reserved(end) reserved(end) reserved(if) ident(content_type) operator(=) ident(options)operator([)symbol(:content_type)operator(]) ident(headers)operator([)stringoperator(]) operator(=) ident(content_type) reserved(end) reserved(if) ident(text) operator(=) ident(options)operator([)symbol(:text)operator(]) ident(render_text)operator(()ident(text)operator(,) ident(options)operator([)symbol(:status)operator(])operator(\)) reserved(else) reserved(if) ident(file) operator(=) ident(options)operator([)symbol(:file)operator(]) ident(render_file)operator(()ident(file)operator(,) ident(options)operator([)symbol(:status)operator(])operator(,) ident(options)operator([)symbol(:use_full_path)operator(])operator(,) ident(options)operator([)symbol(:locals)operator(]) operator(||) operator({)operator(})operator(\)) reserved(elsif) ident(template) operator(=) ident(options)operator([)symbol(:template)operator(]) ident(render_file)operator(()ident(template)operator(,) ident(options)operator([)symbol(:status)operator(])operator(,) pre_constant(true)operator(\)) reserved(elsif) ident(inline) operator(=) ident(options)operator([)symbol(:inline)operator(]) ident(render_template)operator(()ident(inline)operator(,) ident(options)operator([)symbol(:status)operator(])operator(,) ident(options)operator([)symbol(:type)operator(])operator(,) ident(options)operator([)symbol(:locals)operator(]) operator(||) operator({)operator(})operator(\)) reserved(elsif) ident(action_name) operator(=) ident(options)operator([)symbol(:action)operator(]) ident(render_action)operator(()ident(action_name)operator(,) ident(options)operator([)symbol(:status)operator(])operator(,) ident(options)operator([)symbol(:layout)operator(])operator(\)) reserved(elsif) ident(xml) operator(=) ident(options)operator([)symbol(:xml)operator(]) ident(render_xml)operator(()ident(xml)operator(,) ident(options)operator([)symbol(:status)operator(])operator(\)) reserved(elsif) ident(partial) operator(=) ident(options)operator([)symbol(:partial)operator(]) ident(partial) operator(=) ident(default_template_name) reserved(if) ident(partial) operator(==) pre_constant(true) reserved(if) ident(collection) operator(=) ident(options)operator([)symbol(:collection)operator(]) ident(render_partial_collection)operator(()ident(partial)operator(,) ident(collection)operator(,) ident(options)operator([)symbol(:spacer_template)operator(])operator(,) ident(options)operator([)symbol(:locals)operator(])operator(,) ident(options)operator([)symbol(:status)operator(])operator(\)) reserved(else) ident(render_partial)operator(()ident(partial)operator(,) constant(ActionView)operator(::)constant(Base)operator(::)constant(ObjectWrapper)operator(.)ident(new)operator(()ident(options)operator([)symbol(:object)operator(])operator(\))operator(,) ident(options)operator([)symbol(:locals)operator(])operator(,) ident(options)operator([)symbol(:status)operator(])operator(\)) reserved(end) reserved(elsif) ident(options)operator([)symbol(:update)operator(]) ident(add_variables_to_assigns) instance_variable(@template)operator(.)ident(send) symbol(:evaluate_assigns) ident(generator) operator(=) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(PrototypeHelper)operator(::)constant(JavaScriptGenerator)operator(.)ident(new)operator(()instance_variable(@template)operator(,) operator(&)ident(block)operator(\)) ident(render_javascript)operator(()ident(generator)operator(.)ident(to_s)operator(\)) reserved(elsif) ident(options)operator([)symbol(:nothing)operator(]) comment(# Safari doesn't pass the headers of the return if the response is zero length) ident(render_text)operator(()stringoperator(,) ident(options)operator([)symbol(:status)operator(])operator(\)) reserved(else) ident(render_file)operator(()ident(default_template_name)operator(,) ident(options)operator([)symbol(:status)operator(])operator(,) pre_constant(true)operator(\)) reserved(end) reserved(end) reserved(end) comment(# Renders according to the same rules as render, but returns the result in a string instead) comment(# of sending it as the response body to the browser.) reserved(def) method(render_to_string)operator(()ident(options) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) comment(#:doc:) ident(result) operator(=) ident(render)operator(()ident(options)operator(,) operator(&)ident(block)operator(\)) ident(erase_render_results) ident(forget_variables_added_to_assigns) ident(reset_variables_added_to_assigns) ident(result) reserved(end) reserved(def) method(render_action)operator(()ident(action_name)operator(,) ident(status) operator(=) pre_constant(nil)operator(,) ident(with_layout) operator(=) pre_constant(true)operator(\)) comment(#:nodoc:) ident(template) operator(=) ident(default_template_name)operator(()ident(action_name)operator(.)ident(to_s)operator(\)) reserved(if) ident(with_layout) operator(&&) operator(!)ident(template_exempt_from_layout?)operator(()ident(template)operator(\)) ident(render_with_layout)operator(()ident(template)operator(,) ident(status)operator(\)) reserved(else) ident(render_without_layout)operator(()ident(template)operator(,) ident(status)operator(\)) reserved(end) reserved(end) reserved(def) method(render_file)operator(()ident(template_path)operator(,) ident(status) operator(=) pre_constant(nil)operator(,) ident(use_full_path) operator(=) pre_constant(false)operator(,) ident(locals) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(add_variables_to_assigns) ident(assert_existence_of_template_file)operator(()ident(template_path)operator(\)) reserved(if) ident(use_full_path) ident(logger)operator(.)ident(info)operator(()stringdelimiter(")> operator(+) operator(()ident(status) operator(?) stringcontent(\))delimiter(")> operator(:) stringoperator(\))operator(\)) reserved(if) ident(logger) ident(render_text)operator(()instance_variable(@template)operator(.)ident(render_file)operator(()ident(template_path)operator(,) ident(use_full_path)operator(,) ident(locals)operator(\))operator(,) ident(status)operator(\)) reserved(end) reserved(def) method(render_template)operator(()ident(template)operator(,) ident(status) operator(=) pre_constant(nil)operator(,) ident(type) operator(=) symbol(:rhtml)operator(,) ident(local_assigns) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(add_variables_to_assigns) ident(render_text)operator(()instance_variable(@template)operator(.)ident(render_template)operator(()ident(type)operator(,) ident(template)operator(,) pre_constant(nil)operator(,) ident(local_assigns)operator(\))operator(,) ident(status)operator(\)) reserved(end) reserved(def) method(render_text)operator(()ident(text) operator(=) pre_constant(nil)operator(,) ident(status) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@performed_render) operator(=) pre_constant(true) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) operator(=) operator(()ident(status) operator(||) constant(DEFAULT_RENDER_STATUS_CODE)operator(\))operator(.)ident(to_s) instance_variable(@response)operator(.)ident(body) operator(=) ident(text) reserved(end) reserved(def) method(render_javascript)operator(()ident(javascript)operator(,) ident(status) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) operator(=) string ident(render_text)operator(()ident(javascript)operator(,) ident(status)operator(\)) reserved(end) reserved(def) method(render_xml)operator(()ident(xml)operator(,) ident(status) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) operator(=) string ident(render_text)operator(()ident(xml)operator(,) ident(status)operator(\)) reserved(end) reserved(def) method(render_nothing)operator(()ident(status) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(render_text)operator(()stringoperator(,) ident(status)operator(\)) reserved(end) reserved(def) method(render_partial)operator(()ident(partial_path) operator(=) ident(default_template_name)operator(,) ident(object) operator(=) pre_constant(nil)operator(,) ident(local_assigns) operator(=) pre_constant(nil)operator(,) ident(status) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(add_variables_to_assigns) ident(render_text)operator(()instance_variable(@template)operator(.)ident(render_partial)operator(()ident(partial_path)operator(,) ident(object)operator(,) ident(local_assigns)operator(\))operator(,) ident(status)operator(\)) reserved(end) reserved(def) method(render_partial_collection)operator(()ident(partial_name)operator(,) ident(collection)operator(,) ident(partial_spacer_template) operator(=) pre_constant(nil)operator(,) ident(local_assigns) operator(=) pre_constant(nil)operator(,) ident(status) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(add_variables_to_assigns) ident(render_text)operator(()instance_variable(@template)operator(.)ident(render_partial_collection)operator(()ident(partial_name)operator(,) ident(collection)operator(,) ident(partial_spacer_template)operator(,) ident(local_assigns)operator(\))operator(,) ident(status)operator(\)) reserved(end) reserved(def) method(render_with_layout)operator(()ident(template_name) operator(=) ident(default_template_name)operator(,) ident(status) operator(=) pre_constant(nil)operator(,) ident(layout) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(render_with_a_layout)operator(()ident(template_name)operator(,) ident(status)operator(,) ident(layout)operator(\)) reserved(end) reserved(def) method(render_without_layout)operator(()ident(template_name) operator(=) ident(default_template_name)operator(,) ident(status) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(render_with_no_layout)operator(()ident(template_name)operator(,) ident(status)operator(\)) reserved(end) comment(# Clears the rendered results, allowing for another render to be performed.) reserved(def) method(erase_render_results) comment(#:nodoc:) instance_variable(@response)operator(.)ident(body) operator(=) pre_constant(nil) instance_variable(@performed_render) operator(=) pre_constant(false) reserved(end) comment(# Clears the redirected results from the headers, resets the status to 200 and returns ) comment(# the URL that was used to redirect or nil if there was no redirected URL) comment(# Note that +redirect_to+ will change the body of the response to indicate a redirection.) comment(# The response body is not reset here, see +erase_render_results+) reserved(def) method(erase_redirect_results) comment(#:nodoc:) instance_variable(@performed_redirect) operator(=) pre_constant(false) ident(response)operator(.)ident(redirected_to) operator(=) pre_constant(nil) ident(response)operator(.)ident(redirected_to_method_params) operator(=) pre_constant(nil) ident(response)operator(.)ident(headers)operator([)stringoperator(]) operator(=) constant(DEFAULT_RENDER_STATUS_CODE) ident(response)operator(.)ident(headers)operator(.)ident(delete)operator(()stringoperator(\)) reserved(end) comment(# Erase both render and redirect results) reserved(def) method(erase_results) comment(#:nodoc:) ident(erase_render_results) ident(erase_redirect_results) reserved(end) reserved(def) method(rewrite_options)operator(()ident(options)operator(\)) comment(#:nodoc:) reserved(if) ident(defaults) operator(=) ident(default_url_options)operator(()ident(options)operator(\)) ident(defaults)operator(.)ident(merge)operator(()ident(options)operator(\)) reserved(else) ident(options) reserved(end) reserved(end) comment(# Overwrite to implement a number of default options that all url_for-based methods will use. The default options should come in) comment(# the form of a hash, just like the one you would use for url_for directly. Example:) comment(#) comment(# def default_url_options(options\)) comment(# { :project => @project.active? ? @project.url_name : "unknown" }) comment(# end) comment(#) comment(# As you can infer from the example, this is mostly useful for situations where you want to centralize dynamic decisions about the) comment(# urls as they stem from the business domain. Please note that any individual url_for call can always override the defaults set) comment(# by this method.) reserved(def) method(default_url_options)operator(()ident(options)operator(\)) comment(#:doc:) reserved(end) comment(# Redirects the browser to the target specified in +options+. This parameter can take one of three forms:) comment(#) comment(# * Hash: The URL will be generated by calling url_for with the +options+.) comment(# * String starting with protocol:// (like http://\): Is passed straight through as the target for redirection.) comment(# * String not containing a protocol: The current protocol and host is prepended to the string.) comment(# * :back: Back to the page that issued the request. Useful for forms that are triggered from multiple places.) comment(# Short-hand for redirect_to(request.env["HTTP_REFERER"]\)) comment(# ) comment(# Examples:) comment(# redirect_to :action => "show", :id => 5) comment(# redirect_to "http://www.rubyonrails.org") comment(# redirect_to "/images/screenshot.jpg") comment(# redirect_to :back) comment(#) comment(# The redirection happens as a "302 Moved" header.) comment(#) comment(# When using redirect_to :back, if there is no referrer,) comment(# RedirectBackError will be raised. You may specify some fallback) comment(# behavior for this case by rescueing RedirectBackError.) reserved(def) method(redirect_to)operator(()ident(options) operator(=) operator({)operator(})operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) comment(#:doc:) reserved(case) ident(options) reserved(when) regexp ident(raise) constant(DoubleRenderError) reserved(if) ident(performed?) ident(logger)operator(.)ident(info)operator(()stringdelimiter(")>operator(\)) reserved(if) ident(logger) ident(response)operator(.)ident(redirect)operator(()ident(options)operator(\)) ident(response)operator(.)ident(redirected_to) operator(=) ident(options) instance_variable(@performed_redirect) operator(=) pre_constant(true) reserved(when) constant(String) ident(redirect_to)operator(()ident(request)operator(.)ident(protocol) operator(+) ident(request)operator(.)ident(host_with_port) operator(+) ident(options)operator(\)) reserved(when) symbol(:back) ident(request)operator(.)ident(env)operator([)stringoperator(]) operator(?) ident(redirect_to)operator(()ident(request)operator(.)ident(env)operator([)stringoperator(])operator(\)) operator(:) ident(raise)operator(()constant(RedirectBackError)operator(\)) reserved(else) reserved(if) ident(parameters_for_method_reference)operator(.)ident(empty?) ident(redirect_to)operator(()ident(url_for)operator(()ident(options)operator(\))operator(\)) ident(response)operator(.)ident(redirected_to) operator(=) ident(options) reserved(else) ident(redirect_to)operator(()ident(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\))operator(\)) ident(response)operator(.)ident(redirected_to)operator(,) ident(response)operator(.)ident(redirected_to_method_params) operator(=) ident(options)operator(,) ident(parameters_for_method_reference) reserved(end) reserved(end) reserved(end) comment(# Sets a HTTP 1.1 Cache-Control header. Defaults to issuing a "private" instruction, so that) comment(# intermediate caches shouldn't cache the response.) comment(#) comment(# Examples:) comment(# expires_in 20.minutes) comment(# expires_in 3.hours, :private => false) comment(# expires in 3.hours, 'max-stale' => 5.hours, :private => nil, :public => true) comment(# ) comment(# This method will overwrite an existing Cache-Control header.) comment(# See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html for more possibilities.) reserved(def) method(expires_in)operator(()ident(seconds)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:doc:) ident(cache_options) operator(=) operator({) string operator(=)operator(>) ident(seconds)operator(,) string operator(=)operator(>) pre_constant(true) operator(})operator(.)ident(symbolize_keys)operator(.)ident(merge!)operator(()ident(options)operator(.)ident(symbolize_keys)operator(\)) ident(cache_options)operator(.)ident(delete_if) operator({) operator(|)ident(k)operator(,)ident(v)operator(|) ident(v)operator(.)ident(nil?) reserved(or) ident(v) operator(==) pre_constant(false) operator(}) ident(cache_control) operator(=) ident(cache_options)operator(.)ident(map)operator({) operator(|)ident(k)operator(,)ident(v)operator(|) ident(v) operator(==) pre_constant(true) operator(?) ident(k)operator(.)ident(to_s) operator(:) stringcontent(=)inlinedelimiter(")>operator(}) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) operator(=) ident(cache_control)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) comment(# Sets a HTTP 1.1 Cache-Control header of "no-cache" so no caching should occur by the browser or) comment(# intermediate caches (like caching proxy servers\).) reserved(def) method(expires_now) comment(#:doc:) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) operator(=) string reserved(end) comment(# Resets the session by clearing out all the objects stored within and initializing a new session object.) reserved(def) method(reset_session) comment(#:doc:) instance_variable(@request)operator(.)ident(reset_session) instance_variable(@session) operator(=) instance_variable(@request)operator(.)ident(session) instance_variable(@response)operator(.)ident(session) operator(=) instance_variable(@session) reserved(end) ident(private) reserved(def) pre_constant(self)operator(.)method(view_class) instance_variable(@view_class) operator(||=) comment(# create a new class based on the default template class and include helper methods) ident(returning) constant(Class)operator(.)ident(new)operator(()constant(ActionView)operator(::)constant(Base)operator(\)) reserved(do) operator(|)ident(view_class)operator(|) ident(view_class)operator(.)ident(send)operator(()symbol(:include)operator(,) ident(master_helper_module)operator(\)) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(view_root) instance_variable(@view_root) operator(||=) ident(template_root) reserved(end) reserved(def) method(initialize_template_class)operator(()ident(response)operator(\)) ident(raise) string reserved(unless) class_variable(@@template_class) ident(response)operator(.)ident(template) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(view_class)operator(.)ident(new)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(view_root)operator(,) operator({)operator(})operator(,) pre_constant(self)operator(\)) ident(response)operator(.)ident(redirected_to) operator(=) pre_constant(nil) instance_variable(@performed_render) operator(=) instance_variable(@performed_redirect) operator(=) pre_constant(false) reserved(end) reserved(def) method(assign_shortcuts)operator(()ident(request)operator(,) ident(response)operator(\)) instance_variable(@request)operator(,) instance_variable(@params)operator(,) instance_variable(@cookies) operator(=) ident(request)operator(,) ident(request)operator(.)ident(parameters)operator(,) ident(request)operator(.)ident(cookies) instance_variable(@response) operator(=) ident(response) instance_variable(@response)operator(.)ident(session) operator(=) ident(request)operator(.)ident(session) instance_variable(@session) operator(=) instance_variable(@response)operator(.)ident(session) instance_variable(@template) operator(=) instance_variable(@response)operator(.)ident(template) instance_variable(@assigns) operator(=) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns) instance_variable(@headers) operator(=) instance_variable(@response)operator(.)ident(headers) reserved(end) reserved(def) method(initialize_current_url) instance_variable(@url) operator(=) constant(UrlRewriter)operator(.)ident(new)operator(()instance_variable(@request)operator(,) instance_variable(@params)operator(.)ident(clone)operator(()operator(\))operator(\)) reserved(end) reserved(def) method(log_processing) reserved(if) ident(logger) ident(logger)operator(.)ident(info) stringchar(\\#)inlinecontent( (for )inlinecontent(\) [)inlinecontent(])delimiter(")> ident(logger)operator(.)ident(info) stringdelimiter(")> reserved(if) instance_variable(@session) reserved(and) instance_variable(@session)operator(.)ident(respond_to?)operator(()symbol(:session_id)operator(\)) ident(logger)operator(.)ident(info) stringdelimiter(")> reserved(end) reserved(end) reserved(def) method(perform_action) reserved(if) pre_constant(self)operator(.)ident(class)operator(.)ident(action_methods)operator(.)ident(include?)operator(()ident(action_name)operator(\)) operator(||) pre_constant(self)operator(.)ident(class)operator(.)ident(action_methods)operator(.)ident(include?)operator(()stringoperator(\)) ident(send)operator(()ident(action_name)operator(\)) ident(render) reserved(unless) ident(performed?) reserved(elsif) ident(template_exists?) operator(&&) ident(template_public?) ident(render) reserved(else) ident(raise) constant(UnknownAction)operator(,) stringdelimiter(")>operator(,) ident(caller) reserved(end) reserved(end) reserved(def) method(performed?) instance_variable(@performed_render) operator(||) instance_variable(@performed_redirect) reserved(end) reserved(def) method(assign_names) instance_variable(@action_name) operator(=) operator(()ident(params)operator([)stringoperator(]) operator(||) stringoperator(\)) reserved(end) reserved(def) method(action_methods) pre_constant(self)operator(.)ident(class)operator(.)ident(action_methods) reserved(end) reserved(def) pre_constant(self)operator(.)method(action_methods) instance_variable(@action_methods) operator(||=) constant(Set)operator(.)ident(new)operator(()ident(public_instance_methods) operator(-) ident(hidden_actions)operator(\)) reserved(end) reserved(def) method(add_variables_to_assigns) reserved(unless) instance_variable(@variables_added) ident(add_instance_variables_to_assigns) ident(add_class_variables_to_assigns) reserved(if) ident(view_controller_internals) instance_variable(@variables_added) operator(=) pre_constant(true) reserved(end) reserved(end) reserved(def) method(forget_variables_added_to_assigns) instance_variable(@variables_added) operator(=) pre_constant(nil) reserved(end) reserved(def) method(reset_variables_added_to_assigns) instance_variable(@template)operator(.)ident(instance_variable_set)operator(()stringoperator(,) pre_constant(nil)operator(\)) reserved(end) reserved(def) method(add_instance_variables_to_assigns) class_variable(@@protected_variables_cache) operator(||=) ident(protected_instance_variables)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({) operator(|)ident(h)operator(,) ident(k)operator(|) ident(h)operator([)ident(k)operator(]) operator(=) pre_constant(true)operator(;) ident(h) operator(}) ident(instance_variables)operator(.)ident(each) reserved(do) operator(|)ident(var)operator(|) reserved(next) reserved(if) class_variable(@@protected_variables_cache)operator(.)ident(include?)operator(()ident(var)operator(\)) instance_variable(@assigns)operator([)ident(var)operator([)integer(1)operator(..)integer(-1)operator(])operator(]) operator(=) ident(instance_variable_get)operator(()ident(var)operator(\)) reserved(end) reserved(end) reserved(def) method(add_class_variables_to_assigns) stringoperator(.)ident(each) reserved(do) operator(|)ident(cvar)operator(|) instance_variable(@assigns)operator([)ident(cvar)operator(]) operator(=) pre_constant(self)operator(.)ident(send)operator(()ident(cvar)operator(\)) reserved(end) reserved(end) reserved(def) method(protected_instance_variables) reserved(if) ident(view_controller_internals) operator([) stringoperator(,) stringoperator(,) string operator(]) reserved(else) operator([) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(]) reserved(end) reserved(end) reserved(def) method(request_origin) comment(# this *needs* to be cached!) comment(# otherwise you'd get different results if calling it more than once) instance_variable(@request_origin) operator(||=) stringcontent( at )inlinedelimiter(")> reserved(end) reserved(def) method(complete_request_uri) stringinlineinlinedelimiter(")> reserved(end) reserved(def) method(close_session) instance_variable(@session)operator(.)ident(close) reserved(unless) instance_variable(@session)operator(.)ident(nil?) operator(||) constant(Hash) operator(===) instance_variable(@session) reserved(end) reserved(def) method(template_exists?)operator(()ident(template_name) operator(=) ident(default_template_name)operator(\)) instance_variable(@template)operator(.)ident(file_exists?)operator(()ident(template_name)operator(\)) reserved(end) reserved(def) method(template_public?)operator(()ident(template_name) operator(=) ident(default_template_name)operator(\)) instance_variable(@template)operator(.)ident(file_public?)operator(()ident(template_name)operator(\)) reserved(end) reserved(def) method(template_exempt_from_layout?)operator(()ident(template_name) operator(=) ident(default_template_name)operator(\)) ident(template_name) operator(=)operator(~) regexp operator(||) operator(()instance_variable(@template)operator(.)ident(pick_template_extension)operator(()ident(template_name)operator(\)) operator(==) symbol(:rjs) reserved(rescue) pre_constant(false)operator(\)) reserved(end) reserved(def) method(assert_existence_of_template_file)operator(()ident(template_name)operator(\)) reserved(unless) ident(template_exists?)operator(()ident(template_name)operator(\)) operator(||) ident(ignore_missing_templates) ident(full_template_path) operator(=) instance_variable(@template)operator(.)ident(send)operator(()symbol(:full_template_path)operator(,) ident(template_name)operator(,) stringoperator(\)) ident(template_type) operator(=) operator(()ident(template_name) operator(=)operator(~) regexpoperator(\)) operator(?) string operator(:) string ident(raise)operator(()constant(MissingTemplate)operator(,) stringcontent( )inlinedelimiter(")>operator(\)) reserved(end) reserved(end) reserved(def) method(default_template_name)operator(()ident(action_name) operator(=) pre_constant(self)operator(.)ident(action_name)operator(\)) reserved(if) ident(action_name) ident(action_name) operator(=) ident(action_name)operator(.)ident(to_s) reserved(if) ident(action_name)operator(.)ident(include?)operator(()stringoperator(\)) operator(&&) ident(template_path_includes_controller?)operator(()ident(action_name)operator(\)) ident(action_name) operator(=) ident(strip_out_controller)operator(()ident(action_name)operator(\)) reserved(end) reserved(end) stringcontent(/)inlinedelimiter(")> reserved(end) reserved(def) method(strip_out_controller)operator(()ident(path)operator(\)) ident(path)operator(.)ident(split)operator(()stringoperator(,) integer(2)operator(\))operator(.)ident(last) reserved(end) reserved(def) method(template_path_includes_controller?)operator(()ident(path)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(controller_path)operator(.)ident(split)operator(()stringoperator(\))operator([)integer(-1)operator(]) operator(==) ident(path)operator(.)ident(split)operator(()stringoperator(\))operator([)integer(0)operator(]) reserved(end) reserved(def) method(process_cleanup) ident(close_session) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActionController) comment(#:nodoc:) comment(# The benchmarking module times the performance of actions and reports to the logger. If the Active Record) comment(# package has been included, a separate timing section for database calls will be added as well.) reserved(module) class(Benchmarking) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:perform_action_without_benchmark)operator(,) symbol(:perform_action) ident(alias_method) symbol(:perform_action)operator(,) symbol(:perform_action_with_benchmark) ident(alias_method) symbol(:render_without_benchmark)operator(,) symbol(:render) ident(alias_method) symbol(:render)operator(,) symbol(:render_with_benchmark) reserved(end) reserved(end) reserved(module) class(ClassMethods) comment(# Log and benchmark the workings of a single block and silence whatever logging that may have happened inside it ) comment(# (unless use_silence is set to false\).) comment(#) comment(# The benchmark is only recorded if the current level of the logger matches the log_level, which makes it) comment(# easy to include benchmarking statements in production software that will remain inexpensive because the benchmark) comment(# will only be conducted if the log level is low enough.) reserved(def) method(benchmark)operator(()ident(title)operator(,) ident(log_level) operator(=) constant(Logger)operator(::)constant(DEBUG)operator(,) ident(use_silence) operator(=) pre_constant(true)operator(\)) reserved(if) ident(logger) operator(&&) ident(logger)operator(.)ident(level) operator(==) ident(log_level) ident(result) operator(=) pre_constant(nil) ident(seconds) operator(=) constant(Benchmark)operator(.)ident(realtime) operator({) ident(result) operator(=) ident(use_silence) operator(?) ident(silence) operator({) reserved(yield) operator(}) operator(:) reserved(yield) operator(}) ident(logger)operator(.)ident(add)operator(()ident(log_level)operator(,) stringcontent( ()inline operator(%) ident(seconds)inline_delimiter(})>content(\))delimiter(")>operator(\)) ident(result) reserved(else) reserved(yield) reserved(end) reserved(end) comment(# Silences the logger for the duration of the block.) reserved(def) method(silence) ident(old_logger_level)operator(,) ident(logger)operator(.)ident(level) operator(=) ident(logger)operator(.)ident(level)operator(,) constant(Logger)operator(::)constant(ERROR) reserved(if) ident(logger) reserved(yield) reserved(ensure) ident(logger)operator(.)ident(level) operator(=) ident(old_logger_level) reserved(if) ident(logger) reserved(end) reserved(end) reserved(def) method(render_with_benchmark)operator(()ident(options) operator(=) pre_constant(nil)operator(,) ident(deprecated_status) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) reserved(unless) ident(logger) ident(render_without_benchmark)operator(()ident(options)operator(,) ident(deprecated_status)operator(,) operator(&)ident(block)operator(\)) reserved(else) ident(db_runtime) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(reset_runtime) reserved(if) constant(Object)operator(.)ident(const_defined?)operator(()stringoperator(\)) operator(&&) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connected?) ident(render_output) operator(=) pre_constant(nil) instance_variable(@rendering_runtime) operator(=) constant(Benchmark)operator(::)ident(measure)operator({) ident(render_output) operator(=) ident(render_without_benchmark)operator(()ident(options)operator(,) ident(deprecated_status)operator(,) operator(&)ident(block)operator(\)) operator(})operator(.)ident(real) reserved(if) constant(Object)operator(.)ident(const_defined?)operator(()stringoperator(\)) operator(&&) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connected?) instance_variable(@db_rt_before_render) operator(=) ident(db_runtime) instance_variable(@db_rt_after_render) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(reset_runtime) instance_variable(@rendering_runtime) operator(-=) instance_variable(@db_rt_after_render) reserved(end) ident(render_output) reserved(end) reserved(end) reserved(def) method(perform_action_with_benchmark) reserved(unless) ident(logger) ident(perform_action_without_benchmark) reserved(else) ident(runtime) operator(=) operator([)constant(Benchmark)operator(::)ident(measure)operator({) ident(perform_action_without_benchmark) operator(})operator(.)ident(real)operator(,) float(0.0001)operator(])operator(.)ident(max) ident(log_message) operator(=) stringoperator(,) ident(runtime)operator(\))inline_delimiter(})>content( ()inlinecontent( reqs/sec\))delimiter(")> ident(log_message) operator(<<) ident(rendering_runtime)operator(()ident(runtime)operator(\)) reserved(if) instance_variable(@rendering_runtime) ident(log_message) operator(<<) ident(active_record_runtime)operator(()ident(runtime)operator(\)) reserved(if) constant(Object)operator(.)ident(const_defined?)operator(()stringoperator(\)) operator(&&) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connected?) ident(log_message) operator(<<) stringoperator(])inline_delimiter(})>delimiter(")> ident(log_message) operator(<<) stringinline_delimiter(})>content(])delimiter(")> ident(logger)operator(.)ident(info)operator(()ident(log_message)operator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(rendering_runtime)operator(()ident(runtime)operator(\)) stringoperator(,) instance_variable(@rendering_runtime)operator(\))inline_delimiter(})>content( ()inlineoperator(,) operator(()instance_variable(@rendering_runtime) operator(*) integer(100)operator(\)) operator(/) ident(runtime)operator(\))inline_delimiter(})>content(%\))delimiter(")> reserved(end) reserved(def) method(active_record_runtime)operator(()ident(runtime)operator(\)) ident(db_runtime) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(reset_runtime) ident(db_runtime) operator(+=) instance_variable(@db_rt_before_render) reserved(if) instance_variable(@db_rt_before_render) ident(db_runtime) operator(+=) instance_variable(@db_rt_after_render) reserved(if) instance_variable(@db_rt_after_render) ident(db_percentage) operator(=) operator(()ident(db_runtime) operator(*) integer(100)operator(\)) operator(/) ident(runtime) stringoperator(,) ident(db_runtime)operator(\))inline_delimiter(})>content( ()inlineoperator(,) ident(db_percentage)operator(\))inline_delimiter(})>content(%\))delimiter(")> reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActionController) comment(#:nodoc:) comment(# Caching is a cheap way of speeding up slow applications by keeping the result of calculations, renderings, and database calls) comment(# around for subsequent requests. Action Controller affords you three approaches in varying levels of granularity: Page, Action, Fragment.) comment(#) comment(# You can read more about each approach and the sweeping assistance by clicking the modules below.) comment(#) comment(# Note: To turn off all caching and sweeping, set Base.perform_caching = false.) reserved(module) class(Caching) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) comment(#:nodoc:) ident(base)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(Pages)operator(,) constant(Actions)operator(,) constant(Fragments)operator(,) constant(Sweeping)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) class_variable(@@perform_caching) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:perform_caching) reserved(end) reserved(end) comment(# Page caching is an approach to caching where the entire action output of is stored as a HTML file that the web server) comment(# can serve without going through the Action Pack. This can be as much as 100 times faster than going through the process of dynamically) comment(# generating the content. Unfortunately, this incredible speed-up is only available to stateless pages where all visitors) comment(# are treated the same. Content management systems -- including weblogs and wikis -- have many pages that are a great fit) comment(# for this approach, but account-based systems where people log in and manipulate their own data are often less likely candidates.) comment(#) comment(# Specifying which actions to cache is done through the caches class method:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# caches_page :show, :new) comment(# end) comment(#) comment(# This will generate cache files such as weblog/show/5 and weblog/new, which match the URLs used to trigger the dynamic) comment(# generation. This is how the web server is able pick up a cache file when it exists and otherwise let the request pass on to) comment(# the Action Pack to generate it.) comment(#) comment(# Expiration of the cache is handled by deleting the cached file, which results in a lazy regeneration approach where the cache) comment(# is not restored before another hit is made against it. The API for doing so mimics the options from url_for and friends:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# def update) comment(# List.update(params[:list][:id], params[:list]\)) comment(# expire_page :action => "show", :id => params[:list][:id]) comment(# redirect_to :action => "show", :id => params[:list][:id]) comment(# end) comment(# end) comment(#) comment(# Additionally, you can expire caches using Sweepers that act on changes in the model to determine when a cache is supposed to be) comment(# expired.) comment(#) comment(# == Setting the cache directory) comment(#) comment(# The cache directory should be the document root for the web server and is set using Base.page_cache_directory = "/document/root".) comment(# For Rails, this directory has already been set to RAILS_ROOT + "/public".) comment(#) comment(# == Setting the cache extension) comment(#) comment(# By default, the cache extension is .html, which makes it easy for the cached files to be picked up by the web server. If you want) comment(# something else, like .php or .shtml, just set Base.page_cache_extension.) reserved(module) class(Pages) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) comment(#:nodoc:) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) class_variable(@@page_cache_directory) operator(=) reserved(defined?)operator(()constant(RAILS_ROOT)operator(\)) operator(?) stringcontent(/public)delimiter(")> operator(:) string ident(cattr_accessor) symbol(:page_cache_directory) class_variable(@@page_cache_extension) operator(=) string ident(cattr_accessor) symbol(:page_cache_extension) reserved(end) reserved(end) reserved(module) class(ClassMethods) comment(# Expires the page that was cached with the +path+ as a key. Example:) comment(# expire_page "/lists/show") reserved(def) method(expire_page)operator(()ident(path)operator(\)) reserved(return) reserved(unless) ident(perform_caching) ident(benchmark) stringdelimiter(")> reserved(do) constant(File)operator(.)ident(delete)operator(()ident(page_cache_path)operator(()ident(path)operator(\))operator(\)) reserved(if) constant(File)operator(.)ident(exists?)operator(()ident(page_cache_path)operator(()ident(path)operator(\))operator(\)) reserved(end) reserved(end) comment(# Manually cache the +content+ in the key determined by +path+. Example:) comment(# cache_page "I'm the cached content", "/lists/show") reserved(def) method(cache_page)operator(()ident(content)operator(,) ident(path)operator(\)) reserved(return) reserved(unless) ident(perform_caching) ident(benchmark) stringdelimiter(")> reserved(do) constant(FileUtils)operator(.)ident(makedirs)operator(()constant(File)operator(.)ident(dirname)operator(()ident(page_cache_path)operator(()ident(path)operator(\))operator(\))operator(\)) constant(File)operator(.)ident(open)operator(()ident(page_cache_path)operator(()ident(path)operator(\))operator(,) stringoperator(\)) operator({) operator(|)ident(f)operator(|) ident(f)operator(.)ident(write)operator(()ident(content)operator(\)) operator(}) reserved(end) reserved(end) comment(# Caches the +actions+ using the page-caching approach that'll store the cache in a path within the page_cache_directory that) comment(# matches the triggering url.) reserved(def) method(caches_page)operator(()operator(*)ident(actions)operator(\)) reserved(return) reserved(unless) ident(perform_caching) ident(actions)operator(.)ident(each) reserved(do) operator(|)ident(action)operator(|) ident(class_eval) stringcontent(' })delimiter(")> reserved(end) reserved(end) ident(private) reserved(def) method(page_cache_file)operator(()ident(path)operator(\)) ident(name) operator(=) operator(()operator(()ident(path)operator(.)ident(empty?) operator(||) ident(path) operator(==) stringoperator(\)) operator(?) string operator(:) constant(URI)operator(.)ident(unescape)operator(()ident(path)operator(\))operator(\)) ident(name) operator(<<) ident(page_cache_extension) reserved(unless) operator(()ident(name)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last) operator(||) ident(name)operator(\))operator(.)ident(include?) string reserved(return) ident(name) reserved(end) reserved(def) method(page_cache_path)operator(()ident(path)operator(\)) ident(page_cache_directory) operator(+) ident(page_cache_file)operator(()ident(path)operator(\)) reserved(end) reserved(end) comment(# Expires the page that was cached with the +options+ as a key. Example:) comment(# expire_page :controller => "lists", :action => "show") reserved(def) method(expire_page)operator(()ident(options) operator(=) operator({)operator(})operator(\)) reserved(return) reserved(unless) ident(perform_caching) reserved(if) ident(options)operator([)symbol(:action)operator(])operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(options)operator([)symbol(:action)operator(])operator(.)ident(dup)operator(.)ident(each) reserved(do) operator(|)ident(action)operator(|) pre_constant(self)operator(.)ident(class)operator(.)ident(expire_page)operator(()ident(url_for)operator(()ident(options)operator(.)ident(merge)operator(()operator({) symbol(:only_path) operator(=)operator(>) pre_constant(true)operator(,) symbol(:skip_relative_url_root) operator(=)operator(>) pre_constant(true)operator(,) symbol(:action) operator(=)operator(>) ident(action) operator(})operator(\))operator(\))operator(\)) reserved(end) reserved(else) pre_constant(self)operator(.)ident(class)operator(.)ident(expire_page)operator(()ident(url_for)operator(()ident(options)operator(.)ident(merge)operator(()operator({) symbol(:only_path) operator(=)operator(>) pre_constant(true)operator(,) symbol(:skip_relative_url_root) operator(=)operator(>) pre_constant(true) operator(})operator(\))operator(\))operator(\)) reserved(end) reserved(end) comment(# Manually cache the +content+ in the key determined by +options+. If no content is provided, the contents of @response.body is used) comment(# If no options are provided, the current +options+ for this action is used. Example:) comment(# cache_page "I'm the cached content", :controller => "lists", :action => "show") reserved(def) method(cache_page)operator(()ident(content) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) reserved(return) reserved(unless) ident(perform_caching) operator(&&) ident(caching_allowed) pre_constant(self)operator(.)ident(class)operator(.)ident(cache_page)operator(()ident(content) operator(||) instance_variable(@response)operator(.)ident(body)operator(,) ident(url_for)operator(()ident(options)operator(.)ident(merge)operator(()operator({) symbol(:only_path) operator(=)operator(>) pre_constant(true)operator(,) symbol(:skip_relative_url_root) operator(=)operator(>) pre_constant(true) operator(})operator(\))operator(\))operator(\)) reserved(end) ident(private) reserved(def) method(caching_allowed) operator(!)instance_variable(@request)operator(.)ident(post?) operator(&&) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) operator(&&) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(])operator(.)ident(to_i) operator(<) integer(400) reserved(end) reserved(end) comment(# Action caching is similar to page caching by the fact that the entire output of the response is cached, but unlike page caching,) comment(# every request still goes through the Action Pack. The key benefit of this is that filters are run before the cache is served, which) comment(# allows for authentication and other restrictions on whether someone is allowed to see the cache. Example:) comment(#) comment(# class ListsController < ApplicationController) comment(# before_filter :authenticate, :except => :public) comment(# caches_page :public) comment(# caches_action :show, :feed) comment(# end) comment(#) comment(# In this example, the public action doesn't require authentication, so it's possible to use the faster page caching method. But both the) comment(# show and feed action are to be shielded behind the authenticate filter, so we need to implement those as action caches.) comment(#) comment(# Action caching internally uses the fragment caching and an around filter to do the job. The fragment cache is named according to both) comment(# the current host and the path. So a page that is accessed at http://david.somewhere.com/lists/show/1 will result in a fragment named) comment(# "david.somewhere.com/lists/show/1". This allows the cacher to differentiate between "david.somewhere.com/lists/" and) comment(# "jamis.somewhere.com/lists/" -- which is a helpful way of assisting the subdomain-as-account-key pattern.) reserved(module) class(Actions) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(send)operator(()symbol(:attr_accessor)operator(,) symbol(:rendered_action_cache)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(#:nodoc:) reserved(def) method(caches_action)operator(()operator(*)ident(actions)operator(\)) reserved(return) reserved(unless) ident(perform_caching) ident(around_filter)operator(()constant(ActionCacheFilter)operator(.)ident(new)operator(()operator(*)ident(actions)operator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(expire_action)operator(()ident(options) operator(=) operator({)operator(})operator(\)) reserved(return) reserved(unless) ident(perform_caching) reserved(if) ident(options)operator([)symbol(:action)operator(])operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(options)operator([)symbol(:action)operator(])operator(.)ident(dup)operator(.)ident(each) reserved(do) operator(|)ident(action)operator(|) ident(expire_fragment)operator(()ident(url_for)operator(()ident(options)operator(.)ident(merge)operator(()operator({) symbol(:action) operator(=)operator(>) ident(action) operator(})operator(\))operator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last)operator(\)) reserved(end) reserved(else) ident(expire_fragment)operator(()ident(url_for)operator(()ident(options)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last)operator(\)) reserved(end) reserved(end) reserved(class) class(ActionCacheFilter) comment(#:nodoc:) reserved(def) method(initialize)operator(()operator(*)ident(actions)operator(\)) instance_variable(@actions) operator(=) ident(actions) reserved(end) reserved(def) method(before)operator(()ident(controller)operator(\)) reserved(return) reserved(unless) instance_variable(@actions)operator(.)ident(include?)operator(()ident(controller)operator(.)ident(action_name)operator(.)ident(intern)operator(\)) reserved(if) ident(cache) operator(=) ident(controller)operator(.)ident(read_fragment)operator(()ident(controller)operator(.)ident(url_for)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last)operator(\)) ident(controller)operator(.)ident(rendered_action_cache) operator(=) pre_constant(true) ident(controller)operator(.)ident(send)operator(()symbol(:render_text)operator(,) ident(cache)operator(\)) pre_constant(false) reserved(end) reserved(end) reserved(def) method(after)operator(()ident(controller)operator(\)) reserved(return) reserved(if) operator(!)instance_variable(@actions)operator(.)ident(include?)operator(()ident(controller)operator(.)ident(action_name)operator(.)ident(intern)operator(\)) operator(||) ident(controller)operator(.)ident(rendered_action_cache) ident(controller)operator(.)ident(write_fragment)operator(()ident(controller)operator(.)ident(url_for)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last)operator(,) ident(controller)operator(.)ident(response)operator(.)ident(body)operator(\)) reserved(end) reserved(end) reserved(end) comment(# Fragment caching is used for caching various blocks within templates without caching the entire action as a whole. This is useful when) comment(# certain elements of an action change frequently or depend on complicated state while other parts rarely change or can be shared amongst multiple) comment(# parties. The caching is doing using the cache helper available in the Action View. A template with caching might look something like:) comment(#) comment(# Hello <%= @name %>) comment(# <% cache do %>) comment(# All the topics in the system:) comment(# <%= render_collection_of_partials "topic", Topic.find_all %>) comment(# <% end %>) comment(#) comment(# This cache will bind to the name of action that called it. So you would be able to invalidate it using) comment(# expire_fragment(:controller => "topics", :action => "list"\) -- if that was the controller/action used. This is not too helpful) comment(# if you need to cache multiple fragments per action or if the action itself is cached using caches_action. So instead we should) comment(# qualify the name of the action used with something like:) comment(#) comment(# <% cache(:action => "list", :action_suffix => "all_topics"\) do %>) comment(#) comment(# That would result in a name such as "/topics/list/all_topics", which wouldn't conflict with any action cache and neither with another) comment(# fragment using a different suffix. Note that the URL doesn't have to really exist or be callable. We're just using the url_for system) comment(# to generate unique cache names that we can refer to later for expirations. The expiration call for this example would be) comment(# expire_fragment(:controller => "topics", :action => "list", :action_suffix => "all_topics"\).) comment(#) comment(# == Fragment stores) comment(#) comment(# In order to use the fragment caching, you need to designate where the caches should be stored. This is done by assigning a fragment store) comment(# of which there are four different kinds:) comment(#) comment(# * FileStore: Keeps the fragments on disk in the +cache_path+, which works well for all types of environments and shares the fragments for) comment(# all the web server processes running off the same application directory.) comment(# * MemoryStore: Keeps the fragments in memory, which is fine for WEBrick and for FCGI (if you don't care that each FCGI process holds its) comment(# own fragment store\). It's not suitable for CGI as the process is thrown away at the end of each request. It can potentially also take) comment(# up a lot of memory since each process keeps all the caches in memory.) comment(# * DRbStore: Keeps the fragments in the memory of a separate, shared DRb process. This works for all environments and only keeps one cache) comment(# around for all processes, but requires that you run and manage a separate DRb process.) comment(# * MemCacheStore: Works like DRbStore, but uses Danga's MemCache instead.) comment(# Requires the ruby-memcache library: gem install ruby-memcache.) comment(#) comment(# Configuration examples (MemoryStore is the default\):) comment(#) comment(# ActionController::Base.fragment_cache_store = :memory_store) comment(# ActionController::Base.fragment_cache_store = :file_store, "/path/to/cache/directory") comment(# ActionController::Base.fragment_cache_store = :drb_store, "druby://localhost:9192") comment(# ActionController::Base.fragment_cache_store = :mem_cache_store, "localhost") comment(# ActionController::Base.fragment_cache_store = MyOwnStore.new("parameter"\)) reserved(module) class(Fragments) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(class_eval) reserved(do) class_variable(@@fragment_cache_store) operator(=) constant(MemoryStore)operator(.)ident(new) ident(cattr_reader) symbol(:fragment_cache_store) reserved(def) pre_constant(self)operator(.)method(fragment_cache_store=)operator(()ident(store_option)operator(\)) ident(store)operator(,) operator(*)ident(parameters) operator(=) operator(*)operator(()operator([) ident(store_option) operator(])operator(.)ident(flatten)operator(\)) class_variable(@@fragment_cache_store) operator(=) reserved(if) ident(store)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) ident(store_class_name) operator(=) operator(()ident(store) operator(==) symbol(:drb_store) operator(?) string operator(:) ident(store)operator(.)ident(to_s)operator(.)ident(camelize)operator(\)) ident(store_class) operator(=) constant(ActionController)operator(::)constant(Caching)operator(::)constant(Fragments)operator(.)ident(const_get)operator(()ident(store_class_name)operator(\)) ident(store_class)operator(.)ident(new)operator(()operator(*)ident(parameters)operator(\)) reserved(else) ident(store) reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) method(fragment_cache_key)operator(()ident(name)operator(\)) ident(name)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(url_for)operator(()ident(name)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last) operator(:) ident(name) reserved(end) comment(# Called by CacheHelper#cache) reserved(def) method(cache_erb_fragment)operator(()ident(block)operator(,) ident(name) operator(=) operator({)operator(})operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) reserved(unless) ident(perform_caching) reserved(then) ident(block)operator(.)ident(call)operator(;) reserved(return) reserved(end) ident(buffer) operator(=) ident(eval)operator(()stringoperator(,) ident(block)operator(.)ident(binding)operator(\)) reserved(if) ident(cache) operator(=) ident(read_fragment)operator(()ident(name)operator(,) ident(options)operator(\)) ident(buffer)operator(.)ident(concat)operator(()ident(cache)operator(\)) reserved(else) ident(pos) operator(=) ident(buffer)operator(.)ident(length) ident(block)operator(.)ident(call) ident(write_fragment)operator(()ident(name)operator(,) ident(buffer)operator([)ident(pos)operator(..)integer(-1)operator(])operator(,) ident(options)operator(\)) reserved(end) reserved(end) reserved(def) method(write_fragment)operator(()ident(name)operator(,) ident(content)operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) reserved(return) reserved(unless) ident(perform_caching) ident(key) operator(=) ident(fragment_cache_key)operator(()ident(name)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(benchmark) stringdelimiter(")> reserved(do) ident(fragment_cache_store)operator(.)ident(write)operator(()ident(key)operator(,) ident(content)operator(,) ident(options)operator(\)) reserved(end) ident(content) reserved(end) reserved(def) method(read_fragment)operator(()ident(name)operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) reserved(return) reserved(unless) ident(perform_caching) ident(key) operator(=) ident(fragment_cache_key)operator(()ident(name)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(benchmark) stringdelimiter(")> reserved(do) ident(fragment_cache_store)operator(.)ident(read)operator(()ident(key)operator(,) ident(options)operator(\)) reserved(end) reserved(end) comment(# Name can take one of three forms:) comment(# * String: This would normally take the form of a path like "pages/45/notes") comment(# * Hash: Is treated as an implicit call to url_for, like { :controller => "pages", :action => "notes", :id => 45 }) comment(# * Regexp: Will destroy all the matched fragments, example: %r{pages/\\d*/notes} Ensure you do not specify start and finish in the regex (^$\) because the actual filename matched looks like ./cache/filename/path.cache) reserved(def) method(expire_fragment)operator(()ident(name)operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) reserved(return) reserved(unless) ident(perform_caching) ident(key) operator(=) ident(fragment_cache_key)operator(()ident(name)operator(\)) reserved(if) ident(key)operator(.)ident(is_a?)operator(()constant(Regexp)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(benchmark) stringdelimiter(")> reserved(do) ident(fragment_cache_store)operator(.)ident(delete_matched)operator(()ident(key)operator(,) ident(options)operator(\)) reserved(end) reserved(else) pre_constant(self)operator(.)ident(class)operator(.)ident(benchmark) stringdelimiter(")> reserved(do) ident(fragment_cache_store)operator(.)ident(delete)operator(()ident(key)operator(,) ident(options)operator(\)) reserved(end) reserved(end) reserved(end) comment(# Deprecated -- just call expire_fragment with a regular expression) reserved(def) method(expire_matched_fragments)operator(()ident(matcher) operator(=) regexpoperator(,) ident(options) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(expire_fragment)operator(()ident(matcher)operator(,) ident(options)operator(\)) reserved(end) reserved(class) class(UnthreadedMemoryStore) comment(#:nodoc:) reserved(def) method(initialize) comment(#:nodoc:) instance_variable(@data) operator(=) operator({)operator(}) reserved(end) reserved(def) method(read)operator(()ident(name)operator(,) ident(options)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@data)operator([)ident(name)operator(]) reserved(end) reserved(def) method(write)operator(()ident(name)operator(,) ident(value)operator(,) ident(options)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@data)operator([)ident(name)operator(]) operator(=) ident(value) reserved(end) reserved(def) method(delete)operator(()ident(name)operator(,) ident(options)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@data)operator(.)ident(delete)operator(()ident(name)operator(\)) reserved(end) reserved(def) method(delete_matched)operator(()ident(matcher)operator(,) ident(options)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@data)operator(.)ident(delete_if) operator({) operator(|)ident(k)operator(,)ident(v)operator(|) ident(k) operator(=)operator(~) ident(matcher) operator(}) reserved(end) reserved(end) reserved(module) class(ThreadSafety) comment(#:nodoc:) reserved(def) method(read)operator(()ident(name)operator(,) ident(options)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@mutex)operator(.)ident(synchronize) operator({) reserved(super) operator(}) reserved(end) reserved(def) method(write)operator(()ident(name)operator(,) ident(value)operator(,) ident(options)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@mutex)operator(.)ident(synchronize) operator({) reserved(super) operator(}) reserved(end) reserved(def) method(delete)operator(()ident(name)operator(,) ident(options)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@mutex)operator(.)ident(synchronize) operator({) reserved(super) operator(}) reserved(end) reserved(def) method(delete_matched)operator(()ident(matcher)operator(,) ident(options)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@mutex)operator(.)ident(synchronize) operator({) reserved(super) operator(}) reserved(end) reserved(end) reserved(class) class(MemoryStore) operator(<) constant(UnthreadedMemoryStore) comment(#:nodoc:) reserved(def) method(initialize) comment(#:nodoc:) reserved(super) reserved(if) constant(ActionController)operator(::)constant(Base)operator(.)ident(allow_concurrency) instance_variable(@mutex) operator(=) constant(Mutex)operator(.)ident(new) constant(MemoryStore)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ThreadSafety)operator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(DRbStore) operator(<) constant(MemoryStore) comment(#:nodoc:) ident(attr_reader) symbol(:address) reserved(def) method(initialize)operator(()ident(address) operator(=) stringoperator(\)) reserved(super)operator(()operator(\)) instance_variable(@address) operator(=) ident(address) instance_variable(@data) operator(=) constant(DRbObject)operator(.)ident(new)operator(()pre_constant(nil)operator(,) ident(address)operator(\)) reserved(end) reserved(end) reserved(class) class(MemCacheStore) operator(<) constant(MemoryStore) comment(#:nodoc:) ident(attr_reader) symbol(:addresses) reserved(def) method(initialize)operator(()operator(*)ident(addresses)operator(\)) reserved(super)operator(()operator(\)) ident(addresses) operator(=) ident(addresses)operator(.)ident(flatten) ident(addresses) operator(=) operator([)stringoperator(]) reserved(if) ident(addresses)operator(.)ident(empty?) instance_variable(@addresses) operator(=) ident(addresses) instance_variable(@data) operator(=) constant(MemCache)operator(.)ident(new)operator(()operator(*)ident(addresses)operator(\)) reserved(end) reserved(end) reserved(class) class(UnthreadedFileStore) comment(#:nodoc:) ident(attr_reader) symbol(:cache_path) reserved(def) method(initialize)operator(()ident(cache_path)operator(\)) instance_variable(@cache_path) operator(=) ident(cache_path) reserved(end) reserved(def) method(write)operator(()ident(name)operator(,) ident(value)operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(ensure_cache_path)operator(()constant(File)operator(.)ident(dirname)operator(()ident(real_file_path)operator(()ident(name)operator(\))operator(\))operator(\)) constant(File)operator(.)ident(open)operator(()ident(real_file_path)operator(()ident(name)operator(\))operator(,) stringoperator(\)) operator({) operator(|)ident(f)operator(|) ident(f)operator(.)ident(write)operator(()ident(value)operator(\)) operator(}) reserved(rescue) operator(=)operator(>) ident(e) constant(Base)operator(.)ident(logger)operator(.)ident(error) stringcontent( ()inlinecontent(\))delimiter(")> reserved(if) constant(Base)operator(.)ident(logger) reserved(end) reserved(def) method(read)operator(()ident(name)operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) constant(File)operator(.)ident(open)operator(()ident(real_file_path)operator(()ident(name)operator(\))operator(,) stringoperator(\)) operator({) operator(|)ident(f)operator(|) ident(f)operator(.)ident(read) operator(}) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(delete)operator(()ident(name)operator(,) ident(options)operator(\)) comment(#:nodoc:) constant(File)operator(.)ident(delete)operator(()ident(real_file_path)operator(()ident(name)operator(\))operator(\)) reserved(rescue) constant(SystemCallError) operator(=)operator(>) ident(e) comment(# If there's no cache, then there's nothing to complain about) reserved(end) reserved(def) method(delete_matched)operator(()ident(matcher)operator(,) ident(options)operator(\)) comment(#:nodoc:) ident(search_dir)operator(()instance_variable(@cache_path)operator(\)) reserved(do) operator(|)ident(f)operator(|) reserved(if) ident(f) operator(=)operator(~) ident(matcher) reserved(begin) constant(File)operator(.)ident(delete)operator(()ident(f)operator(\)) reserved(rescue) constant(Object) operator(=)operator(>) ident(e) comment(# If there's no cache, then there's nothing to complain about) reserved(end) reserved(end) reserved(end) reserved(end) ident(private) reserved(def) method(real_file_path)operator(()ident(name)operator(\)) string operator(%) operator([)instance_variable(@cache_path)operator(,) ident(name)operator(.)ident(gsub)operator(()stringoperator(,) stringoperator(\))operator(.)ident(gsub)operator(()stringoperator(,) stringoperator(\))operator(]) reserved(end) reserved(def) method(ensure_cache_path)operator(()ident(path)operator(\)) constant(FileUtils)operator(.)ident(makedirs)operator(()ident(path)operator(\)) reserved(unless) constant(File)operator(.)ident(exists?)operator(()ident(path)operator(\)) reserved(end) reserved(def) method(search_dir)operator(()ident(dir)operator(,) operator(&)ident(callback)operator(\)) constant(Dir)operator(.)ident(foreach)operator(()ident(dir)operator(\)) reserved(do) operator(|)ident(d)operator(|) reserved(next) reserved(if) ident(d) operator(==) string operator(||) ident(d) operator(==) string ident(name) operator(=) constant(File)operator(.)ident(join)operator(()ident(dir)operator(,) ident(d)operator(\)) reserved(if) constant(File)operator(.)ident(directory?)operator(()ident(name)operator(\)) ident(search_dir)operator(()ident(name)operator(,) operator(&)ident(callback)operator(\)) reserved(else) ident(callback)operator(.)ident(call) ident(name) reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(FileStore) operator(<) constant(UnthreadedFileStore) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(cache_path)operator(\)) reserved(super)operator(()ident(cache_path)operator(\)) reserved(if) constant(ActionController)operator(::)constant(Base)operator(.)ident(allow_concurrency) instance_variable(@mutex) operator(=) constant(Mutex)operator(.)ident(new) constant(FileStore)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ThreadSafety)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Sweepers are the terminators of the caching world and responsible for expiring caches when model objects change.) comment(# They do this by being half-observers, half-filters and implementing callbacks for both roles. A Sweeper example:) comment(#) comment(# class ListSweeper < ActionController::Caching::Sweeper) comment(# observe List, Item) comment(#) comment(# def after_save(record\)) comment(# list = record.is_a?(List\) ? record : record.list) comment(# expire_page(:controller => "lists", :action => %w( show public feed \), :id => list.id\)) comment(# expire_action(:controller => "lists", :action => "all"\)) comment(# list.shares.each { |share| expire_page(:controller => "lists", :action => "show", :id => share.url_key\) }) comment(# end) comment(# end) comment(#) comment(# The sweeper is assigned in the controllers that wish to have its job performed using the cache_sweeper class method:) comment(#) comment(# class ListsController < ApplicationController) comment(# caches_action :index, :show, :public, :feed) comment(# cache_sweeper :list_sweeper, :only => [ :edit, :destroy, :share ]) comment(# end) comment(#) comment(# In the example above, four actions are cached and three actions are responsible for expiring those caches.) reserved(module) class(Sweeping) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(#:nodoc:) reserved(def) method(cache_sweeper)operator(()operator(*)ident(sweepers)operator(\)) reserved(return) reserved(unless) ident(perform_caching) ident(configuration) operator(=) ident(sweepers)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(sweepers)operator(.)ident(pop) operator(:) operator({)operator(}) ident(sweepers)operator(.)ident(each) reserved(do) operator(|)ident(sweeper)operator(|) ident(observer)operator(()ident(sweeper)operator(\)) ident(sweeper_instance) operator(=) constant(Object)operator(.)ident(const_get)operator(()constant(Inflector)operator(.)ident(classify)operator(()ident(sweeper)operator(\))operator(\))operator(.)ident(instance) reserved(if) ident(sweeper_instance)operator(.)ident(is_a?)operator(()constant(Sweeper)operator(\)) ident(around_filter)operator(()ident(sweeper_instance)operator(,) symbol(:only) operator(=)operator(>) ident(configuration)operator([)symbol(:only)operator(])operator(\)) reserved(else) ident(after_filter)operator(()ident(sweeper_instance)operator(,) symbol(:only) operator(=)operator(>) ident(configuration)operator([)symbol(:only)operator(])operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(if) reserved(defined?)operator(()constant(ActiveRecord)operator(\)) reserved(and) reserved(defined?)operator(()constant(ActiveRecord)operator(::)constant(Observer)operator(\)) reserved(class) class(Sweeper) operator(<) constant(ActiveRecord)operator(::)constant(Observer) comment(#:nodoc:) ident(attr_accessor) symbol(:controller) comment(# ActiveRecord::Observer will mark this class as reloadable even though it should not be.) comment(# However, subclasses of ActionController::Caching::Sweeper should be Reloadable) ident(include) constant(Reloadable)operator(::)constant(Subclasses) reserved(def) method(before)operator(()ident(controller)operator(\)) pre_constant(self)operator(.)ident(controller) operator(=) ident(controller) ident(callback)operator(()symbol(:before)operator(\)) reserved(end) reserved(def) method(after)operator(()ident(controller)operator(\)) ident(callback)operator(()symbol(:after)operator(\)) comment(# Clean up, so that the controller can be collected after this request) pre_constant(self)operator(.)ident(controller) operator(=) pre_constant(nil) reserved(end) ident(private) reserved(def) method(callback)operator(()ident(timing)operator(\)) ident(controller_callback_method_name) operator(=) stringcontent(_)inlinedelimiter(")> ident(action_callback_method_name) operator(=) stringcontent(_)inlinedelimiter(")> ident(send)operator(()ident(controller_callback_method_name)operator(\)) reserved(if) ident(respond_to?)operator(()ident(controller_callback_method_name)operator(\)) ident(send)operator(()ident(action_callback_method_name)operator(\)) reserved(if) ident(respond_to?)operator(()ident(action_callback_method_name)operator(\)) reserved(end) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(arguments)operator(\)) reserved(return) reserved(if) instance_variable(@controller)operator(.)ident(nil?) instance_variable(@controller)operator(.)ident(send)operator(()ident(method)operator(,) operator(*)ident(arguments)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string comment(# Wrapper around the CGIMethods that have been secluded to allow testing without ) comment(# an instantiated CGI object) reserved(class) class(CGI) comment(#:nodoc:) reserved(class) operator(<<) class(self) reserved(alias) symbol(:escapeHTML_fail_on_nil) symbol(:escapeHTML) reserved(def) method(escapeHTML)operator(()ident(string)operator(\)) ident(escapeHTML_fail_on_nil)operator(()ident(string)operator(\)) reserved(unless) ident(string)operator(.)ident(nil?) reserved(end) reserved(end) comment(# Returns a parameter hash including values from both the request (POST/GET\)) comment(# and the query string with the latter taking precedence.) reserved(def) method(parameters) ident(request_parameters)operator(.)ident(update)operator(()ident(query_parameters)operator(\)) reserved(end) reserved(def) method(query_parameters) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()ident(query_string)operator(\)) reserved(end) reserved(def) method(request_parameters) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(params)operator(,) ident(env_table)operator(\)) reserved(end) reserved(def) method(redirect)operator(()ident(where)operator(\)) ident(header)operator(()operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringdelimiter(")> operator(})operator(\)) reserved(end) reserved(def) method(session)operator(()ident(parameters) operator(=) pre_constant(nil)operator(\)) ident(parameters) operator(=) operator({)operator(}) reserved(if) ident(parameters)operator(.)ident(nil?) ident(parameters)operator([)stringoperator(]) operator(=) constant(CGI)operator(::)constant(Session)operator(::)constant(PStore) constant(CGI)operator(::)constant(Session)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(parameters)operator(\)) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string comment(# Static methods for parsing the query and request parameters that can be used in) comment(# a CGI extension class or testing in isolation.) reserved(class) class(CGIMethods) comment(#:nodoc:) ident(public) comment(# Returns a hash with the pairs from the query string. The implicit hash construction that is done in) comment(# parse_request_params is not done here.) reserved(def) constant(CGIMethods)operator(.)method(parse_query_parameters)operator(()ident(query_string)operator(\)) ident(parsed_params) operator(=) operator({)operator(}) ident(query_string)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(each) operator({) operator(|)ident(p)operator(|) comment(# Ignore repeated delimiters.) reserved(next) reserved(if) ident(p)operator(.)ident(empty?) ident(k)operator(,) ident(v) operator(=) ident(p)operator(.)ident(split)operator(()stringoperator(,)integer(2)operator(\)) ident(v) operator(=) pre_constant(nil) reserved(if) operator(()ident(v) operator(&&) ident(v)operator(.)ident(empty?)operator(\)) ident(k) operator(=) constant(CGI)operator(.)ident(unescape)operator(()ident(k)operator(\)) reserved(if) ident(k) ident(v) operator(=) constant(CGI)operator(.)ident(unescape)operator(()ident(v)operator(\)) reserved(if) ident(v) reserved(unless) ident(k)operator(.)ident(include?)operator(()integer(?[)operator(\)) ident(parsed_params)operator([)ident(k)operator(]) operator(=) ident(v) reserved(else) ident(keys) operator(=) ident(split_key)operator(()ident(k)operator(\)) ident(last_key) operator(=) ident(keys)operator(.)ident(pop) ident(last_key) operator(=) ident(keys)operator(.)ident(pop) reserved(if) operator(()ident(use_array) operator(=) ident(last_key)operator(.)ident(empty?)operator(\)) ident(parent) operator(=) ident(keys)operator(.)ident(inject)operator(()ident(parsed_params)operator(\)) operator({)operator(|)ident(h)operator(,) ident(k)operator(|) ident(h)operator([)ident(k)operator(]) operator(||=) operator({)operator(})operator(}) reserved(if) ident(use_array) reserved(then) operator(()ident(parent)operator([)ident(last_key)operator(]) operator(||=) operator([)operator(])operator(\)) operator(<<) ident(v) reserved(else) ident(parent)operator([)ident(last_key)operator(]) operator(=) ident(v) reserved(end) reserved(end) operator(}) ident(parsed_params) reserved(end) comment(# Returns the request (POST/GET\) parameters in a parsed form where pairs such as "customer[address][street]" / ) comment(# "Somewhere cool!" are translated into a full hash hierarchy, like) comment(# { "customer" => { "address" => { "street" => "Somewhere cool!" } } }) reserved(def) constant(CGIMethods)operator(.)method(parse_request_parameters)operator(()ident(params)operator(\)) ident(parsed_params) operator(=) operator({)operator(}) reserved(for) ident(key)operator(,) ident(value) reserved(in) ident(params) ident(value) operator(=) operator([)ident(value)operator(]) reserved(if) ident(key) operator(=)operator(~) regexp reserved(unless) ident(key)operator(.)ident(include?)operator(()stringoperator(\)) comment(# much faster to test for the most common case first (GET\)) comment(# and avoid the call to build_deep_hash) ident(parsed_params)operator([)ident(key)operator(]) operator(=) ident(get_typed_value)operator(()ident(value)operator([)integer(0)operator(])operator(\)) reserved(else) ident(build_deep_hash)operator(()ident(get_typed_value)operator(()ident(value)operator([)integer(0)operator(])operator(\))operator(,) ident(parsed_params)operator(,) ident(get_levels)operator(()ident(key)operator(\))operator(\)) reserved(end) reserved(end) ident(parsed_params) reserved(end) reserved(def) pre_constant(self)operator(.)method(parse_formatted_request_parameters)operator(()ident(mime_type)operator(,) ident(raw_post_data)operator(\)) ident(params) operator(=) reserved(case) ident(strategy) operator(=) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)ident(mime_type)operator(]) reserved(when) constant(Proc) ident(strategy)operator(.)ident(call)operator(()ident(raw_post_data)operator(\)) reserved(when) symbol(:xml_simple) ident(raw_post_data)operator(.)ident(blank?) operator(?) pre_constant(nil) operator(:) ident(typecast_xml_value)operator(()constant(XmlSimple)operator(.)ident(xml_in)operator(()ident(raw_post_data)operator(,) string operator(=)operator(>) pre_constant(false)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) string operator(=)operator(>) stringoperator(\))operator(\)) reserved(when) symbol(:yaml) constant(YAML)operator(.)ident(load)operator(()ident(raw_post_data)operator(\)) reserved(when) symbol(:xml_node) ident(node) operator(=) constant(XmlNode)operator(.)ident(from_xml)operator(()ident(raw_post_data)operator(\)) operator({) ident(node)operator(.)ident(node_name) operator(=)operator(>) ident(node) operator(}) reserved(end) ident(dasherize_keys)operator(()ident(params) operator(||) operator({)operator(})operator(\)) reserved(rescue) constant(Object) operator(=)operator(>) ident(e) operator({) string operator(=)operator(>) stringcontent( ()inlinecontent(\))delimiter(")>operator(,) string operator(=)operator(>) ident(e)operator(.)ident(backtrace)operator(,) string operator(=)operator(>) ident(raw_post_data)operator(,) string operator(=)operator(>) ident(mime_type) operator(}) reserved(end) reserved(def) pre_constant(self)operator(.)method(typecast_xml_value)operator(()ident(value)operator(\)) reserved(case) ident(value) reserved(when) constant(Hash) reserved(if) ident(value)operator(.)ident(has_key?)operator(()stringoperator(\)) ident(content) operator(=) ident(translate_xml_entities)operator(()ident(value)operator([)stringoperator(])operator(\)) reserved(case) ident(value)operator([)stringoperator(]) reserved(when) string reserved(then) ident(content)operator(.)ident(to_i) reserved(when) string reserved(then) ident(content) operator(==) string reserved(when) string reserved(then) constant(Time)operator(.)ident(parse)operator(()ident(content)operator(\)) reserved(when) string reserved(then) constant(Date)operator(.)ident(parse)operator(()ident(content)operator(\)) reserved(else) ident(content) reserved(end) reserved(else) ident(value)operator(.)ident(empty?) operator(?) pre_constant(nil) operator(:) ident(value)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(h)operator(,)operator(()ident(k)operator(,)ident(v)operator(\))operator(|) ident(h)operator([)ident(k)operator(]) operator(=) ident(typecast_xml_value)operator(()ident(v)operator(\)) ident(h) reserved(end) reserved(end) reserved(when) constant(Array) ident(value)operator(.)ident(map!) operator({) operator(|)ident(i)operator(|) ident(typecast_xml_value)operator(()ident(i)operator(\)) operator(}) reserved(case) ident(value)operator(.)ident(length) reserved(when) integer(0) reserved(then) pre_constant(nil) reserved(when) integer(1) reserved(then) ident(value)operator(.)ident(first) reserved(else) ident(value) reserved(end) reserved(else) ident(raise) stringdelimiter(")> reserved(end) reserved(end) ident(private) reserved(def) pre_constant(self)operator(.)method(translate_xml_entities)operator(()ident(value)operator(\)) ident(value)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.) ident(gsub)operator(()regexpoperator(,) string)delimiter(")>operator(\))operator(.) ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.) ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.) ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) pre_constant(self)operator(.)method(dasherize_keys)operator(()ident(params)operator(\)) reserved(case) ident(params)operator(.)ident(class)operator(.)ident(to_s) reserved(when) string ident(params)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(h)operator(,)operator(()ident(k)operator(,)ident(v)operator(\))operator(|) ident(h)operator([)ident(k)operator(.)ident(to_s)operator(.)ident(tr)operator(()stringoperator(,) stringoperator(\))operator(]) operator(=) ident(dasherize_keys)operator(()ident(v)operator(\)) ident(h) reserved(end) reserved(when) string ident(params)operator(.)ident(map) operator({) operator(|)ident(v)operator(|) ident(dasherize_keys)operator(()ident(v)operator(\)) operator(}) reserved(else) ident(params) reserved(end) reserved(end) comment(# Splits the given key into several pieces. Example keys are 'name', 'person[name]',) comment(# 'person[name][first]', and 'people[]'. In each instance, an Array instance is returned.) comment(# 'person[name][first]' produces ['person', 'name', 'first']; 'people[]' produces ['people', '']) reserved(def) constant(CGIMethods)operator(.)method(split_key)operator(()ident(key)operator(\)) reserved(if) regexp operator(=)operator(~) ident(key) ident(keys) operator(=) operator([)global_variable($1)operator(]) ident(keys)operator(.)ident(concat)operator(()global_variable($2)operator([)integer(1)operator(..)integer(-2)operator(])operator(.)ident(split)operator(()stringoperator(\))operator(\)) ident(keys) operator(<<) string reserved(if) ident(key)operator([)integer(-2)operator(..)integer(-1)operator(]) operator(==) string comment(# Have to add it since split will drop empty strings) ident(keys) reserved(else) operator([)ident(key)operator(]) reserved(end) reserved(end) reserved(def) constant(CGIMethods)operator(.)method(get_typed_value)operator(()ident(value)operator(\)) comment(# test most frequent case first) reserved(if) ident(value)operator(.)ident(is_a?)operator(()constant(String)operator(\)) ident(value) reserved(elsif) ident(value)operator(.)ident(respond_to?)operator(()symbol(:content_type)operator(\)) operator(&&) operator(!) ident(value)operator(.)ident(content_type)operator(.)ident(blank?) comment(# Uploaded file) reserved(unless) ident(value)operator(.)ident(respond_to?)operator(()symbol(:full_original_filename)operator(\)) reserved(class) operator(<<) class(value) ident(alias_method) symbol(:full_original_filename)operator(,) symbol(:original_filename) comment(# Take the basename of the upload's original filename.) comment(# This handles the full Windows paths given by Internet Explorer) comment(# (and perhaps other broken user agents\) without affecting) comment(# those which give the lone filename.) comment(# The Windows regexp is adapted from Perl's File::Basename.) reserved(def) method(original_filename) reserved(if) ident(md) operator(=) regexpoperator(.)ident(match)operator(()ident(full_original_filename)operator(\)) ident(md)operator(.)ident(captures)operator(.)ident(first) reserved(else) constant(File)operator(.)ident(basename) ident(full_original_filename) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Return the same value after overriding original_filename.) ident(value) reserved(elsif) ident(value)operator(.)ident(respond_to?)operator(()symbol(:read)operator(\)) comment(# Value as part of a multipart request) ident(value)operator(.)ident(read) reserved(elsif) ident(value)operator(.)ident(class) operator(==) constant(Array) ident(value)operator(.)ident(collect) operator({) operator(|)ident(v)operator(|) constant(CGIMethods)operator(.)ident(get_typed_value)operator(()ident(v)operator(\)) operator(}) reserved(else) comment(# other value (neither string nor a multipart request\)) ident(value)operator(.)ident(to_s) reserved(end) reserved(end) constant(PARAMS_HASH_RE) operator(=) regexp reserved(def) constant(CGIMethods)operator(.)method(get_levels)operator(()ident(key)operator(\)) ident(all)operator(,) ident(main)operator(,) ident(bracketed)operator(,) ident(trailing) operator(=) constant(PARAMS_HASH_RE)operator(.)ident(match)operator(()ident(key)operator(\))operator(.)ident(to_a) reserved(if) ident(main)operator(.)ident(nil?) operator([)operator(]) reserved(elsif) ident(trailing) operator([)ident(key)operator(]) reserved(elsif) ident(bracketed) operator([)ident(main)operator(]) operator(+) ident(bracketed)operator(.)ident(slice)operator(()integer(1)operator(...)integer(-1)operator(\))operator(.)ident(split)operator(()stringoperator(\)) reserved(else) operator([)ident(main)operator(]) reserved(end) reserved(end) reserved(def) constant(CGIMethods)operator(.)method(build_deep_hash)operator(()ident(value)operator(,) ident(hash)operator(,) ident(levels)operator(\)) reserved(if) ident(levels)operator(.)ident(length) operator(==) integer(0) ident(value) reserved(elsif) ident(hash)operator(.)ident(nil?) operator({) ident(levels)operator(.)ident(first) operator(=)operator(>) constant(CGIMethods)operator(.)ident(build_deep_hash)operator(()ident(value)operator(,) pre_constant(nil)operator(,) ident(levels)operator([)integer(1)operator(..)integer(-1)operator(])operator(\)) operator(}) reserved(else) ident(hash)operator(.)ident(update)operator(()operator({) ident(levels)operator(.)ident(first) operator(=)operator(>) constant(CGIMethods)operator(.)ident(build_deep_hash)operator(()ident(value)operator(,) ident(hash)operator([)ident(levels)operator(.)ident(first)operator(])operator(,) ident(levels)operator([)integer(1)operator(..)integer(-1)operator(])operator(\)) operator(})operator(\)) reserved(end) reserved(end) reserved(end) constant(CGI)operator(.)ident(module_eval) operator({) ident(remove_const) string operator(}) reserved(class) class(CGI) comment(#:nodoc:) comment(# This is a cookie class that fixes the performance problems with the default one that ships with 1.8.1 and below.) comment(# It replaces the inheritance on SimpleDelegator with DelegateClass(Array\) following the suggestion from Matz on) comment(# http://groups.google.com/groups?th=e3a4e68ba042f842&seekm=c3sioe%241qvm%241%40news.cybercity.dk#link14) reserved(class) class(Cookie) operator(<) ident(DelegateClass)operator(()constant(Array)operator(\)) comment(# Create a new CGI::Cookie object.) comment(#) comment(# The contents of the cookie can be specified as a +name+ and one) comment(# or more +value+ arguments. Alternatively, the contents can) comment(# be specified as a single hash argument. The possible keywords of) comment(# this hash are as follows:) comment(#) comment(# name:: the name of the cookie. Required.) comment(# value:: the cookie's value or list of values.) comment(# path:: the path for which this cookie applies. Defaults to the) comment(# base directory of the CGI script.) comment(# domain:: the domain for which this cookie applies.) comment(# expires:: the time at which this cookie expires, as a +Time+ object.) comment(# secure:: whether this cookie is a secure cookie or not (default to) comment(# false\). Secure cookies are only transmitted to HTTPS ) comment(# servers.) comment(#) comment(# These keywords correspond to attributes of the cookie object.) reserved(def) method(initialize)operator(()ident(name) operator(=) stringoperator(,) operator(*)ident(value)operator(\)) reserved(if) ident(name)operator(.)ident(kind_of?)operator(()constant(String)operator(\)) instance_variable(@name) operator(=) ident(name) instance_variable(@value) operator(=) ident(Array)operator(()ident(value)operator(\)) instance_variable(@domain) operator(=) pre_constant(nil) instance_variable(@expires) operator(=) pre_constant(nil) instance_variable(@secure) operator(=) pre_constant(false) instance_variable(@path) operator(=) pre_constant(nil) reserved(else) instance_variable(@name) operator(=) ident(name)operator([)stringoperator(]) instance_variable(@value) operator(=) ident(Array)operator(()ident(name)operator([)stringoperator(])operator(\)) instance_variable(@domain) operator(=) ident(name)operator([)stringoperator(]) instance_variable(@expires) operator(=) ident(name)operator([)stringoperator(]) instance_variable(@secure) operator(=) ident(name)operator([)stringoperator(]) operator(||) pre_constant(false) instance_variable(@path) operator(=) ident(name)operator([)stringoperator(]) reserved(end) reserved(unless) instance_variable(@name) ident(raise) constant(ArgumentError)operator(,) string reserved(end) comment(# simple support for IE) reserved(unless) instance_variable(@path) regexpoperator(.)ident(match)operator(()pre_constant(ENV)operator([)stringoperator(])operator(\)) instance_variable(@path) operator(=) operator(()global_variable($1) reserved(or) stringoperator(\)) reserved(end) reserved(super)operator(()instance_variable(@value)operator(\)) reserved(end) reserved(def) method(__setobj__)operator(()ident(obj)operator(\)) instance_variable(@_dc_obj) operator(=) ident(obj) reserved(end) ident(attr_accessor)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) ident(attr_reader)operator(()stringoperator(\)) comment(# Set whether the Cookie is a secure cookie or not.) comment(#) comment(# +val+ must be a boolean.) reserved(def) method(secure=)operator(()ident(val)operator(\)) instance_variable(@secure) operator(=) ident(val) reserved(if) ident(val) operator(==) pre_constant(true) reserved(or) ident(val) operator(==) pre_constant(false) instance_variable(@secure) reserved(end) comment(# Convert the Cookie to its string representation.) reserved(def) method(to_s) ident(buf) operator(=) string ident(buf) operator(<<) instance_variable(@name) operator(<<) string reserved(if) instance_variable(@value)operator(.)ident(kind_of?)operator(()constant(String)operator(\)) ident(buf) operator(<<) constant(CGI)operator(::)ident(escape)operator(()instance_variable(@value)operator(\)) reserved(else) ident(buf) operator(<<) instance_variable(@value)operator(.)ident(collect)operator({)operator(|)ident(v)operator(|) constant(CGI)operator(::)ident(escape)operator(()ident(v)operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(if) instance_variable(@domain) ident(buf) operator(<<) string operator(<<) instance_variable(@domain) reserved(end) reserved(if) instance_variable(@path) ident(buf) operator(<<) string operator(<<) instance_variable(@path) reserved(end) reserved(if) instance_variable(@expires) ident(buf) operator(<<) string operator(<<) constant(CGI)operator(::)ident(rfc1123_date)operator(()instance_variable(@expires)operator(\)) reserved(end) reserved(if) instance_variable(@secure) operator(==) pre_constant(true) ident(buf) operator(<<) string reserved(end) ident(buf) reserved(end) comment(# Parse a raw cookie string into a hash of cookie-name=>Cookie) comment(# pairs.) comment(#) comment(# cookies = CGI::Cookie::parse("raw_cookie_string"\)) comment(# # { "name1" => cookie1, "name2" => cookie2, ... }) comment(#) reserved(def) pre_constant(self)operator(.)method(parse)operator(()ident(raw_cookie)operator(\)) ident(cookies) operator(=) constant(Hash)operator(.)ident(new)operator(()operator([)operator(])operator(\)) reserved(if) ident(raw_cookie) ident(raw_cookie)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(pairs)operator(|) ident(name)operator(,) ident(values) operator(=) ident(pairs)operator(.)ident(split)operator(()stringoperator(,)integer(2)operator(\)) reserved(next) reserved(unless) ident(name) reserved(and) ident(values) ident(name) operator(=) constant(CGI)operator(::)ident(unescape)operator(()ident(name)operator(\)) ident(values) operator(=) ident(values)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(collect!)operator({)operator(|)ident(v)operator(|) constant(CGI)operator(::)ident(unescape)operator(()ident(v)operator(\)) operator(}) reserved(unless) ident(cookies)operator(.)ident(has_key?)operator(()ident(name)operator(\)) ident(cookies)operator([)ident(name)operator(]) operator(=) ident(new)operator(()ident(name)operator(,) operator(*)ident(values)operator(\)) reserved(end) reserved(end) reserved(end) ident(cookies) reserved(end) reserved(end) comment(# class Cookie) reserved(end) reserved(class) class(CGI) comment(#:nodoc:) comment(# Add @request.env['RAW_POST_DATA'] for the vegans.) reserved(module) class(QueryExtension) comment(# Initialize the data from the query.) comment(#) comment(# Handles multipart forms (in particular, forms that involve file uploads\).) comment(# Reads query parameters in the @params field, and cookies into @cookies.) reserved(def) method(initialize_query)operator(()operator(\)) instance_variable(@cookies) operator(=) constant(CGI)operator(::)constant(Cookie)operator(::)ident(parse)operator(()ident(env_table)operator([)stringoperator(]) operator(||) ident(env_table)operator([)stringoperator(])operator(\)) comment(#fix some strange request environments) reserved(if) ident(method) operator(=) ident(env_table)operator([)stringoperator(]) ident(method) operator(=) ident(method)operator(.)ident(to_s)operator(.)ident(downcase)operator(.)ident(intern) reserved(else) ident(method) operator(=) symbol(:get) reserved(end) reserved(if) ident(method) operator(==) symbol(:post) operator(&&) operator(()ident(boundary) operator(=) ident(multipart_form_boundary)operator(\)) instance_variable(@multipart) operator(=) pre_constant(true) instance_variable(@params) operator(=) ident(read_multipart)operator(()ident(boundary)operator(,) ident(Integer)operator(()ident(env_table)operator([)stringoperator(])operator(\))operator(\)) reserved(else) instance_variable(@multipart) operator(=) pre_constant(false) instance_variable(@params) operator(=) constant(CGI)operator(::)ident(parse)operator(()ident(read_query_params)operator(()ident(method)operator(\)) operator(||) stringoperator(\)) reserved(end) reserved(end) ident(private) reserved(unless) reserved(defined?)operator(()constant(MULTIPART_FORM_BOUNDARY_RE)operator(\)) constant(MULTIPART_FORM_BOUNDARY_RE) operator(=) regexp comment(#") reserved(end) reserved(def) method(multipart_form_boundary) constant(MULTIPART_FORM_BOUNDARY_RE)operator(.)ident(match)operator(()ident(env_table)operator([)stringoperator(])operator(\))operator(.)ident(to_a)operator(.)ident(pop) reserved(end) reserved(if) reserved(defined?) constant(MOD_RUBY) reserved(def) method(read_params_from_query) constant(Apache)operator(::)ident(request)operator(.)ident(args) operator(||) string reserved(end) reserved(else) reserved(def) method(read_params_from_query) comment(# fixes CGI querystring parsing for lighttpd) ident(env_qs) operator(=) ident(env_table)operator([)stringoperator(]) reserved(if) ident(env_qs)operator(.)ident(blank?) operator(&&) operator(!)operator(()ident(uri) operator(=) ident(env_table)operator([)stringoperator(])operator(\))operator(.)ident(blank?) ident(uri)operator(.)ident(split)operator(()stringoperator(,) integer(2)operator(\))operator([)integer(1)operator(]) operator(||) string reserved(else) ident(env_qs) reserved(end) reserved(end) reserved(end) reserved(def) method(read_params_from_post) ident(stdinput)operator(.)ident(binmode) reserved(if) ident(stdinput)operator(.)ident(respond_to?)operator(()symbol(:binmode)operator(\)) ident(content) operator(=) ident(stdinput)operator(.)ident(read)operator(()ident(Integer)operator(()ident(env_table)operator([)stringoperator(])operator(\))operator(\)) operator(||) string comment(# fix for Safari Ajax postings that always append \\000) ident(content)operator(.)ident(chop!) reserved(if) ident(content)operator([)integer(-1)operator(]) operator(==) integer(0) ident(content)operator(.)ident(gsub!) regexpoperator(,) string ident(env_table)operator([)stringoperator(]) operator(=) ident(content)operator(.)ident(freeze) reserved(end) reserved(def) method(read_query_params)operator(()ident(method)operator(\)) reserved(case) ident(method) reserved(when) symbol(:get) ident(read_params_from_query) reserved(when) symbol(:post)operator(,) symbol(:put) ident(read_params_from_post) reserved(when) symbol(:cmd) ident(read_from_cmdline) reserved(else) comment(# when :head, :delete, :options) ident(read_params_from_query) reserved(end) reserved(end) reserved(end) comment(# module QueryExtension) reserved(end) ident(require) string ident(require) string ident(require) string reserved(module) class(ActionController) comment(#:nodoc:) reserved(class) class(Base) comment(# Process a request extracted from an CGI object and return a response. Pass false as session_options to disable) comment(# sessions (large performance increase if sessions are not needed\). The session_options are the same as for CGI::Session:) comment(#) comment(# * :database_manager - standard options are CGI::Session::FileStore, CGI::Session::MemoryStore, and CGI::Session::PStore) comment(# (default\). Additionally, there is CGI::Session::DRbStore and CGI::Session::ActiveRecordStore. Read more about these in ) comment(# lib/action_controller/session.) comment(# * :session_key - the parameter name used for the session id. Defaults to '_session_id'.) comment(# * :session_id - the session id to use. If not provided, then it is retrieved from the +session_key+ parameter) comment(# of the request, or automatically generated for a new session.) comment(# * :new_session - if true, force creation of a new session. If not set, a new session is only created if none currently) comment(# exists. If false, a new session is never created, and if none currently exists and the +session_id+ option is not set, ) comment(# an ArgumentError is raised.) comment(# * :session_expires - the time the current session expires, as a +Time+ object. If not set, the session will continue) comment(# indefinitely.) comment(# * :session_domain - the hostname domain for which this session is valid. If not set, defaults to the hostname of the) comment(# server.) comment(# * :session_secure - if +true+, this session will only work over HTTPS.) comment(# * :session_path - the path for which this session applies. Defaults to the directory of the CGI script.) reserved(def) pre_constant(self)operator(.)method(process_cgi)operator(()ident(cgi) operator(=) constant(CGI)operator(.)ident(new)operator(,) ident(session_options) operator(=) operator({)operator(})operator(\)) ident(new)operator(.)ident(process_cgi)operator(()ident(cgi)operator(,) ident(session_options)operator(\)) reserved(end) reserved(def) method(process_cgi)operator(()ident(cgi)operator(,) ident(session_options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(process)operator(()constant(CgiRequest)operator(.)ident(new)operator(()ident(cgi)operator(,) ident(session_options)operator(\))operator(,) constant(CgiResponse)operator(.)ident(new)operator(()ident(cgi)operator(\))operator(\))operator(.)ident(out) reserved(end) reserved(end) reserved(class) class(CgiRequest) operator(<) constant(AbstractRequest) comment(#:nodoc:) ident(attr_accessor) symbol(:cgi)operator(,) symbol(:session_options) constant(DEFAULT_SESSION_OPTIONS) operator(=) operator({) symbol(:database_manager) operator(=)operator(>) constant(CGI)operator(::)constant(Session)operator(::)constant(PStore)operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(,) symbol(:session_path) operator(=)operator(>) string operator(}) reserved(unless) ident(const_defined?)operator(()symbol(:DEFAULT_SESSION_OPTIONS)operator(\)) reserved(def) method(initialize)operator(()ident(cgi)operator(,) ident(session_options) operator(=) operator({)operator(})operator(\)) instance_variable(@cgi) operator(=) ident(cgi) instance_variable(@session_options) operator(=) ident(session_options) instance_variable(@env) operator(=) instance_variable(@cgi)operator(.)ident(send)operator(()symbol(:env_table)operator(\)) reserved(super)operator(()operator(\)) reserved(end) reserved(def) method(query_string) reserved(if) operator(()ident(qs) operator(=) instance_variable(@cgi)operator(.)ident(query_string)operator(\)) operator(&&) operator(!)ident(qs)operator(.)ident(empty?) ident(qs) reserved(elsif) ident(uri) operator(=) instance_variable(@env)operator([)stringoperator(]) ident(parts) operator(=) ident(uri)operator(.)ident(split)operator(()stringoperator(\)) ident(parts)operator(.)ident(shift) ident(parts)operator(.)ident(join)operator(()stringoperator(\)) reserved(else) instance_variable(@env)operator([)stringoperator(]) operator(||) string reserved(end) reserved(end) reserved(def) method(query_parameters) operator(()ident(qs) operator(=) pre_constant(self)operator(.)ident(query_string)operator(\))operator(.)ident(empty?) operator(?) operator({)operator(}) operator(:) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()ident(qs)operator(\)) reserved(end) reserved(def) method(request_parameters) instance_variable(@request_parameters) operator(||=) reserved(if) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator(.)ident(has_key?)operator(()ident(content_type)operator(\)) constant(CGIMethods)operator(.)ident(parse_formatted_request_parameters)operator(()ident(content_type)operator(,) instance_variable(@env)operator([)stringoperator(])operator(\)) reserved(else) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()instance_variable(@cgi)operator(.)ident(params)operator(\)) reserved(end) reserved(end) reserved(def) method(cookies) instance_variable(@cgi)operator(.)ident(cookies)operator(.)ident(freeze) reserved(end) reserved(def) method(host_with_port) reserved(if) ident(forwarded) operator(=) ident(env)operator([)stringoperator(]) ident(forwarded)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(last) reserved(elsif) ident(http_host) operator(=) ident(env)operator([)stringoperator(]) ident(http_host) reserved(elsif) ident(server_name) operator(=) ident(env)operator([)stringoperator(]) ident(server_name) reserved(else) stringoperator(])inline_delimiter(})>content(:)inlineoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(end) reserved(def) method(host) ident(host_with_port)operator([)regexpoperator(]) reserved(end) reserved(def) method(port) reserved(if) ident(host_with_port) operator(=)operator(~) regexp global_variable($1)operator(.)ident(to_i) reserved(else) ident(standard_port) reserved(end) reserved(end) reserved(def) method(session) reserved(unless) instance_variable(@session) reserved(if) instance_variable(@session_options) operator(==) pre_constant(false) instance_variable(@session) operator(=) constant(Hash)operator(.)ident(new) reserved(else) ident(stale_session_check!) reserved(do) reserved(if) ident(session_options_with_string_keys)operator([)stringoperator(]) operator(==) pre_constant(true) instance_variable(@session) operator(=) ident(new_session) reserved(else) instance_variable(@session) operator(=) constant(CGI)operator(::)constant(Session)operator(.)ident(new)operator(()instance_variable(@cgi)operator(,) ident(session_options_with_string_keys)operator(\)) reserved(end) instance_variable(@session)operator([)stringoperator(]) reserved(end) reserved(end) reserved(end) instance_variable(@session) reserved(end) reserved(def) method(reset_session) instance_variable(@session)operator(.)ident(delete) reserved(if) constant(CGI)operator(::)constant(Session) operator(===) instance_variable(@session) instance_variable(@session) operator(=) ident(new_session) reserved(end) reserved(def) method(method_missing)operator(()ident(method_id)operator(,) operator(*)ident(arguments)operator(\)) instance_variable(@cgi)operator(.)ident(send)operator(()ident(method_id)operator(,) operator(*)ident(arguments)operator(\)) reserved(rescue) reserved(super) reserved(end) ident(private) comment(# Delete an old session if it exists then create a new one.) reserved(def) method(new_session) reserved(if) instance_variable(@session_options) operator(==) pre_constant(false) constant(Hash)operator(.)ident(new) reserved(else) constant(CGI)operator(::)constant(Session)operator(.)ident(new)operator(()instance_variable(@cgi)operator(,) ident(session_options_with_string_keys)operator(.)ident(merge)operator(()string operator(=)operator(>) pre_constant(false)operator(\))operator(\))operator(.)ident(delete) reserved(rescue) pre_constant(nil) constant(CGI)operator(::)constant(Session)operator(.)ident(new)operator(()instance_variable(@cgi)operator(,) ident(session_options_with_string_keys)operator(.)ident(merge)operator(()string operator(=)operator(>) pre_constant(true)operator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(stale_session_check!) reserved(yield) reserved(rescue) constant(ArgumentError) operator(=)operator(>) ident(argument_error) reserved(if) ident(argument_error)operator(.)ident(message) operator(=)operator(~) regexp reserved(begin) constant(Module)operator(.)ident(const_missing)operator(()global_variable($1)operator(\)) reserved(rescue) constant(LoadError)operator(,) constant(NameError) operator(=)operator(>) ident(const_error) ident(raise) constant(ActionController)operator(::)constant(SessionRestoreError)operator(,) stringstringcontent( [)inlinecontent(]\))delimiter( end_msg)> reserved(end) reserved(retry) reserved(else) ident(raise) reserved(end) reserved(end) reserved(def) method(session_options_with_string_keys) instance_variable(@session_options_with_string_keys) operator(||=) constant(DEFAULT_SESSION_OPTIONS)operator(.)ident(merge)operator(()instance_variable(@session_options)operator(\))operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({) operator(|)ident(options)operator(,) operator(()ident(k)operator(,)ident(v)operator(\))operator(|) ident(options)operator([)ident(k)operator(.)ident(to_s)operator(]) operator(=) ident(v)operator(;) ident(options) operator(}) reserved(end) reserved(end) reserved(class) class(CgiResponse) operator(<) constant(AbstractResponse) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(cgi)operator(\)) instance_variable(@cgi) operator(=) ident(cgi) reserved(super)operator(()operator(\)) reserved(end) reserved(def) method(out)operator(()ident(output) operator(=) global_variable($stdout)operator(\)) ident(convert_content_type!)operator(()instance_variable(@headers)operator(\)) ident(output)operator(.)ident(binmode) reserved(if) ident(output)operator(.)ident(respond_to?)operator(()symbol(:binmode)operator(\)) ident(output)operator(.)ident(sync) operator(=) pre_constant(false) reserved(if) ident(output)operator(.)ident(respond_to?)operator(()symbol(:sync=)operator(\)) reserved(begin) ident(output)operator(.)ident(write)operator(()instance_variable(@cgi)operator(.)ident(header)operator(()instance_variable(@headers)operator(\))operator(\)) reserved(if) instance_variable(@cgi)operator(.)ident(send)operator(()symbol(:env_table)operator(\))operator([)stringoperator(]) operator(==) string reserved(return) reserved(elsif) instance_variable(@body)operator(.)ident(respond_to?)operator(()symbol(:call)operator(\)) instance_variable(@body)operator(.)ident(call)operator(()pre_constant(self)operator(,) ident(output)operator(\)) reserved(else) ident(output)operator(.)ident(write)operator(()instance_variable(@body)operator(\)) reserved(end) ident(output)operator(.)ident(flush) reserved(if) ident(output)operator(.)ident(respond_to?)operator(()symbol(:flush)operator(\)) reserved(rescue) constant(Errno)operator(::)constant(EPIPE) operator(=)operator(>) ident(e) comment(# lost connection to the FCGI process -- ignore the output, then) reserved(end) reserved(end) ident(private) reserved(def) method(convert_content_type!)operator(()ident(headers)operator(\)) reserved(if) ident(header) operator(=) ident(headers)operator(.)ident(delete)operator(()stringoperator(\)) ident(headers)operator([)stringoperator(]) operator(=) ident(header) reserved(end) reserved(if) ident(header) operator(=) ident(headers)operator(.)ident(delete)operator(()stringoperator(\)) ident(headers)operator([)stringoperator(]) operator(=) ident(header) reserved(end) reserved(if) ident(header) operator(=) ident(headers)operator(.)ident(delete)operator(()stringoperator(\)) ident(headers)operator([)stringoperator(]) operator(=) ident(header) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) reserved(module) class(CodeGeneration) comment(#:nodoc:) reserved(class) class(GenerationError) operator(<) constant(StandardError) comment(#:nodoc:) reserved(end) reserved(class) class(Source) comment(#:nodoc:) ident(attr_reader) symbol(:lines)operator(,) symbol(:indentation_level) constant(IndentationString) operator(=) string reserved(def) method(initialize) instance_variable(@lines)operator(,) instance_variable(@indentation_level) operator(=) operator([)operator(])operator(,) integer(0) reserved(end) reserved(def) method(line)operator(()ident(line)operator(\)) instance_variable(@lines) operator(<<) operator(()constant(IndentationString) operator(*) instance_variable(@indentation_level) operator(+) ident(line)operator(\)) reserved(end) reserved(alias) symbol(:<<) symbol(:line) reserved(def) method(indent) instance_variable(@indentation_level) operator(+=) integer(1) reserved(yield) reserved(ensure) instance_variable(@indentation_level) operator(-=) integer(1) reserved(end) reserved(def) method(to_s)operator(()operator(\)) ident(lines)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(class) class(CodeGenerator) comment(#:nodoc:) ident(attr_accessor) symbol(:source)operator(,) symbol(:locals) reserved(def) method(initialize)operator(()ident(source) operator(=) pre_constant(nil)operator(\)) instance_variable(@locals) operator(=) operator([)operator(]) instance_variable(@source) operator(=) ident(source) operator(||) constant(Source)operator(.)ident(new) reserved(end) constant(BeginKeywords) operator(=) stringoperator(.)ident(collect) operator({)operator(|)ident(kw)operator(|) ident(kw)operator(.)ident(to_sym)operator(}) constant(ResumeKeywords) operator(=) stringoperator(.)ident(collect) operator({)operator(|)ident(kw)operator(|) ident(kw)operator(.)ident(to_sym)operator(}) constant(Keywords) operator(=) constant(BeginKeywords) operator(+) constant(ResumeKeywords) reserved(def) method(method_missing)operator(()ident(keyword)operator(,) operator(*)ident(text)operator(\)) reserved(if) constant(Keywords)operator(.)ident(include?) ident(keyword) reserved(if) constant(ResumeKeywords)operator(.)ident(include?) ident(keyword) ident(raise) constant(GenerationError)operator(,) stringcontent( immediately after an end)delimiter(")> reserved(unless) ident(source)operator(.)ident(lines)operator(.)ident(last) operator(=)operator(~) regexp ident(source)operator(.)ident(lines)operator(.)ident(pop) comment(# Remove the 'end') reserved(end) ident(line) stringcontent( )inlineinline_delimiter(})>delimiter(")> reserved(begin) ident(source)operator(.)ident(indent) operator({) reserved(yield)operator(()pre_constant(self)operator(.)ident(dup)operator(\)) operator(}) reserved(ensure) ident(line) string reserved(end) reserved(else) reserved(super)operator(()ident(keyword)operator(,) operator(*)ident(text)operator(\)) reserved(end) reserved(end) reserved(def) method(line)operator(()operator(*)ident(args)operator(\)) pre_constant(self)operator(.)ident(source)operator(.)ident(line)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(alias) symbol(:<<) symbol(:line) reserved(def) method(indent)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(source)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(to_s)operator(()operator(\)) ident(source)operator(.)ident(to_s) reserved(end) reserved(def) method(share_locals_with)operator(()ident(other)operator(\)) ident(other)operator(.)ident(locals) operator(=) pre_constant(self)operator(.)ident(locals) operator(=) operator(()ident(other)operator(.)ident(locals) operator(|) ident(locals)operator(\)) reserved(end) constant(FieldsToDuplicate) operator(=) operator([)symbol(:locals)operator(]) reserved(def) method(dup) ident(copy) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(new)operator(()ident(source)operator(\)) pre_constant(self)operator(.)ident(class)operator(::)constant(FieldsToDuplicate)operator(.)ident(each) reserved(do) operator(|)ident(sym)operator(|) ident(value) operator(=) pre_constant(self)operator(.)ident(send)operator(()ident(sym)operator(\)) ident(value) operator(=) ident(value)operator(.)ident(dup) reserved(unless) ident(value)operator(.)ident(nil?) operator(||) ident(value)operator(.)ident(is_a?)operator(()constant(Numeric)operator(\)) ident(copy)operator(.)ident(send)operator(()stringcontent(=)delimiter(")>operator(,) ident(value)operator(\)) reserved(end) reserved(return) ident(copy) reserved(end) reserved(end) reserved(class) class(RecognitionGenerator) operator(<) constant(CodeGenerator) comment(#:nodoc:) constant(Attributes) operator(=) operator([)symbol(:after)operator(,) symbol(:before)operator(,) symbol(:current)operator(,) symbol(:results)operator(,) symbol(:constants)operator(,) symbol(:depth)operator(,) symbol(:move_ahead)operator(,) symbol(:finish_statement)operator(]) ident(attr_accessor)operator(()operator(*)constant(Attributes)operator(\)) constant(FieldsToDuplicate) operator(=) constant(CodeGenerator)operator(::)constant(FieldsToDuplicate) operator(+) constant(Attributes) reserved(def) method(initialize)operator(()operator(*)ident(args)operator(\)) reserved(super)operator(()operator(*)ident(args)operator(\)) instance_variable(@after)operator(,) instance_variable(@before) operator(=) operator([)operator(])operator(,) operator([)operator(]) instance_variable(@current) operator(=) pre_constant(nil) instance_variable(@results)operator(,) instance_variable(@constants) operator(=) operator({)operator(})operator(,) operator({)operator(}) instance_variable(@depth) operator(=) integer(0) instance_variable(@move_ahead) operator(=) pre_constant(nil) instance_variable(@finish_statement) operator(=) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(hash_expr)operator(|) ident(hash_expr)operator(}) reserved(end) reserved(def) method(if_next_matches)operator(()ident(string)operator(,) operator(&)ident(block)operator(\)) ident(test) operator(=) constant(Routing)operator(.)ident(test_condition)operator(()ident(next_segment)operator(()pre_constant(true)operator(\))operator(,) ident(string)operator(\)) pre_constant(self)operator(.)ident(if)operator(()ident(test)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(move_forward)operator(()ident(places) operator(=) integer(1)operator(\)) ident(dup) operator(=) pre_constant(self)operator(.)ident(dup) ident(dup)operator(.)ident(depth) operator(+=) integer(1) ident(dup)operator(.)ident(move_ahead) operator(=) ident(places) reserved(yield) ident(dup) reserved(end) reserved(def) method(next_segment)operator(()ident(assign_inline) operator(=) pre_constant(false)operator(,) ident(default) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(locals)operator(.)ident(include?)operator(()ident(segment_name)operator(\)) ident(code) operator(=) ident(segment_name) reserved(else) ident(code) operator(=) stringcontent( = )inlinecontent([)inlinecontent(])delimiter(")> reserved(if) ident(assign_inline) ident(code) operator(=) stringcontent(\))delimiter(")> reserved(else) ident(line)operator(()ident(code)operator(\)) ident(code) operator(=) ident(segment_name) reserved(end) ident(locals) operator(<<) ident(segment_name) reserved(end) ident(code) operator(=) stringcontent( || )inlinecontent(\))delimiter(")> reserved(if) ident(default) reserved(return) ident(code)operator(.)ident(to_s) reserved(end) reserved(def) method(segment_name)operator(()operator(\)) stringdelimiter(")>operator(.)ident(to_sym) reserved(end) reserved(def) method(path_name)operator(()operator(\)) symbol(:path) reserved(end) reserved(def) method(index_name) ident(move_ahead)operator(,) instance_variable(@move_ahead) operator(=) instance_variable(@move_ahead)operator(,) pre_constant(nil) ident(move_ahead) operator(?) stringdelimiter(")> operator(:) string reserved(end) reserved(def) method(continue) ident(dup) operator(=) pre_constant(self)operator(.)ident(dup) ident(dup)operator(.)ident(before) operator(<<) ident(dup)operator(.)ident(current) ident(dup)operator(.)ident(current) operator(=) ident(dup)operator(.)ident(after)operator(.)ident(shift) ident(dup)operator(.)ident(go) reserved(end) reserved(def) method(go) reserved(if) ident(current) reserved(then) ident(current)operator(.)ident(write_recognition)operator(()pre_constant(self)operator(\)) reserved(else) pre_constant(self)operator(.)ident(finish) reserved(end) reserved(end) reserved(def) method(result)operator(()ident(key)operator(,) ident(expression)operator(,) ident(delay) operator(=) pre_constant(false)operator(\)) reserved(unless) ident(delay) ident(line) stringcontent(_value = )inlinedelimiter(")> ident(expression) operator(=) stringcontent(_value)delimiter(")> reserved(end) ident(results)operator([)ident(key)operator(]) operator(=) ident(expression) reserved(end) reserved(def) method(constant_result)operator(()ident(key)operator(,) ident(object)operator(\)) ident(constants)operator([)ident(key)operator(]) operator(=) ident(object) reserved(end) reserved(def) method(finish)operator(()ident(ensure_traversal_finished) operator(=) pre_constant(true)operator(\)) ident(pairs) operator(=) operator([)operator(]) operator(()ident(results)operator(.)ident(keys) operator(+) ident(constants)operator(.)ident(keys)operator(\))operator(.)ident(uniq)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(|) ident(pairs) operator(<<) stringcontent( => )inlinedelimiter(")> reserved(end) ident(hash_expr) operator(=) stringoperator(\))inline_delimiter(})>content(})delimiter(")> ident(statement) operator(=) ident(finish_statement)operator(.)ident(call)operator(()ident(hash_expr)operator(\)) reserved(if) ident(ensure_traversal_finished) reserved(then) pre_constant(self)operator(.)ident(if)operator(()stringdelimiter(")>operator(\)) operator({)operator(|)ident(gp)operator(|) ident(gp) operator(<<) ident(statement)operator(}) reserved(else) pre_constant(self) operator(<<) ident(statement) reserved(end) reserved(end) reserved(end) reserved(class) class(GenerationGenerator) operator(<) constant(CodeGenerator) comment(#:nodoc:) constant(Attributes) operator(=) operator([)symbol(:after)operator(,) symbol(:before)operator(,) symbol(:current)operator(,) symbol(:segments)operator(]) ident(attr_accessor)operator(()operator(*)constant(Attributes)operator(\)) constant(FieldsToDuplicate) operator(=) constant(CodeGenerator)operator(::)constant(FieldsToDuplicate) operator(+) constant(Attributes) reserved(def) method(initialize)operator(()operator(*)ident(args)operator(\)) reserved(super)operator(()operator(*)ident(args)operator(\)) instance_variable(@after)operator(,) instance_variable(@before) operator(=) operator([)operator(])operator(,) operator([)operator(]) instance_variable(@current) operator(=) pre_constant(nil) instance_variable(@segments) operator(=) operator([)operator(]) reserved(end) reserved(def) method(hash_name)operator(()operator(\)) string reserved(end) reserved(def) method(local_name)operator(()ident(key)operator(\)) stringcontent(_value)delimiter(")> reserved(end) reserved(def) method(hash_value)operator(()ident(key)operator(,) ident(assign) operator(=) pre_constant(true)operator(,) ident(default) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(locals)operator(.)ident(include?)operator(()ident(local_name)operator(()ident(key)operator(\))operator(\)) reserved(then) ident(code) operator(=) ident(local_name)operator(()ident(key)operator(\)) reserved(else) ident(code) operator(=) stringcontent(])delimiter(")> reserved(if) ident(assign) ident(code) operator(=) stringcontent( = )inlinecontent(\))delimiter(")> ident(locals) operator(<<) ident(local_name)operator(()ident(key)operator(\)) reserved(end) reserved(end) ident(code) operator(=) stringcontent( || ()inlinecontent(\)\))delimiter(")> reserved(if) ident(default) reserved(return) ident(code) reserved(end) reserved(def) method(expire_for_keys)operator(()operator(*)ident(keys)operator(\)) reserved(return) reserved(if) ident(keys)operator(.)ident(empty?) ident(conds) operator(=) ident(keys)operator(.)ident(collect) operator({)operator(|)ident(key)operator(|) stringcontent(])delimiter(")>operator(}) ident(line) stringcontent( = false, options if not_expired && )inlineoperator(\))inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(add_segment)operator(()operator(*)ident(segments)operator(\)) ident(d) operator(=) ident(dup) ident(d)operator(.)ident(segments)operator(.)ident(concat) ident(segments) reserved(yield) ident(d) reserved(end) reserved(def) method(go) reserved(if) ident(current) reserved(then) ident(current)operator(.)ident(write_generation)operator(()pre_constant(self)operator(\)) reserved(else) pre_constant(self)operator(.)ident(finish) reserved(end) reserved(end) reserved(def) method(continue) ident(d) operator(=) ident(dup) ident(d)operator(.)ident(before) operator(<<) ident(d)operator(.)ident(current) ident(d)operator(.)ident(current) operator(=) ident(d)operator(.)ident(after)operator(.)ident(shift) ident(d)operator(.)ident(go) reserved(end) reserved(def) method(finish) ident(line) stringoperator(\))inline_delimiter(})>content(")delimiter(\))> reserved(end) reserved(def) method(check_conditions)operator(()ident(conditions)operator(\)) ident(tests) operator(=) operator([)operator(]) ident(generator) operator(=) pre_constant(nil) ident(conditions)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(condition)operator(|) ident(tests) operator(<<) operator(()ident(generator) operator(||) pre_constant(self)operator(\))operator(.)ident(hash_value)operator(()ident(key)operator(,) pre_constant(true)operator(\)) reserved(if) ident(condition)operator(.)ident(is_a?) constant(Regexp) ident(tests) operator(<<) constant(Routing)operator(.)ident(test_condition)operator(()operator(()ident(generator) operator(||) pre_constant(self)operator(\))operator(.)ident(hash_value)operator(()ident(key)operator(,) pre_constant(false)operator(\))operator(,) ident(condition)operator(\)) ident(generator) operator(=) pre_constant(self)operator(.)ident(dup) reserved(unless) ident(generator) reserved(end) reserved(return) ident(tests)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) comment(# Components allow you to call other actions for their rendered response while executing another action. You can either delegate) comment(# the entire response rendering or you can mix a partial response in with your other content.) comment(#) comment(# class WeblogController < ActionController::Base) comment(# # Performs a method and then lets hello_world output its render) comment(# def delegate_action) comment(# do_other_stuff_before_hello_world) comment(# render_component :controller => "greeter", :action => "hello_world", :params => { :person => "david" }) comment(# end) comment(# end) comment(#) comment(# class GreeterController < ActionController::Base) comment(# def hello_world) comment(# render :text => "#{params[:person]} says, Hello World!") comment(# end) comment(# end) comment(#) comment(# The same can be done in a view to do a partial rendering:) comment(# ) comment(# Let's see a greeting: ) comment(# <%= render_component :controller => "greeter", :action => "hello_world" %>) comment(#) comment(# It is also possible to specify the controller as a class constant, bypassing the inflector) comment(# code to compute the controller class at runtime:) comment(# ) comment(# <%= render_component :controller => GreeterController, :action => "hello_world" %>) comment(#) comment(# == When to use components) comment(#) comment(# Components should be used with care. They're significantly slower than simply splitting reusable parts into partials and) comment(# conceptually more complicated. Don't use components as a way of separating concerns inside a single application. Instead,) comment(# reserve components to those rare cases where you truly have reusable view and controller elements that can be employed ) comment(# across many applications at once.) comment(#) comment(# So to repeat: Components are a special-purpose approach that can often be replaced with better use of partials and filters.) reserved(module) class(Components) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) comment(#:nodoc:) ident(base)operator(.)ident(send) symbol(:include)operator(,) constant(InstanceMethods) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(helper) reserved(do) reserved(def) method(render_component)operator(()ident(options)operator(\)) instance_variable(@controller)operator(.)ident(send)operator(()symbol(:render_component_as_string)operator(,) ident(options)operator(\)) reserved(end) reserved(end) comment(# If this controller was instantiated to process a component request,) comment(# +parent_controller+ points to the instantiator of this controller.) ident(base)operator(.)ident(send) symbol(:attr_accessor)operator(,) symbol(:parent_controller) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:process_cleanup_without_components)operator(,) symbol(:process_cleanup) ident(alias_method) symbol(:process_cleanup)operator(,) symbol(:process_cleanup_with_components) ident(alias_method) symbol(:set_session_options_without_components)operator(,) symbol(:set_session_options) ident(alias_method) symbol(:set_session_options)operator(,) symbol(:set_session_options_with_components) ident(alias_method) symbol(:flash_without_components)operator(,) symbol(:flash) ident(alias_method) symbol(:flash)operator(,) symbol(:flash_with_components) ident(alias_method) symbol(:component_request?)operator(,) symbol(:parent_controller) reserved(end) reserved(end) reserved(module) class(ClassMethods) comment(# Track parent controller to identify component requests) reserved(def) method(process_with_components)operator(()ident(request)operator(,) ident(response)operator(,) ident(parent_controller) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(controller) operator(=) ident(new) ident(controller)operator(.)ident(parent_controller) operator(=) ident(parent_controller) ident(controller)operator(.)ident(process)operator(()ident(request)operator(,) ident(response)operator(\)) reserved(end) comment(# Set the template root to be one directory behind the root dir of the controller. Examples:) comment(# /code/weblog/components/admin/users_controller.rb with Admin::UsersController ) comment(# will use /code/weblog/components as template root ) comment(# and find templates in /code/weblog/components/admin/users/) comment(#) comment(# /code/weblog/components/admin/parties/users_controller.rb with Admin::Parties::UsersController ) comment(# will also use /code/weblog/components as template root ) comment(# and find templates in /code/weblog/components/admin/parties/users/) reserved(def) method(uses_component_template_root) ident(path_of_calling_controller) operator(=) constant(File)operator(.)ident(dirname)operator(()ident(caller)operator([)integer(0)operator(])operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(first)operator(\)) ident(path_of_controller_root) operator(=) ident(path_of_calling_controller)operator(.)ident(sub)operator(()regexpoperator(\))operator([)integer(0)operator(..)integer(-2)operator(])inline_delimiter(})>content($)delimiter(/)>operator(,) stringoperator(\)) comment(# " (for ruby-mode\)) pre_constant(self)operator(.)ident(template_root) operator(=) ident(path_of_controller_root) reserved(end) reserved(end) reserved(module) class(InstanceMethods) comment(# Extracts the action_name from the request parameters and performs that action.) reserved(def) method(process_with_components)operator(()ident(request)operator(,) ident(response)operator(,) ident(method) operator(=) symbol(:perform_action)operator(,) operator(*)ident(arguments)operator(\)) comment(#:nodoc:) ident(flash)operator(.)ident(discard) reserved(if) ident(component_request?) ident(process_without_components)operator(()ident(request)operator(,) ident(response)operator(,) ident(method)operator(,) operator(*)ident(arguments)operator(\)) reserved(end) ident(protected) comment(# Renders the component specified as the response for the current method) reserved(def) method(render_component)operator(()ident(options)operator(\)) comment(#:doc:) ident(component_logging)operator(()ident(options)operator(\)) reserved(do) ident(render_text)operator(()ident(component_response)operator(()ident(options)operator(,) pre_constant(true)operator(\))operator(.)ident(body)operator(,) ident(response)operator(.)ident(headers)operator([)stringoperator(])operator(\)) reserved(end) reserved(end) comment(# Returns the component response as a string) reserved(def) method(render_component_as_string)operator(()ident(options)operator(\)) comment(#:doc:) ident(component_logging)operator(()ident(options)operator(\)) reserved(do) ident(response) operator(=) ident(component_response)operator(()ident(options)operator(,) pre_constant(false)operator(\)) reserved(if) ident(redirected) operator(=) ident(response)operator(.)ident(redirected_to) ident(render_component_as_string)operator(()ident(redirected)operator(\)) reserved(else) ident(response)operator(.)ident(body) reserved(end) reserved(end) reserved(end) reserved(def) method(flash_with_components)operator(()ident(refresh) operator(=) pre_constant(false)operator(\)) comment(#:nodoc:) reserved(if) instance_variable(@flash)operator(.)ident(nil?) operator(||) ident(refresh) instance_variable(@flash) operator(=) reserved(if) instance_variable(@parent_controller) instance_variable(@parent_controller)operator(.)ident(flash) reserved(else) ident(flash_without_components) reserved(end) reserved(end) instance_variable(@flash) reserved(end) ident(private) reserved(def) method(component_response)operator(()ident(options)operator(,) ident(reuse_response)operator(\)) ident(klass) operator(=) ident(component_class)operator(()ident(options)operator(\)) ident(request) operator(=) ident(request_for_component)operator(()ident(klass)operator(.)ident(controller_name)operator(,) ident(options)operator(\)) ident(response) operator(=) ident(reuse_response) operator(?) instance_variable(@response) operator(:) instance_variable(@response)operator(.)ident(dup) ident(klass)operator(.)ident(process_with_components)operator(()ident(request)operator(,) ident(response)operator(,) pre_constant(self)operator(\)) reserved(end) comment(# determine the controller class for the component request) reserved(def) method(component_class)operator(()ident(options)operator(\)) reserved(if) ident(controller) operator(=) ident(options)operator([)symbol(:controller)operator(]) ident(controller)operator(.)ident(is_a?)operator(()constant(Class)operator(\)) operator(?) ident(controller) operator(:) stringcontent(Controller)delimiter(")>operator(.)ident(constantize) reserved(else) pre_constant(self)operator(.)ident(class) reserved(end) reserved(end) comment(# Create a new request object based on the current request.) comment(# The new request inherits the session from the current request,) comment(# bypassing any session options set for the component controller's class) reserved(def) method(request_for_component)operator(()ident(controller_name)operator(,) ident(options)operator(\)) ident(request) operator(=) instance_variable(@request)operator(.)ident(dup) ident(request)operator(.)ident(session) operator(=) instance_variable(@request)operator(.)ident(session) ident(request)operator(.)ident(instance_variable_set)operator(() symbol(:@parameters)operator(,) operator(()ident(options)operator([)symbol(:params)operator(]) operator(||) operator({)operator(})operator(\))operator(.)ident(with_indifferent_access)operator(.)ident(update)operator(() string operator(=)operator(>) ident(controller_name)operator(,) string operator(=)operator(>) ident(options)operator([)symbol(:action)operator(])operator(,) string operator(=)operator(>) ident(options)operator([)symbol(:id)operator(]) operator(\)) operator(\)) ident(request) reserved(end) reserved(def) method(component_logging)operator(()ident(options)operator(\)) reserved(if) ident(logger) ident(logger)operator(.)ident(info) stringcontent(\): )delimiter(")> ident(result) operator(=) reserved(yield) ident(logger)operator(.)ident(info) string ident(result) reserved(else) reserved(yield) reserved(end) reserved(end) reserved(def) method(set_session_options_with_components)operator(()ident(request)operator(\)) ident(set_session_options_without_components)operator(()ident(request)operator(\)) reserved(unless) ident(component_request?) reserved(end) reserved(def) method(process_cleanup_with_components) ident(process_cleanup_without_components) reserved(unless) ident(component_request?) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) comment(# Cookies are read and written through ActionController#cookies. The cookies being read are what were received along with the request,) comment(# the cookies being written are what will be sent out with the response. Cookies are read by value (so you won't get the cookie object) comment(# itself back -- just the value it holds\). Examples for writing:) comment(#) comment(# cookies[:user_name] = "david" # => Will set a simple session cookie) comment(# cookies[:login] = { :value => "XJ-122", :expires => Time.now + 360} # => Will set a cookie that expires in 1 hour) comment(# ) comment(# Examples for reading:) comment(#) comment(# cookies[:user_name] # => "david") comment(# cookies.size # => 2) comment(# ) comment(# Example for deleting:) comment(#) comment(# cookies.delete :user_name) comment(#) comment(# All the option symbols for setting cookies are:) comment(#) comment(# * value - the cookie's value or list of values (as an array\).) comment(# * path - the path for which this cookie applies. Defaults to the root of the application.) comment(# * domain - the domain for which this cookie applies.) comment(# * expires - the time at which this cookie expires, as a +Time+ object.) comment(# * secure - whether this cookie is a secure cookie or not (default to false\).) comment(# Secure cookies are only transmitted to HTTPS servers.) reserved(module) class(Cookies) ident(protected) comment(# Returns the cookie container, which operates as described above.) reserved(def) method(cookies) constant(CookieJar)operator(.)ident(new)operator(()pre_constant(self)operator(\)) reserved(end) comment(# Deprecated cookie writer method) reserved(def) method(cookie)operator(()operator(*)ident(options)operator(\)) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) operator(<<) constant(CGI)operator(::)constant(Cookie)operator(.)ident(new)operator(()operator(*)ident(options)operator(\)) reserved(end) reserved(end) reserved(class) class(CookieJar) operator(<) constant(Hash) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(controller)operator(\)) instance_variable(@controller)operator(,) instance_variable(@cookies) operator(=) ident(controller)operator(,) ident(controller)operator(.)ident(instance_variable_get)operator(()stringoperator(\)) reserved(super)operator(()operator(\)) ident(update)operator(()instance_variable(@cookies)operator(\)) reserved(end) comment(# Returns the value of the cookie by +name+ -- or nil if no such cookie exists. You set new cookies using either the cookie method) comment(# or cookies[]= (for simple name/value cookies without options\).) reserved(def) method([])operator(()ident(name)operator(\)) instance_variable(@cookies)operator([)ident(name)operator(.)ident(to_s)operator(])operator(.)ident(value)operator(.)ident(first) reserved(if) instance_variable(@cookies)operator([)ident(name)operator(.)ident(to_s)operator(]) operator(&&) instance_variable(@cookies)operator([)ident(name)operator(.)ident(to_s)operator(])operator(.)ident(respond_to?)operator(()symbol(:value)operator(\)) reserved(end) reserved(def) method([]=)operator(()ident(name)operator(,) ident(options)operator(\)) reserved(if) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(options) operator(=) ident(options)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({) operator(|)ident(options)operator(,) ident(pair)operator(|) ident(options)operator([)ident(pair)operator(.)ident(first)operator(.)ident(to_s)operator(]) operator(=) ident(pair)operator(.)ident(last)operator(;) ident(options) operator(}) ident(options)operator([)stringoperator(]) operator(=) ident(name)operator(.)ident(to_s) reserved(else) ident(options) operator(=) operator({) string operator(=)operator(>) ident(name)operator(.)ident(to_s)operator(,) string operator(=)operator(>) ident(options) operator(}) reserved(end) ident(set_cookie)operator(()ident(options)operator(\)) reserved(end) comment(# Removes the cookie on the client machine by setting the value to an empty string) comment(# and setting its expiration date into the past) reserved(def) method(delete)operator(()ident(name)operator(\)) ident(set_cookie)operator(()string operator(=)operator(>) ident(name)operator(.)ident(to_s)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(at)operator(()integer(0)operator(\))operator(\)) reserved(end) ident(private) reserved(def) method(set_cookie)operator(()ident(options)operator(\)) comment(#:doc:) ident(options)operator([)stringoperator(]) operator(=) string reserved(unless) ident(options)operator([)stringoperator(]) ident(cookie) operator(=) constant(CGI)operator(::)constant(Cookie)operator(.)ident(new)operator(()ident(options)operator(\)) instance_variable(@controller)operator(.)ident(logger)operator(.)ident(info) stringdelimiter(")> reserved(unless) instance_variable(@controller)operator(.)ident(logger)operator(.)ident(nil?) instance_variable(@controller)operator(.)ident(response)operator(.)ident(headers)operator([)stringoperator(]) operator(<<) ident(cookie) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) reserved(module) class(Dependencies) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# Dependencies control what classes are needed for the controller to run its course. This is an alternative to doing explicit) comment(# +require+ statements that bring a number of benefits. It's more succinct, communicates what type of dependency we're talking about,) comment(# can trigger special behavior (as in the case of +observer+\), and enables Rails to be clever about reloading in cached environments) comment(# like FCGI. Example:) comment(#) comment(# class ApplicationController < ActionController::Base) comment(# model :account, :company, :person, :project, :category) comment(# helper :access_control) comment(# service :notifications, :billings) comment(# observer :project_change_observer) comment(# end) comment(#) comment(# Please note that a controller like ApplicationController will automatically attempt to require_dependency on a model of its ) comment(# singuralized name and a helper of its name. If nothing is found, no error is raised. This is especially useful for concrete ) comment(# controllers like PostController:) comment(#) comment(# class PostController < ApplicationController) comment(# # model :post (already required\)) comment(# # helper :post (already required\)) comment(# end) comment(#) comment(# Also note, that if the models follow the pattern of just 1 class per file in the form of MyClass => my_class.rb, then these) comment(# classes don't have to be required as Active Support will auto-require them.) reserved(module) class(ClassMethods) comment(#:nodoc:) comment(# Specifies a variable number of models that this controller depends on. Models are normally Active Record classes or a similar) comment(# backend for modelling entity classes.) reserved(def) method(model)operator(()operator(*)ident(models)operator(\)) ident(require_dependencies)operator(()symbol(:model)operator(,) ident(models)operator(\)) ident(depend_on)operator(()symbol(:model)operator(,) ident(models)operator(\)) reserved(end) comment(# Specifies a variable number of services that this controller depends on. Services are normally singletons or factories, like) comment(# Action Mailer service or a Payment Gateway service.) reserved(def) method(service)operator(()operator(*)ident(services)operator(\)) ident(require_dependencies)operator(()symbol(:service)operator(,) ident(services)operator(\)) ident(depend_on)operator(()symbol(:service)operator(,) ident(services)operator(\)) reserved(end) comment(# Specifies a variable number of observers that are to govern when this controller is handling actions. The observers will) comment(# automatically have .instance called on them to make them active on assignment.) reserved(def) method(observer)operator(()operator(*)ident(observers)operator(\)) ident(require_dependencies)operator(()symbol(:observer)operator(,) ident(observers)operator(\)) ident(depend_on)operator(()symbol(:observer)operator(,) ident(observers)operator(\)) ident(instantiate_observers)operator(()ident(observers)operator(\)) reserved(end) comment(# Returns an array of symbols that specify the dependencies on a given layer. For the example at the top, calling) comment(# ApplicationController.dependencies_on(:model\) would return [:account, :company, :person, :project, :category]) reserved(def) method(dependencies_on)operator(()ident(layer)operator(\)) ident(read_inheritable_attribute)operator(()stringcontent(_dependencies)delimiter(")>operator(\)) reserved(end) reserved(def) method(depend_on)operator(()ident(layer)operator(,) ident(dependencies)operator(\)) comment(#:nodoc:) ident(write_inheritable_array)operator(()stringcontent(_dependencies)delimiter(")>operator(,) ident(dependencies)operator(\)) reserved(end) ident(private) reserved(def) method(instantiate_observers)operator(()ident(observers)operator(\)) ident(observers)operator(.)ident(flatten)operator(.)ident(each) operator({) operator(|)ident(observer)operator(|) constant(Object)operator(.)ident(const_get)operator(()constant(Inflector)operator(.)ident(classify)operator(()ident(observer)operator(.)ident(to_s)operator(\))operator(\))operator(.)ident(instance) operator(}) reserved(end) reserved(def) method(require_dependencies)operator(()ident(layer)operator(,) ident(dependencies)operator(\)) ident(dependencies)operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(dependency)operator(|) reserved(begin) ident(require_dependency)operator(()ident(dependency)operator(.)ident(to_s)operator(\)) reserved(rescue) constant(LoadError) operator(=)operator(>) ident(e) ident(raise) constant(LoadError)operator(.)ident(new)operator(()stringcontent( )inlinecontent(.rb)delimiter(")>operator(\))operator(.)ident(copy_blame!)operator(()ident(e)operator(\)) reserved(rescue) constant(Object) operator(=)operator(>) ident(exception) ident(exception)operator(.)ident(blame_file!) string )inlinecontent( )inlinecontent(.rb)delimiter(")> ident(raise) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(module) class(Test) comment(#:nodoc:) reserved(module) class(Unit) comment(#:nodoc:) reserved(module) class(Assertions) reserved(def) method(assert_success)operator(()ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(assert_response)operator(()symbol(:success)operator(,) ident(message)operator(\)) reserved(end) reserved(def) method(assert_redirect)operator(()ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(assert_response)operator(()symbol(:redirect)operator(,) ident(message)operator(\)) reserved(end) reserved(def) method(assert_rendered_file)operator(()ident(expected)operator(=)pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(assert_template)operator(()ident(expected)operator(,) ident(message)operator(\)) reserved(end) comment(# ensure that the session has an object with the specified name) reserved(def) method(assert_session_has)operator(()ident(key)operator(=)pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string is not in the session )delimiter(")>operator(,) ident(key)operator(,) instance_variable(@response)operator(.)ident(session)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) instance_variable(@response)operator(.)ident(has_session_object?)operator(()ident(key)operator(\)) operator(}) reserved(end) comment(# ensure that the session has no object with the specified name) reserved(def) method(assert_session_has_no)operator(()ident(key)operator(=)pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string is in the session )delimiter(")>operator(,) ident(key)operator(,) instance_variable(@response)operator(.)ident(session)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) operator(!)instance_variable(@response)operator(.)ident(has_session_object?)operator(()ident(key)operator(\)) operator(}) reserved(end) reserved(def) method(assert_session_equal)operator(()ident(expected) operator(=) pre_constant(nil)operator(,) ident(key) operator(=) pre_constant(nil)operator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string expected in session['?'] but was )delimiter(")>operator(,) ident(expected)operator(,) ident(key)operator(,) instance_variable(@response)operator(.)ident(session)operator([)ident(key)operator(])operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(expected) operator(==) instance_variable(@response)operator(.)ident(session)operator([)ident(key)operator(]) operator(}) reserved(end) comment(# -- cookie assertions ---------------------------------------------------) reserved(def) method(assert_no_cookie)operator(()ident(key) operator(=) pre_constant(nil)operator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(actual) operator(=) instance_variable(@response)operator(.)ident(cookies)operator([)ident(key)operator(]) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string not expected in cookies['?'])delimiter(")>operator(,) ident(actual)operator(,) ident(key)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(actual)operator(.)ident(nil?) reserved(or) ident(actual)operator(.)ident(empty?) operator(}) reserved(end) reserved(def) method(assert_cookie_equal)operator(()ident(expected) operator(=) pre_constant(nil)operator(,) ident(key) operator(=) pre_constant(nil)operator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(actual) operator(=) instance_variable(@response)operator(.)ident(cookies)operator([)ident(key)operator(]) ident(actual) operator(=) ident(actual)operator(.)ident(first) reserved(if) ident(actual) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string expected in cookies['?'] but was )delimiter(")>operator(,) ident(expected)operator(,) ident(key)operator(,) ident(actual)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(expected) operator(==) ident(actual) operator(}) reserved(end) comment(# -- flash assertions ---------------------------------------------------) comment(# ensure that the flash has an object with the specified name) reserved(def) method(assert_flash_has)operator(()ident(key)operator(=)pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string is not in the flash )delimiter(")>operator(,) ident(key)operator(,) instance_variable(@response)operator(.)ident(flash)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) instance_variable(@response)operator(.)ident(has_flash_object?)operator(()ident(key)operator(\)) operator(}) reserved(end) comment(# ensure that the flash has no object with the specified name) reserved(def) method(assert_flash_has_no)operator(()ident(key)operator(=)pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string is in the flash )delimiter(")>operator(,) ident(key)operator(,) instance_variable(@response)operator(.)ident(flash)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) operator(!)instance_variable(@response)operator(.)ident(has_flash_object?)operator(()ident(key)operator(\)) operator(}) reserved(end) comment(# ensure the flash exists) reserved(def) method(assert_flash_exists)operator(()ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(session)operator([)stringoperator(]) operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) instance_variable(@response)operator(.)ident(has_flash?) operator(}) reserved(end) comment(# ensure the flash does not exist) reserved(def) method(assert_flash_not_exists)operator(()ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(flash)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) operator(!)instance_variable(@response)operator(.)ident(has_flash?) operator(}) reserved(end) comment(# ensure the flash is empty but existent) reserved(def) method(assert_flash_empty)operator(()ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(flash)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) operator(!)instance_variable(@response)operator(.)ident(has_flash_with_contents?) operator(}) reserved(end) comment(# ensure the flash is not empty) reserved(def) method(assert_flash_not_empty)operator(()ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) stringoperator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) instance_variable(@response)operator(.)ident(has_flash_with_contents?) operator(}) reserved(end) reserved(def) method(assert_flash_equal)operator(()ident(expected) operator(=) pre_constant(nil)operator(,) ident(key) operator(=) pre_constant(nil)operator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string expected in flash['?'] but was )delimiter(")>operator(,) ident(expected)operator(,) ident(key)operator(,) instance_variable(@response)operator(.)ident(flash)operator([)ident(key)operator(])operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(expected) operator(==) instance_variable(@response)operator(.)ident(flash)operator([)ident(key)operator(]) operator(}) reserved(end) comment(# ensure our redirection url is an exact match) reserved(def) method(assert_redirect_url)operator(()ident(url)operator(=)pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(assert_redirect)operator(()ident(message)operator(\)) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string is not the redirected location )delimiter(")>operator(,) ident(url)operator(,) instance_variable(@response)operator(.)ident(redirect_url)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) instance_variable(@response)operator(.)ident(redirect_url) operator(==) ident(url) operator(}) reserved(end) comment(# ensure our redirection url matches a pattern) reserved(def) method(assert_redirect_url_match)operator(()ident(pattern)operator(=)pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(assert_redirect)operator(()ident(message)operator(\)) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string was not found in the location: )delimiter(")>operator(,) ident(pattern)operator(,) instance_variable(@response)operator(.)ident(redirect_url)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) instance_variable(@response)operator(.)ident(redirect_url_match?)operator(()ident(pattern)operator(\)) operator(}) reserved(end) comment(# -- template assertions ------------------------------------------------) comment(# ensure that a template object with the given name exists) reserved(def) method(assert_template_has)operator(()ident(key)operator(=)pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string is not a template object)delimiter(")>operator(,) ident(key) operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) instance_variable(@response)operator(.)ident(has_template_object?)operator(()ident(key)operator(\)) operator(}) reserved(end) comment(# ensure that a template object with the given name does not exist) reserved(def) method(assert_template_has_no)operator(()ident(key)operator(=)pre_constant(nil)operator(,)ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string is a template object )delimiter(")>operator(,) ident(key)operator(,) instance_variable(@response)operator(.)ident(template_objects)operator([)ident(key)operator(])operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) operator(!)instance_variable(@response)operator(.)ident(has_template_object?)operator(()ident(key)operator(\)) operator(}) reserved(end) comment(# ensures that the object assigned to the template on +key+ is equal to +expected+ object.) reserved(def) method(assert_template_equal)operator(()ident(expected) operator(=) pre_constant(nil)operator(,) ident(key) operator(=) pre_constant(nil)operator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string expected in assigns['?'] but was )delimiter(")>operator(,) ident(expected)operator(,) ident(key)operator(,) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)ident(key)operator(.)ident(to_s)operator(])operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(expected) operator(==) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)ident(key)operator(.)ident(to_s)operator(]) operator(}) reserved(end) ident(alias_method) symbol(:assert_assigned_equal)operator(,) symbol(:assert_template_equal) comment(# Asserts that the template returns the +expected+ string or array based on the XPath +expression+.) comment(# This will only work if the template rendered a valid XML document.) reserved(def) method(assert_template_xpath_match)operator(()ident(expression)operator(=)pre_constant(nil)operator(,) ident(expected)operator(=)pre_constant(nil)operator(,) ident(message)operator(=)pre_constant(nil)operator(\)) comment(#:nodoc:) ident(xml)operator(,) ident(matches) operator(=) constant(REXML)operator(::)constant(Document)operator(.)ident(new)operator(()instance_variable(@response)operator(.)ident(body)operator(\))operator(,) operator([)operator(]) ident(xml)operator(.)ident(elements)operator(.)ident(each)operator(()ident(expression)operator(\)) operator({) operator(|)ident(e)operator(|) ident(matches) operator(<<) ident(e)operator(.)ident(text) operator(}) reserved(if) ident(matches)operator(.)ident(empty?) reserved(then) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string not found in document)delimiter(")>operator(,) ident(expression)operator(\)) ident(flunk)operator(()ident(msg)operator(\)) reserved(return) reserved(elsif) ident(matches)operator(.)ident(length) operator(<) integer(2) reserved(then) ident(matches) operator(=) ident(matches)operator(.)ident(first) reserved(end) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string found , not )delimiter(")>operator(,) ident(expression)operator(,) ident(matches)operator(,) ident(expected)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(matches) operator(==) ident(expected) operator(}) reserved(end) comment(# Assert the template object with the given name is an Active Record descendant and is valid.) reserved(def) method(assert_valid_record)operator(()ident(key) operator(=) pre_constant(nil)operator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(record) operator(=) ident(find_record_in_template)operator(()ident(key)operator(\)) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string\))delimiter(")>operator(,) ident(record)operator(.)ident(errors)operator(.)ident(full_messages)operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(record)operator(.)ident(valid?) operator(}) reserved(end) comment(# Assert the template object with the given name is an Active Record descendant and is invalid.) reserved(def) method(assert_invalid_record)operator(()ident(key) operator(=) pre_constant(nil)operator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(record) operator(=) ident(find_record_in_template)operator(()ident(key)operator(\)) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) stringoperator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) operator(!)ident(record)operator(.)ident(valid?) operator(}) reserved(end) comment(# Assert the template object with the given name is an Active Record descendant and the specified column(s\) are valid.) reserved(def) method(assert_valid_column_on_record)operator(()ident(key) operator(=) pre_constant(nil)operator(,) ident(columns) operator(=) stringoperator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(record) operator(=) ident(find_record_in_template)operator(()ident(key)operator(\)) ident(record)operator(.)ident(send)operator(()symbol(:validate)operator(\)) ident(cols) operator(=) ident(glue_columns)operator(()ident(columns)operator(\)) ident(cols)operator(.)ident(delete_if) operator({) operator(|)ident(col)operator(|) operator(!)ident(record)operator(.)ident(errors)operator(.)ident(invalid?)operator(()ident(col)operator(\)) operator(}) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string\))delimiter(")>operator(,) ident(cols)operator(.)ident(join)operator(()stringoperator(\)) operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(cols)operator(.)ident(empty?) operator(}) reserved(end) comment(# Assert the template object with the given name is an Active Record descendant and the specified column(s\) are invalid.) reserved(def) method(assert_invalid_column_on_record)operator(()ident(key) operator(=) pre_constant(nil)operator(,) ident(columns) operator(=) stringoperator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(record) operator(=) ident(find_record_in_template)operator(()ident(key)operator(\)) ident(record)operator(.)ident(send)operator(()symbol(:validate)operator(\)) ident(cols) operator(=) ident(glue_columns)operator(()ident(columns)operator(\)) ident(cols)operator(.)ident(delete_if) operator({) operator(|)ident(col)operator(|) ident(record)operator(.)ident(errors)operator(.)ident(invalid?)operator(()ident(col)operator(\)) operator(}) ident(msg) operator(=) ident(build_message)operator(()ident(message)operator(,) string\))delimiter(")>operator(,) ident(cols)operator(.)ident(join)operator(()stringoperator(\)) operator(\)) ident(assert_block)operator(()ident(msg)operator(\)) operator({) ident(cols)operator(.)ident(empty?) operator(}) reserved(end) ident(private) reserved(def) method(glue_columns)operator(()ident(columns)operator(\)) ident(cols) operator(=) operator([)operator(]) ident(cols) operator(<<) ident(columns) reserved(if) ident(columns)operator(.)ident(class) operator(==) constant(String) ident(cols) operator(+=) ident(columns) reserved(if) ident(columns)operator(.)ident(class) operator(==) constant(Array) ident(cols) reserved(end) reserved(def) method(find_record_in_template)operator(()ident(key) operator(=) pre_constant(nil)operator(\)) ident(assert_template_has)operator(()ident(key)operator(\)) ident(record) operator(=) instance_variable(@response)operator(.)ident(template_objects)operator([)ident(key)operator(]) ident(assert_not_nil)operator(()ident(record)operator(\)) ident(assert_kind_of) constant(ActiveRecord)operator(::)constant(Base)operator(,) ident(record) reserved(return) ident(record) reserved(end) reserved(end) reserved(end) ident(endmodule) constant(ActionController) reserved(class) class(Base) ident(protected) comment(# Deprecated in favor of calling redirect_to directly with the path.) reserved(def) method(redirect_to_path)operator(()ident(path)operator(\)) comment(#:nodoc:) ident(redirect_to)operator(()ident(path)operator(\)) reserved(end) comment(# Deprecated in favor of calling redirect_to directly with the url. If the resource has moved permanently, it's possible to pass) comment(# true as the second parameter and the browser will get "301 Moved Permanently" instead of "302 Found". This can also be done through) comment(# just setting the headers["Status"] to "301 Moved Permanently" before using the redirect_to.) reserved(def) method(redirect_to_url)operator(()ident(url)operator(,) ident(permanently) operator(=) pre_constant(false)operator(\)) comment(#:nodoc:) ident(headers)operator([)stringoperator(]) operator(=) string reserved(if) ident(permanently) ident(redirect_to)operator(()ident(url)operator(\)) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) reserved(class) class(AbstractRequest) comment(# Determine whether the body of a HTTP call is URL-encoded (default\)) comment(# or matches one of the registered param_parsers. ) comment(#) comment(# For backward compatibility, the post format is extracted from the) comment(# X-Post-Data-Format HTTP header if present.) reserved(def) method(post_format) reserved(case) ident(content_type)operator(.)ident(to_s) reserved(when) string symbol(:xml) reserved(when) string symbol(:yaml) reserved(else) symbol(:url_encoded) reserved(end) reserved(end) comment(# Is this a POST request formatted as XML or YAML?) reserved(def) method(formatted_post?) ident(post?) operator(&&) operator(()ident(post_format) operator(==) symbol(:yaml) operator(||) ident(post_format) operator(==) symbol(:xml)operator(\)) reserved(end) comment(# Is this a POST request formatted as XML?) reserved(def) method(xml_post?) ident(post?) operator(&&) ident(post_format) operator(==) symbol(:xml) reserved(end) comment(# Is this a POST request formatted as YAML?) reserved(def) method(yaml_post?) ident(post?) operator(&&) ident(post_format) operator(==) symbol(:yaml) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) reserved(module) class(Filters) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ActionController)operator(::)constant(Filters)operator(::)constant(InstanceMethods)operator(\)) reserved(end) comment(# Filters enable controllers to run shared pre and post processing code for its actions. These filters can be used to do ) comment(# authentication, caching, or auditing before the intended action is performed. Or to do localization or output ) comment(# compression after the action has been performed.) comment(#) comment(# Filters have access to the request, response, and all the instance variables set by other filters in the chain) comment(# or by the action (in the case of after filters\). Additionally, it's possible for a pre-processing before_filter) comment(# to halt the processing before the intended action is processed by returning false or performing a redirect or render. ) comment(# This is especially useful for filters like authentication where you're not interested in allowing the action to be ) comment(# performed if the proper credentials are not in order.) comment(#) comment(# == Filter inheritance) comment(#) comment(# Controller inheritance hierarchies share filters downwards, but subclasses can also add new filters without) comment(# affecting the superclass. For example:) comment(#) comment(# class BankController < ActionController::Base) comment(# before_filter :audit) comment(#) comment(# private) comment(# def audit) comment(# # record the action and parameters in an audit log) comment(# end) comment(# end) comment(#) comment(# class VaultController < BankController) comment(# before_filter :verify_credentials) comment(#) comment(# private) comment(# def verify_credentials) comment(# # make sure the user is allowed into the vault) comment(# end) comment(# end) comment(#) comment(# Now any actions performed on the BankController will have the audit method called before. On the VaultController,) comment(# first the audit method is called, then the verify_credentials method. If the audit method returns false, then ) comment(# verify_credentials and the intended action are never called.) comment(#) comment(# == Filter types) comment(#) comment(# A filter can take one of three forms: method reference (symbol\), external class, or inline method (proc\). The first) comment(# is the most common and works by referencing a protected or private method somewhere in the inheritance hierarchy of) comment(# the controller by use of a symbol. In the bank example above, both BankController and VaultController use this form.) comment(#) comment(# Using an external class makes for more easily reused generic filters, such as output compression. External filter classes) comment(# are implemented by having a static +filter+ method on any class and then passing this class to the filter method. Example:) comment(#) comment(# class OutputCompressionFilter) comment(# def self.filter(controller\)) comment(# controller.response.body = compress(controller.response.body\)) comment(# end) comment(# end) comment(#) comment(# class NewspaperController < ActionController::Base) comment(# after_filter OutputCompressionFilter) comment(# end) comment(#) comment(# The filter method is passed the controller instance and is hence granted access to all aspects of the controller and can) comment(# manipulate them as it sees fit.) comment(#) comment(# The inline method (using a proc\) can be used to quickly do something small that doesn't require a lot of explanation. ) comment(# Or just as a quick test. It works like this:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# before_filter { |controller| false if controller.params["stop_action"] }) comment(# end) comment(#) comment(# As you can see, the block expects to be passed the controller after it has assigned the request to the internal variables.) comment(# This means that the block has access to both the request and response objects complete with convenience methods for params,) comment(# session, template, and assigns. Note: The inline method doesn't strictly have to be a block; any object that responds to call) comment(# and returns 1 or -1 on arity will do (such as a Proc or an Method object\).) comment(#) comment(# == Filter chain ordering) comment(#) comment(# Using before_filter and after_filter appends the specified filters to the existing chain. That's usually) comment(# just fine, but some times you care more about the order in which the filters are executed. When that's the case, you) comment(# can use prepend_before_filter and prepend_after_filter. Filters added by these methods will be put at the) comment(# beginning of their respective chain and executed before the rest. For example:) comment(#) comment(# class ShoppingController) comment(# before_filter :verify_open_shop) comment(#) comment(# class CheckoutController) comment(# prepend_before_filter :ensure_items_in_cart, :ensure_items_in_stock) comment(#) comment(# The filter chain for the CheckoutController is now :ensure_items_in_cart, :ensure_items_in_stock,) comment(# :verify_open_shop. So if either of the ensure filters return false, we'll never get around to see if the shop ) comment(# is open or not.) comment(#) comment(# You may pass multiple filter arguments of each type as well as a filter block.) comment(# If a block is given, it is treated as the last argument.) comment(#) comment(# == Around filters) comment(#) comment(# In addition to the individual before and after filters, it's also possible to specify that a single object should handle) comment(# both the before and after call. That's especially useful when you need to keep state active between the before and after,) comment(# such as the example of a benchmark filter below:) comment(# ) comment(# class WeblogController < ActionController::Base) comment(# around_filter BenchmarkingFilter.new) comment(# ) comment(# # Before this action is performed, BenchmarkingFilter#before(controller\) is executed) comment(# def index) comment(# end) comment(# # After this action has been performed, BenchmarkingFilter#after(controller\) is executed) comment(# end) comment(#) comment(# class BenchmarkingFilter) comment(# def initialize) comment(# @runtime) comment(# end) comment(# ) comment(# def before) comment(# start_timer) comment(# end) comment(# ) comment(# def after) comment(# stop_timer) comment(# report_result) comment(# end) comment(# end) comment(#) comment(# == Filter chain skipping) comment(#) comment(# Some times its convenient to specify a filter chain in a superclass that'll hold true for the majority of the ) comment(# subclasses, but not necessarily all of them. The subclasses that behave in exception can then specify which filters) comment(# they would like to be relieved of. Examples) comment(#) comment(# class ApplicationController < ActionController::Base) comment(# before_filter :authenticate) comment(# end) comment(#) comment(# class WeblogController < ApplicationController) comment(# # will run the :authenticate filter) comment(# end) comment(#) comment(# class SignupController < ApplicationController) comment(# # will not run the :authenticate filter) comment(# skip_before_filter :authenticate) comment(# end) comment(#) comment(# == Filter conditions) comment(#) comment(# Filters can be limited to run for only specific actions. This can be expressed either by listing the actions to) comment(# exclude or the actions to include when executing the filter. Available conditions are +:only+ or +:except+, both ) comment(# of which accept an arbitrary number of method references. For example:) comment(#) comment(# class Journal < ActionController::Base) comment(# # only require authentication if the current action is edit or delete) comment(# before_filter :authorize, :only => [ :edit, :delete ]) comment(# ) comment(# private) comment(# def authorize) comment(# # redirect to login unless authenticated) comment(# end) comment(# end) comment(# ) comment(# When setting conditions on inline method (proc\) filters the condition must come first and be placed in parentheses.) comment(#) comment(# class UserPreferences < ActionController::Base) comment(# before_filter(:except => :new\) { # some proc ... }) comment(# # ...) comment(# end) comment(#) reserved(module) class(ClassMethods) comment(# The passed filters will be appended to the array of filters that's run _before_ actions) comment(# on this controller are performed.) reserved(def) method(append_before_filter)operator(()operator(*)ident(filters)operator(,) operator(&)ident(block)operator(\)) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(filters)operator(\)) ident(filters) operator(<<) ident(block) reserved(if) ident(block_given?) ident(add_action_conditions)operator(()ident(filters)operator(,) ident(conditions)operator(\)) ident(append_filter_to_chain)operator(()stringoperator(,) ident(filters)operator(\)) reserved(end) comment(# The passed filters will be prepended to the array of filters that's run _before_ actions) comment(# on this controller are performed.) reserved(def) method(prepend_before_filter)operator(()operator(*)ident(filters)operator(,) operator(&)ident(block)operator(\)) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(filters)operator(\)) ident(filters) operator(<<) ident(block) reserved(if) ident(block_given?) ident(add_action_conditions)operator(()ident(filters)operator(,) ident(conditions)operator(\)) ident(prepend_filter_to_chain)operator(()stringoperator(,) ident(filters)operator(\)) reserved(end) comment(# Short-hand for append_before_filter since that's the most common of the two.) reserved(alias) symbol(:before_filter) symbol(:append_before_filter) comment(# The passed filters will be appended to the array of filters that's run _after_ actions) comment(# on this controller are performed.) reserved(def) method(append_after_filter)operator(()operator(*)ident(filters)operator(,) operator(&)ident(block)operator(\)) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(filters)operator(\)) ident(filters) operator(<<) ident(block) reserved(if) ident(block_given?) ident(add_action_conditions)operator(()ident(filters)operator(,) ident(conditions)operator(\)) ident(append_filter_to_chain)operator(()stringoperator(,) ident(filters)operator(\)) reserved(end) comment(# The passed filters will be prepended to the array of filters that's run _after_ actions) comment(# on this controller are performed.) reserved(def) method(prepend_after_filter)operator(()operator(*)ident(filters)operator(,) operator(&)ident(block)operator(\)) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(filters)operator(\)) ident(filters) operator(<<) ident(block) reserved(if) ident(block_given?) ident(add_action_conditions)operator(()ident(filters)operator(,) ident(conditions)operator(\)) ident(prepend_filter_to_chain)operator(()stringoperator(,) ident(filters)operator(\)) reserved(end) comment(# Short-hand for append_after_filter since that's the most common of the two.) reserved(alias) symbol(:after_filter) symbol(:append_after_filter) comment(# The passed filters will have their +before+ method appended to the array of filters that's run both before actions) comment(# on this controller are performed and have their +after+ method prepended to the after actions. The filter objects must all ) comment(# respond to both +before+ and +after+. So if you do append_around_filter A.new, B.new, the callstack will look like:) comment(#) comment(# B#before) comment(# A#before) comment(# A#after) comment(# B#after) reserved(def) method(append_around_filter)operator(()operator(*)ident(filters)operator(\)) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(filters)operator(\)) reserved(for) ident(filter) reserved(in) ident(filters)operator(.)ident(flatten) ident(ensure_filter_responds_to_before_and_after)operator(()ident(filter)operator(\)) ident(append_before_filter)operator(()ident(conditions) operator(||) operator({)operator(})operator(\)) operator({) operator(|)ident(c)operator(|) ident(filter)operator(.)ident(before)operator(()ident(c)operator(\)) operator(}) ident(prepend_after_filter)operator(()ident(conditions) operator(||) operator({)operator(})operator(\)) operator({) operator(|)ident(c)operator(|) ident(filter)operator(.)ident(after)operator(()ident(c)operator(\)) operator(}) reserved(end) reserved(end) comment(# The passed filters will have their +before+ method prepended to the array of filters that's run both before actions) comment(# on this controller are performed and have their +after+ method appended to the after actions. The filter objects must all ) comment(# respond to both +before+ and +after+. So if you do prepend_around_filter A.new, B.new, the callstack will look like:) comment(#) comment(# A#before) comment(# B#before) comment(# B#after) comment(# A#after) reserved(def) method(prepend_around_filter)operator(()operator(*)ident(filters)operator(\)) reserved(for) ident(filter) reserved(in) ident(filters)operator(.)ident(flatten) ident(ensure_filter_responds_to_before_and_after)operator(()ident(filter)operator(\)) ident(prepend_before_filter) operator({) operator(|)ident(c)operator(|) ident(filter)operator(.)ident(before)operator(()ident(c)operator(\)) operator(}) ident(append_after_filter) operator({) operator(|)ident(c)operator(|) ident(filter)operator(.)ident(after)operator(()ident(c)operator(\)) operator(}) reserved(end) reserved(end) comment(# Short-hand for append_around_filter since that's the most common of the two.) reserved(alias) symbol(:around_filter) symbol(:append_around_filter) comment(# Removes the specified filters from the +before+ filter chain. Note that this only works for skipping method-reference ) comment(# filters, not procs. This is especially useful for managing the chain in inheritance hierarchies where only one out) comment(# of many sub-controllers need a different hierarchy.) comment(#) comment(# You can control the actions to skip the filter for with the :only and :except options, ) comment(# just like when you apply the filters.) reserved(def) method(skip_before_filter)operator(()operator(*)ident(filters)operator(\)) reserved(if) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(filters)operator(\)) ident(remove_contradicting_conditions!)operator(()ident(filters)operator(,) ident(conditions)operator(\)) ident(conditions)operator([)symbol(:only)operator(])operator(,) ident(conditions)operator([)symbol(:except)operator(]) operator(=) ident(conditions)operator([)symbol(:except)operator(])operator(,) ident(conditions)operator([)symbol(:only)operator(]) ident(add_action_conditions)operator(()ident(filters)operator(,) ident(conditions)operator(\)) reserved(else) reserved(for) ident(filter) reserved(in) ident(filters)operator(.)ident(flatten) ident(write_inheritable_attribute)operator(()stringoperator(,) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(-) operator([) ident(filter) operator(])operator(\)) reserved(end) reserved(end) reserved(end) comment(# Removes the specified filters from the +after+ filter chain. Note that this only works for skipping method-reference ) comment(# filters, not procs. This is especially useful for managing the chain in inheritance hierarchies where only one out) comment(# of many sub-controllers need a different hierarchy.) comment(#) comment(# You can control the actions to skip the filter for with the :only and :except options, ) comment(# just like when you apply the filters.) reserved(def) method(skip_after_filter)operator(()operator(*)ident(filters)operator(\)) reserved(if) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(filters)operator(\)) ident(remove_contradicting_conditions!)operator(()ident(filters)operator(,) ident(conditions)operator(\)) ident(conditions)operator([)symbol(:only)operator(])operator(,) ident(conditions)operator([)symbol(:except)operator(]) operator(=) ident(conditions)operator([)symbol(:except)operator(])operator(,) ident(conditions)operator([)symbol(:only)operator(]) ident(add_action_conditions)operator(()ident(filters)operator(,) ident(conditions)operator(\)) reserved(else) reserved(for) ident(filter) reserved(in) ident(filters)operator(.)ident(flatten) ident(write_inheritable_attribute)operator(()stringoperator(,) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(-) operator([) ident(filter) operator(])operator(\)) reserved(end) reserved(end) reserved(end) comment(# Returns all the before filters for this class and all its ancestors.) reserved(def) method(before_filters) comment(#:nodoc:) instance_variable(@before_filters) operator(||=) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator([)operator(]) reserved(end) comment(# Returns all the after filters for this class and all its ancestors.) reserved(def) method(after_filters) comment(#:nodoc:) instance_variable(@after_filters) operator(||=) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator([)operator(]) reserved(end) comment(# Returns a mapping between filters and the actions that may run them.) reserved(def) method(included_actions) comment(#:nodoc:) instance_variable(@included_actions) operator(||=) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator({)operator(}) reserved(end) comment(# Returns a mapping between filters and actions that may not run them.) reserved(def) method(excluded_actions) comment(#:nodoc:) instance_variable(@excluded_actions) operator(||=) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator({)operator(}) reserved(end) ident(private) reserved(def) method(append_filter_to_chain)operator(()ident(condition)operator(,) ident(filters)operator(\)) ident(write_inheritable_array)operator(()stringcontent(_filters)delimiter(")>operator(,) ident(filters)operator(\)) reserved(end) reserved(def) method(prepend_filter_to_chain)operator(()ident(condition)operator(,) ident(filters)operator(\)) ident(old_filters) operator(=) ident(read_inheritable_attribute)operator(()stringcontent(_filters)delimiter(")>operator(\)) operator(||) operator([)operator(]) ident(write_inheritable_attribute)operator(()stringcontent(_filters)delimiter(")>operator(,) ident(filters) operator(+) ident(old_filters)operator(\)) reserved(end) reserved(def) method(ensure_filter_responds_to_before_and_after)operator(()ident(filter)operator(\)) reserved(unless) ident(filter)operator(.)ident(respond_to?)operator(()symbol(:before)operator(\)) operator(&&) ident(filter)operator(.)ident(respond_to?)operator(()symbol(:after)operator(\)) ident(raise) constant(ActionControllerError)operator(,) string reserved(end) reserved(end) reserved(def) method(extract_conditions!)operator(()ident(filters)operator(\)) reserved(return) pre_constant(nil) reserved(unless) ident(filters)operator(.)ident(last)operator(.)ident(is_a?) constant(Hash) ident(filters)operator(.)ident(pop) reserved(end) reserved(def) method(add_action_conditions)operator(()ident(filters)operator(,) ident(conditions)operator(\)) reserved(return) reserved(unless) ident(conditions) ident(included)operator(,) ident(excluded) operator(=) ident(conditions)operator([)symbol(:only)operator(])operator(,) ident(conditions)operator([)symbol(:except)operator(]) ident(write_inheritable_hash)operator(()stringoperator(,) ident(condition_hash)operator(()ident(filters)operator(,) ident(included)operator(\))operator(\)) operator(&&) reserved(return) reserved(if) ident(included) ident(write_inheritable_hash)operator(()stringoperator(,) ident(condition_hash)operator(()ident(filters)operator(,) ident(excluded)operator(\))operator(\)) reserved(if) ident(excluded) reserved(end) reserved(def) method(condition_hash)operator(()ident(filters)operator(,) operator(*)ident(actions)operator(\)) ident(filters)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({)operator(|)ident(hash)operator(,) ident(filter)operator(|) ident(hash)operator(.)ident(merge)operator(()ident(filter) operator(=)operator(>) ident(actions)operator(.)ident(flatten)operator(.)ident(map) operator({)operator(|)ident(action)operator(|) ident(action)operator(.)ident(to_s)operator(})operator(\))operator(}) reserved(end) reserved(def) method(remove_contradicting_conditions!)operator(()ident(filters)operator(,) ident(conditions)operator(\)) reserved(return) reserved(unless) ident(conditions)operator([)symbol(:only)operator(]) ident(filters)operator(.)ident(each) reserved(do) operator(|)ident(filter)operator(|) reserved(next) reserved(unless) ident(included_actions_for_filter) operator(=) operator(()ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator({)operator(})operator(\))operator([)ident(filter)operator(]) operator([)operator(*)ident(conditions)operator([)symbol(:only)operator(])operator(])operator(.)ident(each) reserved(do) operator(|)ident(conditional_action)operator(|) ident(conditional_action) operator(=) ident(conditional_action)operator(.)ident(to_s) ident(included_actions_for_filter)operator(.)ident(delete)operator(()ident(conditional_action)operator(\)) reserved(if) ident(included_actions_for_filter)operator(.)ident(include?)operator(()ident(conditional_action)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(InstanceMethods) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:perform_action_without_filters)operator(,) symbol(:perform_action) ident(alias_method) symbol(:perform_action)operator(,) symbol(:perform_action_with_filters) ident(alias_method) symbol(:process_without_filters)operator(,) symbol(:process) ident(alias_method) symbol(:process)operator(,) symbol(:process_with_filters) ident(alias_method) symbol(:process_cleanup_without_filters)operator(,) symbol(:process_cleanup) ident(alias_method) symbol(:process_cleanup)operator(,) symbol(:process_cleanup_with_filters) reserved(end) reserved(end) reserved(def) method(perform_action_with_filters) ident(before_action_result) operator(=) ident(before_action) reserved(unless) ident(before_action_result) operator(==) pre_constant(false) operator(||) ident(performed?) ident(perform_action_without_filters) ident(after_action) reserved(end) instance_variable(@before_filter_chain_aborted) operator(=) operator(()ident(before_action_result) operator(==) pre_constant(false)operator(\)) reserved(end) reserved(def) method(process_with_filters)operator(()ident(request)operator(,) ident(response)operator(,) ident(method) operator(=) symbol(:perform_action)operator(,) operator(*)ident(arguments)operator(\)) comment(#:nodoc:) instance_variable(@before_filter_chain_aborted) operator(=) pre_constant(false) ident(process_without_filters)operator(()ident(request)operator(,) ident(response)operator(,) ident(method)operator(,) operator(*)ident(arguments)operator(\)) reserved(end) comment(# Calls all the defined before-filter filters, which are added by using "before_filter :method".) comment(# If any of the filters return false, no more filters will be executed and the action is aborted.) reserved(def) method(before_action) comment(#:doc:) ident(call_filters)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(before_filters)operator(\)) reserved(end) comment(# Calls all the defined after-filter filters, which are added by using "after_filter :method".) comment(# If any of the filters return false, no more filters will be executed.) reserved(def) method(after_action) comment(#:doc:) ident(call_filters)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(after_filters)operator(\)) reserved(end) ident(private) reserved(def) method(call_filters)operator(()ident(filters)operator(\)) ident(filters)operator(.)ident(each) reserved(do) operator(|)ident(filter)operator(|) reserved(next) reserved(if) ident(action_exempted?)operator(()ident(filter)operator(\)) ident(filter_result) operator(=) reserved(case) reserved(when) ident(filter)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) pre_constant(self)operator(.)ident(send)operator(()ident(filter)operator(\)) reserved(when) ident(filter_block?)operator(()ident(filter)operator(\)) ident(filter)operator(.)ident(call)operator(()pre_constant(self)operator(\)) reserved(when) ident(filter_class?)operator(()ident(filter)operator(\)) ident(filter)operator(.)ident(filter)operator(()pre_constant(self)operator(\)) reserved(else) ident(raise)operator(() constant(ActionControllerError)operator(,) string operator(\)) reserved(end) reserved(if) ident(filter_result) operator(==) pre_constant(false) ident(logger)operator(.)ident(info) stringcontent(] returned false)delimiter(")> reserved(if) ident(logger) reserved(return) pre_constant(false) reserved(end) reserved(end) reserved(end) reserved(def) method(filter_block?)operator(()ident(filter)operator(\)) ident(filter)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(&&) operator(()ident(filter)operator(.)ident(arity) operator(==) integer(1) operator(||) ident(filter)operator(.)ident(arity) operator(==) integer(-1)operator(\)) reserved(end) reserved(def) method(filter_class?)operator(()ident(filter)operator(\)) ident(filter)operator(.)ident(respond_to?)operator(()stringoperator(\)) reserved(end) reserved(def) method(action_exempted?)operator(()ident(filter)operator(\)) reserved(case) reserved(when) ident(ia) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(included_actions)operator([)ident(filter)operator(]) operator(!)ident(ia)operator(.)ident(include?)operator(()ident(action_name)operator(\)) reserved(when) ident(ea) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(excluded_actions)operator([)ident(filter)operator(]) ident(ea)operator(.)ident(include?)operator(()ident(action_name)operator(\)) reserved(end) reserved(end) reserved(def) method(process_cleanup_with_filters) reserved(if) instance_variable(@before_filter_chain_aborted) ident(close_session) reserved(else) ident(process_cleanup_without_filters) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) comment(# The flash provides a way to pass temporary objects between actions. Anything you place in the flash will be exposed) comment(# to the very next action and then cleared out. This is a great way of doing notices and alerts, such as a create action) comment(# that sets flash[:notice] = "Successfully created" before redirecting to a display action that can then expose ) comment(# the flash to its template. Actually, that exposure is automatically done. Example:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# def create) comment(# # save post) comment(# flash[:notice] = "Successfully created post") comment(# redirect_to :action => "display", :params => { :id => post.id }) comment(# end) comment(#) comment(# def display) comment(# # doesn't need to assign the flash notice to the template, that's done automatically) comment(# end) comment(# end) comment(#) comment(# display.rhtml) comment(# <% if @flash[:notice] %>
<%= @flash[:notice] %>
<% end %>) comment(#) comment(# This example just places a string in the flash, but you can put any object in there. And of course, you can put as many) comment(# as you like at a time too. Just remember: They'll be gone by the time the next action has been performed.) comment(#) comment(# See docs on the FlashHash class for more details about the flash.) reserved(module) class(Flash) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(send) symbol(:include)operator(,) constant(InstanceMethods) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:assign_shortcuts_without_flash)operator(,) symbol(:assign_shortcuts) ident(alias_method) symbol(:assign_shortcuts)operator(,) symbol(:assign_shortcuts_with_flash) ident(alias_method) symbol(:process_cleanup_without_flash)operator(,) symbol(:process_cleanup) ident(alias_method) symbol(:process_cleanup)operator(,) symbol(:process_cleanup_with_flash) reserved(end) reserved(end) reserved(class) class(FlashNow) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(flash)operator(\)) instance_variable(@flash) operator(=) ident(flash) reserved(end) reserved(def) method([]=)operator(()ident(k)operator(,) ident(v)operator(\)) instance_variable(@flash)operator([)ident(k)operator(]) operator(=) ident(v) instance_variable(@flash)operator(.)ident(discard)operator(()ident(k)operator(\)) ident(v) reserved(end) reserved(def) method([])operator(()ident(k)operator(\)) instance_variable(@flash)operator([)ident(k)operator(]) reserved(end) reserved(end) reserved(class) class(FlashHash) operator(<) constant(Hash) reserved(def) method(initialize) comment(#:nodoc:) reserved(super) instance_variable(@used) operator(=) operator({)operator(}) reserved(end) reserved(def) method([]=)operator(()ident(k)operator(,) ident(v)operator(\)) comment(#:nodoc:) ident(keep)operator(()ident(k)operator(\)) reserved(super) reserved(end) reserved(def) method(update)operator(()ident(h)operator(\)) comment(#:nodoc:) ident(h)operator(.)ident(keys)operator(.)ident(each)operator({) operator(|)ident(k)operator(|) ident(discard)operator(()ident(k)operator(\)) operator(}) reserved(super) reserved(end) reserved(alias) symbol(:merge!) symbol(:update) reserved(def) method(replace)operator(()ident(h)operator(\)) comment(#:nodoc:) instance_variable(@used) operator(=) operator({)operator(}) reserved(super) reserved(end) comment(# Sets a flash that will not be available to the next action, only to the current.) comment(#) comment(# flash.now[:message] = "Hello current action") comment(# ) comment(# This method enables you to use the flash as a central messaging system in your app.) comment(# When you need to pass an object to the next action, you use the standard flash assign ([]=\).) comment(# When you need to pass an object to the current action, you use now, and your object will) comment(# vanish when the current action is done.) comment(#) comment(# Entries set via now are accessed the same way as standard entries: flash['my-key'].) reserved(def) method(now) constant(FlashNow)operator(.)ident(new) pre_constant(self) reserved(end) comment(# Keeps either the entire current flash or a specific flash entry available for the next action:) comment(#) comment(# flash.keep # keeps the entire flash) comment(# flash.keep(:notice\) # keeps only the "notice" entry, the rest of the flash is discarded) reserved(def) method(keep)operator(()ident(k)operator(=)pre_constant(nil)operator(\)) ident(use)operator(()ident(k)operator(,) pre_constant(false)operator(\)) reserved(end) comment(# Marks the entire flash or a single flash entry to be discarded by the end of the current action) comment(#) comment(# flash.keep # keep entire flash available for the next action) comment(# flash.discard(:warning\) # discard the "warning" entry (it'll still be available for the current action\)) reserved(def) method(discard)operator(()ident(k)operator(=)pre_constant(nil)operator(\)) ident(use)operator(()ident(k)operator(\)) reserved(end) comment(# Mark for removal entries that were kept, and delete unkept ones.) comment(#) comment(# This method is called automatically by filters, so you generally don't need to care about it.) reserved(def) method(sweep) comment(#:nodoc:) ident(keys)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(|) reserved(unless) instance_variable(@used)operator([)ident(k)operator(]) ident(use)operator(()ident(k)operator(\)) reserved(else) ident(delete)operator(()ident(k)operator(\)) instance_variable(@used)operator(.)ident(delete)operator(()ident(k)operator(\)) reserved(end) reserved(end) operator(()instance_variable(@used)operator(.)ident(keys) operator(-) ident(keys)operator(\))operator(.)ident(each)operator({)operator(|)ident(k)operator(|) instance_variable(@used)operator(.)ident(delete) ident(k) operator(}) comment(# clean up after keys that could have been left over by calling reject! or shift on the flash) reserved(end) ident(private) comment(# Used internally by the keep and discard methods) comment(# use(\) # marks the entire flash as used) comment(# use('msg'\) # marks the "msg" entry as used) comment(# use(nil, false\) # marks the entire flash as unused (keeps it around for one more action\)) comment(# use('msg', false\) # marks the "msg" entry as unused (keeps it around for one more action\)) reserved(def) method(use)operator(()ident(k)operator(=)pre_constant(nil)operator(,) ident(v)operator(=)pre_constant(true)operator(\)) reserved(unless) ident(k)operator(.)ident(nil?) instance_variable(@used)operator([)ident(k)operator(]) operator(=) ident(v) reserved(else) ident(keys)operator(.)ident(each)operator({)operator(|)ident(key)operator(|) ident(use) ident(key)operator(,) ident(v) operator(}) reserved(end) reserved(end) reserved(end) reserved(module) class(InstanceMethods) comment(#:nodoc:) reserved(def) method(assign_shortcuts_with_flash)operator(()ident(request)operator(,) ident(response)operator(\)) comment(#:nodoc:) ident(assign_shortcuts_without_flash)operator(()ident(request)operator(,) ident(response)operator(\)) ident(flash)operator(()symbol(:refresh)operator(\)) reserved(end) reserved(def) method(process_cleanup_with_flash) ident(flash)operator(.)ident(sweep) reserved(if) instance_variable(@session) ident(process_cleanup_without_flash) reserved(end) ident(protected) comment(# Access the contents of the flash. Use flash["notice"] to read a notice you put there or ) comment(# flash["notice"] = "hello" to put a new one.) comment(# Note that if sessions are disabled only flash.now will work.) reserved(def) method(flash)operator(()ident(refresh) operator(=) pre_constant(false)operator(\)) comment(#:doc:) reserved(if) instance_variable(@flash)operator(.)ident(nil?) operator(||) ident(refresh) instance_variable(@flash) operator(=) reserved(if) instance_variable(@session)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) comment(# @session is a Hash, if sessions are disabled) comment(# we don't put the flash in the session in this case) constant(FlashHash)operator(.)ident(new) reserved(else) comment(# otherwise, @session is a CGI::Session or a TestSession) comment(# so make sure it gets retrieved from/saved to session storage after request processing) instance_variable(@session)operator([)stringoperator(]) operator(||=) constant(FlashHash)operator(.)ident(new) reserved(end) reserved(end) instance_variable(@flash) reserved(end) comment(# deprecated. use flash.keep instead) reserved(def) method(keep_flash) comment(#:doc:) ident(warn) string ident(flash)operator(.)ident(keep) reserved(end) reserved(end) reserved(end) ident(endmodule) constant(ActionController) comment(#:nodoc:) reserved(module) class(Helpers) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) comment(# Initialize the base module to aggregate its helpers.) ident(base)operator(.)ident(class_inheritable_accessor) symbol(:master_helper_module) ident(base)operator(.)ident(master_helper_module) operator(=) constant(Module)operator(.)ident(new) comment(# Extend base with class methods to declare helpers.) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) comment(# Wrap inherited to create a new master helper module for subclasses.) reserved(class) operator(<<) class(self) ident(alias_method) symbol(:inherited_without_helper)operator(,) symbol(:inherited) ident(alias_method) symbol(:inherited)operator(,) symbol(:inherited_with_helper) reserved(end) reserved(end) reserved(end) comment(# The template helpers serve to relieve the templates from including the same inline code again and again. It's a) comment(# set of standardized methods for working with forms (FormHelper\), dates (DateHelper\), texts (TextHelper\), and ) comment(# Active Records (ActiveRecordHelper\) that's available to all templates by default.) comment(#) comment(# It's also really easy to make your own helpers and it's much encouraged to keep the template files free) comment(# from complicated logic. It's even encouraged to bundle common compositions of methods from other helpers ) comment(# (often the common helpers\) as they're used by the specific application.) comment(# ) comment(# module MyHelper) comment(# def hello_world(\) "hello world" end) comment(# end) comment(# ) comment(# MyHelper can now be included in a controller, like this:) comment(# ) comment(# class MyController < ActionController::Base) comment(# helper :my_helper) comment(# end) comment(# ) comment(# ...and, same as above, used in any template rendered from MyController, like this:) comment(# ) comment(# Let's hear what the helper has to say: <%= hello_world %>) reserved(module) class(ClassMethods) comment(# Makes all the (instance\) methods in the helper module available to templates rendered through this controller.) comment(# See ActionView::Helpers (link:classes/ActionView/Helpers.html\) for more about making your own helper modules ) comment(# available to the templates.) reserved(def) method(add_template_helper)operator(()ident(helper_module)operator(\)) comment(#:nodoc:) ident(master_helper_module)operator(.)ident(send)operator(()symbol(:include)operator(,) ident(helper_module)operator(\)) reserved(end) comment(# Declare a helper:) comment(# helper :foo) comment(# requires 'foo_helper' and includes FooHelper in the template class.) comment(# helper FooHelper) comment(# includes FooHelper in the template class.) comment(# helper { def foo(\) "#{bar} is the very best" end }) comment(# evaluates the block in the template class, adding method #foo.) comment(# helper(:three, BlindHelper\) { def mice(\) 'mice' end }) comment(# does all three.) reserved(def) method(helper)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(args)operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(arg)operator(|) reserved(case) ident(arg) reserved(when) constant(Module) ident(add_template_helper)operator(()ident(arg)operator(\)) reserved(when) constant(String)operator(,) constant(Symbol) ident(file_name) operator(=) ident(arg)operator(.)ident(to_s)operator(.)ident(underscore) operator(+) string ident(class_name) operator(=) ident(file_name)operator(.)ident(camelize) reserved(begin) ident(require_dependency)operator(()ident(file_name)operator(\)) reserved(rescue) constant(LoadError) operator(=)operator(>) ident(load_error) ident(requiree) operator(=) regexpoperator(.)ident(match)operator(()ident(load_error)operator(\))operator(.)ident(to_a)operator([)integer(1)operator(]) ident(msg) operator(=) operator(()ident(requiree) operator(==) ident(file_name)operator(\)) operator(?) stringcontent(.rb)delimiter(")> operator(:) stringdelimiter(")> ident(raise) constant(LoadError)operator(.)ident(new)operator(()ident(msg)operator(\))operator(.)ident(copy_blame!)operator(()ident(load_error)operator(\)) reserved(end) ident(add_template_helper)operator(()ident(class_name)operator(.)ident(constantize)operator(\)) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(end) comment(# Evaluate block in template class if given.) ident(master_helper_module)operator(.)ident(module_eval)operator(()operator(&)ident(block)operator(\)) reserved(if) ident(block_given?) reserved(end) comment(# Declare a controller method as a helper. For example,) comment(# helper_method :link_to) comment(# def link_to(name, options\) ... end) comment(# makes the link_to controller method available in the view.) reserved(def) method(helper_method)operator(()operator(*)ident(methods)operator(\)) ident(methods)operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(master_helper_module)operator(.)ident(module_eval) stringstringcontent((*args, &block\) controller.send(%()inlinecontent(\), *args, &block\) end)delimiter( end_eval)> reserved(end) reserved(end) comment(# Declare a controller attribute as a helper. For example,) comment(# helper_attr :name) comment(# attr_accessor :name) comment(# makes the name and name= controller methods available in the view.) comment(# The is a convenience wrapper for helper_method.) reserved(def) method(helper_attr)operator(()operator(*)ident(attrs)operator(\)) ident(attrs)operator(.)ident(flatten)operator(.)ident(each) operator({) operator(|)ident(attr)operator(|) ident(helper_method)operator(()ident(attr)operator(,) stringcontent(=)delimiter(")>operator(\)) operator(}) reserved(end) ident(private) reserved(def) method(default_helper_module!) ident(module_name) operator(=) ident(name)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) ident(module_path) operator(=) ident(module_name)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(map) operator({) operator(|)ident(m)operator(|) ident(m)operator(.)ident(underscore) operator(})operator(.)ident(join)operator(()stringoperator(\)) ident(require_dependency) ident(module_path) ident(helper) ident(module_name)operator(.)ident(constantize) reserved(rescue) constant(LoadError) ident(logger)operator(.)ident(debug)operator(()stringcontent(: missing default helper path )inlinedelimiter(")>operator(\)) reserved(if) ident(logger) reserved(rescue) constant(NameError) ident(logger)operator(.)ident(debug)operator(()stringcontent(: missing default helper module )inlinedelimiter(")>operator(\)) reserved(if) ident(logger) reserved(end) reserved(def) method(inherited_with_helper)operator(()ident(child)operator(\)) ident(inherited_without_helper)operator(()ident(child)operator(\)) reserved(begin) ident(child)operator(.)ident(master_helper_module) operator(=) constant(Module)operator(.)ident(new) ident(child)operator(.)ident(master_helper_module)operator(.)ident(send) symbol(:include)operator(,) ident(master_helper_module) ident(child)operator(.)ident(send) symbol(:default_helper_module!) reserved(rescue) constant(MissingSourceFile) operator(=)operator(>) ident(e) ident(raise) reserved(unless) ident(e)operator(.)ident(is_missing?)operator(()stringcontent(_helper)delimiter(")>operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(module) class(ActionController) reserved(module) class(Integration) comment(#:nodoc:) comment(# An integration Session instance represents a set of requests and responses) comment(# performed sequentially by some virtual user. Becase you can instantiate) comment(# multiple sessions and run them side-by-side, you can also mimic (to some) comment(# limited extent\) multiple simultaneous users interacting with your system.) comment(#) comment(# Typically, you will instantiate a new session using IntegrationTest#open_session,) comment(# rather than instantiating Integration::Session directly.) reserved(class) class(Session) ident(include) constant(Test)operator(::)constant(Unit)operator(::)constant(Assertions) ident(include) constant(ActionController)operator(::)constant(TestProcess) comment(# The integer HTTP status code of the last request.) ident(attr_reader) symbol(:status) comment(# The status message that accompanied the status code of the last request.) ident(attr_reader) symbol(:status_message) comment(# The URI of the last request.) ident(attr_reader) symbol(:path) comment(# The hostname used in the last request.) ident(attr_accessor) symbol(:host) comment(# The remote_addr used in the last request.) ident(attr_accessor) symbol(:remote_addr) comment(# The Accept header to send.) ident(attr_accessor) symbol(:accept) comment(# A map of the cookies returned by the last response, and which will be) comment(# sent with the next request.) ident(attr_reader) symbol(:cookies) comment(# A map of the headers returned by the last response.) ident(attr_reader) symbol(:headers) comment(# A reference to the controller instance used by the last request.) ident(attr_reader) symbol(:controller) comment(# A reference to the request instance used by the last request.) ident(attr_reader) symbol(:request) comment(# A reference to the response instance used by the last request.) ident(attr_reader) symbol(:response) comment(# Create an initialize a new Session instance.) reserved(def) method(initialize) ident(reset!) reserved(end) comment(# Resets the instance. This can be used to reset the state information) comment(# in an existing session instance, so it can be used from a clean-slate) comment(# condition.) comment(#) comment(# session.reset!) reserved(def) method(reset!) instance_variable(@status) operator(=) instance_variable(@path) operator(=) instance_variable(@headers) operator(=) pre_constant(nil) instance_variable(@result) operator(=) instance_variable(@status_message) operator(=) pre_constant(nil) instance_variable(@https) operator(=) pre_constant(false) instance_variable(@cookies) operator(=) operator({)operator(}) instance_variable(@controller) operator(=) instance_variable(@request) operator(=) instance_variable(@response) operator(=) pre_constant(nil) pre_constant(self)operator(.)ident(host) operator(=) string pre_constant(self)operator(.)ident(remote_addr) operator(=) string pre_constant(self)operator(.)ident(accept) operator(=) string reserved(unless) instance_variable(@named_routes_configured) comment(# install the named routes in this session instance.) ident(klass) operator(=) reserved(class)operator(<<)class(self)operator(;) pre_constant(self)operator(;) reserved(end) constant(Routing)operator(::)constant(NamedRoutes)operator(.)ident(install)operator(()ident(klass)operator(\)) comment(# the helpers are made protected by default--we make them public for) comment(# easier access during testing and troubleshooting.) ident(klass)operator(.)ident(send)operator(()symbol(:public)operator(,) operator(*)constant(Routing)operator(::)constant(NamedRoutes)operator(::)constant(Helpers)operator(\)) instance_variable(@named_routes_configured) operator(=) pre_constant(true) reserved(end) reserved(end) comment(# Specify whether or not the session should mimic a secure HTTPS request.) comment(#) comment(# session.https!) comment(# session.https!(false\)) reserved(def) method(https!)operator(()ident(flag)operator(=)pre_constant(true)operator(\)) instance_variable(@https) operator(=) ident(flag) reserved(end) comment(# Return +true+ if the session is mimicing a secure HTTPS request.) comment(#) comment(# if session.https?) comment(# ...) comment(# end) reserved(def) method(https?) instance_variable(@https) reserved(end) comment(# Set the host name to use in the next request.) comment(#) comment(# session.host! "www.example.com") reserved(def) method(host!)operator(()ident(name)operator(\)) instance_variable(@host) operator(=) ident(name) reserved(end) comment(# Follow a single redirect response. If the last response was not a) comment(# redirect, an exception will be raised. Otherwise, the redirect is) comment(# performed on the location header.) reserved(def) method(follow_redirect!) ident(raise) stringcontent( )inlinedelimiter(")> reserved(unless) ident(redirect?) ident(get)operator(()ident(interpret_uri)operator(()ident(headers)operator([)stringoperator(])operator(.)ident(first)operator(\))operator(\)) ident(status) reserved(end) comment(# Performs a GET request, following any subsequent redirect. Note that) comment(# the redirects are followed until the response is not a redirect--this) comment(# means you may run into an infinite loop if your redirect loops back to) comment(# itself.) reserved(def) method(get_via_redirect)operator(()ident(path)operator(,) ident(args)operator(=)operator({)operator(})operator(\)) ident(get) ident(path)operator(,) ident(args) ident(follow_redirect!) reserved(while) ident(redirect?) ident(status) reserved(end) comment(# Performs a POST request, following any subsequent redirect. This is) comment(# vulnerable to infinite loops, the same as #get_via_redirect.) reserved(def) method(post_via_redirect)operator(()ident(path)operator(,) ident(args)operator(=)operator({)operator(})operator(\)) ident(post) ident(path)operator(,) ident(args) ident(follow_redirect!) reserved(while) ident(redirect?) ident(status) reserved(end) comment(# Returns +true+ if the last response was a redirect.) reserved(def) method(redirect?) ident(status)operator(/)integer(100) operator(==) integer(3) reserved(end) comment(# Performs a GET request with the given parameters. The parameters may) comment(# be +nil+, a Hash, or a string that is appropriately encoded) comment(# (application/x-www-form-urlencoded or multipart/form-data\). The headers) comment(# should be a hash. The keys will automatically be upcased, with the ) comment(# prefix 'HTTP_' added if needed.) reserved(def) method(get)operator(()ident(path)operator(,) ident(parameters)operator(=)pre_constant(nil)operator(,) ident(headers)operator(=)pre_constant(nil)operator(\)) ident(process) symbol(:get)operator(,) ident(path)operator(,) ident(parameters)operator(,) ident(headers) reserved(end) comment(# Performs a POST request with the given parameters. The parameters may) comment(# be +nil+, a Hash, or a string that is appropriately encoded) comment(# (application/x-www-form-urlencoded or multipart/form-data\). The headers) comment(# should be a hash. The keys will automatically be upcased, with the ) comment(# prefix 'HTTP_' added if needed.) reserved(def) method(post)operator(()ident(path)operator(,) ident(parameters)operator(=)pre_constant(nil)operator(,) ident(headers)operator(=)pre_constant(nil)operator(\)) ident(process) symbol(:post)operator(,) ident(path)operator(,) ident(parameters)operator(,) ident(headers) reserved(end) comment(# Performs an XMLHttpRequest request with the given parameters, mimicing) comment(# the request environment created by the Prototype library. The parameters) comment(# may be +nil+, a Hash, or a string that is appropriately encoded) comment(# (application/x-www-form-urlencoded or multipart/form-data\). The headers) comment(# should be a hash. The keys will automatically be upcased, with the ) comment(# prefix 'HTTP_' added if needed.) reserved(def) method(xml_http_request)operator(()ident(path)operator(,) ident(parameters)operator(=)pre_constant(nil)operator(,) ident(headers)operator(=)pre_constant(nil)operator(\)) ident(headers) operator(=) operator(()ident(headers) operator(||) operator({)operator(})operator(\))operator(.)ident(merge)operator(()string operator(=)operator(>) stringoperator(\)) ident(post)operator(()ident(path)operator(,) ident(parameters)operator(,) ident(headers)operator(\)) reserved(end) comment(# Returns the URL for the given options, according to the rules specified) comment(# in the application's routes.) reserved(def) method(url_for)operator(()ident(options)operator(\)) ident(controller) operator(?) ident(controller)operator(.)ident(url_for)operator(()ident(options)operator(\)) operator(:) ident(generic_url_rewriter)operator(.)ident(rewrite)operator(()ident(options)operator(\)) reserved(end) ident(private) reserved(class) class(MockCGI) operator(<) constant(CGI) comment(#:nodoc:) ident(attr_accessor) symbol(:stdinput)operator(,) symbol(:stdoutput)operator(,) symbol(:env_table) reserved(def) method(initialize)operator(()ident(env)operator(,) ident(input)operator(=)pre_constant(nil)operator(\)) pre_constant(self)operator(.)ident(env_table) operator(=) ident(env) pre_constant(self)operator(.)ident(stdinput) operator(=) constant(StringIO)operator(.)ident(new)operator(()ident(input) operator(||) stringoperator(\)) pre_constant(self)operator(.)ident(stdoutput) operator(=) constant(StringIO)operator(.)ident(new) reserved(super)operator(()operator(\)) reserved(end) reserved(end) comment(# Tailors the session based on the given URI, setting the HTTPS value) comment(# and the hostname.) reserved(def) method(interpret_uri)operator(()ident(path)operator(\)) ident(location) operator(=) constant(URI)operator(.)ident(parse)operator(()ident(path)operator(\)) ident(https!) constant(URI)operator(::)constant(HTTPS) operator(===) ident(location) reserved(if) ident(location)operator(.)ident(scheme) ident(host!) ident(location)operator(.)ident(host) reserved(if) ident(location)operator(.)ident(host) ident(location)operator(.)ident(query) operator(?) stringcontent(?)inlinedelimiter(")> operator(:) ident(location)operator(.)ident(path) reserved(end) comment(# Performs the actual request.) reserved(def) method(process)operator(()ident(method)operator(,) ident(path)operator(,) ident(parameters)operator(=)pre_constant(nil)operator(,) ident(headers)operator(=)pre_constant(nil)operator(\)) ident(data) operator(=) ident(requestify)operator(()ident(parameters)operator(\)) ident(path) operator(=) ident(interpret_uri)operator(()ident(path)operator(\)) reserved(if) ident(path) operator(=)operator(~) regexp ident(path) operator(=) stringdelimiter(")> reserved(unless) ident(path)operator([)integer(0)operator(]) operator(==) integer(?/) instance_variable(@path) operator(=) ident(path) ident(env) operator(=) operator({)operator(}) reserved(if) ident(method) operator(==) symbol(:get) ident(env)operator([)stringoperator(]) operator(=) ident(data) ident(data) operator(=) pre_constant(nil) reserved(end) ident(env)operator(.)ident(update)operator(() string operator(=)operator(>) ident(method)operator(.)ident(to_s)operator(.)ident(upcase)operator(,) string operator(=)operator(>) ident(path)operator(,) string operator(=)operator(>) ident(host)operator(,) string operator(=)operator(>) ident(remote_addr)operator(,) string operator(=)operator(>) operator(()ident(https?) operator(?) string operator(:) stringoperator(\))operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(data) operator(?) ident(data)operator(.)ident(length)operator(.)ident(to_s) operator(:) pre_constant(nil)operator(,) string operator(=)operator(>) ident(encode_cookies)operator(,) string operator(=)operator(>) ident(https?) operator(?) string operator(:) stringoperator(,) string operator(=)operator(>) ident(accept) operator(\)) operator(()ident(headers) operator(||) operator({)operator(})operator(\))operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) ident(key) operator(=) ident(key)operator(.)ident(to_s)operator(.)ident(upcase)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) ident(key) operator(=) stringdelimiter(")> reserved(unless) ident(env)operator(.)ident(has_key?)operator(()ident(key)operator(\)) operator(||) ident(env) operator(=)operator(~) regexp ident(env)operator([)ident(key)operator(]) operator(=) ident(value) reserved(end) reserved(unless) constant(ActionController)operator(::)constant(Base)operator(.)ident(respond_to?)operator(()symbol(:clear_last_instantiation!)operator(\)) constant(ActionController)operator(::)constant(Base)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ControllerCapture)operator(\)) reserved(end) constant(ActionController)operator(::)constant(Base)operator(.)ident(clear_last_instantiation!) ident(cgi) operator(=) constant(MockCGI)operator(.)ident(new)operator(()ident(env)operator(,) ident(data)operator(\)) constant(Dispatcher)operator(.)ident(dispatch)operator(()ident(cgi)operator(,) constant(ActionController)operator(::)constant(CgiRequest)operator(::)constant(DEFAULT_SESSION_OPTIONS)operator(,) ident(cgi)operator(.)ident(stdoutput)operator(\)) instance_variable(@result) operator(=) ident(cgi)operator(.)ident(stdoutput)operator(.)ident(string) instance_variable(@controller) operator(=) constant(ActionController)operator(::)constant(Base)operator(.)ident(last_instantiation) instance_variable(@request) operator(=) instance_variable(@controller)operator(.)ident(request) instance_variable(@response) operator(=) instance_variable(@controller)operator(.)ident(response) comment(# Decorate the response with the standard behavior of the TestResponse) comment(# so that things like assert_response can be used in integration) comment(# tests.) instance_variable(@response)operator(.)ident(extend)operator(()constant(TestResponseBehavior)operator(\)) ident(parse_result) reserved(return) ident(status) reserved(end) comment(# Parses the result of the response and extracts the various values,) comment(# like cookies, status, headers, etc.) reserved(def) method(parse_result) ident(headers)operator(,) ident(result_body) operator(=) instance_variable(@result)operator(.)ident(split)operator(()regexpoperator(,) integer(2)operator(\)) instance_variable(@headers) operator(=) constant(Hash)operator(.)ident(new) operator({) operator(|)ident(h)operator(,)ident(k)operator(|) ident(h)operator([)ident(k)operator(]) operator(=) operator([)operator(]) operator(}) ident(headers)operator(.)ident(each_line) reserved(do) operator(|)ident(line)operator(|) ident(key)operator(,) ident(value) operator(=) ident(line)operator(.)ident(strip)operator(.)ident(split)operator(()regexpoperator(,) integer(2)operator(\)) instance_variable(@headers)operator([)ident(key)operator(.)ident(downcase)operator(]) operator(<<) ident(value) reserved(end) operator(()instance_variable(@headers)operator([)stringoperator(]) operator(||) operator([)operator(]) operator(\))operator(.)ident(each) reserved(do) operator(|)ident(string)operator(|) ident(name)operator(,) ident(value) operator(=) ident(string)operator(.)ident(match)operator(()regexpoperator(\))operator([)integer(1)operator(,)integer(2)operator(]) instance_variable(@cookies)operator([)ident(name)operator(]) operator(=) ident(value) reserved(end) instance_variable(@status)operator(,) instance_variable(@status_message) operator(=) instance_variable(@headers)operator([)stringoperator(])operator(.)ident(first)operator(.)ident(split)operator(()regexpoperator(\)) instance_variable(@status) operator(=) instance_variable(@status)operator(.)ident(to_i) reserved(end) comment(# Encode the cookies hash in a format suitable for passing to a ) comment(# request.) reserved(def) method(encode_cookies) ident(cookies)operator(.)ident(inject)operator(()stringoperator(\)) reserved(do) operator(|)ident(string)operator(,) operator(()ident(name)operator(,) ident(value)operator(\))operator(|) ident(string) operator(<<) stringcontent(=)inlinecontent(; )delimiter(")> reserved(end) reserved(end) comment(# Get a temporarly URL writer object) reserved(def) method(generic_url_rewriter) ident(cgi) operator(=) constant(MockCGI)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(host)operator(,) string operator(=)operator(>) ident(https?) operator(?) string operator(:) stringoperator(,) string operator(=)operator(>) ident(https?) operator(?) string operator(:) stringoperator(\)) constant(ActionController)operator(::)constant(UrlRewriter)operator(.)ident(new)operator(()constant(ActionController)operator(::)constant(CgiRequest)operator(.)ident(new)operator(()ident(cgi)operator(\))operator(,) operator({)operator(})operator(\)) reserved(end) reserved(def) method(name_with_prefix)operator(()ident(prefix)operator(,) ident(name)operator(\)) ident(prefix) operator(?) stringcontent([)inlinecontent(])delimiter(")> operator(:) ident(name)operator(.)ident(to_s) reserved(end) comment(# Convert the given parameters to a request string. The parameters may) comment(# be a string, +nil+, or a Hash.) reserved(def) method(requestify)operator(()ident(parameters)operator(,) ident(prefix)operator(=)pre_constant(nil)operator(\)) reserved(if) constant(Hash) operator(===) ident(parameters) reserved(return) pre_constant(nil) reserved(if) ident(parameters)operator(.)ident(empty?) ident(parameters)operator(.)ident(map) operator({) operator(|)ident(k)operator(,)ident(v)operator(|) ident(requestify)operator(()ident(v)operator(,) ident(name_with_prefix)operator(()ident(prefix)operator(,) ident(k)operator(\))operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(elsif) constant(Array) operator(===) ident(parameters) ident(parameters)operator(.)ident(map) operator({) operator(|)ident(v)operator(|) ident(requestify)operator(()ident(v)operator(,) ident(name_with_prefix)operator(()ident(prefix)operator(,) stringoperator(\))operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(elsif) ident(prefix)operator(.)ident(nil?) ident(parameters) reserved(else) stringcontent(=)inlinedelimiter(")> reserved(end) reserved(end) reserved(end) comment(# A module used to extend ActionController::Base, so that integration tests) comment(# can capture the controller used to satisfy a request.) reserved(module) class(ControllerCapture) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) reserved(class) operator(<<)class(self) ident(alias_method) symbol(:new_without_capture)operator(,) symbol(:new) ident(alias_method) symbol(:new)operator(,) symbol(:new_with_capture) reserved(end) reserved(end) reserved(end) reserved(module) class(ClassMethods) comment(#:nodoc:) ident(mattr_accessor) symbol(:last_instantiation) reserved(def) method(clear_last_instantiation!) pre_constant(self)operator(.)ident(last_instantiation) operator(=) pre_constant(nil) reserved(end) reserved(def) method(new_with_capture)operator(()operator(*)ident(args)operator(\)) pre_constant(self)operator(.)ident(last_instantiation) operator(||=) ident(new_without_capture)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) comment(# An IntegrationTest is one that spans multiple controllers and actions,) comment(# tying them all together to ensure they work together as expected. It tests) comment(# more completely than either unit or functional tests do, exercising the) comment(# entire stack, from the dispatcher to the database.) comment(#) comment(# At its simplest, you simply extend IntegrationTest and write your tests) comment(# using the get/post methods:) comment(#) comment(# require "#{File.dirname(__FILE__\)}/test_helper") comment(#) comment(# class ExampleTest < ActionController::IntegrationTest) comment(# fixtures :people) comment(#) comment(# def test_login) comment(# # get the login page) comment(# get "/login") comment(# assert_equal 200, status) comment(#) comment(# # post the login and follow through to the home page) comment(# post "/login", :username => people(:jamis\).username,) comment(# :password => people(:jamis\).password) comment(# follow_redirect!) comment(# assert_equal 200, status) comment(# assert_equal "/home", path) comment(# end) comment(# end) comment(#) comment(# However, you can also have multiple session instances open per test, and) comment(# even extend those instances with assertions and methods to create a very) comment(# powerful testing DSL that is specific for your application. You can even) comment(# reference any named routes you happen to have defined!) comment(#) comment(# require "#{File.dirname(__FILE__\)}/test_helper") comment(#) comment(# class AdvancedTest < ActionController::IntegrationTest) comment(# fixtures :people, :rooms) comment(#) comment(# def test_login_and_speak) comment(# jamis, david = login(:jamis\), login(:david\)) comment(# room = rooms(:office\)) comment(#) comment(# jamis.enter(room\)) comment(# jamis.speak(room, "anybody home?"\)) comment(#) comment(# david.enter(room\)) comment(# david.speak(room, "hello!"\)) comment(# end) comment(#) comment(# private) comment(#) comment(# module CustomAssertions) comment(# def enter(room\)) comment(# # reference a named route, for maximum internal consistency!) comment(# get(room_url(:id => room.id\)\)) comment(# assert(...\)) comment(# ...) comment(# end) comment(#) comment(# def speak(room, message\)) comment(# xml_http_request "/say/#{room.id}", :message => message) comment(# assert(...\)) comment(# ...) comment(# end) comment(# end) comment(#) comment(# def login(who\)) comment(# open_session do |sess|) comment(# sess.extend(CustomAssertions\)) comment(# who = people(who\)) comment(# sess.post "/login", :username => who.username,) comment(# :password => who.password) comment(# assert(...\)) comment(# end) comment(# end) comment(# end) reserved(class) class(IntegrationTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) comment(# Work around a bug in test/unit caused by the default test being named) comment(# as a symbol (:default_test\), which causes regex test filters) comment(# (like "ruby test.rb -n /foo/"\) to fail because =~ doesn't work on) comment(# symbols.) reserved(def) method(initialize)operator(()ident(name)operator(\)) comment(#:nodoc:) reserved(super)operator(()ident(name)operator(.)ident(to_s)operator(\)) reserved(end) comment(# Work around test/unit's requirement that every subclass of TestCase have) comment(# at least one test method. Note that this implementation extends to all) comment(# subclasses, as well, so subclasses of IntegrationTest may also exist) comment(# without any test methods.) reserved(def) method(run)operator(()operator(*)ident(args)operator(\)) comment(#:nodoc:) reserved(return) reserved(if) instance_variable(@method_name) operator(==) string reserved(super) reserved(end) comment(# Because of how use_instantiated_fixtures and use_transactional_fixtures) comment(# are defined, we need to treat them as special cases. Otherwise, users) comment(# would potentially have to set their values for both Test::Unit::TestCase) comment(# ActionController::IntegrationTest, since by the time the value is set on) comment(# TestCase, IntegrationTest has already been defined and cannot inherit) comment(# changes to those variables. So, we make those two attributes copy-on-write.) reserved(class) operator(<<) class(self) reserved(def) method(use_transactional_fixtures=)operator(()ident(flag)operator(\)) comment(#:nodoc:) instance_variable(@_use_transactional_fixtures) operator(=) pre_constant(true) instance_variable(@use_transactional_fixtures) operator(=) ident(flag) reserved(end) reserved(def) method(use_instantiated_fixtures=)operator(()ident(flag)operator(\)) comment(#:nodoc:) instance_variable(@_use_instantiated_fixtures) operator(=) pre_constant(true) instance_variable(@use_instantiated_fixtures) operator(=) ident(flag) reserved(end) reserved(def) method(use_transactional_fixtures) comment(#:nodoc:) instance_variable(@_use_transactional_fixtures) operator(?) instance_variable(@use_transactional_fixtures) operator(:) ident(superclass)operator(.)ident(use_transactional_fixtures) reserved(end) reserved(def) method(use_instantiated_fixtures) comment(#:nodoc:) instance_variable(@_use_instantiated_fixtures) operator(?) instance_variable(@use_instantiated_fixtures) operator(:) ident(superclass)operator(.)ident(use_instantiated_fixtures) reserved(end) reserved(end) comment(# Reset the current session. This is useful for testing multiple sessions) comment(# in a single test case.) reserved(def) method(reset!) instance_variable(@integration_session) operator(=) ident(open_session) reserved(end) stringoperator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(define_method)operator(()ident(method)operator(\)) reserved(do) operator(|*)ident(args)operator(|) ident(reset!) reserved(unless) instance_variable(@integration_session) ident(returning) instance_variable(@integration_session)operator(.)ident(send)operator(()ident(method)operator(,) operator(*)ident(args)operator(\)) reserved(do) ident(copy_session_variables!) reserved(end) reserved(end) reserved(end) comment(# Open a new session instance. If a block is given, the new session is) comment(# yielded to the block before being returned.) comment(#) comment(# session = open_session do |sess|) comment(# sess.extend(CustomAssertions\)) comment(# end) comment(#) comment(# By default, a single session is automatically created for you, but you) comment(# can use this method to open multiple sessions that ought to be tested) comment(# simultaneously.) reserved(def) method(open_session) ident(session) operator(=) constant(Integration)operator(::)constant(Session)operator(.)ident(new) comment(# delegate the fixture accessors back to the test instance) ident(extras) operator(=) constant(Module)operator(.)ident(new) operator({) ident(attr_accessor) symbol(:delegate)operator(,) symbol(:test_result) operator(}) pre_constant(self)operator(.)ident(class)operator(.)ident(fixture_table_names)operator(.)ident(each) reserved(do) operator(|)ident(table_name)operator(|) ident(name) operator(=) ident(table_name)operator(.)ident(tr)operator(()stringoperator(,) stringoperator(\)) reserved(next) reserved(unless) ident(respond_to?)operator(()ident(name)operator(\)) ident(extras)operator(.)ident(send)operator(()symbol(:define_method)operator(,) ident(name)operator(\)) operator({) operator(|*)ident(args)operator(|) ident(delegate)operator(.)ident(send)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) operator(}) reserved(end) comment(# delegate add_assertion to the test case) ident(extras)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:add_assertion)operator(\)) operator({) ident(test_result)operator(.)ident(add_assertion) operator(}) ident(session)operator(.)ident(extend)operator(()ident(extras)operator(\)) ident(session)operator(.)ident(delegate) operator(=) pre_constant(self) ident(session)operator(.)ident(test_result) operator(=) instance_variable(@_result) reserved(yield) ident(session) reserved(if) ident(block_given?) ident(session) reserved(end) comment(# Copy the instance variables from the current session instance into the) comment(# test instance.) reserved(def) method(copy_session_variables!) comment(#:nodoc:) reserved(return) reserved(unless) instance_variable(@integration_session) stringoperator(.)ident(each) reserved(do) operator(|)ident(var)operator(|) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) instance_variable(@integration_session)operator(.)ident(send)operator(()ident(var)operator(\))operator(\)) reserved(end) reserved(end) comment(# Delegate unhandled messages to the current session instance.) reserved(def) method(method_missing)operator(()ident(sym)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(reset!) reserved(unless) instance_variable(@integration_session) ident(returning) instance_variable(@integration_session)operator(.)ident(send)operator(()ident(sym)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(do) ident(copy_session_variables!) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) reserved(module) class(Layout) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:render_with_no_layout)operator(,) symbol(:render) ident(alias_method) symbol(:render)operator(,) symbol(:render_with_a_layout) reserved(class) operator(<<) class(self) ident(alias_method) symbol(:inherited_without_layout)operator(,) symbol(:inherited) ident(alias_method) symbol(:inherited)operator(,) symbol(:inherited_with_layout) reserved(end) reserved(end) reserved(end) comment(# Layouts reverse the common pattern of including shared headers and footers in many templates to isolate changes in) comment(# repeated setups. The inclusion pattern has pages that look like this:) comment(#) comment(# <%= render "shared/header" %>) comment(# Hello World) comment(# <%= render "shared/footer" %>) comment(#) comment(# This approach is a decent way of keeping common structures isolated from the changing content, but it's verbose) comment(# and if you ever want to change the structure of these two includes, you'll have to change all the templates.) comment(#) comment(# With layouts, you can flip it around and have the common structure know where to insert changing content. This means) comment(# that the header and footer are only mentioned in one place, like this:) comment(#) comment(# ) comment(# <%= yield %>) comment(# ) comment(#) comment(# And then you have content pages that look like this:) comment(#) comment(# hello world) comment(#) comment(# Not a word about common structures. At rendering time, the content page is computed and then inserted in the layout, ) comment(# like this:) comment(#) comment(# ) comment(# hello world) comment(# ) comment(#) comment(# == Accessing shared variables) comment(#) comment(# Layouts have access to variables specified in the content pages and vice versa. This allows you to have layouts with) comment(# references that won't materialize before rendering time:) comment(#) comment(#

<%= @page_title %>

) comment(# <%= yield %>) comment(#) comment(# ...and content pages that fulfill these references _at_ rendering time:) comment(#) comment(# <% @page_title = "Welcome" %>) comment(# Off-world colonies offers you a chance to start a new life) comment(#) comment(# The result after rendering is:) comment(#) comment(#

Welcome

) comment(# Off-world colonies offers you a chance to start a new life) comment(#) comment(# == Automatic layout assignment) comment(#) comment(# If there is a template in app/views/layouts/ with the same name as the current controller then it will be automatically) comment(# set as that controller's layout unless explicitly told otherwise. Say you have a WeblogController, for example. If a template named ) comment(# app/views/layouts/weblog.rhtml or app/views/layouts/weblog.rxml exists then it will be automatically set as) comment(# the layout for your WeblogController. You can create a layout with the name application.rhtml or application.rxml) comment(# and this will be set as the default controller if there is no layout with the same name as the current controller and there is ) comment(# no layout explicitly assigned with the +layout+ method. Nested controllers use the same folder structure for automatic layout.) comment(# assignment. So an Admin::WeblogController will look for a template named app/views/layouts/admin/weblog.rhtml.) comment(# Setting a layout explicitly will always override the automatic behaviour for the controller where the layout is set.) comment(# Explicitly setting the layout in a parent class, though, will not override the child class's layout assignement if the child) comment(# class has a layout with the same name. ) comment(#) comment(# == Inheritance for layouts) comment(#) comment(# Layouts are shared downwards in the inheritance hierarchy, but not upwards. Examples:) comment(#) comment(# class BankController < ActionController::Base) comment(# layout "bank_standard") comment(#) comment(# class InformationController < BankController) comment(#) comment(# class VaultController < BankController) comment(# layout :access_level_layout) comment(#) comment(# class EmployeeController < BankController) comment(# layout nil) comment(#) comment(# The InformationController uses "bank_standard" inherited from the BankController, the VaultController overwrites) comment(# and picks the layout dynamically, and the EmployeeController doesn't want to use a layout at all.) comment(#) comment(# == Types of layouts) comment(#) comment(# Layouts are basically just regular templates, but the name of this template needs not be specified statically. Sometimes) comment(# you want to alternate layouts depending on runtime information, such as whether someone is logged in or not. This can) comment(# be done either by specifying a method reference as a symbol or using an inline method (as a proc\).) comment(#) comment(# The method reference is the preferred approach to variable layouts and is used like this:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# layout :writers_and_readers) comment(#) comment(# def index) comment(# # fetching posts) comment(# end) comment(#) comment(# private) comment(# def writers_and_readers) comment(# logged_in? ? "writer_layout" : "reader_layout") comment(# end) comment(#) comment(# Now when a new request for the index action is processed, the layout will vary depending on whether the person accessing ) comment(# is logged in or not.) comment(#) comment(# If you want to use an inline method, such as a proc, do something like this:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# layout proc{ |controller| controller.logged_in? ? "writer_layout" : "reader_layout" }) comment(#) comment(# Of course, the most common way of specifying a layout is still just as a plain template name:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# layout "weblog_standard") comment(#) comment(# If no directory is specified for the template name, the template will by default by looked for in +app/views/layouts/+.) comment(#) comment(# == Conditional layouts) comment(#) comment(# If you have a layout that by default is applied to all the actions of a controller, you still have the option of rendering) comment(# a given action or set of actions without a layout, or restricting a layout to only a single action or a set of actions. The ) comment(# :only and :except options can be passed to the layout call. For example:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# layout "weblog_standard", :except => :rss) comment(# ) comment(# # ...) comment(#) comment(# end) comment(#) comment(# This will assign "weblog_standard" as the WeblogController's layout except for the +rss+ action, which will not wrap a layout ) comment(# around the rendered view.) comment(#) comment(# Both the :only and :except condition can accept an arbitrary number of method references, so ) comment(# #:except => [ :rss, :text_only ] is valid, as is :except => :rss.) comment(#) comment(# == Using a different layout in the action render call) comment(# ) comment(# If most of your actions use the same layout, it makes perfect sense to define a controller-wide layout as described above.) comment(# Some times you'll have exceptions, though, where one action wants to use a different layout than the rest of the controller.) comment(# This is possible using the render method. It's just a bit more manual work as you'll have to supply fully) comment(# qualified template and layout names as this example shows:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# def help) comment(# render :action => "help/index", :layout => "help") comment(# end) comment(# end) comment(#) comment(# As you can see, you pass the template as the first parameter, the status code as the second ("200" is OK\), and the layout) comment(# as the third.) comment(#) comment(# NOTE: The old notation for rendering the view from a layout was to expose the magic @content_for_layout instance ) comment(# variable. The preferred notation now is to use yield, as documented above.) reserved(module) class(ClassMethods) comment(# If a layout is specified, all rendered actions will have their result rendered ) comment(# when the layoutyield's. This layout can itself depend on instance variables assigned during action) comment(# performance and have access to them as any normal template would.) reserved(def) method(layout)operator(()ident(template_name)operator(,) ident(conditions) operator(=) operator({)operator(})operator(\)) ident(add_layout_conditions)operator(()ident(conditions)operator(\)) ident(write_inheritable_attribute) stringoperator(,) ident(template_name) reserved(end) reserved(def) method(layout_conditions) comment(#:nodoc:) instance_variable(@layout_conditions) operator(||=) ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(end) reserved(def) method(default_layout) comment(#:nodoc:) instance_variable(@default_layout) operator(||=) ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(end) ident(private) reserved(def) method(inherited_with_layout)operator(()ident(child)operator(\)) ident(inherited_without_layout)operator(()ident(child)operator(\)) ident(child)operator(.)ident(send) symbol(:include)operator(,) constant(Reloadable) ident(layout_match) operator(=) ident(child)operator(.)ident(name)operator(.)ident(underscore)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) ident(child)operator(.)ident(layout)operator(()ident(layout_match)operator(\)) reserved(unless) ident(layout_list)operator(.)ident(grep)operator(()regexpchar(\\.)content([a-z][0-9a-z]*$)delimiter(})>operator(\))operator(.)ident(empty?) reserved(end) reserved(def) method(layout_list) constant(Dir)operator(.)ident(glob)operator(()stringcontent(/layouts/**/*)delimiter(")>operator(\)) reserved(end) reserved(def) method(add_layout_conditions)operator(()ident(conditions)operator(\)) ident(write_inheritable_hash) stringoperator(,) ident(normalize_conditions)operator(()ident(conditions)operator(\)) reserved(end) reserved(def) method(normalize_conditions)operator(()ident(conditions)operator(\)) ident(conditions)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({)operator(|)ident(hash)operator(,) operator(()ident(key)operator(,) ident(value)operator(\))operator(|) ident(hash)operator(.)ident(merge)operator(()ident(key) operator(=)operator(>) operator([)ident(value)operator(])operator(.)ident(flatten)operator(.)ident(map) operator({)operator(|)ident(action)operator(|) ident(action)operator(.)ident(to_s)operator(})operator(\))operator(}) reserved(end) reserved(def) method(layout_directory_exists_cache) class_variable(@@layout_directory_exists_cache) operator(||=) constant(Hash)operator(.)ident(new) reserved(do) operator(|)ident(h)operator(,) ident(dirname)operator(|) ident(h)operator([)ident(dirname)operator(]) operator(=) constant(File)operator(.)ident(directory?) ident(dirname) reserved(end) reserved(end) reserved(end) comment(# Returns the name of the active layout. If the layout was specified as a method reference (through a symbol\), this method) comment(# is called and the return value is used. Likewise if the layout was specified as an inline method (through a proc or method) comment(# object\). If the layout was defined without a directory, layouts is assumed. So layout "weblog/standard" will return) comment(# weblog/standard, but layout "standard" will return layouts/standard.) reserved(def) method(active_layout)operator(()ident(passed_layout) operator(=) pre_constant(nil)operator(\)) ident(layout) operator(=) ident(passed_layout) operator(||) pre_constant(self)operator(.)ident(class)operator(.)ident(default_layout) ident(active_layout) operator(=) reserved(case) ident(layout) reserved(when) constant(String) reserved(then) ident(layout) reserved(when) constant(Symbol) reserved(then) ident(send)operator(()ident(layout)operator(\)) reserved(when) constant(Proc) reserved(then) ident(layout)operator(.)ident(call)operator(()pre_constant(self)operator(\)) reserved(end) comment(# Explicitly passed layout names with slashes are looked up relative to the template root,) comment(# but auto-discovered layouts derived from a nested controller will contain a slash, though be relative) comment(# to the 'layouts' directory so we have to check the file system to infer which case the layout name came from.) reserved(if) ident(active_layout) reserved(if) ident(active_layout)operator(.)ident(include?)operator(()stringoperator(\)) operator(&&) operator(!) ident(layout_directory?)operator(()ident(active_layout)operator(\)) ident(active_layout) reserved(else) stringdelimiter(")> reserved(end) reserved(end) reserved(end) reserved(def) method(render_with_a_layout)operator(()ident(options) operator(=) pre_constant(nil)operator(,) ident(deprecated_status) operator(=) pre_constant(nil)operator(,) ident(deprecated_layout) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) comment(#:nodoc:) ident(template_with_options) operator(=) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) reserved(if) ident(apply_layout?)operator(()ident(template_with_options)operator(,) ident(options)operator(\)) operator(&&) operator(()ident(layout) operator(=) ident(pick_layout)operator(()ident(template_with_options)operator(,) ident(options)operator(,) ident(deprecated_layout)operator(\))operator(\)) ident(options) operator(=) ident(options)operator(.)ident(merge) symbol(:layout) operator(=)operator(>) pre_constant(false) reserved(if) ident(template_with_options) ident(logger)operator(.)ident(info)operator(()stringcontent( within )inlinedelimiter(")>operator(\)) reserved(if) ident(logger) reserved(if) ident(template_with_options) ident(content_for_layout) operator(=) ident(render_with_no_layout)operator(()ident(options)operator(,) operator(&)ident(block)operator(\)) ident(deprecated_status) operator(=) ident(options)operator([)symbol(:status)operator(]) operator(||) ident(deprecated_status) reserved(else) ident(content_for_layout) operator(=) ident(render_with_no_layout)operator(()ident(options)operator(,) ident(deprecated_status)operator(,) operator(&)ident(block)operator(\)) reserved(end) ident(erase_render_results) ident(add_variables_to_assigns) instance_variable(@template)operator(.)ident(instance_variable_set)operator(()stringoperator(,) ident(content_for_layout)operator(\)) ident(render_text)operator(()instance_variable(@template)operator(.)ident(render_file)operator(()ident(layout)operator(,) pre_constant(true)operator(\))operator(,) ident(deprecated_status)operator(\)) reserved(else) ident(render_with_no_layout)operator(()ident(options)operator(,) ident(deprecated_status)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(apply_layout?)operator(()ident(template_with_options)operator(,) ident(options)operator(\)) reserved(return) pre_constant(false) reserved(if) ident(options) operator(==) symbol(:update) ident(template_with_options) operator(?) ident(candidate_for_layout?)operator(()ident(options)operator(\)) operator(:) operator(!)ident(template_exempt_from_layout?) reserved(end) reserved(def) method(candidate_for_layout?)operator(()ident(options)operator(\)) operator(()ident(options)operator(.)ident(has_key?)operator(()symbol(:layout)operator(\)) operator(&&) ident(options)operator([)symbol(:layout)operator(]) operator(!=) pre_constant(false)operator(\)) operator(||) ident(options)operator(.)ident(values_at)operator(()symbol(:text)operator(,) symbol(:xml)operator(,) symbol(:file)operator(,) symbol(:inline)operator(,) symbol(:partial)operator(,) symbol(:nothing)operator(\))operator(.)ident(compact)operator(.)ident(empty?) operator(&&) operator(!)ident(template_exempt_from_layout?)operator(()ident(default_template_name)operator(()ident(options)operator([)symbol(:action)operator(]) operator(||) ident(options)operator([)symbol(:template)operator(])operator(\))operator(\)) reserved(end) reserved(def) method(pick_layout)operator(()ident(template_with_options)operator(,) ident(options)operator(,) ident(deprecated_layout)operator(\)) reserved(if) ident(deprecated_layout) ident(deprecated_layout) reserved(elsif) ident(template_with_options) reserved(case) ident(layout) operator(=) ident(options)operator([)symbol(:layout)operator(]) reserved(when) constant(FalseClass) pre_constant(nil) reserved(when) constant(NilClass)operator(,) constant(TrueClass) ident(active_layout) reserved(if) ident(action_has_layout?) reserved(else) ident(active_layout)operator(()ident(layout)operator(\)) reserved(end) reserved(else) ident(active_layout) reserved(if) ident(action_has_layout?) reserved(end) reserved(end) reserved(def) method(action_has_layout?) reserved(if) ident(conditions) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(layout_conditions) reserved(case) reserved(when) ident(only) operator(=) ident(conditions)operator([)symbol(:only)operator(]) ident(only)operator(.)ident(include?)operator(()ident(action_name)operator(\)) reserved(when) ident(except) operator(=) ident(conditions)operator([)symbol(:except)operator(]) operator(!)ident(except)operator(.)ident(include?)operator(()ident(action_name)operator(\)) reserved(else) pre_constant(true) reserved(end) reserved(else) pre_constant(true) reserved(end) reserved(end) comment(# Does a layout directory for this class exist?) comment(# we cache this info in a class level hash) reserved(def) method(layout_directory?)operator(()ident(layout_name)operator(\)) ident(template_path) operator(=) constant(File)operator(.)ident(join)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(view_root)operator(,) stringoperator(,) ident(layout_name)operator(\)) ident(dirname) operator(=) constant(File)operator(.)ident(dirname)operator(()ident(template_path)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(send)operator(()symbol(:layout_directory_exists_cache)operator(\))operator([)ident(dirname)operator(]) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(# Macros are class-level calls that add pre-defined actions to the controller based on the parameters passed in.) comment(# Currently, they're used to bridge the JavaScript macros, like autocompletion and in-place editing, with the controller) comment(# backing.) reserved(module) class(Macros) reserved(module) class(AutoComplete) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# Example:) comment(#) comment(# # Controller) comment(# class BlogController < ApplicationController) comment(# auto_complete_for :post, :title) comment(# end) comment(#) comment(# # View) comment(# <%= text_field_with_auto_complete :post, title %>) comment(#) comment(# By default, auto_complete_for limits the results to 10 entries,) comment(# and sorts by the given field.) comment(# ) comment(# auto_complete_for takes a third parameter, an options hash to) comment(# the find method used to search for the records:) comment(#) comment(# auto_complete_for :post, :title, :limit => 15, :order => 'created_at DESC') comment(#) comment(# For help on defining text input fields with autocompletion, ) comment(# see ActionView::Helpers::JavaScriptHelper.) comment(#) comment(# For more examples, see script.aculo.us:) comment(# * http://script.aculo.us/demos/ajax/autocompleter) comment(# * http://script.aculo.us/demos/ajax/autocompleter_customized) reserved(module) class(ClassMethods) reserved(def) method(auto_complete_for)operator(()ident(object)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(define_method)operator(()stringcontent(_)inlinedelimiter(")>operator(\)) reserved(do) ident(find_options) operator(=) operator({) symbol(:conditions) operator(=)operator(>) operator([) stringcontent(\) LIKE ?)delimiter(")>operator(,) string operator(+) ident(params)operator([)ident(object)operator(])operator([)ident(method)operator(])operator(.)ident(downcase) operator(+) string operator(])operator(,) symbol(:order) operator(=)operator(>) stringcontent( ASC)delimiter(")>operator(,) symbol(:limit) operator(=)operator(>) integer(10) operator(})operator(.)ident(merge!)operator(()ident(options)operator(\)) instance_variable(@items) operator(=) ident(object)operator(.)ident(to_s)operator(.)ident(camelize)operator(.)ident(constantize)operator(.)ident(find)operator(()symbol(:all)operator(,) ident(find_options)operator(\)) ident(render) symbol(:inline) operator(=)operator(>) stringcontent(' %>)delimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(endmodule) constant(ActionController) reserved(module) class(Macros) reserved(module) class(InPlaceEditing) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# Example:) comment(#) comment(# # Controller) comment(# class BlogController < ApplicationController) comment(# in_place_edit_for :post, :title) comment(# end) comment(#) comment(# # View) comment(# <%= in_place_editor_field :post, 'title' %>) comment(#) comment(# For help on defining an in place editor in the browser,) comment(# see ActionView::Helpers::JavaScriptHelper.) reserved(module) class(ClassMethods) reserved(def) method(in_place_edit_for)operator(()ident(object)operator(,) ident(attribute)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(define_method)operator(()stringcontent(_)inlinedelimiter(")>operator(\)) reserved(do) instance_variable(@item) operator(=) ident(object)operator(.)ident(to_s)operator(.)ident(camelize)operator(.)ident(constantize)operator(.)ident(find)operator(()ident(params)operator([)symbol(:id)operator(])operator(\)) instance_variable(@item)operator(.)ident(update_attribute)operator(()ident(attribute)operator(,) ident(params)operator([)symbol(:value)operator(])operator(\)) ident(render) symbol(:text) operator(=)operator(>) instance_variable(@item)operator(.)ident(send)operator(()ident(attribute)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) reserved(module) class(MimeResponds) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ActionController)operator(::)constant(MimeResponds)operator(::)constant(InstanceMethods)operator(\)) reserved(end) reserved(module) class(InstanceMethods) comment(# Without web-service support, an action which collects the data for displaying a list of people) comment(# might look something like this:) comment(#) comment(# def list) comment(# @people = Person.find(:all\)) comment(# end) comment(# ) comment(# Here's the same action, with web-service support baked in:) comment(# ) comment(# def list) comment(# @people = Person.find(:all\)) comment(# ) comment(# respond_to do |wants|) comment(# wants.html) comment(# wants.xml { render :xml => @people.to_xml }) comment(# end) comment(# end) comment(# ) comment(# What that says is, "if the client wants HTML in response to this action, just respond as we ) comment(# would have before, but if the client wants XML, return them the list of people in XML format." ) comment(# (Rails determines the desired response format from the HTTP Accept header submitted by the client.\)) comment(# ) comment(# Supposing you have an action that adds a new person, optionally creating their company ) comment(# (by name\) if it does not already exist, without web-services, it might look like this:) comment(# ) comment(# def add) comment(# @company = Company.find_or_create_by_name(params[:company][:name]\)) comment(# @person = @company.people.create(params[:person]\)) comment(# ) comment(# redirect_to(person_list_url\)) comment(# end) comment(# ) comment(# Here's the same action, with web-service support baked in:) comment(# ) comment(# def add) comment(# company = params[:person].delete(:company\)) comment(# @company = Company.find_or_create_by_name(company[:name]\)) comment(# @person = @company.people.create(params[:person]\)) comment(# ) comment(# respond_to do |wants|) comment(# wants.html { redirect_to(person_list_url\) }) comment(# wants.js) comment(# wants.xml { render :xml => @person.to_xml(:include => @company\) }) comment(# end) comment(# end) comment(# ) comment(# If the client wants HTML, we just redirect them back to the person list. If they want Javascript ) comment(# (wants.js\), then it is an RJS request and we render the RJS template associated with this action. ) comment(# Lastly, if the client wants XML, we render the created person as XML, but with a twist: we also ) comment(# include the person’s company in the rendered XML, so you get something like this:) comment(# ) comment(# ) comment(# ...) comment(# ...) comment(# ) comment(# ...) comment(# ...) comment(# ...) comment(# ) comment(# ) comment(# ) comment(# Note, however, the extra bit at the top of that action:) comment(# ) comment(# company = params[:person].delete(:company\)) comment(# @company = Company.find_or_create_by_name(company[:name]\)) comment(# ) comment(# This is because the incoming XML document (if a web-service request is in process\) can only contain a ) comment(# single root-node. So, we have to rearrange things so that the request looks like this (url-encoded\):) comment(# ) comment(# person[name]=...&person[company][name]=...&...) comment(# ) comment(# And, like this (xml-encoded\):) comment(# ) comment(# ) comment(# ...) comment(# ) comment(# ...) comment(# ) comment(# ) comment(# ) comment(# In other words, we make the request so that it operates on a single entity—a person. Then, in the action, ) comment(# we extract the company data from the request, find or create the company, and then create the new person ) comment(# with the remaining data.) comment(# ) comment(# Note that you can define your own XML parameter parser which would allow you to describe multiple entities ) comment(# in a single request (i.e., by wrapping them all in a single root note\), but if you just go with the flow ) comment(# and accept Rails' defaults, life will be much easier.) comment(# ) comment(# If you need to use a MIME type which isn't supported by default, you can register your own handlers in) comment(# environment.rb as follows.) comment(# ) comment(# Mime::Type.register "image/jpg", :jpg) comment(# ) reserved(def) method(respond_to)operator(()operator(*)ident(types)operator(,) operator(&)ident(block)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(unless) ident(types)operator(.)ident(any?) operator(^) ident(block) ident(block) operator(||=) ident(lambda) operator({) operator(|)ident(responder)operator(|) ident(types)operator(.)ident(each) operator({) operator(|)ident(type)operator(|) ident(responder)operator(.)ident(send)operator(()ident(type)operator(\)) operator(}) operator(}) ident(responder) operator(=) constant(Responder)operator(.)ident(new)operator(()ident(block)operator(.)ident(binding)operator(\)) ident(block)operator(.)ident(call)operator(()ident(responder)operator(\)) ident(responder)operator(.)ident(respond) reserved(end) reserved(end) reserved(class) class(Responder) comment(#:nodoc:) constant(DEFAULT_BLOCKS) operator(=) operator({) symbol(:html) operator(=)operator(>) stringoperator(,) symbol(:js) operator(=)operator(>) string "#{action_name}.rjs" })delimiter(')>operator(,) symbol(:xml) operator(=)operator(>) string "#{action_name}.rxml" })delimiter(')> operator(}) reserved(def) method(initialize)operator(()ident(block_binding)operator(\)) instance_variable(@block_binding) operator(=) ident(block_binding) instance_variable(@mime_type_priority) operator(=) ident(eval)operator(()stringoperator(,) ident(block_binding)operator(\)) instance_variable(@order) operator(=) operator([)operator(]) instance_variable(@responses) operator(=) operator({)operator(}) reserved(end) reserved(def) method(custom)operator(()ident(mime_type)operator(,) operator(&)ident(block)operator(\)) ident(mime_type) operator(=) ident(mime_type)operator(.)ident(is_a?)operator(()constant(Mime)operator(::)constant(Type)operator(\)) operator(?) ident(mime_type) operator(:) constant(Mime)operator(::)constant(Type)operator(.)ident(lookup)operator(()ident(mime_type)operator(.)ident(to_s)operator(\)) instance_variable(@order) operator(<<) ident(mime_type) reserved(if) ident(block_given?) instance_variable(@responses)operator([)ident(mime_type)operator(]) operator(=) ident(block) reserved(else) instance_variable(@responses)operator([)ident(mime_type)operator(]) operator(=) ident(eval)operator(()constant(DEFAULT_BLOCKS)operator([)ident(mime_type)operator(.)ident(to_sym)operator(])operator(,) instance_variable(@block_binding)operator(\)) reserved(end) reserved(end) reserved(for) ident(mime_type) reserved(in) string ident(eval) stringstringcontent((&block\) custom(Mime::)inlinecontent(, &block\) end)delimiter( EOT)> reserved(end) reserved(def) method(any)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(args)operator(.)ident(each) operator({) operator(|)ident(type)operator(|) ident(send)operator(()ident(type)operator(,) operator(&)ident(block)operator(\)) operator(}) reserved(end) reserved(def) method(respond) reserved(for) ident(priority) reserved(in) instance_variable(@mime_type_priority) reserved(if) ident(priority) operator(==) constant(Mime)operator(::)constant(ALL) instance_variable(@responses)operator([)instance_variable(@order)operator(.)ident(first)operator(])operator(.)ident(call) reserved(return) reserved(else) reserved(if) ident(priority) operator(===) instance_variable(@order) instance_variable(@responses)operator([)ident(priority)operator(])operator(.)ident(call) reserved(return) comment(# mime type match found, be happy and return) reserved(end) reserved(end) reserved(end) reserved(if) instance_variable(@order)operator(.)ident(include?)operator(()constant(Mime)operator(::)constant(ALL)operator(\)) instance_variable(@responses)operator([)constant(Mime)operator(::)constant(ALL)operator(])operator(.)ident(call) reserved(else) ident(eval) string true, :status => "406 Not Acceptable"\))delimiter(')>operator(,) instance_variable(@block_binding) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(Mime) reserved(class) class(Type) comment(#:nodoc:) comment(# A simple helper class used in parsing the accept header) reserved(class) class(AcceptItem) comment(#:nodoc:) ident(attr_accessor) symbol(:order)operator(,) symbol(:name)operator(,) symbol(:q) reserved(def) method(initialize)operator(()ident(order)operator(,) ident(name)operator(,) ident(q)operator(=)pre_constant(nil)operator(\)) instance_variable(@order) operator(=) ident(order) instance_variable(@name) operator(=) ident(name)operator(.)ident(strip) ident(q) operator(||=) float(0.0) reserved(if) instance_variable(@name) operator(==) string comment(# default "*/*" to end of list) instance_variable(@q) operator(=) operator(()operator(()ident(q) operator(||) float(1.0)operator(\))operator(.)ident(to_f) operator(*) integer(100)operator(\))operator(.)ident(to_i) reserved(end) reserved(def) method(to_s) instance_variable(@name) reserved(end) reserved(def) method(<=>)operator(()ident(item)operator(\)) ident(result) operator(=) ident(item)operator(.)ident(q) operator(<=>) ident(q) ident(result) operator(=) ident(order) operator(<=>) ident(item)operator(.)ident(order) reserved(if) ident(result) operator(==) integer(0) ident(result) reserved(end) reserved(def) method(==)operator(()ident(item)operator(\)) ident(name) operator(==) operator(()ident(item)operator(.)ident(respond_to?)operator(()symbol(:name)operator(\)) operator(?) ident(item)operator(.)ident(name) operator(:) ident(item)operator(\)) reserved(end) reserved(end) reserved(class) operator(<<) class(self) reserved(def) method(lookup)operator(()ident(string)operator(\)) constant(LOOKUP)operator([)ident(string)operator(]) reserved(end) reserved(def) method(parse)operator(()ident(accept_header)operator(\)) comment(# keep track of creation order to keep the subsequent sort stable) ident(index) operator(=) integer(0) ident(list) operator(=) ident(accept_header)operator(.)ident(split)operator(()regexpoperator(\))operator(.) ident(map!) operator({) operator(|)ident(i)operator(|) constant(AcceptItem)operator(.)ident(new)operator(()ident(index) operator(+=) integer(1)operator(,) operator(*)ident(i)operator(.)ident(split)operator(()regexpoperator(\))operator(\)) operator(})operator(.)ident(sort!) comment(# Take care of the broken text/xml entry by renaming or deleting it) ident(text_xml) operator(=) ident(list)operator(.)ident(index)operator(()stringoperator(\)) ident(app_xml) operator(=) ident(list)operator(.)ident(index)operator(()stringoperator(\)) reserved(if) ident(text_xml) operator(&&) ident(app_xml) comment(# set the q value to the max of the two) ident(list)operator([)ident(app_xml)operator(])operator(.)ident(q) operator(=) operator([)ident(list)operator([)ident(text_xml)operator(])operator(.)ident(q)operator(,) ident(list)operator([)ident(app_xml)operator(])operator(.)ident(q)operator(])operator(.)ident(max) comment(# make sure app_xml is ahead of text_xml in the list) reserved(if) ident(app_xml) operator(>) ident(text_xml) ident(list)operator([)ident(app_xml)operator(])operator(,) ident(list)operator([)ident(text_xml)operator(]) operator(=) ident(list)operator([)ident(text_xml)operator(])operator(,) ident(list)operator([)ident(app_xml)operator(]) ident(app_xml)operator(,) ident(text_xml) operator(=) ident(text_xml)operator(,) ident(app_xml) reserved(end) comment(# delete text_xml from the list) ident(list)operator(.)ident(delete_at)operator(()ident(text_xml)operator(\)) reserved(elsif) ident(text_xml) ident(list)operator([)ident(text_xml)operator(])operator(.)ident(name) operator(=) string reserved(end) comment(# Look for more specific xml-based types and sort them ahead of app/xml) reserved(if) ident(app_xml) ident(idx) operator(=) ident(app_xml) ident(app_xml_type) operator(=) ident(list)operator([)ident(app_xml)operator(]) reserved(while)operator(()ident(idx) operator(<) ident(list)operator(.)ident(length)operator(\)) ident(type) operator(=) ident(list)operator([)ident(idx)operator(]) reserved(break) reserved(if) ident(type)operator(.)ident(q) operator(<) ident(app_xml_type)operator(.)ident(q) reserved(if) ident(type)operator(.)ident(name) operator(=)operator(~) regexp ident(list)operator([)ident(app_xml)operator(])operator(,) ident(list)operator([)ident(idx)operator(]) operator(=) ident(list)operator([)ident(idx)operator(])operator(,) ident(list)operator([)ident(app_xml)operator(]) ident(app_xml) operator(=) ident(idx) reserved(end) ident(idx) operator(+=) integer(1) reserved(end) reserved(end) ident(list)operator(.)ident(map!) operator({) operator(|)ident(i)operator(|) constant(Mime)operator(::)constant(Type)operator(.)ident(lookup)operator(()ident(i)operator(.)ident(name)operator(\)) operator(})operator(.)ident(uniq!) ident(list) reserved(end) reserved(end) reserved(def) method(initialize)operator(()ident(string)operator(,) ident(symbol) operator(=) pre_constant(nil)operator(,) ident(synonyms) operator(=) operator([)operator(])operator(\)) instance_variable(@symbol)operator(,) instance_variable(@synonyms) operator(=) ident(symbol)operator(,) ident(synonyms) instance_variable(@string) operator(=) ident(string) reserved(end) reserved(def) method(to_s) instance_variable(@string) reserved(end) reserved(def) method(to_str) ident(to_s) reserved(end) reserved(def) method(to_sym) instance_variable(@symbol) operator(||) instance_variable(@string)operator(.)ident(to_sym) reserved(end) reserved(def) method(===)operator(()ident(list)operator(\)) reserved(if) ident(list)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) operator(()instance_variable(@synonyms) operator(+) operator([) pre_constant(self) operator(])operator(\))operator(.)ident(any?) operator({) operator(|)ident(synonym)operator(|) ident(list)operator(.)ident(include?)operator(()ident(synonym)operator(\)) operator(}) reserved(else) reserved(super) reserved(end) reserved(end) reserved(def) method(==)operator(()ident(mime_type)operator(\)) operator(()instance_variable(@synonyms) operator(+) operator([) pre_constant(self) operator(])operator(\))operator(.)ident(any?) operator({) operator(|)ident(synonym)operator(|) ident(synonym)operator(.)ident(to_s) operator(==) ident(mime_type)operator(.)ident(to_s) operator(}) reserved(if) ident(mime_type) reserved(end) reserved(end) constant(ALL) operator(=) constant(Type)operator(.)ident(new) stringoperator(,) symbol(:all) constant(HTML) operator(=) constant(Type)operator(.)ident(new) stringoperator(,) symbol(:html)operator(,) string constant(JS) operator(=) constant(Type)operator(.)ident(new) stringoperator(,) symbol(:js)operator(,) string constant(XML) operator(=) constant(Type)operator(.)ident(new) stringoperator(,) symbol(:xml)operator(,) string constant(RSS) operator(=) constant(Type)operator(.)ident(new) stringoperator(,) symbol(:rss) constant(ATOM) operator(=) constant(Type)operator(.)ident(new) stringoperator(,) symbol(:atom) constant(YAML) operator(=) constant(Type)operator(.)ident(new) stringoperator(,) symbol(:yaml)operator(,) string constant(LOOKUP) operator(=) constant(Hash)operator(.)ident(new) operator({) operator(|)ident(h)operator(,) ident(k)operator(|) ident(h)operator([)ident(k)operator(]) operator(=) constant(Type)operator(.)ident(new)operator(()ident(k)operator(\)) operator(}) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(ALL) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(HTML) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(HTML) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(XML) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(XML) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(XML) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(JS) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(JS) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(JS) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(YAML) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(YAML) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(RSS) constant(LOOKUP)operator([)stringoperator(]) operator(=) constant(ATOM) ident(endmodule) constant(ActionController) comment(# === Action Pack pagination for Active Record collections) comment(#) comment(# The Pagination module aids in the process of paging large collections of) comment(# Active Record objects. It offers macro-style automatic fetching of your) comment(# model for multiple views, or explicit fetching for single actions. And if) comment(# the magic isn't flexible enough for your needs, you can create your own) comment(# paginators with a minimal amount of code.) comment(#) comment(# The Pagination module can handle as much or as little as you wish. In the) comment(# controller, have it automatically query your model for pagination; or,) comment(# if you prefer, create Paginator objects yourself.) comment(#) comment(# Pagination is included automatically for all controllers.) comment(#) comment(# For help rendering pagination links, see ) comment(# ActionView::Helpers::PaginationHelper.) comment(#) comment(# ==== Automatic pagination for every action in a controller) comment(#) comment(# class PersonController < ApplicationController ) comment(# model :person) comment(#) comment(# paginate :people, :order => 'last_name, first_name',) comment(# :per_page => 20) comment(# ) comment(# # ...) comment(# end) comment(#) comment(# Each action in this controller now has access to a @people) comment(# instance variable, which is an ordered collection of model objects for the) comment(# current page (at most 20, sorted by last name and first name\), and a ) comment(# @person_pages Paginator instance. The current page is determined) comment(# by the params[:page] variable.) comment(#) comment(# ==== Pagination for a single action) comment(#) comment(# def list) comment(# @person_pages, @people =) comment(# paginate :people, :order => 'last_name, first_name') comment(# end) comment(#) comment(# Like the previous example, but explicitly creates @person_pages) comment(# and @people for a single action, and uses the default of 10 items) comment(# per page.) comment(#) comment(# ==== Custom/"classic" pagination ) comment(#) comment(# def list) comment(# @person_pages = Paginator.new self, Person.count, 10, params[:page]) comment(# @people = Person.find :all, :order => 'last_name, first_name', ) comment(# :limit => @person_pages.items_per_page,) comment(# :offset => @person_pages.current.offset) comment(# end) comment(# ) comment(# Explicitly creates the paginator from the previous example and uses ) comment(# Paginator#to_sql to retrieve @people from the model.) comment(#) reserved(module) class(Pagination) reserved(unless) ident(const_defined?)operator(()symbol(:OPTIONS)operator(\)) comment(# A hash holding options for controllers using macro-style pagination) constant(OPTIONS) operator(=) constant(Hash)operator(.)ident(new) comment(# The default options for pagination) constant(DEFAULT_OPTIONS) operator(=) operator({) symbol(:class_name) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:singular_name) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:per_page) operator(=)operator(>) integer(10)operator(,) symbol(:conditions) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:order_by) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:order) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:join) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:joins) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:count) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:include) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:select) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:parameter) operator(=)operator(>) string operator(}) reserved(end) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) reserved(def) pre_constant(self)operator(.)method(validate_options!)operator(()ident(collection_id)operator(,) ident(options)operator(,) ident(in_action)operator(\)) comment(#:nodoc:) ident(options)operator(.)ident(merge!)operator(()constant(DEFAULT_OPTIONS)operator(\)) operator({)operator(|)ident(key)operator(,) ident(old)operator(,) ident(new)operator(|) ident(old)operator(}) ident(valid_options) operator(=) constant(DEFAULT_OPTIONS)operator(.)ident(keys) ident(valid_options) operator(<<) symbol(:actions) reserved(unless) ident(in_action) ident(unknown_option_keys) operator(=) ident(options)operator(.)ident(keys) operator(-) ident(valid_options) ident(raise) constant(ActionController)operator(::)constant(ActionControllerError)operator(,) stringoperator(\))inline_delimiter(})>delimiter(")> reserved(unless) ident(unknown_option_keys)operator(.)ident(empty?) ident(options)operator([)symbol(:singular_name)operator(]) operator(||=) constant(Inflector)operator(.)ident(singularize)operator(()ident(collection_id)operator(.)ident(to_s)operator(\)) ident(options)operator([)symbol(:class_name)operator(]) operator(||=) constant(Inflector)operator(.)ident(camelize)operator(()ident(options)operator([)symbol(:singular_name)operator(])operator(\)) reserved(end) comment(# Returns a paginator and a collection of Active Record model instances) comment(# for the paginator's current page. This is designed to be used in a) comment(# single action; to automatically paginate multiple actions, consider) comment(# ClassMethods#paginate.) comment(#) comment(# +options+ are:) comment(# :singular_name:: the singular name to use, if it can't be inferred by) comment(# singularizing the collection name) comment(# :class_name:: the class name to use, if it can't be inferred by) comment(# camelizing the singular name) comment(# :per_page:: the maximum number of items to include in a ) comment(# single page. Defaults to 10) comment(# :conditions:: optional conditions passed to Model.find(:all, *params\) and) comment(# Model.count) comment(# :order:: optional order parameter passed to Model.find(:all, *params\)) comment(# :order_by:: (deprecated, used :order\) optional order parameter passed to Model.find(:all, *params\)) comment(# :joins:: optional joins parameter passed to Model.find(:all, *params\)) comment(# and Model.count) comment(# :join:: (deprecated, used :joins or :include\) optional join parameter passed to Model.find(:all, *params\)) comment(# and Model.count) comment(# :include:: optional eager loading parameter passed to Model.find(:all, *params\)) comment(# and Model.count) comment(# :select:: :select parameter passed to Model.find(:all, *params\)) comment(#) comment(# :count:: parameter passed as :select option to Model.count(*params\)) comment(#) reserved(def) method(paginate)operator(()ident(collection_id)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) constant(Pagination)operator(.)ident(validate_options!)operator(()ident(collection_id)operator(,) ident(options)operator(,) pre_constant(true)operator(\)) ident(paginator_and_collection_for)operator(()ident(collection_id)operator(,) ident(options)operator(\)) reserved(end) comment(# These methods become class methods on any controller ) reserved(module) class(ClassMethods) comment(# Creates a +before_filter+ which automatically paginates an Active) comment(# Record model for all actions in a controller (or certain actions if) comment(# specified with the :actions option\).) comment(#) comment(# +options+ are the same as PaginationHelper#paginate, with the addition ) comment(# of:) comment(# :actions:: an array of actions for which the pagination is) comment(# active. Defaults to +nil+ (i.e., every action\)) reserved(def) method(paginate)operator(()ident(collection_id)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) constant(Pagination)operator(.)ident(validate_options!)operator(()ident(collection_id)operator(,) ident(options)operator(,) pre_constant(false)operator(\)) ident(module_eval) reserved(do) ident(before_filter) symbol(:create_paginators_and_retrieve_collections) constant(OPTIONS)operator([)pre_constant(self)operator(]) operator(||=) constant(Hash)operator(.)ident(new) constant(OPTIONS)operator([)pre_constant(self)operator(])operator([)ident(collection_id)operator(]) operator(=) ident(options) reserved(end) reserved(end) reserved(end) reserved(def) method(create_paginators_and_retrieve_collections) comment(#:nodoc:) constant(Pagination)operator(::)constant(OPTIONS)operator([)pre_constant(self)operator(.)ident(class)operator(])operator(.)ident(each) reserved(do) operator(|)ident(collection_id)operator(,) ident(options)operator(|) reserved(next) reserved(unless) ident(options)operator([)symbol(:actions)operator(])operator(.)ident(include?) ident(action_name) reserved(if) ident(options)operator([)symbol(:actions)operator(]) ident(paginator)operator(,) ident(collection) operator(=) ident(paginator_and_collection_for)operator(()ident(collection_id)operator(,) ident(options)operator(\)) ident(paginator_name) operator(=) stringcontent(_pages)delimiter(")> pre_constant(self)operator(.)ident(instance_variable_set)operator(()ident(paginator_name)operator(,) ident(paginator)operator(\)) ident(collection_name) operator(=) stringdelimiter(")> pre_constant(self)operator(.)ident(instance_variable_set)operator(()ident(collection_name)operator(,) ident(collection)operator(\)) reserved(end) reserved(end) comment(# Returns the total number of items in the collection to be paginated for) comment(# the +model+ and given +conditions+. Override this method to implement a) comment(# custom counter.) reserved(def) method(count_collection_for_pagination)operator(()ident(model)operator(,) ident(options)operator(\)) ident(model)operator(.)ident(count)operator(()symbol(:conditions) operator(=)operator(>) ident(options)operator([)symbol(:conditions)operator(])operator(,) symbol(:joins) operator(=)operator(>) ident(options)operator([)symbol(:join)operator(]) operator(||) ident(options)operator([)symbol(:joins)operator(])operator(,) symbol(:include) operator(=)operator(>) ident(options)operator([)symbol(:include)operator(])operator(,) symbol(:select) operator(=)operator(>) ident(options)operator([)symbol(:count)operator(])operator(\)) reserved(end) comment(# Returns a collection of items for the given +model+ and +options[conditions]+,) comment(# ordered by +options[order]+, for the current page in the given +paginator+.) comment(# Override this method to implement a custom finder.) reserved(def) method(find_collection_for_pagination)operator(()ident(model)operator(,) ident(options)operator(,) ident(paginator)operator(\)) ident(model)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) ident(options)operator([)symbol(:conditions)operator(])operator(,) symbol(:order) operator(=)operator(>) ident(options)operator([)symbol(:order_by)operator(]) operator(||) ident(options)operator([)symbol(:order)operator(])operator(,) symbol(:joins) operator(=)operator(>) ident(options)operator([)symbol(:join)operator(]) operator(||) ident(options)operator([)symbol(:joins)operator(])operator(,) symbol(:include) operator(=)operator(>) ident(options)operator([)symbol(:include)operator(])operator(,) symbol(:select) operator(=)operator(>) ident(options)operator([)symbol(:select)operator(])operator(,) symbol(:limit) operator(=)operator(>) ident(options)operator([)symbol(:per_page)operator(])operator(,) symbol(:offset) operator(=)operator(>) ident(paginator)operator(.)ident(current)operator(.)ident(offset)operator(\)) reserved(end) ident(protected) symbol(:create_paginators_and_retrieve_collections)operator(,) symbol(:count_collection_for_pagination)operator(,) symbol(:find_collection_for_pagination) reserved(def) method(paginator_and_collection_for)operator(()ident(collection_id)operator(,) ident(options)operator(\)) comment(#:nodoc:) ident(klass) operator(=) ident(options)operator([)symbol(:class_name)operator(])operator(.)ident(constantize) ident(page) operator(=) instance_variable(@params)operator([)ident(options)operator([)symbol(:parameter)operator(])operator(]) ident(count) operator(=) ident(count_collection_for_pagination)operator(()ident(klass)operator(,) ident(options)operator(\)) ident(paginator) operator(=) constant(Paginator)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(count)operator(,) ident(options)operator([)symbol(:per_page)operator(])operator(,) ident(page)operator(\)) ident(collection) operator(=) ident(find_collection_for_pagination)operator(()ident(klass)operator(,) ident(options)operator(,) ident(paginator)operator(\)) reserved(return) ident(paginator)operator(,) ident(collection) reserved(end) ident(private) symbol(:paginator_and_collection_for) comment(# A class representing a paginator for an Active Record collection.) reserved(class) class(Paginator) ident(include) constant(Enumerable) comment(# Creates a new Paginator on the given +controller+ for a set of items) comment(# of size +item_count+ and having +items_per_page+ items per page.) comment(# Raises ArgumentError if items_per_page is out of bounds (i.e., less) comment(# than or equal to zero\). The page CGI parameter for links defaults to) comment(# "page" and can be overridden with +page_parameter+.) reserved(def) method(initialize)operator(()ident(controller)operator(,) ident(item_count)operator(,) ident(items_per_page)operator(,) ident(current_page)operator(=)integer(1)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(if) ident(items_per_page) operator(<=) integer(0) instance_variable(@controller) operator(=) ident(controller) instance_variable(@item_count) operator(=) ident(item_count) operator(||) integer(0) instance_variable(@items_per_page) operator(=) ident(items_per_page) instance_variable(@pages) operator(=) operator({)operator(}) pre_constant(self)operator(.)ident(current_page) operator(=) ident(current_page) reserved(end) ident(attr_reader) symbol(:controller)operator(,) symbol(:item_count)operator(,) symbol(:items_per_page) comment(# Sets the current page number of this paginator. If +page+ is a Page) comment(# object, its +number+ attribute is used as the value; if the page does ) comment(# not belong to this Paginator, an ArgumentError is raised.) reserved(def) method(current_page=)operator(()ident(page)operator(\)) reserved(if) ident(page)operator(.)ident(is_a?) constant(Page) ident(raise) constant(ArgumentError)operator(,) string reserved(unless) ident(page)operator(.)ident(paginator) operator(==) pre_constant(self) reserved(end) ident(page) operator(=) ident(page)operator(.)ident(to_i) instance_variable(@current_page_number) operator(=) ident(has_page_number?)operator(()ident(page)operator(\)) operator(?) ident(page) operator(:) integer(1) reserved(end) comment(# Returns a Page object representing this paginator's current page.) reserved(def) method(current_page) instance_variable(@current_page) operator(||=) pre_constant(self)operator([)instance_variable(@current_page_number)operator(]) reserved(end) reserved(alias) method(current) symbol(:current_page) comment(# Returns a new Page representing the first page in this paginator.) reserved(def) method(first_page) instance_variable(@first_page) operator(||=) pre_constant(self)operator([)integer(1)operator(]) reserved(end) reserved(alias) method(first) symbol(:first_page) comment(# Returns a new Page representing the last page in this paginator.) reserved(def) method(last_page) instance_variable(@last_page) operator(||=) pre_constant(self)operator([)ident(page_count)operator(]) reserved(end) reserved(alias) method(last) symbol(:last_page) comment(# Returns the number of pages in this paginator.) reserved(def) method(page_count) instance_variable(@page_count) operator(||=) instance_variable(@item_count)operator(.)ident(zero?) operator(?) integer(1) operator(:) operator(()ident(q)operator(,)ident(r)operator(=)instance_variable(@item_count)operator(.)ident(divmod)operator(()instance_variable(@items_per_page)operator(\))operator(;) ident(r)operator(==)integer(0)operator(?) ident(q) operator(:) ident(q)operator(+)integer(1)operator(\)) reserved(end) reserved(alias) method(length) symbol(:page_count) comment(# Returns true if this paginator contains the page of index +number+.) reserved(def) method(has_page_number?)operator(()ident(number)operator(\)) ident(number) operator(>)operator(=) integer(1) reserved(and) ident(number) operator(<=) ident(page_count) reserved(end) comment(# Returns a new Page representing the page with the given index) comment(# +number+.) reserved(def) method([])operator(()ident(number)operator(\)) instance_variable(@pages)operator([)ident(number)operator(]) operator(||=) constant(Page)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(number)operator(\)) reserved(end) comment(# Successively yields all the paginator's pages to the given block.) reserved(def) method(each)operator(()operator(&)ident(block)operator(\)) ident(page_count)operator(.)ident(times) reserved(do) operator(|)ident(n)operator(|) reserved(yield) pre_constant(self)operator([)ident(n)operator(+)integer(1)operator(]) reserved(end) reserved(end) comment(# A class representing a single page in a paginator.) reserved(class) class(Page) ident(include) constant(Comparable) comment(# Creates a new Page for the given +paginator+ with the index) comment(# +number+. If +number+ is not in the range of valid page numbers or) comment(# is not a number at all, it defaults to 1.) reserved(def) method(initialize)operator(()ident(paginator)operator(,) ident(number)operator(\)) instance_variable(@paginator) operator(=) ident(paginator) instance_variable(@number) operator(=) ident(number)operator(.)ident(to_i) instance_variable(@number) operator(=) integer(1) reserved(unless) instance_variable(@paginator)operator(.)ident(has_page_number?) instance_variable(@number) reserved(end) ident(attr_reader) symbol(:paginator)operator(,) symbol(:number) reserved(alias) method(to_i) symbol(:number) comment(# Compares two Page objects and returns true when they represent the ) comment(# same page (i.e., their paginators are the same and they have the) comment(# same page number\).) reserved(def) method(==)operator(()ident(page)operator(\)) reserved(return) pre_constant(false) reserved(if) ident(page)operator(.)ident(nil?) instance_variable(@paginator) operator(==) ident(page)operator(.)ident(paginator) reserved(and) instance_variable(@number) operator(==) ident(page)operator(.)ident(number) reserved(end) comment(# Compares two Page objects and returns -1 if the left-hand page comes) comment(# before the right-hand page, 0 if the pages are equal, and 1 if the) comment(# left-hand page comes after the right-hand page. Raises ArgumentError) comment(# if the pages do not belong to the same Paginator object.) reserved(def) method(<=>)operator(()ident(page)operator(\)) ident(raise) constant(ArgumentError) reserved(unless) instance_variable(@paginator) operator(==) ident(page)operator(.)ident(paginator) instance_variable(@number) operator(<=>) ident(page)operator(.)ident(number) reserved(end) comment(# Returns the item offset for the first item in this page.) reserved(def) method(offset) instance_variable(@paginator)operator(.)ident(items_per_page) operator(*) operator(()instance_variable(@number) operator(-) integer(1)operator(\)) reserved(end) comment(# Returns the number of the first item displayed.) reserved(def) method(first_item) ident(offset) operator(+) integer(1) reserved(end) comment(# Returns the number of the last item displayed.) reserved(def) method(last_item) operator([)instance_variable(@paginator)operator(.)ident(items_per_page) operator(*) instance_variable(@number)operator(,) instance_variable(@paginator)operator(.)ident(item_count)operator(])operator(.)ident(min) reserved(end) comment(# Returns true if this page is the first page in the paginator.) reserved(def) method(first?) pre_constant(self) operator(==) instance_variable(@paginator)operator(.)ident(first) reserved(end) comment(# Returns true if this page is the last page in the paginator.) reserved(def) method(last?) pre_constant(self) operator(==) instance_variable(@paginator)operator(.)ident(last) reserved(end) comment(# Returns a new Page object representing the page just before this) comment(# page, or nil if this is the first page.) reserved(def) method(previous) reserved(if) ident(first?) reserved(then) pre_constant(nil) reserved(else) instance_variable(@paginator)operator([)instance_variable(@number) operator(-) integer(1)operator(]) reserved(end) reserved(end) comment(# Returns a new Page object representing the page just after this) comment(# page, or nil if this is the last page.) reserved(def) method(next) reserved(if) ident(last?) reserved(then) pre_constant(nil) reserved(else) instance_variable(@paginator)operator([)instance_variable(@number) operator(+) integer(1)operator(]) reserved(end) reserved(end) comment(# Returns a new Window object for this page with the specified ) comment(# +padding+.) reserved(def) method(window)operator(()ident(padding)operator(=)integer(2)operator(\)) constant(Window)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(padding)operator(\)) reserved(end) comment(# Returns the limit/offset array for this page.) reserved(def) method(to_sql) operator([)instance_variable(@paginator)operator(.)ident(items_per_page)operator(,) ident(offset)operator(]) reserved(end) reserved(def) method(to_param) comment(#:nodoc:) instance_variable(@number)operator(.)ident(to_s) reserved(end) reserved(end) comment(# A class for representing ranges around a given page.) reserved(class) class(Window) comment(# Creates a new Window object for the given +page+ with the specified) comment(# +padding+.) reserved(def) method(initialize)operator(()ident(page)operator(,) ident(padding)operator(=)integer(2)operator(\)) instance_variable(@paginator) operator(=) ident(page)operator(.)ident(paginator) instance_variable(@page) operator(=) ident(page) pre_constant(self)operator(.)ident(padding) operator(=) ident(padding) reserved(end) ident(attr_reader) symbol(:paginator)operator(,) symbol(:page) comment(# Sets the window's padding (the number of pages on either side of the) comment(# window page\).) reserved(def) method(padding=)operator(()ident(padding)operator(\)) instance_variable(@padding) operator(=) ident(padding) operator(<) integer(0) operator(?) integer(0) operator(:) ident(padding) comment(# Find the beginning and end pages of the window) instance_variable(@first) operator(=) instance_variable(@paginator)operator(.)ident(has_page_number?)operator(()instance_variable(@page)operator(.)ident(number) operator(-) instance_variable(@padding)operator(\)) operator(?) instance_variable(@paginator)operator([)instance_variable(@page)operator(.)ident(number) operator(-) instance_variable(@padding)operator(]) operator(:) instance_variable(@paginator)operator(.)ident(first) instance_variable(@last) operator(=) instance_variable(@paginator)operator(.)ident(has_page_number?)operator(()instance_variable(@page)operator(.)ident(number) operator(+) instance_variable(@padding)operator(\)) operator(?) instance_variable(@paginator)operator([)instance_variable(@page)operator(.)ident(number) operator(+) instance_variable(@padding)operator(]) operator(:) instance_variable(@paginator)operator(.)ident(last) reserved(end) ident(attr_reader) symbol(:padding)operator(,) symbol(:first)operator(,) symbol(:last) comment(# Returns an array of Page objects in the current window.) reserved(def) method(pages) operator(()instance_variable(@first)operator(.)ident(number)operator(..)instance_variable(@last)operator(.)ident(number)operator(\))operator(.)ident(to_a)operator(.)ident(collect!) operator({)operator(|)ident(n)operator(|) instance_variable(@paginator)operator([)ident(n)operator(])operator(}) reserved(end) reserved(alias) method(to_a) symbol(:pages) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(# Subclassing AbstractRequest makes these methods available to the request objects used in production and testing,) comment(# CgiRequest and TestRequest) reserved(class) class(AbstractRequest) ident(cattr_accessor) symbol(:relative_url_root) comment(# Returns the hash of environment variables for this request,) comment(# such as { 'RAILS_ENV' => 'production' }.) ident(attr_reader) symbol(:env) comment(# Returns both GET and POST parameters in a single hash.) reserved(def) method(parameters) instance_variable(@parameters) operator(||=) ident(request_parameters)operator(.)ident(update)operator(()ident(query_parameters)operator(\))operator(.)ident(update)operator(()ident(path_parameters)operator(\))operator(.)ident(with_indifferent_access) reserved(end) comment(# Returns the HTTP request method as a lowercase symbol (:get, for example\)) reserved(def) method(method) instance_variable(@request_method) operator(||=) instance_variable(@env)operator([)stringoperator(])operator(.)ident(downcase)operator(.)ident(to_sym) reserved(end) comment(# Is this a GET request? Equivalent to request.method == :get) reserved(def) method(get?) ident(method) operator(==) symbol(:get) reserved(end) comment(# Is this a POST request? Equivalent to request.method == :post) reserved(def) method(post?) ident(method) operator(==) symbol(:post) reserved(end) comment(# Is this a PUT request? Equivalent to request.method == :put) reserved(def) method(put?) ident(method) operator(==) symbol(:put) reserved(end) comment(# Is this a DELETE request? Equivalent to request.method == :delete) reserved(def) method(delete?) ident(method) operator(==) symbol(:delete) reserved(end) comment(# Is this a HEAD request? Equivalent to request.method == :head) reserved(def) method(head?) ident(method) operator(==) symbol(:head) reserved(end) comment(# Determine whether the body of a HTTP call is URL-encoded (default\)) comment(# or matches one of the registered param_parsers. ) comment(#) comment(# For backward compatibility, the post format is extracted from the) comment(# X-Post-Data-Format HTTP header if present.) reserved(def) method(content_type) instance_variable(@content_type) operator(||=) reserved(begin) ident(content_type) operator(=) instance_variable(@env)operator([)stringoperator(])operator(.)ident(to_s)operator(.)ident(downcase) reserved(if) ident(x_post_format) operator(=) instance_variable(@env)operator([)stringoperator(]) reserved(case) ident(x_post_format)operator(.)ident(to_s)operator(.)ident(downcase) reserved(when) string ident(content_type) operator(=) string reserved(when) string ident(content_type) operator(=) string reserved(end) reserved(end) constant(Mime)operator(::)constant(Type)operator(.)ident(lookup)operator(()ident(content_type)operator(\)) reserved(end) reserved(end) comment(# Returns the accepted MIME type for the request) reserved(def) method(accepts) instance_variable(@accepts) operator(||=) reserved(if) instance_variable(@env)operator([)stringoperator(])operator(.)ident(to_s)operator(.)ident(strip)operator(.)ident(empty?) operator([) ident(content_type)operator(,) constant(Mime)operator(::)constant(ALL) operator(]) reserved(else) constant(Mime)operator(::)constant(Type)operator(.)ident(parse)operator(()instance_variable(@env)operator([)stringoperator(])operator(\)) reserved(end) reserved(end) comment(# Returns true if the request's "X-Requested-With" header contains) comment(# "XMLHttpRequest". (The Prototype Javascript library sends this header with) comment(# every Ajax request.\)) reserved(def) method(xml_http_request?) reserved(not) regexpoperator(.)ident(match)operator(()instance_variable(@env)operator([)stringoperator(])operator(\))operator(.)ident(nil?) reserved(end) reserved(alias) method(xhr?) symbol(:xml_http_request?) comment(# Determine originating IP address. REMOTE_ADDR is the standard) comment(# but will fail if the user is behind a proxy. HTTP_CLIENT_IP and/or) comment(# HTTP_X_FORWARDED_FOR are set by proxies so check for these before) comment(# falling back to REMOTE_ADDR. HTTP_X_FORWARDED_FOR may be a comma-) comment(# delimited list in the case of multiple chained proxies; the first is) comment(# the originating IP.) reserved(def) method(remote_ip) reserved(return) instance_variable(@env)operator([)stringoperator(]) reserved(if) instance_variable(@env)operator(.)ident(include?) string reserved(if) instance_variable(@env)operator(.)ident(include?) string reserved(then) ident(remote_ips) operator(=) instance_variable(@env)operator([)stringoperator(])operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(reject) reserved(do) operator(|)ident(ip)operator(|) ident(ip) operator(=)operator(~) regexp reserved(end) reserved(return) ident(remote_ips)operator(.)ident(first)operator(.)ident(strip) reserved(unless) ident(remote_ips)operator(.)ident(empty?) reserved(end) instance_variable(@env)operator([)stringoperator(]) reserved(end) comment(# Returns the domain part of a host, such as rubyonrails.org in "www.rubyonrails.org". You can specify) comment(# a different tld_length, such as 2 to catch rubyonrails.co.uk in "www.rubyonrails.co.uk".) reserved(def) method(domain)operator(()ident(tld_length) operator(=) integer(1)operator(\)) reserved(return) pre_constant(nil) reserved(if) operator(!)regexpoperator(.)ident(match)operator(()ident(host)operator(\))operator(.)ident(nil?) reserved(or) ident(host)operator(.)ident(nil?) ident(host)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last)operator(()integer(1) operator(+) ident(tld_length)operator(\))operator(.)ident(join)operator(()stringoperator(\)) reserved(end) comment(# Returns all the subdomains as an array, so ["dev", "www"] would be returned for "dev.www.rubyonrails.org".) comment(# You can specify a different tld_length, such as 2 to catch ["www"] instead of ["www", "rubyonrails"]) comment(# in "www.rubyonrails.co.uk".) reserved(def) method(subdomains)operator(()ident(tld_length) operator(=) integer(1)operator(\)) reserved(return) operator([)operator(]) reserved(unless) ident(host) ident(parts) operator(=) ident(host)operator(.)ident(split)operator(()stringoperator(\)) ident(parts)operator([)integer(0)operator(..)operator(-)operator(()ident(tld_length)operator(+)integer(2)operator(\))operator(]) reserved(end) comment(# Receive the raw post data.) comment(# This is useful for services such as REST, XMLRPC and SOAP) comment(# which communicate over HTTP POST but don't use the traditional parameter format.) reserved(def) method(raw_post) instance_variable(@env)operator([)stringoperator(]) reserved(end) comment(# Returns the request URI correctly, taking into account the idiosyncracies) comment(# of the various servers.) reserved(def) method(request_uri) reserved(if) ident(uri) operator(=) instance_variable(@env)operator([)stringoperator(]) operator(()regexp operator(=)operator(~) ident(uri)operator(\)) operator(?) global_variable($1) operator(:) ident(uri) comment(# Remove domain, which webrick puts into the request_uri.) reserved(else) comment(# REQUEST_URI is blank under IIS - get this from PATH_INFO and SCRIPT_NAME) ident(script_filename) operator(=) instance_variable(@env)operator([)stringoperator(])operator(.)ident(to_s)operator(.)ident(match)operator(()regexpoperator(\)) ident(uri) operator(=) instance_variable(@env)operator([)stringoperator(]) ident(uri) operator(=) ident(uri)operator(.)ident(sub)operator(()regexpchar(\\/)delimiter(/)>operator(,) stringoperator(\)) reserved(unless) ident(script_filename)operator(.)ident(nil?) reserved(unless) operator(()ident(env_qs) operator(=) instance_variable(@env)operator([)stringoperator(])operator(\))operator(.)ident(nil?) operator(||) ident(env_qs)operator(.)ident(empty?) ident(uri) operator(<<) string operator(<<) ident(env_qs) reserved(end) ident(uri) reserved(end) reserved(end) comment(# Return 'https://' if this is an SSL request and 'http://' otherwise.) reserved(def) method(protocol) ident(ssl?) operator(?) string operator(:) string reserved(end) comment(# Is this an SSL request?) reserved(def) method(ssl?) instance_variable(@env)operator([)stringoperator(]) operator(==) string operator(||) instance_variable(@env)operator([)stringoperator(]) operator(==) string reserved(end) comment(# Returns the interpreted path to requested resource after all the installation directory of this application was taken into account) reserved(def) method(path) ident(path) operator(=) operator(()ident(uri) operator(=) ident(request_uri)operator(\)) operator(?) ident(uri)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(first) operator(:) string comment(# Cut off the path to the installation directory if given) ident(root) operator(=) ident(relative_url_root) ident(path)operator([)integer(0)operator(,) ident(root)operator(.)ident(length)operator(]) operator(=) string reserved(if) ident(root) ident(path) operator(||) string reserved(end) comment(# Returns the path minus the web server relative installation directory.) comment(# This can be set with the environment variable RAILS_RELATIVE_URL_ROOT.) comment(# It can be automatically extracted for Apache setups. If the server is not) comment(# Apache, this method returns an empty string.) reserved(def) method(relative_url_root) class_variable(@@relative_url_root) operator(||=) reserved(case) reserved(when) instance_variable(@env)operator([)stringoperator(]) instance_variable(@env)operator([)stringoperator(]) reserved(when) ident(server_software) operator(==) string instance_variable(@env)operator([)stringoperator(])operator(.)ident(to_s)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) reserved(else) string reserved(end) reserved(end) comment(# Returns the port number of this request as an integer.) reserved(def) method(port) instance_variable(@port_as_int) operator(||=) instance_variable(@env)operator([)stringoperator(])operator(.)ident(to_i) reserved(end) comment(# Returns the standard port number for this request's protocol) reserved(def) method(standard_port) reserved(case) ident(protocol) reserved(when) string reserved(then) integer(443) reserved(else) integer(80) reserved(end) reserved(end) comment(# Returns a port suffix like ":8080" if the port number of this request) comment(# is not the default HTTP port 80 or HTTPS port 443.) reserved(def) method(port_string) operator(()ident(port) operator(==) ident(standard_port)operator(\)) operator(?) string operator(:) stringdelimiter(")> reserved(end) comment(# Returns a host:port string for this request, such as example.com or) comment(# example.com:8080.) reserved(def) method(host_with_port) ident(host) operator(+) ident(port_string) reserved(end) reserved(def) method(path_parameters=)operator(()ident(parameters)operator(\)) comment(#:nodoc:) instance_variable(@path_parameters) operator(=) ident(parameters) instance_variable(@symbolized_path_parameters) operator(=) instance_variable(@parameters) operator(=) pre_constant(nil) reserved(end) comment(# The same as path_parameters with explicitly symbolized keys ) reserved(def) method(symbolized_path_parameters) instance_variable(@symbolized_path_parameters) operator(||=) ident(path_parameters)operator(.)ident(symbolize_keys) reserved(end) comment(# Returns a hash with the parameters used to form the path of the request ) comment(#) comment(# Example: ) comment(#) comment(# {:action => 'my_action', :controller => 'my_controller'}) reserved(def) method(path_parameters) instance_variable(@path_parameters) operator(||=) operator({)operator(}) reserved(end) comment(# Returns the lowercase name of the HTTP server software.) reserved(def) method(server_software) operator(()instance_variable(@env)operator([)stringoperator(]) operator(&&) regexp operator(=)operator(~) instance_variable(@env)operator([)stringoperator(])operator(\)) operator(?) global_variable($1)operator(.)ident(downcase) operator(:) pre_constant(nil) reserved(end) comment(#--) comment(# Must be implemented in the concrete request) comment(#++) reserved(def) method(query_parameters) comment(#:nodoc:) reserved(end) reserved(def) method(request_parameters) comment(#:nodoc:) reserved(end) comment(# Returns the host for this request, such as example.com.) reserved(def) method(host) reserved(end) reserved(def) method(cookies) comment(#:nodoc:) reserved(end) reserved(def) method(session) comment(#:nodoc:) reserved(end) reserved(def) method(session=)operator(()ident(session)operator(\)) comment(#:nodoc:) instance_variable(@session) operator(=) ident(session) reserved(end) reserved(def) method(reset_session) comment(#:nodoc:) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) comment(# Actions that fail to perform as expected throw exceptions. These exceptions can either be rescued for the public view ) comment(# (with a nice user-friendly explanation\) or for the developers view (with tons of debugging information\). The developers view) comment(# is already implemented by the Action Controller, but the public view should be tailored to your specific application. So too) comment(# could the decision on whether something is a public or a developer request.) comment(#) comment(# You can tailor the rescuing behavior and appearance by overwriting the following two stub methods.) reserved(module) class(Rescue) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:perform_action_without_rescue)operator(,) symbol(:perform_action) ident(alias_method) symbol(:perform_action)operator(,) symbol(:perform_action_with_rescue) reserved(end) reserved(end) reserved(module) class(ClassMethods) comment(#:nodoc:) reserved(def) method(process_with_exception)operator(()ident(request)operator(,) ident(response)operator(,) ident(exception)operator(\)) ident(new)operator(.)ident(process)operator(()ident(request)operator(,) ident(response)operator(,) symbol(:rescue_action)operator(,) ident(exception)operator(\)) reserved(end) reserved(end) ident(protected) comment(# Exception handler called when the performance of an action raises an exception.) reserved(def) method(rescue_action)operator(()ident(exception)operator(\)) ident(log_error)operator(()ident(exception)operator(\)) reserved(if) ident(logger) ident(erase_results) reserved(if) ident(performed?) reserved(if) ident(consider_all_requests_local) operator(||) ident(local_request?) ident(rescue_action_locally)operator(()ident(exception)operator(\)) reserved(else) ident(rescue_action_in_public)operator(()ident(exception)operator(\)) reserved(end) reserved(end) comment(# Overwrite to implement custom logging of errors. By default logs as fatal.) reserved(def) method(log_error)operator(()ident(exception)operator(\)) comment(#:doc:) reserved(if) constant(ActionView)operator(::)constant(TemplateError) operator(===) ident(exception) ident(logger)operator(.)ident(fatal)operator(()ident(exception)operator(.)ident(to_s)operator(\)) reserved(else) ident(logger)operator(.)ident(fatal)operator(() stringcontent( ()inlinecontent(\):)char(\\n)content( )delimiter(")> operator(+) ident(clean_backtrace)operator(()ident(exception)operator(\))operator(.)ident(join)operator(()stringoperator(\)) operator(+) string operator(\)) reserved(end) reserved(end) comment(# Overwrite to implement public exception handling (for requests answering false to local_request?\).) reserved(def) method(rescue_action_in_public)operator(()ident(exception)operator(\)) comment(#:doc:) reserved(case) ident(exception) reserved(when) constant(RoutingError)operator(,) constant(UnknownAction) reserved(then) ident(render_text)operator(()constant(IO)operator(.)ident(read)operator(()constant(File)operator(.)ident(join)operator(()constant(RAILS_ROOT)operator(,) stringoperator(,) stringoperator(\))operator(\))operator(,) stringoperator(\)) reserved(else) ident(render_text) string

Application error (Rails\)

)delimiter(")> reserved(end) reserved(end) comment(# Overwrite to expand the meaning of a local request in order to show local rescues on other occurrences than) comment(# the remote IP being 127.0.0.1. For example, this could include the IP of the developer machine when debugging) comment(# remotely.) reserved(def) method(local_request?) comment(#:doc:) operator([)instance_variable(@request)operator(.)ident(remote_addr)operator(,) instance_variable(@request)operator(.)ident(remote_ip)operator(]) operator(==) operator([)stringoperator(]) operator(*) integer(2) reserved(end) comment(# Renders a detailed diagnostics screen on action exceptions. ) reserved(def) method(rescue_action_locally)operator(()ident(exception)operator(\)) ident(add_variables_to_assigns) instance_variable(@template)operator(.)ident(instance_variable_set)operator(()stringoperator(,) ident(exception)operator(\)) instance_variable(@template)operator(.)ident(instance_variable_set)operator(()stringoperator(,) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) instance_variable(@template)operator(.)ident(send)operator(()symbol(:assign_variables_from_controller)operator(\)) instance_variable(@template)operator(.)ident(instance_variable_set)operator(()stringoperator(,) instance_variable(@template)operator(.)ident(render_file)operator(()ident(template_path_for_local_rescue)operator(()ident(exception)operator(\))operator(,) pre_constant(false)operator(\))operator(\)) instance_variable(@headers)operator([)stringoperator(]) operator(=) string ident(render_file)operator(()ident(rescues_path)operator(()stringoperator(\))operator(,) ident(response_code_for_rescue)operator(()ident(exception)operator(\))operator(\)) reserved(end) ident(private) reserved(def) method(perform_action_with_rescue) comment(#:nodoc:) reserved(begin) ident(perform_action_without_rescue) reserved(rescue) constant(Object) operator(=)operator(>) ident(exception) reserved(if) reserved(defined?)operator(()constant(Breakpoint)operator(\)) operator(&&) instance_variable(@params)operator([)stringoperator(]) ident(msg) operator(=) ident(exception)operator(.)ident(backtrace)operator(.)ident(first) reserved(if) ident(md) operator(=) regexpoperator(.)ident(match)operator(()ident(msg)operator(\)) reserved(then) ident(origin_file)operator(,) ident(origin_line) operator(=) ident(md)operator([)integer(1)operator(])operator(,) ident(md)operator([)integer(2)operator(])operator(.)ident(to_i) ident(set_trace_func)operator(()ident(lambda) reserved(do) operator(|)ident(type)operator(,) ident(file)operator(,) ident(line)operator(,) ident(method)operator(,) ident(context)operator(,) ident(klass)operator(|) reserved(if) ident(file) operator(==) ident(origin_file) reserved(and) ident(line) operator(==) ident(origin_line) reserved(then) ident(set_trace_func)operator(()pre_constant(nil)operator(\)) instance_variable(@params)operator([)stringoperator(]) operator(=) pre_constant(false) ident(callstack) operator(=) ident(caller) ident(callstack)operator(.)ident(slice!)operator(()integer(0)operator(\)) reserved(if) ident(callstack)operator(.)ident(first)operator([)stringoperator(]) ident(file)operator(,) ident(line)operator(,) ident(method) operator(=) operator(*)ident(callstack)operator(.)ident(first)operator(.)ident(match)operator(()regexpoperator(\))operator(.)ident(captures) ident(message) operator(=) stringcontent(:)inlineinlinecontent(')delimiter(")> reserved(if) ident(method)inline_delimiter(})>content(.)delimiter(")> comment(# `´ ( for ruby-mode\)) constant(Breakpoint)operator(.)ident(handle_breakpoint)operator(()ident(context)operator(,) ident(message)operator(,) ident(file)operator(,) ident(line)operator(\)) reserved(end) reserved(end)operator(\)) reserved(retry) reserved(end) reserved(end) ident(rescue_action)operator(()ident(exception)operator(\)) reserved(end) reserved(end) reserved(def) method(rescues_path)operator(()ident(template_name)operator(\)) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringcontent(.rhtml)delimiter(")> reserved(end) reserved(def) method(template_path_for_local_rescue)operator(()ident(exception)operator(\)) ident(rescues_path)operator(() reserved(case) ident(exception) reserved(when) constant(MissingTemplate) reserved(then) string reserved(when) constant(RoutingError) reserved(then) string reserved(when) constant(UnknownAction) reserved(then) string reserved(when) constant(ActionView)operator(::)constant(TemplateError) reserved(then) string reserved(else) string reserved(end) operator(\)) reserved(end) reserved(def) method(response_code_for_rescue)operator(()ident(exception)operator(\)) reserved(case) ident(exception) reserved(when) constant(UnknownAction)operator(,) constant(RoutingError) reserved(then) string reserved(else) string reserved(end) reserved(end) reserved(def) method(clean_backtrace)operator(()ident(exception)operator(\)) ident(exception)operator(.)ident(backtrace)operator(.)ident(collect) operator({) operator(|)ident(line)operator(|) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:RAILS_ROOT)operator(\)) operator(?) ident(line)operator(.)ident(gsub)operator(()constant(RAILS_ROOT)operator(,) stringoperator(\)) operator(:) ident(line) operator(}) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) reserved(class) class(AbstractResponse) comment(#:nodoc:) constant(DEFAULT_HEADERS) operator(=) operator({) string operator(=)operator(>) string operator(}) ident(attr_accessor) symbol(:body)operator(,) symbol(:headers)operator(,) symbol(:session)operator(,) symbol(:cookies)operator(,) symbol(:assigns)operator(,) symbol(:template)operator(,) symbol(:redirected_to)operator(,) symbol(:redirected_to_method_params) reserved(def) method(initialize) instance_variable(@body)operator(,) instance_variable(@headers)operator(,) instance_variable(@session)operator(,) instance_variable(@assigns) operator(=) stringoperator(,) constant(DEFAULT_HEADERS)operator(.)ident(merge)operator(()string operator(=)operator(>) operator([)operator(])operator(\))operator(,) operator([)operator(])operator(,) operator([)operator(]) reserved(end) reserved(def) method(redirect)operator(()ident(to_url)operator(,) ident(permanently) operator(=) pre_constant(false)operator(\)) instance_variable(@headers)operator([)stringoperator(]) operator(=) string reserved(unless) instance_variable(@headers)operator([)stringoperator(]) operator(==) string instance_variable(@headers)operator([)stringoperator(]) operator(=) ident(to_url) instance_variable(@body) operator(=) stringYou are being char(\\")content(>redirected.)delimiter(")> reserved(end) reserved(end) ident(endmodule) constant(ActionController) reserved(module) class(Routing) comment(#:nodoc:) reserved(class) operator(<<) class(self) reserved(def) method(expiry_hash)operator(()ident(options)operator(,) ident(recall)operator(\)) ident(k) operator(=) ident(v) operator(=) pre_constant(nil) ident(expire_on) operator(=) operator({)operator(}) ident(options)operator(.)ident(each) operator({)operator(|)ident(k)operator(,) ident(v)operator(|) ident(expire_on)operator([)ident(k)operator(]) operator(=) operator(()operator(()ident(rcv) operator(=) ident(recall)operator([)ident(k)operator(])operator(\)) operator(&&) operator(()ident(rcv) operator(!=) ident(v)operator(\))operator(\))operator(}) ident(expire_on) reserved(end) reserved(def) method(extract_parameter_value)operator(()ident(parameter)operator(\)) comment(#:nodoc:) constant(CGI)operator(.)ident(escape)operator(()operator(()ident(parameter)operator(.)ident(respond_to?)operator(()symbol(:to_param)operator(\)) operator(?) ident(parameter)operator(.)ident(to_param) operator(:) ident(parameter)operator(\))operator(.)ident(to_s)operator(\)) reserved(end) reserved(def) method(controller_relative_to)operator(()ident(controller)operator(,) ident(previous)operator(\)) reserved(if) ident(controller)operator(.)ident(nil?) reserved(then) ident(previous) reserved(elsif) ident(controller)operator([)integer(0)operator(]) operator(==) integer(?/) reserved(then) ident(controller)operator([)integer(1)operator(..)integer(-1)operator(]) reserved(elsif) regexp operator(=)operator(~) ident(previous) reserved(then) stringcontent(/)inlinedelimiter(")> reserved(else) ident(controller) reserved(end) reserved(end) reserved(def) method(treat_hash)operator(()ident(hash)operator(,) ident(keys_to_delete) operator(=) operator([)operator(])operator(\)) ident(k) operator(=) ident(v) operator(=) pre_constant(nil) ident(hash)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,) ident(v)operator(|) reserved(if) ident(v) reserved(then) ident(hash)operator([)ident(k)operator(]) operator(=) operator(()ident(v)operator(.)ident(respond_to?) symbol(:to_param)operator(\)) operator(?) ident(v)operator(.)ident(to_param)operator(.)ident(to_s) operator(:) ident(v)operator(.)ident(to_s) reserved(else) ident(hash)operator(.)ident(delete) ident(k) ident(keys_to_delete) operator(<<) ident(k) reserved(end) reserved(end) ident(hash) reserved(end) reserved(def) method(test_condition)operator(()ident(expression)operator(,) ident(condition)operator(\)) reserved(case) ident(condition) reserved(when) constant(String) reserved(then) stringcontent( == )inlinecontent(\))delimiter(")> reserved(when) constant(Regexp) reserved(then) ident(condition) operator(=) constant(Regexp)operator(.)ident(new)operator(()stringcontent($)delimiter(")>operator(\)) reserved(unless) regexp operator(=)operator(~) ident(condition)operator(.)ident(source) stringcontent( =~ )inlinecontent(\))delimiter(")> reserved(when) constant(Array) reserved(then) ident(conds) operator(=) ident(condition)operator(.)ident(collect) reserved(do) operator(|)ident(condition)operator(|) ident(cond) operator(=) ident(test_condition)operator(()ident(expression)operator(,) ident(condition)operator(\)) operator(()ident(cond)operator([)integer(0)operator(,) integer(1)operator(]) operator(==) string operator(&&) ident(cond)operator([)integer(-1)operator(,) integer(1)operator(]) operator(==) stringoperator(\)) operator(?) ident(cond) operator(:) stringcontent(\))delimiter(")> reserved(end) stringoperator(\))inline_delimiter(})>content(\))delimiter(")> reserved(when) pre_constant(true) reserved(then) ident(expression) reserved(when) pre_constant(nil) reserved(then) stringdelimiter(")> reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(end) reserved(end) reserved(class) class(Component) comment(#:nodoc:) reserved(def) method(dynamic?)operator(()operator(\)) pre_constant(false) reserved(end) reserved(def) method(optional?)operator(()operator(\)) pre_constant(false) reserved(end) reserved(def) method(key)operator(()operator(\)) pre_constant(nil) reserved(end) reserved(def) pre_constant(self)operator(.)method(new)operator(()ident(string)operator(,) operator(*)ident(args)operator(\)) reserved(return) reserved(super)operator(()ident(string)operator(,) operator(*)ident(args)operator(\)) reserved(unless) pre_constant(self) operator(==) constant(Component) reserved(case) ident(string) reserved(when) string reserved(then) constant(ControllerComponent)operator(.)ident(new)operator(()symbol(:controller)operator(,) operator(*)ident(args)operator(\)) reserved(when) regexp reserved(then) constant(DynamicComponent)operator(.)ident(new)operator(()global_variable($1)operator(,) operator(*)ident(args)operator(\)) reserved(when) regexp reserved(then) constant(PathComponent)operator(.)ident(new)operator(()global_variable($1)operator(,) operator(*)ident(args)operator(\)) reserved(else) constant(StaticComponent)operator(.)ident(new)operator(()ident(string)operator(,) operator(*)ident(args)operator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(StaticComponent) operator(<) constant(Component) comment(#:nodoc:) ident(attr_reader) symbol(:value) reserved(def) method(initialize)operator(()ident(value)operator(\)) instance_variable(@value) operator(=) ident(value) reserved(end) reserved(def) method(write_recognition)operator(()ident(g)operator(\)) ident(g)operator(.)ident(if_next_matches)operator(()ident(value)operator(\)) reserved(do) operator(|)ident(gp)operator(|) ident(gp)operator(.)ident(move_forward) operator({)operator(|)ident(gpp)operator(|) ident(gpp)operator(.)ident(continue)operator(}) reserved(end) reserved(end) reserved(def) method(write_generation)operator(()ident(g)operator(\)) ident(g)operator(.)ident(add_segment)operator(()ident(value)operator(\)) operator({)operator(|)ident(gp)operator(|) ident(gp)operator(.)ident(continue) operator(}) reserved(end) reserved(end) reserved(class) class(DynamicComponent) operator(<) constant(Component) comment(#:nodoc:) ident(attr_reader) symbol(:key)operator(,) symbol(:default) ident(attr_accessor) symbol(:condition) reserved(def) method(dynamic?)operator(()operator(\)) pre_constant(true) reserved(end) reserved(def) method(optional?)operator(()operator(\)) instance_variable(@optional) reserved(end) reserved(def) method(default=)operator(()ident(default)operator(\)) instance_variable(@optional) operator(=) pre_constant(true) instance_variable(@default) operator(=) ident(default) reserved(end) reserved(def) method(initialize)operator(()ident(key)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) instance_variable(@key) operator(=) ident(key)operator(.)ident(to_sym) instance_variable(@optional) operator(=) pre_constant(false) ident(default)operator(,) instance_variable(@condition) operator(=) ident(options)operator([)symbol(:default)operator(])operator(,) ident(options)operator([)symbol(:condition)operator(]) pre_constant(self)operator(.)ident(default) operator(=) ident(default) reserved(if) ident(options)operator(.)ident(key?)operator(()symbol(:default)operator(\)) reserved(end) reserved(def) method(default_check)operator(()ident(g)operator(\)) ident(presence) operator(=) stringdelimiter(")> reserved(if) ident(default) stringcontent( && )inlinecontent( != )inlinecontent(\))delimiter(")> reserved(else) stringdelimiter(")> reserved(end) reserved(end) reserved(def) method(write_generation)operator(()ident(g)operator(\)) ident(wrote_dropout) operator(=) ident(write_dropout_generation)operator(()ident(g)operator(\)) ident(write_continue_generation)operator(()ident(g)operator(,) ident(wrote_dropout)operator(\)) reserved(end) reserved(def) method(write_dropout_generation)operator(()ident(g)operator(\)) reserved(return) pre_constant(false) reserved(unless) ident(optional?) operator(&&) ident(g)operator(.)ident(after)operator(.)ident(all?) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(optional?)operator(}) ident(check) operator(=) operator([)ident(default_check)operator(()ident(g)operator(\))operator(]) ident(gp) operator(=) ident(g)operator(.)ident(dup) comment(# Use another generator to write the conditions after the first &&) comment(# We do this to ensure that the generator will not assume x_value is set. It will) comment(# not be set if it follows a false condition -- for example, false && (x = 2\)) ident(check) operator(+=) ident(gp)operator(.)ident(after)operator(.)ident(map) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(default_check) ident(gp)operator(}) ident(gp)operator(.)ident(if)operator(()ident(check)operator(.)ident(join)operator(()stringoperator(\))operator(\)) operator({) ident(gp)operator(.)ident(finish) operator(}) comment(# If this condition is met, we stop here) pre_constant(true) reserved(end) reserved(def) method(write_continue_generation)operator(()ident(g)operator(,) ident(use_else)operator(\)) ident(test) operator(=) constant(Routing)operator(.)ident(test_condition)operator(()ident(g)operator(.)ident(hash_value)operator(()ident(key)operator(,) pre_constant(true)operator(,) ident(default)operator(\))operator(,) ident(condition) operator(||) pre_constant(true)operator(\)) ident(check) operator(=) operator(()ident(use_else) operator(&&) ident(condition)operator(.)ident(nil?) operator(&&) ident(default)operator(\)) operator(?) operator([)symbol(:else)operator(]) operator(:) operator([)ident(use_else) operator(?) symbol(:elsif) operator(:) symbol(:if)operator(,) ident(test)operator(]) ident(g)operator(.)ident(send)operator(()operator(*)ident(check)operator(\)) reserved(do) operator(|)ident(gp)operator(|) ident(gp)operator(.)ident(expire_for_keys)operator(()ident(key)operator(\)) reserved(unless) ident(gp)operator(.)ident(after)operator(.)ident(empty?) ident(add_segments_to)operator(()ident(gp)operator(\)) operator({)operator(|)ident(gpp)operator(|) ident(gpp)operator(.)ident(continue)operator(}) reserved(end) reserved(end) reserved(def) method(add_segments_to)operator(()ident(g)operator(\)) ident(g)operator(.)ident(add_segment)operator(()stringnesting_delimiter(\))content(})delimiter(\))>operator(\)) operator({)operator(|)ident(gp)operator(|) reserved(yield) ident(gp)operator(}) reserved(end) reserved(def) method(recognition_check)operator(()ident(g)operator(\)) ident(test_type) operator(=) operator([)pre_constant(true)operator(,) pre_constant(nil)operator(])operator(.)ident(include?)operator(()ident(condition)operator(\)) operator(?) symbol(:presence) operator(:) symbol(:constraint) ident(prefix) operator(=) ident(condition)operator(.)ident(is_a?)operator(()constant(Regexp)operator(\)) operator(?) stringcontent( && )delimiter(")> operator(:) string ident(check) operator(=) ident(prefix) operator(+) constant(Routing)operator(.)ident(test_condition)operator(()ident(g)operator(.)ident(next_segment)operator(()pre_constant(true)operator(\))operator(,) ident(condition) operator(||) pre_constant(true)operator(\)) ident(g)operator(.)ident(if)operator(()ident(check)operator(\)) operator({)operator(|)ident(gp)operator(|) reserved(yield) ident(gp)operator(,) ident(test_type)operator(}) reserved(end) reserved(def) method(write_recognition)operator(()ident(g)operator(\)) ident(test_type) operator(=) pre_constant(nil) ident(recognition_check)operator(()ident(g)operator(\)) reserved(do) operator(|)ident(gp)operator(,) ident(test_type)operator(|) ident(assign_result)operator(()ident(gp)operator(\)) operator({)operator(|)ident(gpp)operator(|) ident(gpp)operator(.)ident(continue)operator(}) reserved(end) reserved(if) ident(optional?) operator(&&) ident(g)operator(.)ident(after)operator(.)ident(all?) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(optional?)operator(}) ident(call) operator(=) operator(()ident(test_type) operator(==) symbol(:presence)operator(\)) operator(?) operator([)symbol(:else)operator(]) operator(:) operator([)symbol(:elsif)operator(,) stringdelimiter(")>operator(]) ident(g)operator(.)ident(send)operator(()operator(*)ident(call)operator(\)) reserved(do) operator(|)ident(gp)operator(|) ident(assign_default)operator(()ident(gp)operator(\)) ident(gp)operator(.)ident(after)operator(.)ident(each) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(assign_default)operator(()ident(gp)operator(\))operator(}) ident(gp)operator(.)ident(finish)operator(()pre_constant(false)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(assign_result)operator(()ident(g)operator(,) ident(with_default) operator(=) pre_constant(false)operator(\)) ident(g)operator(.)ident(result) ident(key)operator(,) stringcontent(\))delimiter(")> ident(g)operator(.)ident(move_forward) operator({)operator(|)ident(gp)operator(|) reserved(yield) ident(gp)operator(}) reserved(end) reserved(def) method(assign_default)operator(()ident(g)operator(\)) ident(g)operator(.)ident(constant_result) ident(key)operator(,) ident(default) reserved(unless) ident(default)operator(.)ident(nil?) reserved(end) reserved(end) reserved(class) class(ControllerComponent) operator(<) constant(DynamicComponent) comment(#:nodoc:) reserved(def) method(key)operator(()operator(\)) symbol(:controller) reserved(end) reserved(def) method(add_segments_to)operator(()ident(g)operator(\)) ident(g)operator(.)ident(add_segment)operator(()stringcontent(})delimiter(\))>operator(\)) operator({)operator(|)ident(gp)operator(|) reserved(yield) ident(gp)operator(}) reserved(end) reserved(def) method(recognition_check)operator(()ident(g)operator(\)) ident(g) operator(<<) stringcontent(, )inlinecontent(\))delimiter(")> ident(g)operator(.)ident(if)operator(()stringoperator(\)) reserved(do) operator(|)ident(gp)operator(|) ident(gp) operator(<<) string reserved(if) ident(condition) ident(gp) operator(<<) stringcontent([)inlinecontent(,segments_to_controller].join('/'\))delimiter(")> ident(gp)operator(.)ident(if)operator(()constant(Routing)operator(.)ident(test_condition)operator(()stringoperator(,) ident(condition)operator(\))operator(\)) reserved(do) operator(|)ident(gpp)operator(|) ident(gpp)operator(.)ident(move_forward)operator(()stringoperator(\)) operator({)operator(|)ident(gppp)operator(|) reserved(yield) ident(gppp)operator(,) symbol(:constraint)operator(}) reserved(end) reserved(else) ident(gp)operator(.)ident(move_forward)operator(()stringoperator(\)) operator({)operator(|)ident(gpp)operator(|) reserved(yield) ident(gpp)operator(,) symbol(:constraint)operator(}) reserved(end) reserved(end) reserved(end) reserved(def) method(assign_result)operator(()ident(g)operator(\)) ident(g)operator(.)ident(result) ident(key)operator(,) string reserved(yield) ident(g) reserved(end) reserved(def) method(assign_default)operator(()ident(g)operator(\)) constant(ControllerComponent)operator(.)ident(assign_controller)operator(()ident(g)operator(,) ident(default)operator(\)) reserved(end) reserved(class) operator(<<) class(self) reserved(def) method(assign_controller)operator(()ident(g)operator(,) ident(controller)operator(\)) ident(expr) operator(=) stringoperator(\))operator(.)ident(collect) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(camelize)operator(})operator(.)ident(join)operator(()stringoperator(\))inline_delimiter(})>content(Controller)delimiter(")> ident(g)operator(.)ident(result) symbol(:controller)operator(,) ident(expr)operator(,) pre_constant(true) reserved(end) reserved(def) method(traverse_to_controller)operator(()ident(segments)operator(,) ident(start_at) operator(=) integer(0)operator(\)) ident(mod) operator(=) operator(::)constant(Object) ident(length) operator(=) ident(segments)operator(.)ident(length) ident(index) operator(=) ident(start_at) ident(mod_name) operator(=) ident(controller_name) operator(=) ident(segment) operator(=) pre_constant(nil) reserved(while) ident(index) operator(<) ident(length) reserved(return) pre_constant(nil) reserved(unless) regexp operator(=)operator(~) operator(()ident(segment) operator(=) ident(segments)operator([)ident(index)operator(])operator(\)) ident(index) operator(+=) integer(1) ident(mod_name) operator(=) ident(segment)operator(.)ident(camelize) ident(controller_name) operator(=) stringcontent(Controller)delimiter(")> ident(path_suffix) operator(=) constant(File)operator(.)ident(join)operator(()ident(segments)operator([)ident(start_at)operator(..)operator(()ident(index) operator(-) integer(1)operator(\))operator(])operator(\)) ident(next_mod) operator(=) pre_constant(nil) comment(# If the controller is already present, or if we load it, return it.) reserved(if) ident(mod)operator(.)ident(const_defined?)operator(()ident(controller_name)operator(\)) operator(||) ident(attempt_load)operator(()ident(mod)operator(,) ident(controller_name)operator(,) ident(path_suffix) operator(+) stringoperator(\)) operator(==) symbol(:defined) ident(controller) operator(=) ident(mod)operator(.)ident(const_get)operator(()ident(controller_name)operator(\)) reserved(return) pre_constant(nil) reserved(unless) ident(controller)operator(.)ident(is_a?)operator(()constant(Class)operator(\)) operator(&&) ident(controller)operator(.)ident(ancestors)operator(.)ident(include?)operator(()constant(ActionController)operator(::)constant(Base)operator(\)) comment(# it's not really a controller?) reserved(return) operator([)ident(controller)operator(,) operator(()ident(index) operator(-) ident(start_at)operator(\))operator(]) reserved(end) comment(# No controller? Look for the module) reserved(if) ident(mod)operator(.)ident(const_defined?) ident(mod_name) ident(next_mod) operator(=) ident(mod)operator(.)ident(send)operator(()symbol(:const_get)operator(,) ident(mod_name)operator(\)) ident(next_mod) operator(=) pre_constant(nil) reserved(unless) ident(next_mod)operator(.)ident(is_a?)operator(()constant(Module)operator(\)) reserved(else) comment(# Try to load a file that defines the module we want.) reserved(case) ident(attempt_load)operator(()ident(mod)operator(,) ident(mod_name)operator(,) ident(path_suffix)operator(\)) reserved(when) symbol(:defined) reserved(then) ident(next_mod) operator(=) ident(mod)operator(.)ident(const_get) ident(mod_name) reserved(when) symbol(:dir) reserved(then) comment(# We didn't find a file, but there's a dir.) ident(next_mod) operator(=) constant(Module)operator(.)ident(new) comment(# So create a module for the directory) ident(mod)operator(.)ident(send) symbol(:const_set)operator(,) ident(mod_name)operator(,) ident(next_mod) reserved(else) reserved(return) pre_constant(nil) reserved(end) reserved(end) ident(mod) operator(=) ident(next_mod) reserved(return) pre_constant(nil) reserved(unless) ident(mod) operator(&&) ident(mod)operator(.)ident(is_a?)operator(()constant(Module)operator(\)) reserved(end) pre_constant(nil) reserved(end) ident(protected) reserved(def) method(safe_load_paths) comment(#:nodoc:) reserved(if) reserved(defined?)operator(()constant(RAILS_ROOT)operator(\)) global_variable($LOAD_PATH)operator(.)ident(select) reserved(do) operator(|)ident(base)operator(|) ident(base) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(base)operator(\)) ident(extended_root) operator(=) constant(File)operator(.)ident(expand_path)operator(()constant(RAILS_ROOT)operator(\)) comment(# Exclude all paths that are not nested within app, lib, or components.) ident(base)operator(.)ident(match)operator(()regexpchar(\\/)content(*(app|lib|components\))char(\\/)content([a-z])delimiter(/)>operator(\)) operator(||) ident(base) operator(=)operator(~) regexp reserved(end) reserved(else) global_variable($LOAD_PATH) reserved(end) reserved(end) reserved(def) method(attempt_load)operator(()ident(mod)operator(,) ident(const_name)operator(,) ident(path)operator(\)) ident(has_dir) operator(=) pre_constant(false) ident(safe_load_paths)operator(.)ident(each) reserved(do) operator(|)ident(load_path)operator(|) ident(full_path) operator(=) constant(File)operator(.)ident(join)operator(()ident(load_path)operator(,) ident(path)operator(\)) ident(file_path) operator(=) ident(full_path) operator(+) string reserved(if) constant(File)operator(.)ident(file?)operator(()ident(file_path)operator(\)) comment(# Found a .rb file? Load it up) ident(require_dependency)operator(()ident(file_path)operator(\)) reserved(return) symbol(:defined) reserved(if) ident(mod)operator(.)ident(const_defined?) ident(const_name) reserved(else) ident(has_dir) operator(||=) constant(File)operator(.)ident(directory?)operator(()ident(full_path)operator(\)) reserved(end) reserved(end) reserved(return) operator(()ident(has_dir) operator(?) symbol(:dir) operator(:) pre_constant(nil)operator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(PathComponent) operator(<) constant(DynamicComponent) comment(#:nodoc:) reserved(def) method(optional?)operator(()operator(\)) pre_constant(true) reserved(end) reserved(def) method(default)operator(()operator(\)) operator([)operator(]) reserved(end) reserved(def) method(condition)operator(()operator(\)) pre_constant(nil) reserved(end) reserved(def) method(default=)operator(()ident(value)operator(\)) ident(raise) constant(RoutingError)operator(,) string reserved(unless) ident(value) operator(==) operator([)operator(]) reserved(end) reserved(def) method(write_generation)operator(()ident(g)operator(\)) ident(raise) constant(RoutingError)operator(,) string reserved(unless) ident(g)operator(.)ident(after)operator(.)ident(empty?) ident(g)operator(.)ident(if)operator(()stringcontent( && ! )inlinecontent(.empty?)delimiter(")>operator(\)) reserved(do) ident(g) operator(<<) stringcontent( = )inlinecontent(.join('/'\) unless )inlinecontent(.is_a?(String\))delimiter(")> ident(g)operator(.)ident(add_segment)operator(()stringcontent(\)})delimiter(")>operator(\)) operator({)operator(|)ident(gp)operator(|) ident(gp)operator(.)ident(finish) operator(}) reserved(end) ident(g)operator(.)ident(else) operator({) ident(g)operator(.)ident(finish) operator(}) reserved(end) reserved(def) method(write_recognition)operator(()ident(g)operator(\)) ident(raise) constant(RoutingError)operator(,) string reserved(unless) ident(g)operator(.)ident(after)operator(.)ident(empty?) ident(start) operator(=) ident(g)operator(.)ident(index_name) ident(start) operator(=) stringcontent(\))delimiter(")> reserved(unless) regexp operator(=)operator(~) ident(start) ident(value_expr) operator(=) stringcontent([)inlinecontent(..-1] || [])delimiter(")> ident(g)operator(.)ident(result) ident(key)operator(,) stringcontent(\))delimiter(")> ident(g)operator(.)ident(finish)operator(()pre_constant(false)operator(\)) reserved(end) reserved(class) class(Result) operator(<) operator(::)constant(Array) comment(#:nodoc:) reserved(def) method(to_s)operator(()operator(\)) ident(join) string reserved(end) reserved(def) pre_constant(self)operator(.)method(new_escaped)operator(()ident(strings)operator(\)) ident(new) ident(strings)operator(.)ident(collect) operator({)operator(|)ident(str)operator(|) constant(CGI)operator(.)ident(unescape) ident(str)operator(}) reserved(end) reserved(end) reserved(end) reserved(class) class(Route) comment(#:nodoc:) ident(attr_accessor) symbol(:components)operator(,) symbol(:known) ident(attr_reader) symbol(:path)operator(,) symbol(:options)operator(,) symbol(:keys)operator(,) symbol(:defaults) reserved(def) method(initialize)operator(()ident(path)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) instance_variable(@path)operator(,) instance_variable(@options) operator(=) ident(path)operator(,) ident(options) ident(initialize_components) ident(path) ident(defaults)operator(,) ident(conditions) operator(=) ident(initialize_hashes) ident(options)operator(.)ident(dup) instance_variable(@defaults) operator(=) ident(defaults)operator(.)ident(dup) ident(configure_components)operator(()ident(defaults)operator(,) ident(conditions)operator(\)) ident(add_default_requirements) ident(initialize_keys) reserved(end) reserved(def) method(inspect) stringcontent( )inlinecontent(, )inlinecontent(>)delimiter(")> reserved(end) reserved(def) method(write_generation)operator(()ident(generator) operator(=) constant(CodeGeneration)operator(::)constant(GenerationGenerator)operator(.)ident(new)operator(\)) ident(generator)operator(.)ident(before)operator(,) ident(generator)operator(.)ident(current)operator(,) ident(generator)operator(.)ident(after) operator(=) operator([)operator(])operator(,) ident(components)operator(.)ident(first)operator(,) operator(()ident(components)operator([)integer(1)operator(..)integer(-1)operator(]) operator(||) operator([)operator(])operator(\)) reserved(if) ident(known)operator(.)ident(empty?) reserved(then) ident(generator)operator(.)ident(go) reserved(else) comment(# Alter the conditions to allow :action => 'index' to also catch :action => nil) ident(altered_known) operator(=) ident(known)operator(.)ident(collect) reserved(do) operator(|)ident(k)operator(,) ident(v)operator(|) reserved(if) ident(k) operator(==) symbol(:action) operator(&&) ident(v)operator(==) string reserved(then) operator([)ident(k)operator(,) operator([)pre_constant(nil)operator(,) stringoperator(])operator(]) reserved(else) operator([)ident(k)operator(,) ident(v)operator(]) reserved(end) reserved(end) ident(generator)operator(.)ident(if)operator(()ident(generator)operator(.)ident(check_conditions)operator(()ident(altered_known)operator(\))operator(\)) operator({)operator(|)ident(gp)operator(|) ident(gp)operator(.)ident(go) operator(}) reserved(end) ident(generator) reserved(end) reserved(def) method(write_recognition)operator(()ident(generator) operator(=) constant(CodeGeneration)operator(::)constant(RecognitionGenerator)operator(.)ident(new)operator(\)) ident(g) operator(=) ident(generator)operator(.)ident(dup) ident(g)operator(.)ident(share_locals_with) ident(generator) ident(g)operator(.)ident(before)operator(,) ident(g)operator(.)ident(current)operator(,) ident(g)operator(.)ident(after) operator(=) operator([)operator(])operator(,) ident(components)operator(.)ident(first)operator(,) operator(()ident(components)operator([)integer(1)operator(..)integer(-1)operator(]) operator(||) operator([)operator(])operator(\)) ident(known)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(if) ident(key) operator(==) symbol(:controller) reserved(then) constant(ControllerComponent)operator(.)ident(assign_controller)operator(()ident(g)operator(,) ident(value)operator(\)) reserved(else) ident(g)operator(.)ident(constant_result)operator(()ident(key)operator(,) ident(value)operator(\)) reserved(end) reserved(end) ident(g)operator(.)ident(go) ident(generator) reserved(end) reserved(def) method(initialize_keys) instance_variable(@keys) operator(=) operator(()ident(components)operator(.)ident(collect) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(key)operator(}) operator(+) ident(known)operator(.)ident(keys)operator(\))operator(.)ident(compact) instance_variable(@keys)operator(.)ident(freeze) reserved(end) reserved(def) method(extra_keys)operator(()ident(options)operator(\)) ident(options)operator(.)ident(keys) operator(-) instance_variable(@keys) reserved(end) reserved(def) method(matches_controller?)operator(()ident(controller)operator(\)) reserved(if) ident(known)operator([)symbol(:controller)operator(]) reserved(then) ident(known)operator([)symbol(:controller)operator(]) operator(==) ident(controller) reserved(else) ident(c) operator(=) ident(components)operator(.)ident(find) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(key) operator(==) symbol(:controller)operator(}) reserved(return) pre_constant(false) reserved(unless) ident(c) reserved(return) ident(c)operator(.)ident(condition)operator(.)ident(nil?) operator(||) ident(eval)operator(()constant(Routing)operator(.)ident(test_condition)operator(()stringoperator(,) ident(c)operator(.)ident(condition)operator(\))operator(\)) reserved(end) reserved(end) ident(protected) reserved(def) method(initialize_components)operator(()ident(path)operator(\)) ident(path) operator(=) ident(path)operator(.)ident(split)operator(()stringoperator(\)) reserved(if) ident(path)operator(.)ident(is_a?) constant(String) ident(path)operator(.)ident(shift) reserved(if) ident(path)operator(.)ident(first)operator(.)ident(blank?) pre_constant(self)operator(.)ident(components) operator(=) ident(path)operator(.)ident(collect) operator({)operator(|)ident(str)operator(|) constant(Component)operator(.)ident(new) ident(str)operator(}) reserved(end) reserved(def) method(initialize_hashes)operator(()ident(options)operator(\)) ident(path_keys) operator(=) ident(components)operator(.)ident(collect) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(key) operator(})operator(.)ident(compact) pre_constant(self)operator(.)ident(known) operator(=) operator({)operator(}) ident(defaults) operator(=) ident(options)operator(.)ident(delete)operator(()symbol(:defaults)operator(\)) operator(||) operator({)operator(}) ident(conditions) operator(=) ident(options)operator(.)ident(delete)operator(()symbol(:require)operator(\)) operator(||) operator({)operator(}) ident(conditions)operator(.)ident(update)operator(()ident(options)operator(.)ident(delete)operator(()symbol(:requirements)operator(\)) operator(||) operator({)operator(})operator(\)) ident(options)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,) ident(v)operator(|) reserved(if) ident(path_keys)operator(.)ident(include?)operator(()ident(k)operator(\)) reserved(then) operator(()ident(v)operator(.)ident(is_a?)operator(()constant(Regexp)operator(\)) operator(?) ident(conditions) operator(:) ident(defaults)operator(\))operator([)ident(k)operator(]) operator(=) ident(v) reserved(else) ident(known)operator([)ident(k)operator(]) operator(=) ident(v) reserved(end) reserved(end) operator([)ident(defaults)operator(,) ident(conditions)operator(]) reserved(end) reserved(def) method(configure_components)operator(()ident(defaults)operator(,) ident(conditions)operator(\)) ident(components)operator(.)ident(each) reserved(do) operator(|)ident(component)operator(|) reserved(if) ident(defaults)operator(.)ident(key?)operator(()ident(component)operator(.)ident(key)operator(\)) reserved(then) ident(component)operator(.)ident(default) operator(=) ident(defaults)operator([)ident(component)operator(.)ident(key)operator(]) reserved(elsif) ident(component)operator(.)ident(key) operator(==) symbol(:action) reserved(then) ident(component)operator(.)ident(default) operator(=) string reserved(elsif) ident(component)operator(.)ident(key) operator(==) symbol(:id) reserved(then) ident(component)operator(.)ident(default) operator(=) pre_constant(nil) reserved(end) ident(component)operator(.)ident(condition) operator(=) ident(conditions)operator([)ident(component)operator(.)ident(key)operator(]) reserved(if) ident(conditions)operator(.)ident(key?)operator(()ident(component)operator(.)ident(key)operator(\)) reserved(end) reserved(end) reserved(def) method(add_default_requirements) ident(component_keys) operator(=) ident(components)operator(.)ident(collect) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(key)operator(}) ident(known)operator([)symbol(:action)operator(]) operator(||=) string reserved(unless) ident(component_keys)operator(.)ident(include?) symbol(:action) reserved(end) reserved(end) reserved(class) class(RouteSet) comment(#:nodoc:) ident(attr_reader) symbol(:routes)operator(,) symbol(:categories)operator(,) symbol(:controller_to_selector) reserved(def) method(initialize) instance_variable(@routes) operator(=) operator([)operator(]) instance_variable(@generation_methods) operator(=) constant(Hash)operator(.)ident(new)operator(()symbol(:generate_default_path)operator(\)) reserved(end) reserved(def) method(generate)operator(()ident(options)operator(,) ident(request_or_recall_hash) operator(=) operator({)operator(})operator(\)) ident(recall) operator(=) ident(request_or_recall_hash)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(request_or_recall_hash) operator(:) ident(request_or_recall_hash)operator(.)ident(symbolized_path_parameters) ident(use_recall) operator(=) pre_constant(true) ident(controller) operator(=) ident(options)operator([)symbol(:controller)operator(]) ident(options)operator([)symbol(:action)operator(]) operator(||=) string reserved(if) ident(controller) ident(recall_controller) operator(=) ident(recall)operator([)symbol(:controller)operator(]) reserved(if) operator(()ident(recall_controller) operator(&&) ident(recall_controller)operator(.)ident(include?)operator(()integer(?/)operator(\))operator(\)) operator(||) operator(()ident(controller) operator(&&) ident(controller)operator(.)ident(include?)operator(()integer(?/)operator(\))operator(\)) ident(recall) operator(=) operator({)operator(}) reserved(if) ident(controller) operator(&&) ident(controller)operator([)integer(0)operator(]) operator(==) integer(?/) ident(options)operator([)symbol(:controller)operator(]) operator(=) constant(Routing)operator(.)ident(controller_relative_to)operator(()ident(controller)operator(,) ident(recall_controller)operator(\)) reserved(end) ident(options) operator(=) ident(recall)operator(.)ident(dup) reserved(if) ident(options)operator(.)ident(empty?) comment(# XXX move to url_rewriter?) ident(keys_to_delete) operator(=) operator([)operator(]) constant(Routing)operator(.)ident(treat_hash)operator(()ident(options)operator(,) ident(keys_to_delete)operator(\)) ident(merged) operator(=) ident(recall)operator(.)ident(merge)operator(()ident(options)operator(\)) ident(keys_to_delete)operator(.)ident(each) operator({)operator(|)ident(key)operator(|) ident(merged)operator(.)ident(delete) ident(key)operator(}) ident(expire_on) operator(=) constant(Routing)operator(.)ident(expiry_hash)operator(()ident(options)operator(,) ident(recall)operator(\)) ident(generate_path)operator(()ident(merged)operator(,) ident(options)operator(,) ident(expire_on)operator(\)) reserved(end) reserved(def) method(generate_path)operator(()ident(merged)operator(,) ident(options)operator(,) ident(expire_on)operator(\)) ident(send) instance_variable(@generation_methods)operator([)ident(merged)operator([)symbol(:controller)operator(])operator(])operator(,) ident(merged)operator(,) ident(options)operator(,) ident(expire_on) reserved(end) reserved(def) method(generate_default_path)operator(()operator(*)ident(args)operator(\)) ident(write_generation) ident(generate_default_path)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(def) method(write_generation) ident(method_sources) operator(=) operator([)operator(]) instance_variable(@generation_methods) operator(=) constant(Hash)operator(.)ident(new)operator(()symbol(:generate_default_path)operator(\)) ident(categorize_routes)operator(.)ident(each) reserved(do) operator(|)ident(controller)operator(,) ident(routes)operator(|) reserved(next) reserved(unless) ident(routes)operator(.)ident(length) operator(<) instance_variable(@routes)operator(.)ident(length) ident(ivar) operator(=) ident(controller)operator(.)ident(gsub)operator(()stringoperator(,) stringoperator(\)) ident(method_name) operator(=) stringdelimiter(")>operator(.)ident(to_sym) ident(instance_variable_set) stringdelimiter(")>operator(,) ident(routes) ident(code) operator(=) ident(generation_code_for)operator(()ident(ivar)operator(,) ident(method_name)operator(\))operator(.)ident(to_s) ident(method_sources) operator(<<) ident(code) ident(filename) operator(=) stringcontent(.rb)delimiter(")> ident(eval)operator(()ident(code)operator(,) pre_constant(nil)operator(,) ident(filename)operator(\)) instance_variable(@generation_methods)operator([)ident(controller)operator(.)ident(to_s)operator(]) operator(=) ident(method_name) instance_variable(@generation_methods)operator([)ident(controller)operator(.)ident(to_sym)operator(]) operator(=) ident(method_name) reserved(end) ident(code) operator(=) ident(generation_code_for)operator(()stringoperator(,) stringoperator(\))operator(.)ident(to_s) ident(eval)operator(()ident(code)operator(,) pre_constant(nil)operator(,) stringoperator(\)) reserved(return) operator(()ident(method_sources) operator(<<) ident(code)operator(\)) reserved(end) reserved(def) method(recognize)operator(()ident(request)operator(\)) ident(string_path) operator(=) ident(request)operator(.)ident(path) ident(string_path)operator(.)ident(chomp!) reserved(if) ident(string_path)operator([)integer(0)operator(]) operator(==) integer(?/) ident(path) operator(=) ident(string_path)operator(.)ident(split) string ident(path)operator(.)ident(shift) ident(hash) operator(=) ident(recognize_path)operator(()ident(path)operator(\)) reserved(return) ident(recognition_failed)operator(()ident(request)operator(\)) reserved(unless) ident(hash) operator(&&) ident(hash)operator([)stringoperator(]) ident(controller) operator(=) ident(hash)operator([)stringoperator(]) ident(hash)operator([)stringoperator(]) operator(=) ident(controller)operator(.)ident(controller_path) ident(request)operator(.)ident(path_parameters) operator(=) ident(hash) ident(controller)operator(.)ident(new) reserved(end) reserved(alias) symbol(:recognize!) symbol(:recognize) reserved(def) method(recognition_failed)operator(()ident(request)operator(\)) ident(raise) constant(ActionController)operator(::)constant(RoutingError)operator(,) stringdelimiter(")> reserved(end) reserved(def) method(write_recognition) ident(g) operator(=) ident(generator) operator(=) constant(CodeGeneration)operator(::)constant(RecognitionGenerator)operator(.)ident(new) ident(g)operator(.)ident(finish_statement) operator(=) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(hash_expr)operator(|) stringdelimiter(")>operator(}) ident(g)operator(.)ident(def) string reserved(do) ident(each) reserved(do) operator(|)ident(route)operator(|) ident(g) operator(<<) string ident(route)operator(.)ident(write_recognition)operator(()ident(g)operator(\)) reserved(end) reserved(end) ident(eval) ident(g)operator(.)ident(to_s)operator(,) pre_constant(nil)operator(,) string reserved(return) ident(g)operator(.)ident(to_s) reserved(end) reserved(def) method(generation_code_for)operator(()ident(ivar) operator(=) stringoperator(,) ident(method_name) operator(=) pre_constant(nil)operator(\)) ident(routes) operator(=) ident(instance_variable_get)operator(()string operator(+) ident(ivar)operator(\)) ident(key_ivar) operator(=) stringdelimiter(")> ident(instance_variable_set)operator(()ident(key_ivar)operator(,) ident(routes)operator(.)ident(collect) operator({)operator(|)ident(route)operator(|) ident(route)operator(.)ident(keys)operator(})operator(\)) ident(g) operator(=) ident(generator) operator(=) constant(CodeGeneration)operator(::)constant(GenerationGenerator)operator(.)ident(new) ident(g)operator(.)ident(def) stringcontent((merged, options, expire_on\))delimiter(")> reserved(do) ident(g) operator(<<) string ident(g) operator(<<) string ident(g) operator(<<) string ident(routes)operator(.)ident(each_with_index) reserved(do) operator(|)ident(route)operator(,) ident(index)operator(|) ident(g) operator(<<) stringcontent([)inlinecontent(])delimiter(")> ident(g) operator(<<) string ident(g)operator(.)ident(source)operator(.)ident(indent) reserved(do) reserved(if) ident(index)operator(.)ident(zero?) ident(g) operator(<<) string ident(g) operator(<<) string ident(route)operator(.)ident(write_generation)operator(()ident(g)operator(.)ident(dup)operator(\)) reserved(else) ident(g)operator(.)ident(if) string reserved(do) operator(|)ident(gp)operator(|) ident(gp) operator(<<) string ident(route)operator(.)ident(write_generation)operator(()ident(gp)operator(\)) reserved(end) reserved(end) reserved(end) ident(g)operator(.)ident(source)operator(.)ident(lines)operator(.)ident(last) operator(<<) string comment(# Add the closing brace to the end line) ident(g)operator(.)ident(if) string reserved(do) ident(g) operator(<<) string ident(g) operator(<<) string reserved(end) reserved(end) ident(g) operator(<<) string ident(g) operator(<<) string reserved(end) reserved(return) ident(g) reserved(end) reserved(def) method(categorize_routes) instance_variable(@categorized_routes) operator(=) ident(by_controller) operator(=) constant(Hash)operator(.)ident(new)operator(()pre_constant(self)operator(\)) ident(known_controllers)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(set) operator(=) ident(by_controller)operator([)ident(name)operator(]) operator(=) operator([)operator(]) ident(each) reserved(do) operator(|)ident(route)operator(|) ident(set) operator(<<) ident(route) reserved(if) ident(route)operator(.)ident(matches_controller?) ident(name) reserved(end) reserved(end) instance_variable(@categorized_routes) reserved(end) reserved(def) method(known_controllers) instance_variable(@routes)operator(.)ident(inject)operator(()operator([)operator(])operator(\)) reserved(do) operator(|)ident(known)operator(,) ident(route)operator(|) reserved(if) operator(()ident(controller) operator(=) ident(route)operator(.)ident(known)operator([)symbol(:controller)operator(])operator(\)) reserved(if) ident(controller)operator(.)ident(is_a?)operator(()constant(Regexp)operator(\)) ident(known) operator(<<) ident(controller)operator(.)ident(source)operator(.)ident(scan)operator(()regexpoperator(\))operator(.)ident(select) operator({)operator(|)ident(word)operator(|) ident(controller) operator(=)operator(~) ident(word)operator(}) reserved(else) ident(known) operator(<<) ident(controller) reserved(end) reserved(end) ident(known) reserved(end)operator(.)ident(uniq) reserved(end) reserved(def) method(reload) constant(NamedRoutes)operator(.)ident(clear) reserved(if) reserved(defined?)operator(()constant(RAILS_ROOT)operator(\)) reserved(then) ident(load)operator(()constant(File)operator(.)ident(join)operator(()constant(RAILS_ROOT)operator(,) stringoperator(,) stringoperator(\))operator(\)) reserved(else) ident(connect)operator(()stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) pre_constant(nil)operator(\)) reserved(end) constant(NamedRoutes)operator(.)ident(install) reserved(end) reserved(def) method(connect)operator(()operator(*)ident(args)operator(\)) ident(new_route) operator(=) constant(Route)operator(.)ident(new)operator(()operator(*)ident(args)operator(\)) instance_variable(@routes) operator(<<) ident(new_route) reserved(return) ident(new_route) reserved(end) reserved(def) method(draw) ident(old_routes) operator(=) instance_variable(@routes) instance_variable(@routes) operator(=) operator([)operator(]) reserved(begin) reserved(yield) pre_constant(self) reserved(rescue) instance_variable(@routes) operator(=) ident(old_routes) ident(raise) reserved(end) ident(write_generation) ident(write_recognition) reserved(end) reserved(def) method(empty?)operator(()operator(\)) instance_variable(@routes)operator(.)ident(empty?) reserved(end) reserved(def) method(each)operator(()operator(&)ident(block)operator(\)) instance_variable(@routes)operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) reserved(end) comment(# Defines a new named route with the provided name and arguments.) comment(# This method need only be used when you wish to use a name that a RouteSet instance) comment(# method exists for, such as categories.) comment(#) comment(# For example, map.categories '/categories', :controller => 'categories' will not work) comment(# due to RouteSet#categories.) reserved(def) method(named_route)operator(()ident(name)operator(,) ident(path)operator(,) ident(hash) operator(=) operator({)operator(})operator(\)) ident(route) operator(=) ident(connect)operator(()ident(path)operator(,) ident(hash)operator(\)) constant(NamedRoutes)operator(.)ident(name_route)operator(()ident(route)operator(,) ident(name)operator(\)) ident(route) reserved(end) reserved(def) method(method_missing)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) operator(()integer(1)operator(..)integer(2)operator(\))operator(.)ident(include?)operator(()ident(args)operator(.)ident(length)operator(\)) operator(?) ident(named_route)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) operator(:) reserved(super)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) reserved(end) reserved(def) method(extra_keys)operator(()ident(options)operator(,) ident(recall) operator(=) operator({)operator(})operator(\)) ident(generate)operator(()ident(options)operator(.)ident(dup)operator(,) ident(recall)operator(\))operator(.)ident(last) reserved(end) reserved(end) reserved(module) class(NamedRoutes) comment(#:nodoc:) constant(Helpers) operator(=) operator([)operator(]) reserved(class) operator(<<) class(self) reserved(def) method(clear)operator(()operator(\)) constant(Helpers)operator(.)ident(clear) reserved(end) reserved(def) method(hash_access_name)operator(()ident(name)operator(\)) stringcontent(_url)delimiter(")> reserved(end) reserved(def) method(url_helper_name)operator(()ident(name)operator(\)) stringcontent(_url)delimiter(")> reserved(end) reserved(def) method(known_hash_for_route)operator(()ident(route)operator(\)) ident(hash) operator(=) ident(route)operator(.)ident(known)operator(.)ident(symbolize_keys) ident(route)operator(.)ident(defaults)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) ident(hash)operator([)ident(key)operator(.)ident(to_sym)operator(]) operator(||=) ident(value) reserved(if) ident(value) reserved(end) ident(hash)operator([)symbol(:controller)operator(]) operator(=) stringdelimiter(")> ident(hash) reserved(end) reserved(def) method(define_hash_access_method)operator(()ident(route)operator(,) ident(name)operator(\)) ident(hash) operator(=) ident(known_hash_for_route)operator(()ident(route)operator(\)) ident(define_method)operator(()ident(hash_access_name)operator(()ident(name)operator(\))operator(\)) reserved(do) operator(|*)ident(args)operator(|) ident(args)operator(.)ident(first) operator(?) ident(hash)operator(.)ident(merge)operator(()ident(args)operator(.)ident(first)operator(\)) operator(:) ident(hash) reserved(end) reserved(end) reserved(def) method(name_route)operator(()ident(route)operator(,) ident(name)operator(\)) ident(define_hash_access_method)operator(()ident(route)operator(,) ident(name)operator(\)) ident(module_eval)operator(()stringcontent((options = )nesting_delimiter({)nesting_delimiter(})content(\) url_for()inlinecontent(.merge(options\)\) end)delimiter(})>operator(,) stringcontent(.rb)delimiter(")>operator(\)) ident(protected) ident(url_helper_name)operator(()ident(name)operator(\))operator(,) ident(hash_access_name)operator(()ident(name)operator(\)) constant(Helpers) operator(<<) ident(url_helper_name)operator(()ident(name)operator(\))operator(.)ident(to_sym) constant(Helpers) operator(<<) ident(hash_access_name)operator(()ident(name)operator(\))operator(.)ident(to_sym) constant(Helpers)operator(.)ident(uniq!) reserved(end) reserved(def) method(install)operator(()ident(cls) operator(=) constant(ActionController)operator(::)constant(Base)operator(\)) ident(cls)operator(.)ident(send) symbol(:include)operator(,) pre_constant(self) reserved(if) ident(cls)operator(.)ident(respond_to?) symbol(:helper_method) constant(Helpers)operator(.)ident(each) reserved(do) operator(|)ident(helper_name)operator(|) ident(cls)operator(.)ident(send) symbol(:helper_method)operator(,) ident(helper_name) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) constant(Routes) operator(=) constant(RouteSet)operator(.)ident(new) reserved(end) reserved(end) reserved(module) class(ActionController) reserved(module) class(Scaffolding) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# Scaffolding is a way to quickly put an Active Record class online by providing a series of standardized actions) comment(# for listing, showing, creating, updating, and destroying objects of the class. These standardized actions come) comment(# with both controller logic and default templates that through introspection already know which fields to display) comment(# and which input types to use. Example:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# scaffold :entry) comment(# end) comment(#) comment(# This tiny piece of code will add all of the following methods to the controller:) comment(#) comment(# class WeblogController < ActionController::Base) comment(# verify :method => :post, :only => [ :destroy, :create, :update ],) comment(# :redirect_to => { :action => :list }) comment(#) comment(# def index) comment(# list) comment(# end) comment(#) comment(# def list) comment(# @entries = Entry.find_all) comment(# render_scaffold "list") comment(# end) comment(# ) comment(# def show) comment(# @entry = Entry.find(params[:id]\)) comment(# render_scaffold) comment(# end) comment(# ) comment(# def destroy) comment(# Entry.find(params[:id]\).destroy) comment(# redirect_to :action => "list") comment(# end) comment(# ) comment(# def new) comment(# @entry = Entry.new) comment(# render_scaffold) comment(# end) comment(# ) comment(# def create) comment(# @entry = Entry.new(params[:entry]\)) comment(# if @entry.save) comment(# flash[:notice] = "Entry was successfully created") comment(# redirect_to :action => "list") comment(# else) comment(# render_scaffold('new'\)) comment(# end) comment(# end) comment(# ) comment(# def edit) comment(# @entry = Entry.find(params[:id]\)) comment(# render_scaffold) comment(# end) comment(# ) comment(# def update) comment(# @entry = Entry.find(params[:id]\)) comment(# @entry.attributes = params[:entry]) comment(# ) comment(# if @entry.save) comment(# flash[:notice] = "Entry was successfully updated") comment(# redirect_to :action => "show", :id => @entry) comment(# else) comment(# render_scaffold('edit'\)) comment(# end) comment(# end) comment(# end) comment(#) comment(# The render_scaffold method will first check to see if you've made your own template (like "weblog/show.rhtml" for ) comment(# the show action\) and if not, then render the generic template for that action. This gives you the possibility of using the ) comment(# scaffold while you're building your specific application. Start out with a totally generic setup, then replace one template ) comment(# and one action at a time while relying on the rest of the scaffolded templates and actions.) reserved(module) class(ClassMethods) comment(# Adds a swath of generic CRUD actions to the controller. The +model_id+ is automatically converted into a class name unless) comment(# one is specifically provide through options[:class_name]. So scaffold :post would use Post as the class) comment(# and @post/@posts for the instance variables.) comment(# ) comment(# It's possible to use more than one scaffold in a single controller by specifying options[:suffix] = true. This will) comment(# make scaffold :post, :suffix => true use method names like list_post, show_post, and create_post ) comment(# instead of just list, show, and post. If suffix is used, then no index method is added.) reserved(def) method(scaffold)operator(()ident(model_id)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator(.)ident(assert_valid_keys)operator(()symbol(:class_name)operator(,) symbol(:suffix)operator(\)) ident(singular_name) operator(=) ident(model_id)operator(.)ident(to_s) ident(class_name) operator(=) ident(options)operator([)symbol(:class_name)operator(]) operator(||) ident(singular_name)operator(.)ident(camelize) ident(plural_name) operator(=) ident(singular_name)operator(.)ident(pluralize) ident(suffix) operator(=) ident(options)operator([)symbol(:suffix)operator(]) operator(?) stringdelimiter(")> operator(:) string reserved(unless) ident(options)operator([)symbol(:suffix)operator(]) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)string reserved(end) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)string :post, :only => [ :destroy)inlinecontent(, :create)inlinecontent(, :update)inlinecontent( ], :redirect_to => { :action => :list)inlinecontent( } def list)inlinecontent( @)inlinecontent(_pages, @)inlinecontent( = paginate :)inlinecontent(, :per_page => 10 render)inlinecontent(_scaffold "list)inlinecontent(" end def show)inlinecontent( @)inlinecontent( = )inlinecontent(.find(params[:id]\) render)inlinecontent(_scaffold end def destroy)inlinecontent( )inlinecontent(.find(params[:id]\).destroy redirect_to :action => "list)inlinecontent(" end def new)inlinecontent( @)inlinecontent( = )inlinecontent(.new render)inlinecontent(_scaffold end def create)inlinecontent( @)inlinecontent( = )inlinecontent(.new(params[:)inlinecontent(]\) if @)inlinecontent(.save flash[:notice] = ")inlinecontent( was successfully created" redirect_to :action => "list)inlinecontent(" else render)inlinecontent(_scaffold('new'\) end end def edit)inlinecontent( @)inlinecontent( = )inlinecontent(.find(params[:id]\) render)inlinecontent(_scaffold end def update)inlinecontent( @)inlinecontent( = )inlinecontent(.find(params[:id]\) @)inlinecontent(.attributes = params[:)inlinecontent(] if @)inlinecontent(.save flash[:notice] = ")inlinecontent( was successfully updated" redirect_to :action => "show)inlinecontent(", :id => @)inlinecontent( else render)inlinecontent(_scaffold('edit'\) end end private def render)inlinecontent(_scaffold(action=nil\) action ||= caller_method_name(caller\) # logger.info ("testing template:" + ")char(\\#)content({self.class.controller_path}/)char(\\#)content({action}"\) if logger if template_exists?(")char(\\#)content({self.class.controller_path}/)char(\\#)content({action}"\) render_action(action\) else @scaffold_class = )inlinecontent( @scaffold_singular_name, @scaffold_plural_name = ")inlinecontent(", ")inlinecontent(" @scaffold_suffix = ")inlinecontent(" add_instance_variables_to_assigns @template.instance_variable_set("@content_for_layout", @template.render_file(scaffold_path(action.sub(/)inlinecontent($/, ""\)\), false\)\) if !active_layout.nil? render_file(active_layout, nil, true\) else render_file(scaffold_path("layout"\)\) end end end def scaffold_path(template_name\) File.dirname(__FILE__\) + "/templates/scaffolds/" + template_name + ".rhtml" end def caller_method_name(caller\) caller.first.scan(/`(.*\)'/\).first.first # ' ruby-mode end)delimiter( end_eval)> reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(CGI) reserved(class) class(Session) comment(# Return this session's underlying Session instance. Useful for the DB-backed session stores.) reserved(def) method(model) instance_variable(@dbman)operator(.)ident(model) reserved(if) instance_variable(@dbman) reserved(end) comment(# A session store backed by an Active Record class. A default class is) comment(# provided, but any object duck-typing to an Active Record +Session+ class) comment(# with text +session_id+ and +data+ attributes is sufficient.) comment(#) comment(# The default assumes a +sessions+ tables with columns:) comment(# +id+ (numeric primary key\),) comment(# +session_id+ (text, or longtext if your session data exceeds 65K\), and) comment(# +data+ (text or longtext; careful if your session data exceeds 65KB\).) comment(# The +session_id+ column should always be indexed for speedy lookups.) comment(# Session data is marshaled to the +data+ column in Base64 format.) comment(# If the data you write is larger than the column's size limit,) comment(# ActionController::SessionOverflowError will be raised.) comment(#) comment(# You may configure the table name, primary key, and data column.) comment(# For example, at the end of config/environment.rb:) comment(# CGI::Session::ActiveRecordStore::Session.table_name = 'legacy_session_table') comment(# CGI::Session::ActiveRecordStore::Session.primary_key = 'session_id') comment(# CGI::Session::ActiveRecordStore::Session.data_column_name = 'legacy_session_data') comment(# Note that setting the primary key to the session_id frees you from) comment(# having a separate id column if you don't want it. However, you must) comment(# set session.model.id = session.session_id by hand! A before_filter) comment(# on ApplicationController is a good place.) comment(#) comment(# Since the default class is a simple Active Record, you get timestamps) comment(# for free if you add +created_at+ and +updated_at+ datetime columns to) comment(# the +sessions+ table, making periodic session expiration a snap.) comment(#) comment(# You may provide your own session class implementation, whether a) comment(# feature-packed Active Record or a bare-metal high-performance SQL) comment(# store, by setting) comment(# +CGI::Session::ActiveRecordStore.session_class = MySessionClass+) comment(# You must implement these methods:) comment(# self.find_by_session_id(session_id\)) comment(# initialize(hash_of_session_id_and_data\)) comment(# attr_reader :session_id) comment(# attr_accessor :data) comment(# save) comment(# destroy) comment(#) comment(# The example SqlBypass class is a generic SQL session store. You may) comment(# use it as a basis for high-performance database-specific stores.) reserved(class) class(ActiveRecordStore) comment(# The default Active Record class.) reserved(class) class(Session) operator(<) constant(ActiveRecord)operator(::)constant(Base) comment(# Customizable data column name. Defaults to 'data'.) ident(cattr_accessor) symbol(:data_column_name) pre_constant(self)operator(.)ident(data_column_name) operator(=) string ident(before_save) symbol(:marshal_data!) ident(before_save) symbol(:raise_on_session_data_overflow!) reserved(class) operator(<<) class(self) comment(# Don't try to reload ARStore::Session in dev mode.) reserved(def) method(reloadable?) comment(#:nodoc:) pre_constant(false) reserved(end) reserved(def) method(data_column_size_limit) instance_variable(@data_column_size_limit) operator(||=) ident(columns_hash)operator([)class_variable(@@data_column_name)operator(])operator(.)ident(limit) reserved(end) comment(# Hook to set up sessid compatibility.) reserved(def) method(find_by_session_id)operator(()ident(session_id)operator(\)) ident(setup_sessid_compatibility!) ident(find_by_session_id)operator(()ident(session_id)operator(\)) reserved(end) reserved(def) method(marshal)operator(()ident(data)operator(\)) constant(Base64)operator(.)ident(encode64)operator(()constant(Marshal)operator(.)ident(dump)operator(()ident(data)operator(\))operator(\)) reserved(if) ident(data) reserved(end) reserved(def) method(unmarshal)operator(()ident(data)operator(\)) constant(Marshal)operator(.)ident(load)operator(()constant(Base64)operator(.)ident(decode64)operator(()ident(data)operator(\))operator(\)) reserved(if) ident(data) reserved(end) reserved(def) method(create_table!) ident(connection)operator(.)ident(execute) stringstringcontent( ( id INTEGER PRIMARY KEY, )inlineoperator(\))inline_delimiter(})>content( TEXT UNIQUE, )inlinecontent( TEXT(255\) \))delimiter( end_sql)> reserved(end) reserved(def) method(drop_table!) ident(connection)operator(.)ident(execute) stringdelimiter(")> reserved(end) ident(private) comment(# Compatibility with tables using sessid instead of session_id.) reserved(def) method(setup_sessid_compatibility!) comment(# Reset column info since it may be stale.) ident(reset_column_information) reserved(if) ident(columns_hash)operator([)stringoperator(]) reserved(def) pre_constant(self)operator(.)method(find_by_session_id)operator(()operator(*)ident(args)operator(\)) ident(find_by_sessid)operator(()operator(*)ident(args)operator(\)) reserved(end) ident(define_method)operator(()symbol(:session_id)operator(\)) operator({) ident(sessid) operator(}) ident(define_method)operator(()symbol(:session_id=)operator(\)) operator({) operator(|)ident(session_id)operator(|) pre_constant(self)operator(.)ident(sessid) operator(=) ident(session_id) operator(}) reserved(else) reserved(def) pre_constant(self)operator(.)method(find_by_session_id)operator(()ident(session_id)operator(\)) ident(find) symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringdelimiter(")>operator(,) ident(session_id)operator(]) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Lazy-unmarshal session state.) reserved(def) method(data) instance_variable(@data) operator(||=) pre_constant(self)operator(.)ident(class)operator(.)ident(unmarshal)operator(()ident(read_attribute)operator(()class_variable(@@data_column_name)operator(\))operator(\)) operator(||) operator({)operator(}) reserved(end) comment(# Has the session been loaded yet?) reserved(def) method(loaded?) operator(!)operator(!) instance_variable(@data) reserved(end) ident(private) ident(attr_writer) symbol(:data) reserved(def) method(marshal_data!) reserved(return) pre_constant(false) reserved(if) operator(!)ident(loaded?) ident(write_attribute)operator(()class_variable(@@data_column_name)operator(,) pre_constant(self)operator(.)ident(class)operator(.)ident(marshal)operator(()pre_constant(self)operator(.)ident(data)operator(\))operator(\)) reserved(end) comment(# Ensures that the data about to be stored in the database is not) comment(# larger than the data storage column. Raises) comment(# ActionController::SessionOverflowError.) reserved(def) method(raise_on_session_data_overflow!) reserved(return) pre_constant(false) reserved(if) operator(!)ident(loaded?) ident(limit) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(data_column_size_limit) reserved(if) ident(loaded?) reserved(and) ident(limit) reserved(and) ident(read_attribute)operator(()class_variable(@@data_column_name)operator(\))operator(.)ident(size) operator(>) ident(limit) ident(raise) constant(ActionController)operator(::)constant(SessionOverflowError) reserved(end) reserved(end) reserved(end) comment(# A barebones session store which duck-types with the default session) comment(# store but bypasses Active Record and issues SQL directly. This is) comment(# an example session model class meant as a basis for your own classes.) comment(#) comment(# The database connection, table name, and session id and data columns) comment(# are configurable class attributes. Marshaling and unmarshaling) comment(# are implemented as class methods that you may override. By default,) comment(# marshaling data is +Base64.encode64(Marshal.dump(data\)\)+ and) comment(# unmarshaling data is +Marshal.load(Base64.decode64(data\)\)+.) comment(#) comment(# This marshaling behavior is intended to store the widest range of) comment(# binary session data in a +text+ column. For higher performance,) comment(# store in a +blob+ column instead and forgo the Base64 encoding.) reserved(class) class(SqlBypass) comment(# Use the ActiveRecord::Base.connection by default.) ident(cattr_accessor) symbol(:connection) comment(# The table name defaults to 'sessions'.) ident(cattr_accessor) symbol(:table_name) class_variable(@@table_name) operator(=) string comment(# The session id field defaults to 'session_id'.) ident(cattr_accessor) symbol(:session_id_column) class_variable(@@session_id_column) operator(=) string comment(# The data field defaults to 'data'.) ident(cattr_accessor) symbol(:data_column) class_variable(@@data_column) operator(=) string reserved(class) operator(<<) class(self) reserved(def) method(connection) class_variable(@@connection) operator(||=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) reserved(end) comment(# Look up a session by id and unmarshal its data if found.) reserved(def) method(find_by_session_id)operator(()ident(session_id)operator(\)) reserved(if) ident(record) operator(=) class_variable(@@connection)operator(.)ident(select_one)operator(()stringcontent( WHERE )inlinecontent(=)inlinedelimiter(")>operator(\)) ident(new)operator(()symbol(:session_id) operator(=)operator(>) ident(session_id)operator(,) symbol(:marshaled_data) operator(=)operator(>) ident(record)operator([)stringoperator(])operator(\)) reserved(end) reserved(end) reserved(def) method(marshal)operator(()ident(data)operator(\)) constant(Base64)operator(.)ident(encode64)operator(()constant(Marshal)operator(.)ident(dump)operator(()ident(data)operator(\))operator(\)) reserved(if) ident(data) reserved(end) reserved(def) method(unmarshal)operator(()ident(data)operator(\)) constant(Marshal)operator(.)ident(load)operator(()constant(Base64)operator(.)ident(decode64)operator(()ident(data)operator(\))operator(\)) reserved(if) ident(data) reserved(end) reserved(def) method(create_table!) class_variable(@@connection)operator(.)ident(execute) stringstringcontent( ( id INTEGER PRIMARY KEY, )inlinecontent( TEXT UNIQUE, )inlinecontent( TEXT \))delimiter( end_sql)> reserved(end) reserved(def) method(drop_table!) class_variable(@@connection)operator(.)ident(execute) stringdelimiter(")> reserved(end) reserved(end) ident(attr_reader) symbol(:session_id) ident(attr_writer) symbol(:data) comment(# Look for normal and marshaled data, self.find_by_session_id's way of) comment(# telling us to postpone unmarshaling until the data is requested.) comment(# We need to handle a normal data attribute in case of a new record.) reserved(def) method(initialize)operator(()ident(attributes)operator(\)) instance_variable(@session_id)operator(,) instance_variable(@data)operator(,) instance_variable(@marshaled_data) operator(=) ident(attributes)operator([)symbol(:session_id)operator(])operator(,) ident(attributes)operator([)symbol(:data)operator(])operator(,) ident(attributes)operator([)symbol(:marshaled_data)operator(]) instance_variable(@new_record) operator(=) instance_variable(@marshaled_data)operator(.)ident(nil?) reserved(end) reserved(def) method(new_record?) instance_variable(@new_record) reserved(end) comment(# Lazy-unmarshal session state.) reserved(def) method(data) reserved(unless) instance_variable(@data) reserved(if) instance_variable(@marshaled_data) instance_variable(@data)operator(,) instance_variable(@marshaled_data) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(unmarshal)operator(()instance_variable(@marshaled_data)operator(\)) operator(||) operator({)operator(})operator(,) pre_constant(nil) reserved(else) instance_variable(@data) operator(=) operator({)operator(}) reserved(end) reserved(end) instance_variable(@data) reserved(end) reserved(def) method(loaded?) operator(!)operator(!) instance_variable(@data) reserved(end) reserved(def) method(save) reserved(return) pre_constant(false) reserved(if) operator(!)ident(loaded?) ident(marshaled_data) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(marshal)operator(()ident(data)operator(\)) reserved(if) instance_variable(@new_record) instance_variable(@new_record) operator(=) pre_constant(false) class_variable(@@connection)operator(.)ident(update) stringoperator(,) stringstringcontent( ( )inlinecontent(, )inlinecontent( \) VALUES ( )inlinecontent(, )inlinecontent( \))delimiter( end_sql)> reserved(else) class_variable(@@connection)operator(.)ident(update) stringoperator(,) stringstringcontent( SET )inlinecontent(=)inlinecontent( WHERE )inlinecontent(=)inlinedelimiter( end_sql)> reserved(end) reserved(end) reserved(def) method(destroy) reserved(unless) instance_variable(@new_record) class_variable(@@connection)operator(.)ident(delete) stringoperator(,) stringstringcontent( WHERE )inlinecontent(=)inlinedelimiter( end_sql)> reserved(end) reserved(end) reserved(end) comment(# The class used for session storage. Defaults to) comment(# CGI::Session::ActiveRecordStore::Session.) ident(cattr_accessor) symbol(:session_class) pre_constant(self)operator(.)ident(session_class) operator(=) constant(Session) comment(# Find or instantiate a session given a CGI::Session.) reserved(def) method(initialize)operator(()ident(session)operator(,) ident(option) operator(=) pre_constant(nil)operator(\)) ident(session_id) operator(=) ident(session)operator(.)ident(session_id) reserved(unless) instance_variable(@session) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(silence) operator({) class_variable(@@session_class)operator(.)ident(find_by_session_id)operator(()ident(session_id)operator(\)) operator(}) reserved(unless) ident(session)operator(.)ident(new_session) ident(raise) constant(CGI)operator(::)constant(Session)operator(::)constant(NoSession)operator(,) string reserved(end) instance_variable(@session) operator(=) class_variable(@@session_class)operator(.)ident(new)operator(()symbol(:session_id) operator(=)operator(>) ident(session_id)operator(,) symbol(:data) operator(=)operator(>) operator({)operator(})operator(\)) comment(# session saving can be lazy again, because of improved component implementation) comment(# therefore next line gets commented out:) comment(# @session.save) reserved(end) reserved(end) comment(# Access the underlying session model.) reserved(def) method(model) instance_variable(@session) reserved(end) comment(# Restore session state. The session model handles unmarshaling.) reserved(def) method(restore) reserved(if) instance_variable(@session) instance_variable(@session)operator(.)ident(data) reserved(end) reserved(end) comment(# Save session store.) reserved(def) method(update) reserved(if) instance_variable(@session) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(silence) operator({) instance_variable(@session)operator(.)ident(save) operator(}) reserved(end) reserved(end) comment(# Save and close the session store.) reserved(def) method(close) reserved(if) instance_variable(@session) ident(update) instance_variable(@session) operator(=) pre_constant(nil) reserved(end) reserved(end) comment(# Delete and close the session store.) reserved(def) method(delete) reserved(if) instance_variable(@session) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(silence) operator({) instance_variable(@session)operator(.)ident(destroy) operator(}) instance_variable(@session) operator(=) pre_constant(nil) reserved(end) reserved(end) ident(protected) reserved(def) method(logger) constant(ActionController)operator(::)constant(Base)operator(.)ident(logger) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(end) reserved(end) doctype(#!/usr/local/bin/ruby -w) comment(# This is a really simple session storage daemon, basically just a hash, ) comment(# which is enabled for DRb access.) ident(require) string ident(session_hash) operator(=) constant(Hash)operator(.)ident(new) ident(session_hash)operator(.)ident(instance_eval) operator({) instance_variable(@mutex) operator(=) constant(Mutex)operator(.)ident(new) operator(}) reserved(class) operator(<<)class(session_hash) reserved(def) method([]=)operator(()ident(key)operator(,) ident(value)operator(\)) instance_variable(@mutex)operator(.)ident(synchronize) reserved(do) reserved(super)operator(()ident(key)operator(,) ident(value)operator(\)) reserved(end) reserved(end) reserved(def) method([])operator(()ident(key)operator(\)) instance_variable(@mutex)operator(.)ident(synchronize) reserved(do) reserved(super)operator(()ident(key)operator(\)) reserved(end) reserved(end) reserved(def) method(delete)operator(()ident(key)operator(\)) instance_variable(@mutex)operator(.)ident(synchronize) reserved(do) reserved(super)operator(()ident(key)operator(\)) reserved(end) reserved(end) reserved(end) constant(DRb)operator(.)ident(start_service)operator(()stringoperator(,) ident(session_hash)operator(\)) constant(DRb)operator(.)ident(thread)operator(.)ident(joinrequire) string ident(require) string ident(require) string reserved(class) class(CGI) comment(#:nodoc:all) reserved(class) class(Session) reserved(class) class(DRbStore) class_variable(@@session_data) operator(=) constant(DRbObject)operator(.)ident(new)operator(()pre_constant(nil)operator(,) stringoperator(\)) reserved(def) method(initialize)operator(()ident(session)operator(,) ident(option)operator(=)pre_constant(nil)operator(\)) instance_variable(@session_id) operator(=) ident(session)operator(.)ident(session_id) reserved(end) reserved(def) method(restore) instance_variable(@h) operator(=) class_variable(@@session_data)operator([)instance_variable(@session_id)operator(]) operator(||) operator({)operator(}) reserved(end) reserved(def) method(update) class_variable(@@session_data)operator([)instance_variable(@session_id)operator(]) operator(=) instance_variable(@h) reserved(end) reserved(def) method(close) ident(update) reserved(end) reserved(def) method(delete) class_variable(@@session_data)operator(.)ident(delete)operator(()instance_variable(@session_id)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) comment(# cgi/session/memcached.rb - persistent storage of marshalled session data) comment(#) comment(# == Overview) comment(#) comment(# This file provides the CGI::Session::MemCache class, which builds) comment(# persistence of storage data on top of the MemCache library. See) comment(# cgi/session.rb for more details on session storage managers.) comment(#) reserved(begin) ident(require) string ident(require) string reserved(class) class(CGI) reserved(class) class(Session) comment(# MemCache-based session storage class.) comment(#) comment(# This builds upon the top-level MemCache class provided by the) comment(# library file memcache.rb. Session data is marshalled and stored) comment(# in a memcached cache.) reserved(class) class(MemCacheStore) reserved(def) method(check_id)operator(()ident(id)operator(\)) comment(#:nodoc:#) regexp operator(=)operator(~) ident(id)operator(.)ident(to_s) operator(?) pre_constant(false) operator(:) pre_constant(true) reserved(end) comment(# Create a new CGI::Session::MemCache instance) comment(#) comment(# This constructor is used internally by CGI::Session. The) comment(# user does not generally need to call it directly.) comment(#) comment(# +session+ is the session for which this instance is being) comment(# created. The session id must only contain alphanumeric) comment(# characters; automatically generated session ids observe) comment(# this requirement.) comment(#) comment(# +options+ is a hash of options for the initializer. The) comment(# following options are recognized:) comment(#) comment(# cache:: an instance of a MemCache client to use as the) comment(# session cache.) comment(#) comment(# expires:: an expiry time value to use for session entries in) comment(# the session cache. +expires+ is interpreted in seconds) comment(# relative to the current time if it’s less than 60*60*24*30) comment(# (30 days\), or as an absolute Unix time (e.g., Time#to_i\) if) comment(# greater. If +expires+ is +0+, or not passed on +options+,) comment(# the entry will never expire.) comment(#) comment(# This session's memcache entry will be created if it does) comment(# not exist, or retrieved if it does.) reserved(def) method(initialize)operator(()ident(session)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(id) operator(=) ident(session)operator(.)ident(session_id) reserved(unless) ident(check_id)operator(()ident(id)operator(\)) ident(raise) constant(ArgumentError)operator(,) string operator(%) ident(id) reserved(end) instance_variable(@cache) operator(=) ident(options)operator([)stringoperator(]) operator(||) constant(MemCache)operator(.)ident(new)operator(()stringoperator(\)) instance_variable(@expires) operator(=) ident(options)operator([)stringoperator(]) operator(||) integer(0) instance_variable(@session_key) operator(=) stringdelimiter(")> instance_variable(@session_data) operator(=) operator({)operator(}) reserved(end) comment(# Restore session state from the session's memcache entry.) comment(#) comment(# Returns the session state as a hash.) reserved(def) method(restore) reserved(begin) instance_variable(@session_data) operator(=) instance_variable(@cache)operator([)instance_variable(@session_key)operator(]) operator(||) operator({)operator(}) reserved(rescue) instance_variable(@session_data) operator(=) operator({)operator(}) reserved(end) reserved(end) comment(# Save session state to the session's memcache entry.) reserved(def) method(update) reserved(begin) instance_variable(@cache)operator(.)ident(set)operator(()instance_variable(@session_key)operator(,) instance_variable(@session_data)operator(,) instance_variable(@expires)operator(\)) reserved(rescue) comment(# Ignore session update failures.) reserved(end) reserved(end) comment(# Update and close the session's memcache entry.) reserved(def) method(close) ident(update) reserved(end) comment(# Delete the session's memcache entry.) reserved(def) method(delete) reserved(begin) instance_variable(@cache)operator(.)ident(delete)operator(()instance_variable(@session_key)operator(\)) reserved(rescue) comment(# Ignore session delete failures.) reserved(end) instance_variable(@session_data) operator(=) operator({)operator(}) reserved(end) reserved(end) reserved(end) reserved(end) reserved(rescue) constant(LoadError) comment(# MemCache wasn't available so neither can the store be) reserved(end) ident(require) string ident(require) string reserved(if) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:ActiveRecord)operator(\)) ident(require) string reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) reserved(module) class(SessionManagement) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(send) symbol(:alias_method)operator(,) symbol(:process_without_session_management_support)operator(,) symbol(:process) ident(base)operator(.)ident(send) symbol(:alias_method)operator(,) symbol(:process)operator(,) symbol(:process_with_session_management_support) ident(base)operator(.)ident(send) symbol(:alias_method)operator(,) symbol(:process_cleanup_without_session_management_support)operator(,) symbol(:process_cleanup) ident(base)operator(.)ident(send) symbol(:alias_method)operator(,) symbol(:process_cleanup)operator(,) symbol(:process_cleanup_with_session_management_support) reserved(end) reserved(module) class(ClassMethods) comment(# Set the session store to be used for keeping the session data between requests. The default is using the) comment(# file system, but you can also specify one of the other included stores (:active_record_store, :drb_store, ) comment(# :mem_cache_store, or :memory_store\) or use your own class.) reserved(def) method(session_store=)operator(()ident(store)operator(\)) constant(ActionController)operator(::)constant(CgiRequest)operator(::)constant(DEFAULT_SESSION_OPTIONS)operator([)symbol(:database_manager)operator(]) operator(=) ident(store)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) operator(?) constant(CGI)operator(::)constant(Session)operator(.)ident(const_get)operator(()ident(store) operator(==) symbol(:drb_store) operator(?) string operator(:) ident(store)operator(.)ident(to_s)operator(.)ident(camelize)operator(\)) operator(:) ident(store) reserved(end) comment(# Returns the session store class currently used.) reserved(def) method(session_store) constant(ActionController)operator(::)constant(CgiRequest)operator(::)constant(DEFAULT_SESSION_OPTIONS)operator([)symbol(:database_manager)operator(]) reserved(end) comment(# Returns the hash used to configure the session. Example use:) comment(#) comment(# ActionController::Base.session_options[:session_secure] = true # session only available over HTTPS) reserved(def) method(session_options) constant(ActionController)operator(::)constant(CgiRequest)operator(::)constant(DEFAULT_SESSION_OPTIONS) reserved(end) comment(# Specify how sessions ought to be managed for a subset of the actions on) comment(# the controller. Like filters, you can specify :only and) comment(# :except clauses to restrict the subset, otherwise options) comment(# apply to all actions on this controller.) comment(#) comment(# The session options are inheritable, as well, so if you specify them in) comment(# a parent controller, they apply to controllers that extend the parent.) comment(#) comment(# Usage:) comment(#) comment(# # turn off session management for all actions.) comment(# session :off) comment(#) comment(# # turn off session management for all actions _except_ foo and bar.) comment(# session :off, :except => %w(foo bar\)) comment(#) comment(# # turn off session management for only the foo and bar actions.) comment(# session :off, :only => %w(foo bar\)) comment(#) comment(# # the session will only work over HTTPS, but only for the foo action) comment(# session :only => :foo, :session_secure => true) comment(#) comment(# # the session will only be disabled for 'foo', and only if it is) comment(# # requested as a web service) comment(# session :off, :only => :foo,) comment(# :if => Proc.new { |req| req.parameters[:ws] }) comment(#) comment(# All session options described for ActionController::Base.process_cgi) comment(# are valid arguments.) reserved(def) method(session)operator(()operator(*)ident(args)operator(\)) ident(options) operator(=) constant(Hash) operator(===) ident(args)operator(.)ident(last) operator(?) ident(args)operator(.)ident(pop) operator(:) operator({)operator(}) ident(options)operator([)symbol(:disabled)operator(]) operator(=) pre_constant(true) reserved(if) operator(!)ident(args)operator(.)ident(empty?) ident(options)operator([)symbol(:only)operator(]) operator(=) operator([)operator(*)ident(options)operator([)symbol(:only)operator(])operator(])operator(.)ident(map) operator({) operator(|)ident(o)operator(|) ident(o)operator(.)ident(to_s) operator(}) reserved(if) ident(options)operator([)symbol(:only)operator(]) ident(options)operator([)symbol(:except)operator(]) operator(=) operator([)operator(*)ident(options)operator([)symbol(:except)operator(])operator(])operator(.)ident(map) operator({) operator(|)ident(o)operator(|) ident(o)operator(.)ident(to_s) operator(}) reserved(if) ident(options)operator([)symbol(:except)operator(]) reserved(if) ident(options)operator([)symbol(:only)operator(]) operator(&&) ident(options)operator([)symbol(:except)operator(]) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(write_inheritable_array)operator(()stringoperator(,) operator([)ident(options)operator(])operator(\)) reserved(end) reserved(def) method(cached_session_options) comment(#:nodoc:) instance_variable(@session_options) operator(||=) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator([)operator(]) reserved(end) reserved(def) method(session_options_for)operator(()ident(request)operator(,) ident(action)operator(\)) comment(#:nodoc:) reserved(if) operator(()ident(session_options) operator(=) ident(cached_session_options)operator(\))operator(.)ident(empty?) operator({)operator(}) reserved(else) ident(options) operator(=) operator({)operator(}) ident(action) operator(=) ident(action)operator(.)ident(to_s) ident(session_options)operator(.)ident(each) reserved(do) operator(|)ident(opts)operator(|) reserved(next) reserved(if) ident(opts)operator([)symbol(:if)operator(]) operator(&&) operator(!)ident(opts)operator([)symbol(:if)operator(])operator(.)ident(call)operator(()ident(request)operator(\)) reserved(if) ident(opts)operator([)symbol(:only)operator(]) operator(&&) ident(opts)operator([)symbol(:only)operator(])operator(.)ident(include?)operator(()ident(action)operator(\)) ident(options)operator(.)ident(merge!)operator(()ident(opts)operator(\)) reserved(elsif) ident(opts)operator([)symbol(:except)operator(]) operator(&&) operator(!)ident(opts)operator([)symbol(:except)operator(])operator(.)ident(include?)operator(()ident(action)operator(\)) ident(options)operator(.)ident(merge!)operator(()ident(opts)operator(\)) reserved(elsif) operator(!)ident(opts)operator([)symbol(:only)operator(]) operator(&&) operator(!)ident(opts)operator([)symbol(:except)operator(]) ident(options)operator(.)ident(merge!)operator(()ident(opts)operator(\)) reserved(end) reserved(end) reserved(if) ident(options)operator(.)ident(empty?) reserved(then) ident(options) reserved(else) ident(options)operator(.)ident(delete) symbol(:only) ident(options)operator(.)ident(delete) symbol(:except) ident(options)operator(.)ident(delete) symbol(:if) ident(options)operator([)symbol(:disabled)operator(]) operator(?) pre_constant(false) operator(:) ident(options) reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) method(process_with_session_management_support)operator(()ident(request)operator(,) ident(response)operator(,) ident(method) operator(=) symbol(:perform_action)operator(,) operator(*)ident(arguments)operator(\)) comment(#:nodoc:) ident(set_session_options)operator(()ident(request)operator(\)) ident(process_without_session_management_support)operator(()ident(request)operator(,) ident(response)operator(,) ident(method)operator(,) operator(*)ident(arguments)operator(\)) reserved(end) ident(private) reserved(def) method(set_session_options)operator(()ident(request)operator(\)) ident(request)operator(.)ident(session_options) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(session_options_for)operator(()ident(request)operator(,) ident(request)operator(.)ident(parameters)operator([)stringoperator(]) operator(||) stringoperator(\)) reserved(end) reserved(def) method(process_cleanup_with_session_management_support) ident(process_cleanup_without_session_management_support) ident(clear_persistent_model_associations) reserved(end) comment(# Clear cached associations in session data so they don't overflow) comment(# the database field. Only applies to ActiveRecordStore since there) comment(# is not a standard way to iterate over session data.) reserved(def) method(clear_persistent_model_associations) comment(#:doc:) reserved(if) reserved(defined?)operator(()instance_variable(@session)operator(\)) operator(&&) instance_variable(@session)operator(.)ident(instance_variables)operator(.)ident(include?)operator(()stringoperator(\)) ident(session_data) operator(=) instance_variable(@session)operator(.)ident(instance_variable_get)operator(()stringoperator(\)) reserved(if) ident(session_data) operator(&&) ident(session_data)operator(.)ident(respond_to?)operator(()symbol(:each_value)operator(\)) ident(session_data)operator(.)ident(each_value) reserved(do) operator(|)ident(obj)operator(|) ident(obj)operator(.)ident(clear_association_cache) reserved(if) ident(obj)operator(.)ident(respond_to?)operator(()symbol(:clear_association_cache)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(#:nodoc:) comment(# Methods for sending files and streams to the browser instead of rendering.) reserved(module) class(Streaming) constant(DEFAULT_SEND_FILE_OPTIONS) operator(=) operator({) symbol(:type) operator(=)operator(>) stringoperator(.)ident(freeze)operator(,) symbol(:disposition) operator(=)operator(>) stringoperator(.)ident(freeze)operator(,) symbol(:stream) operator(=)operator(>) pre_constant(true)operator(,) symbol(:buffer_size) operator(=)operator(>) integer(4096) operator(})operator(.)ident(freeze) ident(protected) comment(# Sends the file by streaming it 4096 bytes at a time. This way the) comment(# whole file doesn't need to be read into memory at once. This makes) comment(# it feasible to send even large files.) comment(#) comment(# Be careful to sanitize the path parameter if it coming from a web) comment(# page. send_file(params[:path]\) allows a malicious user to) comment(# download any file on your server.) comment(#) comment(# Options:) comment(# * :filename - suggests a filename for the browser to use.) comment(# Defaults to File.basename(path\).) comment(# * :type - specifies an HTTP content type.) comment(# Defaults to 'application/octet-stream'.) comment(# * :disposition - specifies whether the file will be shown inline or downloaded. ) comment(# Valid values are 'inline' and 'attachment' (default\).) comment(# * :stream - whether to send the file to the user agent as it is read (true\)) comment(# or to read the entire file before sending (false\). Defaults to true.) comment(# * :buffer_size - specifies size (in bytes\) of the buffer used to stream the file.) comment(# Defaults to 4096.) comment(# * :status - specifies the status code to send with the response. Defaults to '200 OK'.) comment(#) comment(# The default Content-Type and Content-Disposition headers are) comment(# set to download arbitrary binary files in as many browsers as) comment(# possible. IE versions 4, 5, 5.5, and 6 are all known to have) comment(# a variety of quirks (especially when downloading over SSL\).) comment(#) comment(# Simple download:) comment(# send_file '/path/to.zip') comment(#) comment(# Show a JPEG in the browser:) comment(# send_file '/path/to.jpeg', :type => 'image/jpeg', :disposition => 'inline') comment(#) comment(# Show a 404 page in the browser:) comment(# send_file '/path/to/404.html, :type => 'text/html; charset=utf-8', :status => 404) comment(#) comment(# Read about the other Content-* HTTP headers if you'd like to) comment(# provide the user with more information (such as Content-Description\).) comment(# http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) comment(#) comment(# Also be aware that the document may be cached by proxies and browsers.) comment(# The Pragma and Cache-Control headers declare how the file may be cached) comment(# by intermediaries. They default to require clients to validate with) comment(# the server before releasing cached responses. See) comment(# http://www.mnot.net/cache_docs/ for an overview of web caching and) comment(# http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) comment(# for the Cache-Control header spec.) reserved(def) method(send_file)operator(()ident(path)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:doc:) ident(raise) constant(MissingFile)operator(,) stringdelimiter(")> reserved(unless) constant(File)operator(.)ident(file?)operator(()ident(path)operator(\)) reserved(and) constant(File)operator(.)ident(readable?)operator(()ident(path)operator(\)) ident(options)operator([)symbol(:length)operator(]) operator(||=) constant(File)operator(.)ident(size)operator(()ident(path)operator(\)) ident(options)operator([)symbol(:filename)operator(]) operator(||=) constant(File)operator(.)ident(basename)operator(()ident(path)operator(\)) ident(send_file_headers!) ident(options) instance_variable(@performed_render) operator(=) pre_constant(false) reserved(if) ident(options)operator([)symbol(:stream)operator(]) ident(render) symbol(:status) operator(=)operator(>) ident(options)operator([)symbol(:status)operator(])operator(,) symbol(:text) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(response)operator(,) ident(output)operator(|) ident(logger)operator(.)ident(info) stringdelimiter(")> reserved(unless) ident(logger)operator(.)ident(nil?) ident(len) operator(=) ident(options)operator([)symbol(:buffer_size)operator(]) operator(||) integer(4096) constant(File)operator(.)ident(open)operator(()ident(path)operator(,) stringoperator(\)) reserved(do) operator(|)ident(file)operator(|) reserved(if) ident(output)operator(.)ident(respond_to?)operator(()symbol(:syswrite)operator(\)) reserved(begin) reserved(while) pre_constant(true) ident(output)operator(.)ident(syswrite)operator(()ident(file)operator(.)ident(sysread)operator(()ident(len)operator(\))operator(\)) reserved(end) reserved(rescue) constant(EOFError) reserved(end) reserved(else) reserved(while) ident(buf) operator(=) ident(file)operator(.)ident(read)operator(()ident(len)operator(\)) ident(output)operator(.)ident(write)operator(()ident(buf)operator(\)) reserved(end) reserved(end) reserved(end) operator(}) reserved(else) ident(logger)operator(.)ident(info) stringdelimiter(")> reserved(unless) ident(logger)operator(.)ident(nil?) constant(File)operator(.)ident(open)operator(()ident(path)operator(,) stringoperator(\)) operator({) operator(|)ident(file)operator(|) ident(render) symbol(:status) operator(=)operator(>) ident(options)operator([)symbol(:status)operator(])operator(,) symbol(:text) operator(=)operator(>) ident(file)operator(.)ident(read) operator(}) reserved(end) reserved(end) comment(# Send binary data to the user as a file download. May set content type, apparent file name,) comment(# and specify whether to show data inline or download as an attachment.) comment(#) comment(# Options:) comment(# * :filename - Suggests a filename for the browser to use.) comment(# * :type - specifies an HTTP content type.) comment(# Defaults to 'application/octet-stream'.) comment(# * :disposition - specifies whether the file will be shown inline or downloaded. ) comment(# * :status - specifies the status code to send with the response. Defaults to '200 OK'.) comment(# Valid values are 'inline' and 'attachment' (default\).) comment(#) comment(# Generic data download:) comment(# send_data buffer) comment(#) comment(# Download a dynamically-generated tarball:) comment(# send_data generate_tgz('dir'\), :filename => 'dir.tgz') comment(#) comment(# Display an image Active Record in the browser:) comment(# send_data image.data, :type => image.content_type, :disposition => 'inline') comment(#) comment(# See +send_file+ for more information on HTTP Content-* headers and caching.) reserved(def) method(send_data)operator(()ident(data)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:doc:) ident(logger)operator(.)ident(info) stringdelimiter(")> reserved(unless) ident(logger)operator(.)ident(nil?) ident(send_file_headers!) ident(options)operator(.)ident(merge)operator(()symbol(:length) operator(=)operator(>) ident(data)operator(.)ident(size)operator(\)) instance_variable(@performed_render) operator(=) pre_constant(false) ident(render) symbol(:status) operator(=)operator(>) ident(options)operator([)symbol(:status)operator(])operator(,) symbol(:text) operator(=)operator(>) ident(data) reserved(end) ident(private) reserved(def) method(send_file_headers!)operator(()ident(options)operator(\)) ident(options)operator(.)ident(update)operator(()constant(DEFAULT_SEND_FILE_OPTIONS)operator(.)ident(merge)operator(()ident(options)operator(\))operator(\)) operator([)symbol(:length)operator(,) symbol(:type)operator(,) symbol(:disposition)operator(])operator(.)ident(each) reserved(do) operator(|)ident(arg)operator(|) ident(raise) constant(ArgumentError)operator(,) stringcontent( option required)delimiter(")> reserved(if) ident(options)operator([)ident(arg)operator(])operator(.)ident(nil?) reserved(end) ident(disposition) operator(=) ident(options)operator([)symbol(:disposition)operator(])operator(.)ident(dup) operator(||) string ident(disposition) operator(<<)operator(=) string reserved(if) ident(options)operator([)symbol(:filename)operator(]) instance_variable(@headers)operator(.)ident(update)operator(() string operator(=)operator(>) ident(options)operator([)symbol(:length)operator(])operator(,) string operator(=)operator(>) ident(options)operator([)symbol(:type)operator(])operator(.)ident(strip)operator(,) comment(# fixes a problem with extra '\\r' with some browsers) string operator(=)operator(>) ident(disposition)operator(,) string operator(=)operator(>) string operator(\)) comment(# Fix a problem with IE 6.0 on opening downloaded files:) comment(# If Cache-Control: no-cache is set (which Rails does by default\), ) comment(# IE removes the file it just downloaded from its cache immediately ) comment(# after it displays the "open/save" dialog, which means that if you ) comment(# hit "open" the file isn't there anymore when the application that ) comment(# is called for handling the download is run, so let's workaround that) instance_variable(@headers)operator([)stringoperator(]) operator(=) string reserved(if) instance_variable(@headers)operator([)stringoperator(]) operator(==) string reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActionController) comment(#:nodoc:) reserved(class) class(Base) comment(# Process a test request called with a +TestRequest+ object.) reserved(def) pre_constant(self)operator(.)method(process_test)operator(()ident(request)operator(\)) ident(new)operator(.)ident(process_test)operator(()ident(request)operator(\)) reserved(end) reserved(def) method(process_test)operator(()ident(request)operator(\)) comment(#:nodoc:) ident(process)operator(()ident(request)operator(,) constant(TestResponse)operator(.)ident(new)operator(\)) reserved(end) reserved(def) method(process_with_test)operator(()operator(*)ident(args)operator(\)) ident(returning) ident(process_without_test)operator(()operator(*)ident(args)operator(\)) reserved(do) ident(add_variables_to_assigns) reserved(end) reserved(end) ident(alias_method) symbol(:process_without_test)operator(,) symbol(:process) ident(alias_method) symbol(:process)operator(,) symbol(:process_with_test) reserved(end) reserved(class) class(TestRequest) operator(<) constant(AbstractRequest) comment(#:nodoc:) ident(attr_accessor) symbol(:cookies)operator(,) symbol(:session_options) ident(attr_accessor) symbol(:query_parameters)operator(,) symbol(:request_parameters)operator(,) symbol(:path)operator(,) symbol(:session)operator(,) symbol(:env) ident(attr_accessor) symbol(:host) reserved(def) method(initialize)operator(()ident(query_parameters) operator(=) pre_constant(nil)operator(,) ident(request_parameters) operator(=) pre_constant(nil)operator(,) ident(session) operator(=) pre_constant(nil)operator(\)) instance_variable(@query_parameters) operator(=) ident(query_parameters) operator(||) operator({)operator(}) instance_variable(@request_parameters) operator(=) ident(request_parameters) operator(||) operator({)operator(}) instance_variable(@session) operator(=) ident(session) operator(||) constant(TestSession)operator(.)ident(new) ident(initialize_containers) ident(initialize_default_values) reserved(super)operator(()operator(\)) reserved(end) reserved(def) method(reset_session) instance_variable(@session) operator(=) operator({)operator(}) reserved(end) reserved(def) method(raw_post) reserved(if) ident(raw_post) operator(=) ident(env)operator([)stringoperator(]) ident(raw_post) reserved(else) ident(params) operator(=) pre_constant(self)operator(.)ident(request_parameters)operator(.)ident(dup) stringoperator(.)ident(each) reserved(do) operator(|)ident(k)operator(|) ident(params)operator(.)ident(delete)operator(()ident(k)operator(\)) ident(params)operator(.)ident(delete)operator(()ident(k)operator(.)ident(to_sym)operator(\)) reserved(end) ident(params)operator(.)ident(map) operator({) operator(|)ident(k)operator(,)ident(v)operator(|) operator([) constant(CGI)operator(.)ident(escape)operator(()ident(k)operator(.)ident(to_s)operator(\))operator(,) constant(CGI)operator(.)ident(escape)operator(()ident(v)operator(.)ident(to_s)operator(\)) operator(])operator(.)ident(join)operator(()stringoperator(\)) operator(})operator(.)ident(sort)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(port=)operator(()ident(number)operator(\)) instance_variable(@env)operator([)stringoperator(]) operator(=) ident(number)operator(.)ident(to_i) instance_variable(@port_as_int) operator(=) pre_constant(nil) reserved(end) reserved(def) method(action=)operator(()ident(action_name)operator(\)) instance_variable(@query_parameters)operator(.)ident(update)operator(()operator({) string operator(=)operator(>) ident(action_name) operator(})operator(\)) instance_variable(@parameters) operator(=) pre_constant(nil) reserved(end) comment(# Used to check AbstractRequest's request_uri functionality.) comment(# Disables the use of @path and @request_uri so superclass can handle those.) reserved(def) method(set_REQUEST_URI)operator(()ident(value)operator(\)) instance_variable(@env)operator([)stringoperator(]) operator(=) ident(value) instance_variable(@request_uri) operator(=) pre_constant(nil) instance_variable(@path) operator(=) pre_constant(nil) reserved(end) reserved(def) method(request_uri=)operator(()ident(uri)operator(\)) instance_variable(@request_uri) operator(=) ident(uri) instance_variable(@path) operator(=) ident(uri)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(first) reserved(end) reserved(def) method(remote_addr=)operator(()ident(addr)operator(\)) instance_variable(@env)operator([)stringoperator(]) operator(=) ident(addr) reserved(end) reserved(def) method(remote_addr) instance_variable(@env)operator([)stringoperator(]) reserved(end) reserved(def) method(request_uri) instance_variable(@request_uri) operator(||) reserved(super)operator(()operator(\)) reserved(end) reserved(def) method(path) instance_variable(@path) operator(||) reserved(super)operator(()operator(\)) reserved(end) reserved(def) method(assign_parameters)operator(()ident(controller_path)operator(,) ident(action)operator(,) ident(parameters)operator(\)) ident(parameters) operator(=) ident(parameters)operator(.)ident(symbolize_keys)operator(.)ident(merge)operator(()symbol(:controller) operator(=)operator(>) ident(controller_path)operator(,) symbol(:action) operator(=)operator(>) ident(action)operator(\)) ident(extra_keys) operator(=) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(extra_keys)operator(()ident(parameters)operator(\)) ident(non_path_parameters) operator(=) ident(get?) operator(?) ident(query_parameters) operator(:) ident(request_parameters) ident(parameters)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(if) ident(value)operator(.)ident(is_a?) constant(Fixnum) ident(value) operator(=) ident(value)operator(.)ident(to_s) reserved(elsif) ident(value)operator(.)ident(is_a?) constant(Array) ident(value) operator(=) constant(ActionController)operator(::)constant(Routing)operator(::)constant(PathComponent)operator(::)constant(Result)operator(.)ident(new)operator(()ident(value)operator(\)) reserved(end) reserved(if) ident(extra_keys)operator(.)ident(include?)operator(()ident(key)operator(.)ident(to_sym)operator(\)) ident(non_path_parameters)operator([)ident(key)operator(]) operator(=) ident(value) reserved(else) ident(path_parameters)operator([)ident(key)operator(.)ident(to_s)operator(]) operator(=) ident(value) reserved(end) reserved(end) reserved(end) reserved(def) method(recycle!) pre_constant(self)operator(.)ident(request_parameters) operator(=) operator({)operator(}) pre_constant(self)operator(.)ident(query_parameters) operator(=) operator({)operator(}) pre_constant(self)operator(.)ident(path_parameters) operator(=) operator({)operator(}) instance_variable(@request_method)operator(,) instance_variable(@accepts)operator(,) instance_variable(@content_type) operator(=) pre_constant(nil)operator(,) pre_constant(nil)operator(,) pre_constant(nil) reserved(end) ident(private) reserved(def) method(initialize_containers) instance_variable(@env)operator(,) instance_variable(@cookies) operator(=) operator({)operator(})operator(,) operator({)operator(}) reserved(end) reserved(def) method(initialize_default_values) instance_variable(@host) operator(=) string instance_variable(@request_uri) operator(=) string pre_constant(self)operator(.)ident(remote_addr) operator(=) string instance_variable(@env)operator([)stringoperator(]) operator(=) integer(80) instance_variable(@env)operator([)stringoperator(]) operator(=) string reserved(end) reserved(end) comment(# A refactoring of TestResponse to allow the same behavior to be applied) comment(# to the "real" CgiResponse class in integration tests.) reserved(module) class(TestResponseBehavior) comment(#:nodoc:) comment(# the response code of the request) reserved(def) method(response_code) ident(headers)operator([)stringoperator(])operator([)integer(0)operator(,)integer(3)operator(])operator(.)ident(to_i) reserved(rescue) integer(0) reserved(end) comment(# returns a String to ensure compatibility with Net::HTTPResponse) reserved(def) method(code) ident(headers)operator([)stringoperator(])operator(.)ident(to_s)operator(.)ident(split)operator(()stringoperator(\))operator([)integer(0)operator(]) reserved(end) reserved(def) method(message) ident(headers)operator([)stringoperator(])operator(.)ident(to_s)operator(.)ident(split)operator(()stringoperator(,)integer(2)operator(\))operator([)integer(1)operator(]) reserved(end) comment(# was the response successful?) reserved(def) method(success?) ident(response_code) operator(==) integer(200) reserved(end) comment(# was the URL not found?) reserved(def) method(missing?) ident(response_code) operator(==) integer(404) reserved(end) comment(# were we redirected?) reserved(def) method(redirect?) operator(()integer(300)operator(..)integer(399)operator(\))operator(.)ident(include?)operator(()ident(response_code)operator(\)) reserved(end) comment(# was there a server-side error?) reserved(def) method(error?) operator(()integer(500)operator(..)integer(599)operator(\))operator(.)ident(include?)operator(()ident(response_code)operator(\)) reserved(end) ident(alias_method) symbol(:server_error?)operator(,) symbol(:error?) comment(# returns the redirection location or nil) reserved(def) method(redirect_url) ident(redirect?) operator(?) ident(headers)operator([)stringoperator(]) operator(:) pre_constant(nil) reserved(end) comment(# does the redirect location match this regexp pattern?) reserved(def) method(redirect_url_match?)operator(() ident(pattern) operator(\)) reserved(return) pre_constant(false) reserved(if) ident(redirect_url)operator(.)ident(nil?) ident(p) operator(=) constant(Regexp)operator(.)ident(new)operator(()ident(pattern)operator(\)) reserved(if) ident(pattern)operator(.)ident(class) operator(==) constant(String) ident(p) operator(=) ident(pattern) reserved(if) ident(pattern)operator(.)ident(class) operator(==) constant(Regexp) reserved(return) pre_constant(false) reserved(if) ident(p)operator(.)ident(nil?) ident(p)operator(.)ident(match)operator(()ident(redirect_url)operator(\)) operator(!=) pre_constant(nil) reserved(end) comment(# returns the template path of the file which was used to) comment(# render this response (or nil\) ) reserved(def) method(rendered_file)operator(()ident(with_controller)operator(=)pre_constant(false)operator(\)) reserved(unless) ident(template)operator(.)ident(first_render)operator(.)ident(nil?) reserved(unless) ident(with_controller) ident(template)operator(.)ident(first_render) reserved(else) ident(template)operator(.)ident(first_render)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last) operator(||) ident(template)operator(.)ident(first_render) reserved(end) reserved(end) reserved(end) comment(# was this template rendered by a file?) reserved(def) method(rendered_with_file?) operator(!)ident(rendered_file)operator(.)ident(nil?) reserved(end) comment(# a shortcut to the flash (or an empty hash if no flash.. hey! that rhymes!\)) reserved(def) method(flash) ident(session)operator([)stringoperator(]) operator(||) operator({)operator(}) reserved(end) comment(# do we have a flash? ) reserved(def) method(has_flash?) operator(!)ident(session)operator([)stringoperator(])operator(.)ident(empty?) reserved(end) comment(# do we have a flash that has contents?) reserved(def) method(has_flash_with_contents?) operator(!)ident(flash)operator(.)ident(empty?) reserved(end) comment(# does the specified flash object exist?) reserved(def) method(has_flash_object?)operator(()ident(name)operator(=)pre_constant(nil)operator(\)) operator(!)ident(flash)operator([)ident(name)operator(])operator(.)ident(nil?) reserved(end) comment(# does the specified object exist in the session?) reserved(def) method(has_session_object?)operator(()ident(name)operator(=)pre_constant(nil)operator(\)) operator(!)ident(session)operator([)ident(name)operator(])operator(.)ident(nil?) reserved(end) comment(# a shortcut to the template.assigns) reserved(def) method(template_objects) ident(template)operator(.)ident(assigns) operator(||) operator({)operator(}) reserved(end) comment(# does the specified template object exist? ) reserved(def) method(has_template_object?)operator(()ident(name)operator(=)pre_constant(nil)operator(\)) operator(!)ident(template_objects)operator([)ident(name)operator(])operator(.)ident(nil?) reserved(end) comment(# Returns the response cookies, converted to a Hash of (name => CGI::Cookie\) pairs) comment(# Example:) comment(# ) comment(# assert_equal ['AuthorOfNewPage'], r.cookies['author'].value) reserved(def) method(cookies) ident(headers)operator([)stringoperator(])operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({) operator(|)ident(hash)operator(,) ident(cookie)operator(|) ident(hash)operator([)ident(cookie)operator(.)ident(name)operator(]) operator(=) ident(cookie)operator(;) ident(hash) operator(}) reserved(end) comment(# Returns binary content (downloadable file\), converted to a String) reserved(def) method(binary_content) ident(raise) stringdelimiter(")> reserved(unless) ident(body)operator(.)ident(kind_of?)operator(()constant(Proc)operator(\)) ident(require) string ident(sio) operator(=) constant(StringIO)operator(.)ident(new) reserved(begin) global_variable($stdout) operator(=) ident(sio) ident(body)operator(.)ident(call) reserved(ensure) global_variable($stdout) operator(=) pre_constant(STDOUT) reserved(end) ident(sio)operator(.)ident(rewind) ident(sio)operator(.)ident(read) reserved(end) reserved(end) reserved(class) class(TestResponse) operator(<) constant(AbstractResponse) comment(#:nodoc:) ident(include) constant(TestResponseBehavior) reserved(end) reserved(class) class(TestSession) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(attributes) operator(=) operator({)operator(})operator(\)) instance_variable(@attributes) operator(=) ident(attributes) reserved(end) reserved(def) method([])operator(()ident(key)operator(\)) instance_variable(@attributes)operator([)ident(key)operator(]) reserved(end) reserved(def) method([]=)operator(()ident(key)operator(,) ident(value)operator(\)) instance_variable(@attributes)operator([)ident(key)operator(]) operator(=) ident(value) reserved(end) reserved(def) method(session_id) string reserved(end) reserved(def) method(update)operator(()operator(\)) reserved(end) reserved(def) method(close)operator(()operator(\)) reserved(end) reserved(def) method(delete)operator(()operator(\)) instance_variable(@attributes) operator(=) operator({)operator(}) reserved(end) reserved(end) comment(# Essentially generates a modified Tempfile object similar to the object) comment(# you'd get from the standard library CGI module in a multipart) comment(# request. This means you can use an ActionController::TestUploadedFile) comment(# object in the params of a test request in order to simulate) comment(# a file upload.) comment(#) comment(# Usage example, within a functional test:) comment(# post :change_avatar, :avatar => ActionController::TestUploadedFile.new(Test::Unit::TestCase.fixture_path + '/files/spongebob.png', 'image/png'\)) reserved(class) class(TestUploadedFile) comment(# The filename, *not* including the path, of the "uploaded" file) ident(attr_reader) symbol(:original_filename) comment(# The content type of the "uploaded" file) ident(attr_reader) symbol(:content_type) reserved(def) method(initialize)operator(()ident(path)operator(,) ident(content_type) operator(=) stringoperator(\)) ident(raise) string reserved(unless) constant(File)operator(.)ident(exist?)operator(()ident(path)operator(\)) instance_variable(@content_type) operator(=) ident(content_type) instance_variable(@original_filename) operator(=) ident(path)operator(.)ident(sub)operator(()regexpcontent(([^)inlinecontent(]+\)$)delimiter(/)>operator(\)) operator({) global_variable($1) operator(}) instance_variable(@tempfile) operator(=) constant(Tempfile)operator(.)ident(new)operator(()instance_variable(@original_filename)operator(\)) constant(FileUtils)operator(.)ident(copy_file)operator(()ident(path)operator(,) instance_variable(@tempfile)operator(.)ident(path)operator(\)) reserved(end) reserved(def) method(path) comment(#:nodoc:) instance_variable(@tempfile)operator(.)ident(path) reserved(end) reserved(alias) method(local_path) method(path) reserved(def) method(method_missing)operator(()ident(method_name)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) comment(#:nodoc:) instance_variable(@tempfile)operator(.)ident(send)operator(()ident(method_name)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(module) class(TestProcess) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) comment(# execute the request simulating a specific http method and set/volley the response) stringoperator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(base)operator(.)ident(class_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent((action, parameters = nil, session = nil, flash = nil\) @request.env['REQUEST_METHOD'] = ")inlinecontent(" if @request process(action, parameters, session, flash\) end)delimiter( EOV)> reserved(end) reserved(end) comment(# execute the request and set/volley the response) reserved(def) method(process)operator(()ident(action)operator(,) ident(parameters) operator(=) pre_constant(nil)operator(,) ident(session) operator(=) pre_constant(nil)operator(,) ident(flash) operator(=) pre_constant(nil)operator(\)) comment(# Sanity check for required instance variables so we can give an) comment(# understandable error message.) stringoperator(.)ident(each) reserved(do) operator(|)ident(iv_name)operator(|) ident(raise) stringcontent( is nil: make sure you set it in your test's setup method.)delimiter(")> reserved(if) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\))operator(.)ident(nil?) reserved(end) instance_variable(@request)operator(.)ident(recycle!) instance_variable(@html_document) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(||=) string instance_variable(@request)operator(.)ident(action) operator(=) ident(action)operator(.)ident(to_s) ident(parameters) operator(||=) operator({)operator(}) instance_variable(@request)operator(.)ident(assign_parameters)operator(()instance_variable(@controller)operator(.)ident(class)operator(.)ident(controller_path)operator(,) ident(action)operator(.)ident(to_s)operator(,) ident(parameters)operator(\)) instance_variable(@request)operator(.)ident(session) operator(=) constant(ActionController)operator(::)constant(TestSession)operator(.)ident(new)operator(()ident(session)operator(\)) reserved(unless) ident(session)operator(.)ident(nil?) instance_variable(@request)operator(.)ident(session)operator([)stringoperator(]) operator(=) constant(ActionController)operator(::)constant(Flash)operator(::)constant(FlashHash)operator(.)ident(new)operator(.)ident(update)operator(()ident(flash)operator(\)) reserved(if) ident(flash) ident(build_request_uri)operator(()ident(action)operator(,) ident(parameters)operator(\)) instance_variable(@controller)operator(.)ident(process)operator(()instance_variable(@request)operator(,) instance_variable(@response)operator(\)) reserved(end) reserved(def) method(xml_http_request)operator(()ident(request_method)operator(,) ident(action)operator(,) ident(parameters) operator(=) pre_constant(nil)operator(,) ident(session) operator(=) pre_constant(nil)operator(,) ident(flash) operator(=) pre_constant(nil)operator(\)) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(returning) pre_constant(self)operator(.)ident(send)operator(()ident(request_method)operator(,) ident(action)operator(,) ident(parameters)operator(,) ident(session)operator(,) ident(flash)operator(\)) reserved(do) instance_variable(@request)operator(.)ident(env)operator(.)ident(delete) string instance_variable(@request)operator(.)ident(env)operator(.)ident(delete) string reserved(end) reserved(end) reserved(alias) method(xhr) symbol(:xml_http_request) reserved(def) method(follow_redirect) reserved(if) instance_variable(@response)operator(.)ident(redirected_to)operator([)symbol(:controller)operator(]) ident(raise) stringcontent(\))delimiter(")> reserved(end) ident(get)operator(()instance_variable(@response)operator(.)ident(redirected_to)operator(.)ident(delete)operator(()symbol(:action)operator(\))operator(,) instance_variable(@response)operator(.)ident(redirected_to)operator(.)ident(stringify_keys)operator(\)) reserved(end) reserved(def) method(assigns)operator(()ident(key) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(key)operator(.)ident(nil?) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns) reserved(else) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)ident(key)operator(.)ident(to_s)operator(]) reserved(end) reserved(end) reserved(def) method(session) instance_variable(@response)operator(.)ident(session) reserved(end) reserved(def) method(flash) instance_variable(@response)operator(.)ident(flash) reserved(end) reserved(def) method(cookies) instance_variable(@response)operator(.)ident(cookies) reserved(end) reserved(def) method(redirect_to_url) instance_variable(@response)operator(.)ident(redirect_url) reserved(end) reserved(def) method(build_request_uri)operator(()ident(action)operator(,) ident(parameters)operator(\)) reserved(unless) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) ident(options) operator(=) instance_variable(@controller)operator(.)ident(send)operator(()symbol(:rewrite_options)operator(,) ident(parameters)operator(\)) ident(options)operator(.)ident(update)operator(()symbol(:only_path) operator(=)operator(>) pre_constant(true)operator(,) symbol(:action) operator(=)operator(>) ident(action)operator(\)) ident(url) operator(=) constant(ActionController)operator(::)constant(UrlRewriter)operator(.)ident(new)operator(()instance_variable(@request)operator(,) ident(parameters)operator(\)) instance_variable(@request)operator(.)ident(set_REQUEST_URI)operator(()ident(url)operator(.)ident(rewrite)operator(()ident(options)operator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(html_document) instance_variable(@html_document) operator(||=) constant(HTML)operator(::)constant(Document)operator(.)ident(new)operator(()instance_variable(@response)operator(.)ident(body)operator(\)) reserved(end) reserved(def) method(find_tag)operator(()ident(conditions)operator(\)) ident(html_document)operator(.)ident(find)operator(()ident(conditions)operator(\)) reserved(end) reserved(def) method(find_all_tag)operator(()ident(conditions)operator(\)) ident(html_document)operator(.)ident(find_all)operator(()ident(conditions)operator(\)) reserved(end) reserved(def) method(method_missing)operator(()ident(selector)operator(,) operator(*)ident(args)operator(\)) reserved(return) instance_variable(@controller)operator(.)ident(send)operator(()ident(selector)operator(,) operator(*)ident(args)operator(\)) reserved(if) constant(ActionController)operator(::)constant(Routing)operator(::)constant(NamedRoutes)operator(::)constant(Helpers)operator(.)ident(include?)operator(()ident(selector)operator(\)) reserved(return) reserved(super) reserved(end) comment(# Shortcut for ActionController::TestUploadedFile.new(Test::Unit::TestCase.fixture_path + path, type\). Example:) comment(# post :change_avatar, :avatar => fixture_file_upload('/files/spongebob.png', 'image/png'\)) reserved(def) method(fixture_file_upload)operator(()ident(path)operator(,) ident(mime_type) operator(=) pre_constant(nil)operator(\)) constant(ActionController)operator(::)constant(TestUploadedFile)operator(.)ident(new)operator(() constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase)operator(.)ident(respond_to?)operator(()symbol(:fixture_path)operator(\)) operator(?) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase)operator(.)ident(fixture_path) operator(+) ident(path) operator(:) ident(path)operator(,) ident(mime_type) operator(\)) reserved(end) comment(# A helper to make it easier to test different route configurations.) comment(# This method temporarily replaces ActionController::Routing::Routes) comment(# with a new RouteSet instance. ) comment(#) comment(# The new instance is yielded to the passed block. Typically the block) comment(# will create some routes using map.draw { map.connect ... }:) comment(#) comment(# with_routing do |set|) comment(# set.draw { set.connect ':controller/:id/:action' }) comment(# assert_equal() comment(# ['/content/10/show', {}],) comment(# set.generate(:controller => 'content', :id => 10, :action => 'show'\)) comment(# \)) comment(# end) comment(#) reserved(def) method(with_routing) ident(real_routes) operator(=) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes) constant(ActionController)operator(::)constant(Routing)operator(.)ident(send) symbol(:remove_const)operator(,) symbol(:Routes) ident(temporary_routes) operator(=) constant(ActionController)operator(::)constant(Routing)operator(::)constant(RouteSet)operator(.)ident(new) constant(ActionController)operator(::)constant(Routing)operator(.)ident(send) symbol(:const_set)operator(,) symbol(:Routes)operator(,) ident(temporary_routes) reserved(yield) ident(temporary_routes) reserved(ensure) reserved(if) constant(ActionController)operator(::)constant(Routing)operator(.)ident(const_defined?) symbol(:Routes) constant(ActionController)operator(::)constant(Routing)operator(.)ident(send)operator(()symbol(:remove_const)operator(,) symbol(:Routes)operator(\)) reserved(end) constant(ActionController)operator(::)constant(Routing)operator(.)ident(const_set)operator(()symbol(:Routes)operator(,) ident(real_routes)operator(\)) reserved(if) ident(real_routes) reserved(end) reserved(end) reserved(end) reserved(module) class(Test) reserved(module) class(Unit) reserved(class) class(TestCase) comment(#:nodoc:) ident(include) constant(ActionController)operator(::)constant(TestProcess) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionController) comment(# Rewrites URLs for Base.redirect_to and Base.url_for in the controller.) reserved(class) class(UrlRewriter) comment(#:nodoc:) constant(RESERVED_OPTIONS) operator(=) operator([)symbol(:anchor)operator(,) symbol(:params)operator(,) symbol(:only_path)operator(,) symbol(:host)operator(,) symbol(:protocol)operator(,) symbol(:trailing_slash)operator(,) symbol(:skip_relative_url_root)operator(]) reserved(def) method(initialize)operator(()ident(request)operator(,) ident(parameters)operator(\)) instance_variable(@request)operator(,) instance_variable(@parameters) operator(=) ident(request)operator(,) ident(parameters) reserved(end) reserved(def) method(rewrite)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(rewrite_url)operator(()ident(rewrite_path)operator(()ident(options)operator(\))operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(to_str) stringcontent(, )inlinecontent(, )inlinecontent(, )inlinecontent(, )inlinecontent(, )inlinedelimiter(")> reserved(end) ident(alias_method) symbol(:to_s)operator(,) symbol(:to_str) ident(private) reserved(def) method(rewrite_url)operator(()ident(path)operator(,) ident(options)operator(\)) ident(rewritten_url) operator(=) string reserved(unless) ident(options)operator([)symbol(:only_path)operator(]) ident(rewritten_url) operator(<<) operator(()ident(options)operator([)symbol(:protocol)operator(]) operator(||) instance_variable(@request)operator(.)ident(protocol)operator(\)) ident(rewritten_url) operator(<<) operator(()ident(options)operator([)symbol(:host)operator(]) operator(||) instance_variable(@request)operator(.)ident(host_with_port)operator(\)) reserved(end) ident(rewritten_url) operator(<<) instance_variable(@request)operator(.)ident(relative_url_root)operator(.)ident(to_s) reserved(unless) ident(options)operator([)symbol(:skip_relative_url_root)operator(]) ident(rewritten_url) operator(<<) ident(path) ident(rewritten_url) operator(<<) string reserved(if) ident(options)operator([)symbol(:trailing_slash)operator(]) ident(rewritten_url) operator(<<) stringdelimiter(")> reserved(if) ident(options)operator([)symbol(:anchor)operator(]) ident(rewritten_url) reserved(end) reserved(def) method(rewrite_path)operator(()ident(options)operator(\)) ident(options) operator(=) ident(options)operator(.)ident(symbolize_keys) ident(options)operator(.)ident(update)operator(()ident(options)operator([)symbol(:params)operator(])operator(.)ident(symbolize_keys)operator(\)) reserved(if) ident(options)operator([)symbol(:params)operator(]) reserved(if) operator(()ident(overwrite) operator(=) ident(options)operator(.)ident(delete)operator(()symbol(:overwrite_params)operator(\))operator(\)) ident(options)operator(.)ident(update)operator(()instance_variable(@parameters)operator(.)ident(symbolize_keys)operator(\)) ident(options)operator(.)ident(update)operator(()ident(overwrite)operator(\)) reserved(end) constant(RESERVED_OPTIONS)operator(.)ident(each) operator({)operator(|)ident(k)operator(|) ident(options)operator(.)ident(delete) ident(k)operator(}) ident(path)operator(,) ident(extra_keys) operator(=) constant(Routing)operator(::)constant(Routes)operator(.)ident(generate)operator(()ident(options)operator(.)ident(dup)operator(,) instance_variable(@request)operator(\)) comment(# Warning: Routes will mutate and violate the options hash) ident(path) operator(<<) ident(build_query_string)operator(()ident(options)operator(,) ident(extra_keys)operator(\)) reserved(unless) ident(extra_keys)operator(.)ident(empty?) ident(path) reserved(end) comment(# Returns a query string with escaped keys and values from the passed hash. If the passed hash contains an "id" it'll) comment(# be added as a path element instead of a regular parameter pair.) reserved(def) method(build_query_string)operator(()ident(hash)operator(,) ident(only_keys) operator(=) pre_constant(nil)operator(\)) ident(elements) operator(=) operator([)operator(]) ident(query_string) operator(=) string ident(only_keys) operator(||=) ident(hash)operator(.)ident(keys) ident(only_keys)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(|) ident(value) operator(=) ident(hash)operator([)ident(key)operator(]) ident(key) operator(=) constant(CGI)operator(.)ident(escape) ident(key)operator(.)ident(to_s) reserved(if) ident(value)operator(.)ident(class) operator(==) constant(Array) ident(key) operator(<<) string reserved(else) ident(value) operator(=) operator([) ident(value) operator(]) reserved(end) ident(value)operator(.)ident(each) operator({) operator(|)ident(val)operator(|) ident(elements) operator(<<) stringcontent(=)inlinedelimiter(")> operator(}) reserved(end) ident(query_string) operator(<<) operator(()string operator(+) ident(elements)operator(.)ident(join)operator(()stringoperator(\))operator(\)) reserved(unless) ident(elements)operator(.)ident(empty?) ident(query_string) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(HTML) comment(#:nodoc:) comment(# A top-level HTMl document. You give it a body of text, and it will parse that) comment(# text into a tree of nodes.) reserved(class) class(Document) comment(#:nodoc:) comment(# The root of the parsed document.) ident(attr_reader) symbol(:root) comment(# Create a new Document from the given text.) reserved(def) method(initialize)operator(()ident(text)operator(,) ident(strict)operator(=)pre_constant(false)operator(,) ident(xml)operator(=)pre_constant(false)operator(\)) ident(tokenizer) operator(=) constant(Tokenizer)operator(.)ident(new)operator(()ident(text)operator(\)) instance_variable(@root) operator(=) constant(Node)operator(.)ident(new)operator(()pre_constant(nil)operator(\)) ident(node_stack) operator(=) operator([) instance_variable(@root) operator(]) reserved(while) ident(token) operator(=) ident(tokenizer)operator(.)ident(next) ident(node) operator(=) constant(Node)operator(.)ident(parse)operator(()ident(node_stack)operator(.)ident(last)operator(,) ident(tokenizer)operator(.)ident(line)operator(,) ident(tokenizer)operator(.)ident(position)operator(,) ident(token)operator(\)) ident(node_stack)operator(.)ident(last)operator(.)ident(children) operator(<<) ident(node) reserved(unless) ident(node)operator(.)ident(tag?) operator(&&) ident(node)operator(.)ident(closing) operator(==) symbol(:close) reserved(if) ident(node)operator(.)ident(tag?) reserved(if) ident(node_stack)operator(.)ident(length) operator(>) integer(1) operator(&&) ident(node)operator(.)ident(closing) operator(==) symbol(:close) reserved(if) ident(node_stack)operator(.)ident(last)operator(.)ident(name) operator(==) ident(node)operator(.)ident(name) ident(node_stack)operator(.)ident(pop) reserved(else) ident(open_start) operator(=) ident(node_stack)operator(.)ident(last)operator(.)ident(position) operator(-) integer(20) ident(open_start) operator(=) integer(0) reserved(if) ident(open_start) operator(<) integer(0) ident(close_start) operator(=) ident(node)operator(.)ident(position) operator(-) integer(20) ident(close_start) operator(=) integer(0) reserved(if) ident(close_start) operator(<) integer(0) ident(msg) operator(=) stringoperator(.)ident(strip)stringcontent( with )inlinecontent( opened at byte )inlinecontent(, line )inlinecontent( closed at byte )inlinecontent(, line )inlinecontent( attributes at open: )inlinecontent( text around open: )inlinecontent( text around close: )inlinedelimiter( EOF)> ident(strict) operator(?) ident(raise)operator(()ident(msg)operator(\)) operator(:) ident(warn)operator(()ident(msg)operator(\)) reserved(end) reserved(elsif) operator(!)ident(node)operator(.)ident(childless?)operator(()ident(xml)operator(\)) operator(&&) ident(node)operator(.)ident(closing) operator(!=) symbol(:close) ident(node_stack)operator(.)ident(push) ident(node) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Search the tree for (and return\) the first node that matches the given) comment(# conditions. The conditions are interpreted differently for different node) comment(# types, see HTML::Text#find and HTML::Tag#find.) reserved(def) method(find)operator(()ident(conditions)operator(\)) instance_variable(@root)operator(.)ident(find)operator(()ident(conditions)operator(\)) reserved(end) comment(# Search the tree for (and return\) all nodes that match the given) comment(# conditions. The conditions are interpreted differently for different node) comment(# types, see HTML::Text#find and HTML::Tag#find.) reserved(def) method(find_all)operator(()ident(conditions)operator(\)) instance_variable(@root)operator(.)ident(find_all)operator(()ident(conditions)operator(\)) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(HTML) comment(#:nodoc:) reserved(class) class(Conditions) operator(<) constant(Hash) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(hash)operator(\)) reserved(super)operator(()operator(\)) ident(hash) operator(=) operator({) symbol(:content) operator(=)operator(>) ident(hash) operator(}) reserved(unless) constant(Hash) operator(===) ident(hash) ident(hash) operator(=) ident(keys_to_symbols)operator(()ident(hash)operator(\)) ident(hash)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,)ident(v)operator(|) reserved(case) ident(k) reserved(when) symbol(:tag)operator(,) symbol(:content) reserved(then) comment(# keys are valid, and require no further processing) reserved(when) symbol(:attributes) reserved(then) ident(hash)operator([)ident(k)operator(]) operator(=) ident(keys_to_strings)operator(()ident(v)operator(\)) reserved(when) symbol(:parent)operator(,) symbol(:child)operator(,) symbol(:ancestor)operator(,) symbol(:descendant)operator(,) symbol(:sibling)operator(,) symbol(:before)operator(,) symbol(:after) ident(hash)operator([)ident(k)operator(]) operator(=) constant(Conditions)operator(.)ident(new)operator(()ident(v)operator(\)) reserved(when) symbol(:children) ident(hash)operator([)ident(k)operator(]) operator(=) ident(v) operator(=) ident(keys_to_symbols)operator(()ident(v)operator(\)) ident(v)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,)ident(v2)operator(|) reserved(case) ident(k) reserved(when) symbol(:count)operator(,) symbol(:greater_than)operator(,) symbol(:less_than) comment(# keys are valid, and require no further processing) reserved(when) symbol(:only) ident(v)operator([)ident(k)operator(]) operator(=) constant(Conditions)operator(.)ident(new)operator(()ident(v2)operator(\)) reserved(else) ident(raise) stringcontent( => )inlinedelimiter(")> reserved(end) reserved(end) reserved(else) ident(raise) stringcontent( => )inlinedelimiter(")> reserved(end) reserved(end) ident(update) ident(hash) reserved(end) ident(private) reserved(def) method(keys_to_strings)operator(()ident(hash)operator(\)) ident(hash)operator(.)ident(keys)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(h)operator(,)ident(k)operator(|) ident(h)operator([)ident(k)operator(.)ident(to_s)operator(]) operator(=) ident(hash)operator([)ident(k)operator(]) ident(h) reserved(end) reserved(end) reserved(def) method(keys_to_symbols)operator(()ident(hash)operator(\)) ident(hash)operator(.)ident(keys)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(h)operator(,)ident(k)operator(|) ident(raise) stringdelimiter(")> reserved(unless) ident(k)operator(.)ident(respond_to?)operator(()symbol(:to_sym)operator(\)) ident(h)operator([)ident(k)operator(.)ident(to_sym)operator(]) operator(=) ident(hash)operator([)ident(k)operator(]) ident(h) reserved(end) reserved(end) reserved(end) comment(# The base class of all nodes, textual and otherwise, in an HTML document.) reserved(class) class(Node) comment(#:nodoc:) comment(# The array of children of this node. Not all nodes have children.) ident(attr_reader) symbol(:children) comment(# The parent node of this node. All nodes have a parent, except for the) comment(# root node.) ident(attr_reader) symbol(:parent) comment(# The line number of the input where this node was begun) ident(attr_reader) symbol(:line) comment(# The byte position in the input where this node was begun) ident(attr_reader) symbol(:position) comment(# Create a new node as a child of the given parent.) reserved(def) method(initialize)operator(()ident(parent)operator(,) ident(line)operator(=)integer(0)operator(,) ident(pos)operator(=)integer(0)operator(\)) instance_variable(@parent) operator(=) ident(parent) instance_variable(@children) operator(=) operator([)operator(]) instance_variable(@line)operator(,) instance_variable(@position) operator(=) ident(line)operator(,) ident(pos) reserved(end) comment(# Return a textual representation of the node.) reserved(def) method(to_s) ident(s) operator(=) string instance_variable(@children)operator(.)ident(each) operator({) operator(|)ident(child)operator(|) ident(s) operator(<<) ident(child)operator(.)ident(to_s) operator(}) ident(s) reserved(end) comment(# Return false (subclasses must override this to provide specific matching) comment(# behavior.\) +conditions+ may be of any type.) reserved(def) method(match)operator(()ident(conditions)operator(\)) pre_constant(false) reserved(end) comment(# Search the children of this node for the first node for which #find) comment(# returns non +nil+. Returns the result of the #find call that succeeded.) reserved(def) method(find)operator(()ident(conditions)operator(\)) ident(conditions) operator(=) ident(validate_conditions)operator(()ident(conditions)operator(\)) instance_variable(@children)operator(.)ident(each) reserved(do) operator(|)ident(child)operator(|) ident(node) operator(=) ident(child)operator(.)ident(find)operator(()ident(conditions)operator(\)) reserved(return) ident(node) reserved(if) ident(node) reserved(end) pre_constant(nil) reserved(end) comment(# Search for all nodes that match the given conditions, and return them) comment(# as an array.) reserved(def) method(find_all)operator(()ident(conditions)operator(\)) ident(conditions) operator(=) ident(validate_conditions)operator(()ident(conditions)operator(\)) ident(matches) operator(=) operator([)operator(]) ident(matches) operator(<<) pre_constant(self) reserved(if) ident(match)operator(()ident(conditions)operator(\)) instance_variable(@children)operator(.)ident(each) reserved(do) operator(|)ident(child)operator(|) ident(matches)operator(.)ident(concat) ident(child)operator(.)ident(find_all)operator(()ident(conditions)operator(\)) reserved(end) ident(matches) reserved(end) comment(# Returns +false+. Subclasses may override this if they define a kind of) comment(# tag.) reserved(def) method(tag?) pre_constant(false) reserved(end) reserved(def) method(validate_conditions)operator(()ident(conditions)operator(\)) constant(Conditions) operator(===) ident(conditions) operator(?) ident(conditions) operator(:) constant(Conditions)operator(.)ident(new)operator(()ident(conditions)operator(\)) reserved(end) reserved(def) method(==)operator(()ident(node)operator(\)) reserved(return) pre_constant(false) reserved(unless) pre_constant(self)operator(.)ident(class) operator(==) ident(node)operator(.)ident(class) operator(&&) ident(children)operator(.)ident(size) operator(==) ident(node)operator(.)ident(children)operator(.)ident(size) ident(equivalent) operator(=) pre_constant(true) ident(children)operator(.)ident(size)operator(.)ident(times) reserved(do) operator(|)ident(i)operator(|) ident(equivalent) operator(&&=) ident(children)operator([)ident(i)operator(]) operator(==) ident(node)operator(.)ident(children)operator([)ident(i)operator(]) reserved(end) ident(equivalent) reserved(end) reserved(class) operator(<<)class(self) reserved(def) method(parse)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(,) ident(content)operator(,) ident(strict)operator(=)pre_constant(true)operator(\)) reserved(if) ident(content) operator(!)operator(~) regexp constant(Text)operator(.)ident(new)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(,) ident(content)operator(\)) reserved(else) ident(scanner) operator(=) constant(StringScanner)operator(.)ident(new)operator(()ident(content)operator(\)) reserved(unless) ident(scanner)operator(.)ident(skip)operator(()regexpoperator(\)) reserved(if) ident(strict) ident(raise) string reserved(else) reserved(return) constant(Text)operator(.)ident(new)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(,) ident(content)operator(\)) reserved(end) reserved(end) reserved(if) ident(scanner)operator(.)ident(skip)operator(()regexpoperator(\)) ident(scanner)operator(.)ident(scan_until)operator(()regexp)delimiter(/)>operator(\)) reserved(return) constant(CDATA)operator(.)ident(new)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(,) ident(scanner)operator(.)ident(pre_match)operator(\)) reserved(end) ident(closing) operator(=) operator(() ident(scanner)operator(.)ident(scan)operator(()regexpoperator(\)) operator(?) symbol(:close) operator(:) pre_constant(nil) operator(\)) reserved(return) constant(Text)operator(.)ident(new)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(,) ident(content)operator(\)) reserved(unless) ident(name) operator(=) ident(scanner)operator(.)ident(scan)operator(()regexpoperator(\)) ident(name)operator(.)ident(downcase!) reserved(unless) ident(closing) ident(scanner)operator(.)ident(skip)operator(()regexpoperator(\)) ident(attributes) operator(=) operator({)operator(}) reserved(while) ident(attr) operator(=) ident(scanner)operator(.)ident(scan)operator(()regexpoperator(\)) ident(value) operator(=) pre_constant(true) reserved(if) ident(scanner)operator(.)ident(scan)operator(()regexpoperator(\)) reserved(if) ident(delim) operator(=) ident(scanner)operator(.)ident(scan)operator(()regexpoperator(\)) ident(value) operator(=) string reserved(while) ident(text) operator(=) ident(scanner)operator(.)ident(scan)operator(()regexpchar(\\\\)content(]+|.)delimiter(/)>operator(\)) reserved(case) ident(text) reserved(when) string reserved(then) ident(value) operator(<<) ident(text) ident(value) operator(<<) ident(scanner)operator(.)ident(getch) reserved(when) ident(delim) reserved(break) reserved(else) ident(value) operator(<<) ident(text) reserved(end) reserved(end) reserved(else) ident(value) operator(=) ident(scanner)operator(.)ident(scan)operator(()regexp)char(\\/)content(]+)delimiter(/)>operator(\)) reserved(end) reserved(end) ident(attributes)operator([)ident(attr)operator(.)ident(downcase)operator(]) operator(=) ident(value) ident(scanner)operator(.)ident(skip)operator(()regexpoperator(\)) reserved(end) ident(closing) operator(=) operator(() ident(scanner)operator(.)ident(scan)operator(()regexpoperator(\)) operator(?) symbol(:self) operator(:) pre_constant(nil) operator(\)) reserved(end) reserved(unless) ident(scanner)operator(.)ident(scan)operator(()regexp)delimiter(/)>operator(\)) reserved(if) ident(strict) ident(raise) string (got )inlinecontent( for )inlinecontent(, )inlinecontent(\))delimiter(")> reserved(else) comment(# throw away all text until we find what we're looking for) ident(scanner)operator(.)ident(skip_until)operator(()regexp)delimiter(/)>operator(\)) reserved(or) ident(scanner)operator(.)ident(terminate) reserved(end) reserved(end) constant(Tag)operator(.)ident(new)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(,) ident(name)operator(,) ident(attributes)operator(,) ident(closing)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) comment(# A node that represents text, rather than markup.) reserved(class) class(Text) operator(<) constant(Node) comment(#:nodoc:) ident(attr_reader) symbol(:content) comment(# Creates a new text node as a child of the given parent, with the given) comment(# content.) reserved(def) method(initialize)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(,) ident(content)operator(\)) reserved(super)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(\)) instance_variable(@content) operator(=) ident(content) reserved(end) comment(# Returns the content of this node.) reserved(def) method(to_s) instance_variable(@content) reserved(end) comment(# Returns +self+ if this node meets the given conditions. Text nodes support) comment(# conditions of the following kinds:) comment(#) comment(# * if +conditions+ is a string, it must be a substring of the node's) comment(# content) comment(# * if +conditions+ is a regular expression, it must match the node's) comment(# content) comment(# * if +conditions+ is a hash, it must contain a :content key that) comment(# is either a string or a regexp, and which is interpreted as described) comment(# above.) reserved(def) method(find)operator(()ident(conditions)operator(\)) ident(match)operator(()ident(conditions)operator(\)) operator(&&) pre_constant(self) reserved(end) comment(# Returns non-+nil+ if this node meets the given conditions, or +nil+) comment(# otherwise. See the discussion of #find for the valid conditions.) reserved(def) method(match)operator(()ident(conditions)operator(\)) reserved(case) ident(conditions) reserved(when) constant(String) instance_variable(@content)operator(.)ident(index)operator(()ident(conditions)operator(\)) reserved(when) constant(Regexp) instance_variable(@content) operator(=)operator(~) ident(conditions) reserved(when) constant(Hash) ident(conditions) operator(=) ident(validate_conditions)operator(()ident(conditions)operator(\)) comment(# Text nodes only have :content, :parent, :ancestor) reserved(unless) operator(()ident(conditions)operator(.)ident(keys) operator(-) operator([)symbol(:content)operator(,) symbol(:parent)operator(,) symbol(:ancestor)operator(])operator(\))operator(.)ident(empty?) reserved(return) pre_constant(false) reserved(end) ident(match)operator(()ident(conditions)operator([)symbol(:content)operator(])operator(\)) reserved(else) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(==)operator(()ident(node)operator(\)) reserved(return) pre_constant(false) reserved(unless) reserved(super) ident(content) operator(==) ident(node)operator(.)ident(content) reserved(end) reserved(end) comment(# A CDATA node is simply a text node with a specialized way of displaying) comment(# itself.) reserved(class) class(CDATA) operator(<) constant(Text) comment(#:nodoc:) reserved(def) method(to_s) stringcontent(]>)delimiter(")> reserved(end) reserved(end) comment(# A Tag is any node that represents markup. It may be an opening tag, a) comment(# closing tag, or a self-closing tag. It has a name, and may have a hash of) comment(# attributes.) reserved(class) class(Tag) operator(<) constant(Node) comment(#:nodoc:) comment(# Either +nil+, :close, or :self) ident(attr_reader) symbol(:closing) comment(# Either +nil+, or a hash of attributes for this node.) ident(attr_reader) symbol(:attributes) comment(# The name of this tag.) ident(attr_reader) symbol(:name) comment(# Create a new node as a child of the given parent, using the given content) comment(# to describe the node. It will be parsed and the node name, attributes and) comment(# closing status extracted.) reserved(def) method(initialize)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(,) ident(name)operator(,) ident(attributes)operator(,) ident(closing)operator(\)) reserved(super)operator(()ident(parent)operator(,) ident(line)operator(,) ident(pos)operator(\)) instance_variable(@name) operator(=) ident(name) instance_variable(@attributes) operator(=) ident(attributes) instance_variable(@closing) operator(=) ident(closing) reserved(end) comment(# A convenience for obtaining an attribute of the node. Returns +nil+ if) comment(# the node has no attributes.) reserved(def) method([])operator(()ident(attr)operator(\)) instance_variable(@attributes) operator(?) instance_variable(@attributes)operator([)ident(attr)operator(]) operator(:) pre_constant(nil) reserved(end) comment(# Returns non-+nil+ if this tag can contain child nodes.) reserved(def) method(childless?)operator(()ident(xml) operator(=) pre_constant(false)operator(\)) reserved(return) pre_constant(false) reserved(if) ident(xml) operator(&&) instance_variable(@closing)operator(.)ident(nil?) operator(!)instance_variable(@closing)operator(.)ident(nil?) operator(||) instance_variable(@name) operator(=)operator(~) regexp reserved(end) comment(# Returns a textual representation of the node) reserved(def) method(to_s) reserved(if) instance_variable(@closing) operator(==) symbol(:close) stringcontent(>)delimiter(")> reserved(else) ident(s) operator(=) stringdelimiter(")> instance_variable(@attributes)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,)ident(v)operator(|) ident(s) operator(<<) stringdelimiter(")> ident(s) operator(<<) stringoperator(,)stringoperator(\))inline_delimiter(})>content(')delimiter(")> reserved(if) constant(String) operator(===) ident(v) reserved(end) ident(s) operator(<<) string reserved(if) instance_variable(@closing) operator(==) symbol(:self) ident(s) operator(<<) string)delimiter(")> instance_variable(@children)operator(.)ident(each) operator({) operator(|)ident(child)operator(|) ident(s) operator(<<) ident(child)operator(.)ident(to_s) operator(}) ident(s) operator(<<) stringcontent(>)delimiter(")> reserved(if) instance_variable(@closing) operator(!=) symbol(:self) operator(&&) operator(!)instance_variable(@children)operator(.)ident(empty?) ident(s) reserved(end) reserved(end) comment(# If either the node or any of its children meet the given conditions, the) comment(# matching node is returned. Otherwise, +nil+ is returned. (See the) comment(# description of the valid conditions in the +match+ method.\)) reserved(def) method(find)operator(()ident(conditions)operator(\)) ident(match)operator(()ident(conditions)operator(\)) operator(&&) pre_constant(self) operator(||) reserved(super) reserved(end) comment(# Returns +true+, indicating that this node represents an HTML tag.) reserved(def) method(tag?) pre_constant(true) reserved(end) comment(# Returns +true+ if the node meets any of the given conditions. The) comment(# +conditions+ parameter must be a hash of any of the following keys) comment(# (all are optional\):) comment(#) comment(# * :tag: the node name must match the corresponding value) comment(# * :attributes: a hash. The node's values must match the) comment(# corresponding values in the hash.) comment(# * :parent: a hash. The node's parent must match the) comment(# corresponding hash.) comment(# * :child: a hash. At least one of the node's immediate children) comment(# must meet the criteria described by the hash.) comment(# * :ancestor: a hash. At least one of the node's ancestors must) comment(# meet the criteria described by the hash.) comment(# * :descendant: a hash. At least one of the node's descendants) comment(# must meet the criteria described by the hash.) comment(# * :sibling: a hash. At least one of the node's siblings must) comment(# meet the criteria described by the hash.) comment(# * :after: a hash. The node must be after any sibling meeting) comment(# the criteria described by the hash, and at least one sibling must match.) comment(# * :before: a hash. The node must be before any sibling meeting) comment(# the criteria described by the hash, and at least one sibling must match.) comment(# * :children: a hash, for counting children of a node. Accepts the) comment(# keys:) comment(# ** :count: either a number or a range which must equal (or) comment(# include\) the number of children that match.) comment(# ** :less_than: the number of matching children must be less than) comment(# this number.) comment(# ** :greater_than: the number of matching children must be) comment(# greater than this number.) comment(# ** :only: another hash consisting of the keys to use) comment(# to match on the children, and only matching children will be) comment(# counted.) comment(#) comment(# Conditions are matched using the following algorithm:) comment(#) comment(# * if the condition is a string, it must be a substring of the value.) comment(# * if the condition is a regexp, it must match the value.) comment(# * if the condition is a number, the value must match number.to_s.) comment(# * if the condition is +true+, the value must not be +nil+.) comment(# * if the condition is +false+ or +nil+, the value must be +nil+.) comment(#) comment(# Usage:) comment(#) comment(# # test if the node is a "span" tag) comment(# node.match :tag => "span") comment(#) comment(# # test if the node's parent is a "div") comment(# node.match :parent => { :tag => "div" }) comment(#) comment(# # test if any of the node's ancestors are "table" tags) comment(# node.match :ancestor => { :tag => "table" }) comment(#) comment(# # test if any of the node's immediate children are "em" tags) comment(# node.match :child => { :tag => "em" }) comment(#) comment(# # test if any of the node's descendants are "strong" tags) comment(# node.match :descendant => { :tag => "strong" }) comment(#) comment(# # test if the node has between 2 and 4 span tags as immediate children) comment(# node.match :children => { :count => 2..4, :only => { :tag => "span" } } ) comment(#) comment(# # get funky: test to see if the node is a "div", has a "ul" ancestor) comment(# # and an "li" parent (with "class" = "enum"\), and whether or not it has) comment(# # a "span" descendant that contains # text matching /hello world/:) comment(# node.match :tag => "div",) comment(# :ancestor => { :tag => "ul" },) comment(# :parent => { :tag => "li",) comment(# :attributes => { :class => "enum" } },) comment(# :descendant => { :tag => "span",) comment(# :child => /hello world/ }) reserved(def) method(match)operator(()ident(conditions)operator(\)) ident(conditions) operator(=) ident(validate_conditions)operator(()ident(conditions)operator(\)) comment(# check content of child nodes) reserved(if) ident(conditions)operator([)symbol(:content)operator(]) reserved(if) ident(children)operator(.)ident(empty?) reserved(return) pre_constant(false) reserved(unless) ident(match_condition)operator(()stringoperator(,) ident(conditions)operator([)symbol(:content)operator(])operator(\)) reserved(else) reserved(return) pre_constant(false) reserved(unless) ident(children)operator(.)ident(find) operator({) operator(|)ident(child)operator(|) ident(child)operator(.)ident(match)operator(()ident(conditions)operator([)symbol(:content)operator(])operator(\)) operator(}) reserved(end) reserved(end) comment(# test the name) reserved(return) pre_constant(false) reserved(unless) ident(match_condition)operator(()instance_variable(@name)operator(,) ident(conditions)operator([)symbol(:tag)operator(])operator(\)) reserved(if) ident(conditions)operator([)symbol(:tag)operator(]) comment(# test attributes) operator(()ident(conditions)operator([)symbol(:attributes)operator(]) operator(||) operator({)operator(})operator(\))operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(return) pre_constant(false) reserved(unless) ident(match_condition)operator(()pre_constant(self)operator([)ident(key)operator(])operator(,) ident(value)operator(\)) reserved(end) comment(# test parent) reserved(return) pre_constant(false) reserved(unless) ident(parent)operator(.)ident(match)operator(()ident(conditions)operator([)symbol(:parent)operator(])operator(\)) reserved(if) ident(conditions)operator([)symbol(:parent)operator(]) comment(# test children) reserved(return) pre_constant(false) reserved(unless) ident(children)operator(.)ident(find) operator({) operator(|)ident(child)operator(|) ident(child)operator(.)ident(match)operator(()ident(conditions)operator([)symbol(:child)operator(])operator(\)) operator(}) reserved(if) ident(conditions)operator([)symbol(:child)operator(]) comment(# test ancestors) reserved(if) ident(conditions)operator([)symbol(:ancestor)operator(]) reserved(return) pre_constant(false) reserved(unless) ident(catch) symbol(:found) reserved(do) ident(p) operator(=) pre_constant(self) ident(throw) symbol(:found)operator(,) pre_constant(true) reserved(if) ident(p)operator(.)ident(match)operator(()ident(conditions)operator([)symbol(:ancestor)operator(])operator(\)) reserved(while) ident(p) operator(=) ident(p)operator(.)ident(parent) reserved(end) reserved(end) comment(# test descendants) reserved(if) ident(conditions)operator([)symbol(:descendant)operator(]) reserved(return) pre_constant(false) reserved(unless) ident(children)operator(.)ident(find) reserved(do) operator(|)ident(child)operator(|) comment(# test the child) ident(child)operator(.)ident(match)operator(()ident(conditions)operator([)symbol(:descendant)operator(])operator(\)) operator(||) comment(# test the child's descendants) ident(child)operator(.)ident(match)operator(()symbol(:descendant) operator(=)operator(>) ident(conditions)operator([)symbol(:descendant)operator(])operator(\)) reserved(end) reserved(end) comment(# count children) reserved(if) ident(opts) operator(=) ident(conditions)operator([)symbol(:children)operator(]) ident(matches) operator(=) ident(children)operator(.)ident(select) reserved(do) operator(|)ident(c)operator(|) ident(c)operator(.)ident(match)operator(()regexpoperator(\)) reserved(or) operator(()ident(c)operator(.)ident(kind_of?)operator(()constant(HTML)operator(::)constant(Tag)operator(\)) reserved(and) operator(()ident(c)operator(.)ident(closing) operator(==) symbol(:self) reserved(or) operator(!) ident(c)operator(.)ident(childless?)operator(\))operator(\)) reserved(end) ident(matches) operator(=) ident(matches)operator(.)ident(select) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(match)operator(()ident(opts)operator([)symbol(:only)operator(])operator(\)) operator(}) reserved(if) ident(opts)operator([)symbol(:only)operator(]) ident(opts)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(next) reserved(if) ident(key) operator(==) symbol(:only) reserved(case) ident(key) reserved(when) symbol(:count) reserved(if) constant(Integer) operator(===) ident(value) reserved(return) pre_constant(false) reserved(if) ident(matches)operator(.)ident(length) operator(!=) ident(value) reserved(else) reserved(return) pre_constant(false) reserved(unless) ident(value)operator(.)ident(include?)operator(()ident(matches)operator(.)ident(length)operator(\)) reserved(end) reserved(when) symbol(:less_than) reserved(return) pre_constant(false) reserved(unless) ident(matches)operator(.)ident(length) operator(<) ident(value) reserved(when) symbol(:greater_than) reserved(return) pre_constant(false) reserved(unless) ident(matches)operator(.)ident(length) operator(>) ident(value) reserved(else) ident(raise) stringdelimiter(")> reserved(end) reserved(end) reserved(end) comment(# test siblings) reserved(if) ident(conditions)operator([)symbol(:sibling)operator(]) operator(||) ident(conditions)operator([)symbol(:before)operator(]) operator(||) ident(conditions)operator([)symbol(:after)operator(]) ident(siblings) operator(=) ident(parent) operator(?) ident(parent)operator(.)ident(children) operator(:) operator([)operator(]) ident(self_index) operator(=) ident(siblings)operator(.)ident(index)operator(()pre_constant(self)operator(\)) reserved(if) ident(conditions)operator([)symbol(:sibling)operator(]) reserved(return) pre_constant(false) reserved(unless) ident(siblings)operator(.)ident(detect) reserved(do) operator(|)ident(s)operator(|) ident(s) operator(!=) pre_constant(self) operator(&&) ident(s)operator(.)ident(match)operator(()ident(conditions)operator([)symbol(:sibling)operator(])operator(\)) reserved(end) reserved(end) reserved(if) ident(conditions)operator([)symbol(:before)operator(]) reserved(return) pre_constant(false) reserved(unless) ident(siblings)operator([)ident(self_index)operator(+)integer(1)operator(..)integer(-1)operator(])operator(.)ident(detect) reserved(do) operator(|)ident(s)operator(|) ident(s) operator(!=) pre_constant(self) operator(&&) ident(s)operator(.)ident(match)operator(()ident(conditions)operator([)symbol(:before)operator(])operator(\)) reserved(end) reserved(end) reserved(if) ident(conditions)operator([)symbol(:after)operator(]) reserved(return) pre_constant(false) reserved(unless) ident(siblings)operator([)integer(0)operator(,)ident(self_index)operator(])operator(.)ident(detect) reserved(do) operator(|)ident(s)operator(|) ident(s) operator(!=) pre_constant(self) operator(&&) ident(s)operator(.)ident(match)operator(()ident(conditions)operator([)symbol(:after)operator(])operator(\)) reserved(end) reserved(end) reserved(end) pre_constant(true) reserved(end) reserved(def) method(==)operator(()ident(node)operator(\)) reserved(return) pre_constant(false) reserved(unless) reserved(super) reserved(return) pre_constant(false) reserved(unless) ident(closing) operator(==) ident(node)operator(.)ident(closing) operator(&&) pre_constant(self)operator(.)ident(name) operator(==) ident(node)operator(.)ident(name) ident(attributes) operator(==) ident(node)operator(.)ident(attributes) reserved(end) ident(private) comment(# Match the given value to the given condition.) reserved(def) method(match_condition)operator(()ident(value)operator(,) ident(condition)operator(\)) reserved(case) ident(condition) reserved(when) constant(String) ident(value) operator(&&) ident(value) operator(==) ident(condition) reserved(when) constant(Regexp) ident(value) operator(&&) ident(value)operator(.)ident(match)operator(()ident(condition)operator(\)) reserved(when) constant(Numeric) ident(value) operator(==) ident(condition)operator(.)ident(to_s) reserved(when) pre_constant(true) operator(!)ident(value)operator(.)ident(nil?) reserved(when) pre_constant(false)operator(,) pre_constant(nil) ident(value)operator(.)ident(nil?) reserved(else) pre_constant(false) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(HTML) comment(#:nodoc:) comment(# A simple HTML tokenizer. It simply breaks a stream of text into tokens, where each) comment(# token is a string. Each string represents either "text", or an HTML element.) comment(#) comment(# This currently assumes valid XHTML, which means no free < or > characters.) comment(#) comment(# Usage:) comment(#) comment(# tokenizer = HTML::Tokenizer.new(text\)) comment(# while token = tokenizer.next) comment(# p token) comment(# end) reserved(class) class(Tokenizer) comment(#:nodoc:) comment(# The current (byte\) position in the text) ident(attr_reader) symbol(:position) comment(# The current line number) ident(attr_reader) symbol(:line) comment(# Create a new Tokenizer for the given text.) reserved(def) method(initialize)operator(()ident(text)operator(\)) instance_variable(@scanner) operator(=) constant(StringScanner)operator(.)ident(new)operator(()ident(text)operator(\)) instance_variable(@position) operator(=) integer(0) instance_variable(@line) operator(=) integer(0) instance_variable(@current_line) operator(=) integer(1) reserved(end) comment(# Return the next token in the sequence, or +nil+ if there are no more tokens in) comment(# the stream.) reserved(def) method(next) reserved(return) pre_constant(nil) reserved(if) instance_variable(@scanner)operator(.)ident(eos?) instance_variable(@position) operator(=) instance_variable(@scanner)operator(.)ident(pos) instance_variable(@line) operator(=) instance_variable(@current_line) reserved(if) instance_variable(@scanner)operator(.)ident(check)operator(()regexpoperator(\)) ident(update_current_line)operator(()ident(scan_tag)operator(\)) reserved(else) ident(update_current_line)operator(()ident(scan_text)operator(\)) reserved(end) reserved(end) ident(private) comment(# Treat the text at the current position as a tag, and scan it. Supports) comment(# comments, doctype tags, and regular tags, and ignores less-than and) comment(# greater-than characters within quoted strings.) reserved(def) method(scan_tag) ident(tag) operator(=) instance_variable(@scanner)operator(.)ident(getch) reserved(if) instance_variable(@scanner)operator(.)ident(scan)operator(()regexpoperator(\)) comment(# comment) ident(tag) operator(<<) instance_variable(@scanner)operator(.)ident(matched) ident(tag) operator(<<) operator(()instance_variable(@scanner)operator(.)ident(scan_until)operator(()regexp)delimiter(/)>operator(\)) operator(||) instance_variable(@scanner)operator(.)ident(scan_until)operator(()regexpoperator(\))operator(\)) reserved(elsif) instance_variable(@scanner)operator(.)ident(scan)operator(()regexpoperator(\)) ident(tag) operator(<<) instance_variable(@scanner)operator(.)ident(matched) ident(tag) operator(<<) instance_variable(@scanner)operator(.)ident(scan_until)operator(()regexp)delimiter(/)>operator(\)) reserved(elsif) instance_variable(@scanner)operator(.)ident(scan)operator(()regexpoperator(\)) comment(# doctype) ident(tag) operator(<<) instance_variable(@scanner)operator(.)ident(matched) ident(tag) operator(<<) ident(consume_quoted_regions) reserved(else) ident(tag) operator(<<) ident(consume_quoted_regions) reserved(end) ident(tag) reserved(end) comment(# Scan all text up to the next < character and return it.) reserved(def) method(scan_text) stringinlineoperator(\))inline_delimiter(})>delimiter(")> reserved(end) comment(# Counts the number of newlines in the text and updates the current line) comment(# accordingly.) reserved(def) method(update_current_line)operator(()ident(text)operator(\)) ident(text)operator(.)ident(scan)operator(()regexpoperator(\)) operator({) instance_variable(@current_line) operator(+=) integer(1) operator(}) reserved(end) comment(# Skips over quoted strings, so that less-than and greater-than characters) comment(# within the strings are ignored.) reserved(def) method(consume_quoted_regions) ident(text) operator(=) string ident(loop) reserved(do) ident(match) operator(=) instance_variable(@scanner)operator(.)ident(scan_until)operator(()regexp])delimiter(/)>operator(\)) reserved(or) reserved(break) ident(delim) operator(=) instance_variable(@scanner)operator(.)ident(matched) reserved(if) ident(delim) operator(==) string ident(match) operator(=) ident(match)operator(.)ident(chop) instance_variable(@scanner)operator(.)ident(pos) operator(-=) integer(1) reserved(end) ident(text) operator(<<) ident(match) reserved(break) reserved(if) ident(delim) operator(==) string operator(||) ident(delim) operator(==) string)delimiter(")> comment(# consume the quoted region) reserved(while) ident(match) operator(=) instance_variable(@scanner)operator(.)ident(scan_until)operator(()regexpcontent(])delimiter(/)>operator(\)) ident(text) operator(<<) ident(match) reserved(break) reserved(if) instance_variable(@scanner)operator(.)ident(matched) operator(==) ident(delim) ident(text) operator(<<) instance_variable(@scanner)operator(.)ident(getch) comment(# skip the escaped character) reserved(end) reserved(end) ident(text) reserved(end) reserved(end) reserved(end) reserved(module) class(HTML) comment(#:nodoc:) reserved(module) class(Version) comment(#:nodoc:) constant(MAJOR) operator(=) integer(0) constant(MINOR) operator(=) integer(5) constant(TINY) operator(=) integer(3) constant(STRING) operator(=) operator([) constant(MAJOR)operator(,) constant(MINOR)operator(,) constant(TINY) operator(])operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) ident(require) string comment(# SimpleXML like xml parser. Written by leon breet from the ruby on rails Mailing list) reserved(class) class(XmlNode) comment(#:nodoc:) ident(attr) symbol(:node) reserved(def) method(initialize)operator(()ident(node)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) instance_variable(@node) operator(=) ident(node) instance_variable(@children) operator(=) operator({)operator(}) instance_variable(@raise_errors) operator(=) ident(options)operator([)symbol(:raise_errors)operator(]) reserved(end) reserved(def) pre_constant(self)operator(.)method(from_xml)operator(()ident(xml_or_io)operator(\)) ident(document) operator(=) constant(REXML)operator(::)constant(Document)operator(.)ident(new)operator(()ident(xml_or_io)operator(\)) reserved(if) ident(document)operator(.)ident(root) constant(XmlNode)operator(.)ident(new)operator(()ident(document)operator(.)ident(root)operator(\)) reserved(else) constant(XmlNode)operator(.)ident(new)operator(()ident(document)operator(\)) reserved(end) reserved(end) reserved(def) method(node_encoding) instance_variable(@node)operator(.)ident(encoding) reserved(end) reserved(def) method(node_name) instance_variable(@node)operator(.)ident(name) reserved(end) reserved(def) method(node_value) instance_variable(@node)operator(.)ident(text) reserved(end) reserved(def) method(node_value=)operator(()ident(value)operator(\)) instance_variable(@node)operator(.)ident(text) operator(=) ident(value) reserved(end) reserved(def) method(xpath)operator(()ident(expr)operator(\)) ident(matches) operator(=) pre_constant(nil) constant(REXML)operator(::)constant(XPath)operator(.)ident(each)operator(()instance_variable(@node)operator(,) ident(expr)operator(\)) reserved(do) operator(|)ident(element)operator(|) ident(matches) operator(||=) constant(XmlNodeList)operator(.)ident(new) ident(matches) operator(<<) operator(()instance_variable(@children)operator([)ident(element)operator(]) operator(||=) constant(XmlNode)operator(.)ident(new)operator(()ident(element)operator(\))operator(\)) reserved(end) ident(matches) reserved(end) reserved(def) method(method_missing)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) ident(name) operator(=) ident(name)operator(.)ident(to_s) ident(nodes) operator(=) pre_constant(nil) instance_variable(@node)operator(.)ident(each_element)operator(()ident(name)operator(\)) reserved(do) operator(|)ident(element)operator(|) ident(nodes) operator(||=) constant(XmlNodeList)operator(.)ident(new) ident(nodes) operator(<<) operator(()instance_variable(@children)operator([)ident(element)operator(]) operator(||=) constant(XmlNode)operator(.)ident(new)operator(()ident(element)operator(\))operator(\)) reserved(end) ident(nodes) reserved(end) reserved(def) method(<<)operator(()ident(node)operator(\)) reserved(if) ident(node)operator(.)ident(is_a?) constant(REXML)operator(::)constant(Node) ident(child) operator(=) ident(node) reserved(elsif) ident(node)operator(.)ident(respond_to?) symbol(:node) ident(child) operator(=) ident(node)operator(.)ident(node) reserved(end) instance_variable(@node)operator(.)ident(add_element) ident(child) instance_variable(@children)operator([)ident(child)operator(]) operator(||=) constant(XmlNode)operator(.)ident(new)operator(()ident(child)operator(\)) reserved(end) reserved(def) method([])operator(()ident(name)operator(\)) instance_variable(@node)operator(.)ident(attributes)operator([)ident(name)operator(.)ident(to_s)operator(]) reserved(end) reserved(def) method([]=)operator(()ident(name)operator(,) ident(value)operator(\)) instance_variable(@node)operator(.)ident(attributes)operator([)ident(name)operator(.)ident(to_s)operator(]) operator(=) ident(value) reserved(end) reserved(def) method(to_s) instance_variable(@node)operator(.)ident(to_s) reserved(end) reserved(def) method(to_i) ident(to_s)operator(.)ident(to_i) reserved(end) reserved(end) reserved(class) class(XmlNodeList) operator(<) constant(Array) comment(#:nodoc:) reserved(def) method([])operator(()ident(i)operator(\)) ident(i)operator(.)ident(is_a?)operator(()constant(String)operator(\)) operator(?) reserved(super)operator(()integer(0)operator(\))operator([)ident(i)operator(]) operator(:) reserved(super)operator(()ident(i)operator(\)) reserved(end) reserved(def) method([]=)operator(()ident(i)operator(,) ident(value)operator(\)) ident(i)operator(.)ident(is_a?)operator(()constant(String)operator(\)) operator(?) pre_constant(self)operator([)integer(0)operator(])operator([)ident(i)operator(]) operator(=) ident(value) operator(:) reserved(super)operator(()ident(i)operator(,) ident(value)operator(\)) reserved(end) reserved(def) method(method_missing)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) ident(name) operator(=) ident(name)operator(.)ident(to_s) pre_constant(self)operator([)integer(0)operator(])operator(.)ident(__send__)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) reserved(end) reserved(end)comment(# = XmlSimple) comment(#) comment(# Author:: Maik Schmidt ) comment(# Copyright:: Copyright (c\) 2003 Maik Schmidt) comment(# License:: Distributes under the same terms as Ruby.) comment(#) ident(require) string comment(# Easy API to maintain XML (especially configuration files\).) reserved(class) class(XmlSimple) comment(#:nodoc:) ident(include) constant(REXML) class_variable(@@VERSION) operator(=) string comment(# A simple cache for XML documents that were already transformed) comment(# by xml_in.) reserved(class) class(Cache) comment(#:nodoc:) comment(# Creates and initializes a new Cache object.) reserved(def) method(initialize) instance_variable(@mem_share_cache) operator(=) operator({)operator(}) instance_variable(@mem_copy_cache) operator(=) operator({)operator(}) reserved(end) comment(# Saves a data structure into a file.) comment(# ) comment(# data::) comment(# Data structure to be saved.) comment(# filename::) comment(# Name of the file belonging to the data structure.) reserved(def) method(save_storable)operator(()ident(data)operator(,) ident(filename)operator(\)) ident(cache_file) operator(=) ident(get_cache_filename)operator(()ident(filename)operator(\)) constant(File)operator(.)ident(open)operator(()ident(cache_file)operator(,) stringoperator(\)) operator({) operator(|)ident(f)operator(|) constant(Marshal)operator(.)ident(dump)operator(()ident(data)operator(,) ident(f)operator(\)) operator(}) reserved(end) comment(# Restores a data structure from a file. If restoring the data) comment(# structure failed for any reason, nil will be returned.) comment(#) comment(# filename::) comment(# Name of the file belonging to the data structure.) reserved(def) method(restore_storable)operator(()ident(filename)operator(\)) ident(cache_file) operator(=) ident(get_cache_filename)operator(()ident(filename)operator(\)) reserved(return) pre_constant(nil) reserved(unless) constant(File)operator(::)ident(exist?)operator(()ident(cache_file)operator(\)) reserved(return) pre_constant(nil) reserved(unless) constant(File)operator(::)ident(mtime)operator(()ident(cache_file)operator(\))operator(.)ident(to_i) operator(>) constant(File)operator(::)ident(mtime)operator(()ident(filename)operator(\))operator(.)ident(to_i) ident(data) operator(=) pre_constant(nil) constant(File)operator(.)ident(open)operator(()ident(cache_file)operator(\)) operator({) operator(|)ident(f)operator(|) ident(data) operator(=) constant(Marshal)operator(.)ident(load)operator(()ident(f)operator(\)) operator(}) ident(data) reserved(end) comment(# Saves a data structure in a shared memory cache.) comment(#) comment(# data::) comment(# Data structure to be saved.) comment(# filename::) comment(# Name of the file belonging to the data structure.) reserved(def) method(save_mem_share)operator(()ident(data)operator(,) ident(filename)operator(\)) instance_variable(@mem_share_cache)operator([)ident(filename)operator(]) operator(=) operator([)constant(Time)operator(::)ident(now)operator(.)ident(to_i)operator(,) ident(data)operator(]) reserved(end) comment(# Restores a data structure from a shared memory cache. You) comment(# should consider these elements as "read only". If restoring) comment(# the data structure failed for any reason, nil will be) comment(# returned.) comment(#) comment(# filename::) comment(# Name of the file belonging to the data structure.) reserved(def) method(restore_mem_share)operator(()ident(filename)operator(\)) ident(get_from_memory_cache)operator(()ident(filename)operator(,) instance_variable(@mem_share_cache)operator(\)) reserved(end) comment(# Copies a data structure to a memory cache.) comment(#) comment(# data::) comment(# Data structure to be copied.) comment(# filename::) comment(# Name of the file belonging to the data structure.) reserved(def) method(save_mem_copy)operator(()ident(data)operator(,) ident(filename)operator(\)) instance_variable(@mem_share_cache)operator([)ident(filename)operator(]) operator(=) operator([)constant(Time)operator(::)ident(now)operator(.)ident(to_i)operator(,) constant(Marshal)operator(.)ident(dump)operator(()ident(data)operator(\))operator(]) reserved(end) comment(# Restores a data structure from a memory cache. If restoring) comment(# the data structure failed for any reason, nil will be) comment(# returned.) comment(#) comment(# filename::) comment(# Name of the file belonging to the data structure.) reserved(def) method(restore_mem_copy)operator(()ident(filename)operator(\)) ident(data) operator(=) ident(get_from_memory_cache)operator(()ident(filename)operator(,) instance_variable(@mem_share_cache)operator(\)) ident(data) operator(=) constant(Marshal)operator(.)ident(load)operator(()ident(data)operator(\)) reserved(unless) ident(data)operator(.)ident(nil?) ident(data) reserved(end) ident(private) comment(# Returns the "cache filename" belonging to a filename, i.e.) comment(# the extension '.xml' in the original filename will be replaced) comment(# by '.stor'. If filename does not have this extension, '.stor') comment(# will be appended.) comment(#) comment(# filename::) comment(# Filename to get "cache filename" for.) reserved(def) method(get_cache_filename)operator(()ident(filename)operator(\)) ident(filename)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) comment(# Returns a cache entry from a memory cache belonging to a) comment(# certain filename. If no entry could be found for any reason,) comment(# nil will be returned.) comment(#) comment(# filename::) comment(# Name of the file the cache entry belongs to.) comment(# cache::) comment(# Memory cache to get entry from.) reserved(def) method(get_from_memory_cache)operator(()ident(filename)operator(,) ident(cache)operator(\)) reserved(return) pre_constant(nil) reserved(unless) ident(cache)operator([)ident(filename)operator(]) reserved(return) pre_constant(nil) reserved(unless) ident(cache)operator([)ident(filename)operator(])operator([)integer(0)operator(]) operator(>) constant(File)operator(::)ident(mtime)operator(()ident(filename)operator(\))operator(.)ident(to_i) reserved(return) ident(cache)operator([)ident(filename)operator(])operator([)integer(1)operator(]) reserved(end) reserved(end) comment(# Create a "global" cache.) class_variable(@@cache) operator(=) constant(Cache)operator(.)ident(new) comment(# Creates and intializes a new XmlSimple object.) comment(# ) comment(# defaults::) comment(# Default values for options.) reserved(def) method(initialize)operator(()ident(defaults) operator(=) pre_constant(nil)operator(\)) reserved(unless) ident(defaults)operator(.)ident(nil?) operator(||) ident(defaults)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(end) instance_variable(@default_options) operator(=) ident(normalize_option_names)operator(()ident(defaults)operator(,) constant(KNOWN_OPTIONS)operator([)stringoperator(]) operator(&) constant(KNOWN_OPTIONS)operator([)stringoperator(])operator(\)) instance_variable(@options) operator(=) constant(Hash)operator(.)ident(new) instance_variable(@_var_values) operator(=) pre_constant(nil) reserved(end) comment(# Converts an XML document in the same way as the Perl module XML::Simple.) comment(#) comment(# string::) comment(# XML source. Could be one of the following:) comment(#) comment(# - nil: Tries to load and parse '.xml'.) comment(# - filename: Tries to load and parse filename.) comment(# - IO object: Reads from object until EOF is detected and parses result.) comment(# - XML string: Parses string.) comment(# ) comment(# options::) comment(# Options to be used.) reserved(def) method(xml_in)operator(()ident(string) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) ident(handle_options)operator(()stringoperator(,) ident(options)operator(\)) comment(# If no XML string or filename was supplied look for scriptname.xml.) reserved(if) ident(string)operator(.)ident(nil?) ident(string) operator(=) constant(File)operator(::)ident(basename)operator(()global_variable($0)operator(\)) ident(string)operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) ident(string) operator(+=) string ident(directory) operator(=) constant(File)operator(::)ident(dirname)operator(()global_variable($0)operator(\)) instance_variable(@options)operator([)stringoperator(])operator(.)ident(unshift)operator(()ident(directory)operator(\)) reserved(unless) ident(directory)operator(.)ident(nil?) reserved(end) reserved(if) ident(string)operator(.)ident(instance_of?)operator(()constant(String)operator(\)) reserved(if) ident(string) operator(=)operator(~) regexp)delimiter(/)modifier(m)> instance_variable(@doc) operator(=) ident(parse)operator(()ident(string)operator(\)) reserved(elsif) ident(string) operator(==) string instance_variable(@doc) operator(=) ident(parse)operator(()global_variable($stdin)operator(.)ident(readlines)operator(.)ident(to_s)operator(\)) reserved(else) ident(filename) operator(=) ident(find_xml_file)operator(()ident(string)operator(,) instance_variable(@options)operator([)stringoperator(])operator(\)) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) instance_variable(@options)operator([)stringoperator(])operator(.)ident(each) operator({) operator(|)ident(scheme)operator(|) reserved(case)operator(()ident(scheme)operator(\)) reserved(when) string ident(content) operator(=) class_variable(@@cache)operator(.)ident(restore_storable)operator(()ident(filename)operator(\)) reserved(when) string ident(content) operator(=) class_variable(@@cache)operator(.)ident(restore_mem_share)operator(()ident(filename)operator(\)) reserved(when) string ident(content) operator(=) class_variable(@@cache)operator(.)ident(restore_mem_copy)operator(()ident(filename)operator(\)) reserved(else) ident(raise) constant(ArgumentError)operator(,) stringcontent(>.)delimiter(")> reserved(end) reserved(return) ident(content) reserved(if) ident(content) operator(}) reserved(end) instance_variable(@doc) operator(=) ident(load_xml_file)operator(()ident(filename)operator(\)) reserved(end) reserved(elsif) ident(string)operator(.)ident(kind_of?)operator(()constant(IO)operator(\)) instance_variable(@doc) operator(=) ident(parse)operator(()ident(string)operator(.)ident(readlines)operator(.)ident(to_s)operator(\)) reserved(else) ident(raise) constant(ArgumentError)operator(,) stringcontent(>.)delimiter(")> reserved(end) ident(result) operator(=) ident(collapse)operator(()instance_variable(@doc)operator(.)ident(root)operator(\)) ident(result) operator(=) instance_variable(@options)operator([)stringoperator(]) operator(?) ident(merge)operator(()operator({)operator(})operator(,) instance_variable(@doc)operator(.)ident(root)operator(.)ident(name)operator(,) ident(result)operator(\)) operator(:) ident(result) ident(put_into_cache)operator(()ident(result)operator(,) ident(filename)operator(\)) ident(result) reserved(end) comment(# This is the functional version of the instance method xml_in.) reserved(def) constant(XmlSimple)operator(.)method(xml_in)operator(()ident(string) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) ident(xml_simple) operator(=) constant(XmlSimple)operator(.)ident(new) ident(xml_simple)operator(.)ident(xml_in)operator(()ident(string)operator(,) ident(options)operator(\)) reserved(end) comment(# Converts a data structure into an XML document.) comment(#) comment(# ref::) comment(# Reference to data structure to be converted into XML.) comment(# options::) comment(# Options to be used.) reserved(def) method(xml_out)operator(()ident(ref)operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) ident(handle_options)operator(()stringoperator(,) ident(options)operator(\)) reserved(if) ident(ref)operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) ident(ref) operator(=) operator({) instance_variable(@options)operator([)stringoperator(]) operator(=)operator(>) ident(ref) operator(}) reserved(end) reserved(if) instance_variable(@options)operator([)stringoperator(]) ident(keys) operator(=) ident(ref)operator(.)ident(keys) reserved(if) ident(keys)operator(.)ident(size) operator(==) integer(1) ident(ref) operator(=) ident(ref)operator([)ident(keys)operator([)integer(0)operator(])operator(]) instance_variable(@options)operator([)stringoperator(]) operator(=) ident(keys)operator([)integer(0)operator(]) reserved(end) reserved(elsif) instance_variable(@options)operator([)stringoperator(]) operator(==) string reserved(if) ident(ref)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) ident(refsave) operator(=) ident(ref) ident(ref) operator(=) operator({)operator(}) ident(refsave)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(if) operator(!)ident(scalar)operator(()ident(value)operator(\)) ident(ref)operator([)ident(key)operator(]) operator(=) ident(value) reserved(else) ident(ref)operator([)ident(key)operator(]) operator(=) operator([) ident(value)operator(.)ident(to_s) operator(]) reserved(end) operator(}) reserved(end) reserved(end) instance_variable(@ancestors) operator(=) operator([)operator(]) ident(xml) operator(=) ident(value_to_xml)operator(()ident(ref)operator(,) instance_variable(@options)operator([)stringoperator(])operator(,) stringoperator(\)) instance_variable(@ancestors) operator(=) pre_constant(nil) reserved(if) instance_variable(@options)operator([)stringoperator(]) ident(xml) operator(=) instance_variable(@options)operator([)stringoperator(]) operator(+) string operator(+) ident(xml) reserved(end) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(])operator(.)ident(kind_of?)operator(()constant(IO)operator(\)) reserved(return) instance_variable(@options)operator([)stringoperator(])operator(.)ident(write)operator(()ident(xml)operator(\)) reserved(else) constant(File)operator(.)ident(open)operator(()instance_variable(@options)operator([)stringoperator(])operator(,) stringoperator(\)) operator({) operator(|)ident(file)operator(|) ident(file)operator(.)ident(write)operator(()ident(xml)operator(\)) operator(}) reserved(end) reserved(end) ident(xml) reserved(end) comment(# This is the functional version of the instance method xml_out.) reserved(def) constant(XmlSimple)operator(.)method(xml_out)operator(()ident(hash)operator(,) ident(options) operator(=) pre_constant(nil)operator(\)) ident(xml_simple) operator(=) constant(XmlSimple)operator(.)ident(new) ident(xml_simple)operator(.)ident(xml_out)operator(()ident(hash)operator(,) ident(options)operator(\)) reserved(end) ident(private) comment(# Declare options that are valid for xml_in and xml_out.) constant(KNOWN_OPTIONS) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) comment(# Define some reasonable defaults.) constant(DEF_KEY_ATTRIBUTES) operator(=) operator([)operator(]) constant(DEF_ROOT_NAME) operator(=) string constant(DEF_CONTENT_KEY) operator(=) string constant(DEF_XML_DECLARATION) operator(=) string)delimiter(")> constant(DEF_ANONYMOUS_TAG) operator(=) string constant(DEF_FORCE_ARRAY) operator(=) pre_constant(true) constant(DEF_INDENTATION) operator(=) string comment(# Normalizes option names in a hash, i.e., turns all) comment(# characters to lower case and removes all underscores.) comment(# Additionally, this method checks, if an unknown option) comment(# was used and raises an according exception.) comment(#) comment(# options::) comment(# Hash to be normalized.) comment(# known_options::) comment(# List of known options.) reserved(def) method(normalize_option_names)operator(()ident(options)operator(,) ident(known_options)operator(\)) reserved(return) pre_constant(nil) reserved(if) ident(options)operator(.)ident(nil?) ident(result) operator(=) constant(Hash)operator(.)ident(new) ident(options)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) ident(lkey) operator(=) ident(key)operator(.)ident(downcase) ident(lkey)operator(.)ident(gsub!)operator(()regexpoperator(,) stringoperator(\)) reserved(if) operator(!)ident(known_options)operator(.)ident(member?)operator(()ident(lkey)operator(\)) ident(raise) constant(ArgumentError)operator(,) stringcontent(.)delimiter(")> reserved(end) ident(result)operator([)ident(lkey)operator(]) operator(=) ident(value) operator(}) ident(result) reserved(end) comment(# Merges a set of options with the default options.) comment(# ) comment(# direction::) comment(# 'in': If options should be handled for xml_in.) comment(# 'out': If options should be handled for xml_out.) comment(# options::) comment(# Options to be merged with the default options.) reserved(def) method(handle_options)operator(()ident(direction)operator(,) ident(options)operator(\)) instance_variable(@options) operator(=) ident(options) operator(||) constant(Hash)operator(.)ident(new) ident(raise) constant(ArgumentError)operator(,) string reserved(unless) instance_variable(@options)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) reserved(unless) constant(KNOWN_OPTIONS)operator(.)ident(has_key?)operator(()ident(direction)operator(\)) ident(raise) constant(ArgumentError)operator(,) stringcontent(>.)delimiter(")> reserved(end) ident(known_options) operator(=) constant(KNOWN_OPTIONS)operator([)ident(direction)operator(]) instance_variable(@options) operator(=) ident(normalize_option_names)operator(()instance_variable(@options)operator(,) ident(known_options)operator(\)) reserved(unless) instance_variable(@default_options)operator(.)ident(nil?) ident(known_options)operator(.)ident(each) operator({) operator(|)ident(option)operator(|) reserved(unless) instance_variable(@options)operator(.)ident(has_key?)operator(()ident(option)operator(\)) reserved(if) instance_variable(@default_options)operator(.)ident(has_key?)operator(()ident(option)operator(\)) instance_variable(@options)operator([)ident(option)operator(]) operator(=) instance_variable(@default_options)operator([)ident(option)operator(]) reserved(end) reserved(end) operator(}) reserved(end) reserved(unless) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) instance_variable(@options)operator([)stringoperator(]) operator(=) pre_constant(false) reserved(end) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) instance_variable(@options)operator([)stringoperator(]) operator(=) string reserved(if) instance_variable(@options)operator([)stringoperator(])operator(.)ident(nil?) reserved(else) instance_variable(@options)operator([)stringoperator(]) operator(=) constant(DEF_ROOT_NAME) reserved(end) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) operator(&&) instance_variable(@options)operator([)stringoperator(]) operator(==) pre_constant(true) instance_variable(@options)operator([)stringoperator(]) operator(=) constant(DEF_XML_DECLARATION) reserved(end) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(]) operator(=)operator(~) regexp instance_variable(@options)operator([)stringoperator(]) operator(=) global_variable($1) instance_variable(@options)operator([)stringoperator(]) operator(=) pre_constant(true) reserved(end) reserved(else) instance_variable(@options)operator([)stringoperator(]) operator(=) constant(DEF_CONTENT_KEY) reserved(end) reserved(unless) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) instance_variable(@options)operator([)stringoperator(]) operator(=) instance_variable(@options)operator([)stringoperator(]) reserved(end) instance_variable(@options)operator([)stringoperator(]) operator(=) integer(0) reserved(if) instance_variable(@options)operator([)stringoperator(])operator(.)ident(nil?) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) reserved(unless) instance_variable(@options)operator([)stringoperator(])operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) instance_variable(@options)operator([)stringoperator(]) operator(=) operator([) instance_variable(@options)operator([)stringoperator(]) operator(]) reserved(end) reserved(else) instance_variable(@options)operator([)stringoperator(]) operator(=) operator([)operator(]) reserved(end) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) operator(&&) ident(scalar)operator(()instance_variable(@options)operator([)stringoperator(])operator(\)) instance_variable(@options)operator([)stringoperator(]) operator(=) operator([) instance_variable(@options)operator([)stringoperator(]) operator(]) reserved(end) instance_variable(@options)operator([)stringoperator(]) operator(=) constant(DEF_ANONYMOUS_TAG) reserved(unless) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) reserved(if) operator(!)instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) operator(||) instance_variable(@options)operator([)stringoperator(])operator(.)ident(nil?) instance_variable(@options)operator([)stringoperator(]) operator(=) constant(DEF_INDENTATION) reserved(end) instance_variable(@options)operator([)stringoperator(]) operator(=) string reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) comment(# Special cleanup for 'keyattr' which could be an array or) comment(# a hash or left to default to array.) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) reserved(if) operator(!)ident(scalar)operator(()instance_variable(@options)operator([)stringoperator(])operator(\)) comment(# Convert keyattr => { elem => '+attr' }) comment(# to keyattr => { elem => ['attr', '+'] }) reserved(if) instance_variable(@options)operator([)stringoperator(])operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) instance_variable(@options)operator([)stringoperator(])operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(if) ident(value) operator(=)operator(~) regexp instance_variable(@options)operator([)stringoperator(])operator([)ident(key)operator(]) operator(=) operator([)global_variable($2)operator(,) global_variable($1) operator(?) global_variable($1) operator(:) stringoperator(]) reserved(end) operator(}) reserved(elsif) operator(!)instance_variable(@options)operator([)stringoperator(])operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(else) instance_variable(@options)operator([)stringoperator(]) operator(=) operator([) instance_variable(@options)operator([)stringoperator(]) operator(]) reserved(end) reserved(else) instance_variable(@options)operator([)stringoperator(]) operator(=) constant(DEF_KEY_ATTRIBUTES) reserved(end) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(])operator(.)ident(instance_of?)operator(()constant(Regexp)operator(\)) instance_variable(@options)operator([)stringoperator(]) operator(=) operator([) instance_variable(@options)operator([)stringoperator(]) operator(]) reserved(end) reserved(if) instance_variable(@options)operator([)stringoperator(])operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) ident(force_list) operator(=) instance_variable(@options)operator([)stringoperator(]) reserved(unless) ident(force_list)operator(.)ident(empty?) instance_variable(@options)operator([)stringoperator(]) operator(=) operator({)operator(}) ident(force_list)operator(.)ident(each) operator({) operator(|)ident(tag)operator(|) reserved(if) ident(tag)operator(.)ident(instance_of?)operator(()constant(Regexp)operator(\)) reserved(unless) instance_variable(@options)operator([)stringoperator(])operator([)stringoperator(])operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) instance_variable(@options)operator([)stringoperator(])operator([)stringoperator(]) operator(=) operator([)operator(]) reserved(end) instance_variable(@options)operator([)stringoperator(])operator([)stringoperator(]) operator(<<) ident(tag) reserved(else) instance_variable(@options)operator([)stringoperator(])operator([)ident(tag)operator(]) operator(=) pre_constant(true) reserved(end) operator(}) reserved(else) instance_variable(@options)operator([)stringoperator(]) operator(=) pre_constant(false) reserved(end) reserved(else) instance_variable(@options)operator([)stringoperator(]) operator(=) instance_variable(@options)operator([)stringoperator(]) operator(?) pre_constant(true) operator(:) pre_constant(false) reserved(end) reserved(else) instance_variable(@options)operator([)stringoperator(]) operator(=) constant(DEF_FORCE_ARRAY) reserved(end) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) operator(&&) operator(!)instance_variable(@options)operator([)stringoperator(])operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) operator(&&) operator(!)instance_variable(@options)operator([)stringoperator(])operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) instance_variable(@_var_values) operator(=) instance_variable(@options)operator([)stringoperator(]) reserved(elsif) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) instance_variable(@_var_values) operator(=) operator({)operator(}) reserved(end) reserved(end) comment(# Actually converts an XML document element into a data structure.) comment(#) comment(# element::) comment(# The document element to be collapsed.) reserved(def) method(collapse)operator(()ident(element)operator(\)) ident(result) operator(=) instance_variable(@options)operator([)stringoperator(]) operator(?) operator({)operator(}) operator(:) ident(get_attributes)operator(()ident(element)operator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(]) operator(==) integer(2) ident(result)operator(.)ident(each) operator({) operator(|)ident(k)operator(,) ident(v)operator(|) ident(result)operator([)ident(k)operator(]) operator(=) ident(normalise_space)operator(()ident(v)operator(\)) operator(}) reserved(end) reserved(if) ident(element)operator(.)ident(has_elements?) ident(element)operator(.)ident(each_element) operator({) operator(|)ident(child)operator(|) ident(value) operator(=) ident(collapse)operator(()ident(child)operator(\)) reserved(if) ident(empty)operator(()ident(value)operator(\)) operator(&&) operator(()ident(element)operator(.)ident(attributes)operator(.)ident(empty?) operator(||) instance_variable(@options)operator([)stringoperator(])operator(\)) reserved(next) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) operator(&&) instance_variable(@options)operator([)stringoperator(]) operator(==) pre_constant(true) reserved(end) ident(result) operator(=) ident(merge)operator(()ident(result)operator(,) ident(child)operator(.)ident(name)operator(,) ident(value)operator(\)) operator(}) reserved(if) ident(has_mixed_content?)operator(()ident(element)operator(\)) comment(# normalisespace?) ident(content) operator(=) ident(element)operator(.)ident(texts)operator(.)ident(map) operator({) operator(|)ident(x)operator(|) ident(x)operator(.)ident(to_s) operator(}) ident(content) operator(=) ident(content)operator([)integer(0)operator(]) reserved(if) ident(content)operator(.)ident(size) operator(==) integer(1) ident(result)operator([)instance_variable(@options)operator([)stringoperator(])operator(]) operator(=) ident(content) reserved(end) reserved(elsif) ident(element)operator(.)ident(has_text?) comment(# i.e. it has only text.) reserved(return) ident(collapse_text_node)operator(()ident(result)operator(,) ident(element)operator(\)) reserved(end) comment(# Turn Arrays into Hashes if key fields present.) ident(count) operator(=) ident(fold_arrays)operator(()ident(result)operator(\)) comment(# Disintermediate grouped tags.) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) ident(result)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(next) reserved(unless) operator(()ident(value)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) operator(&&) operator(()ident(value)operator(.)ident(size) operator(==) integer(1)operator(\))operator(\)) ident(child_key)operator(,) ident(child_value) operator(=) ident(value)operator(.)ident(to_a)operator([)integer(0)operator(]) reserved(if) instance_variable(@options)operator([)stringoperator(])operator([)ident(key)operator(]) operator(==) ident(child_key) ident(result)operator([)ident(key)operator(]) operator(=) ident(child_value) reserved(end) operator(}) reserved(end) comment(# Fold Hases containing a single anonymous Array up into just the Array.) reserved(if) ident(count) operator(==) integer(1) ident(anonymoustag) operator(=) instance_variable(@options)operator([)stringoperator(]) reserved(if) ident(result)operator(.)ident(has_key?)operator(()ident(anonymoustag)operator(\)) operator(&&) ident(result)operator([)ident(anonymoustag)operator(])operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) reserved(return) ident(result)operator([)ident(anonymoustag)operator(]) reserved(end) reserved(end) reserved(if) ident(result)operator(.)ident(empty?) operator(&&) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) reserved(return) instance_variable(@options)operator([)stringoperator(]) operator(==) string operator(?) string operator(:) pre_constant(nil) reserved(end) ident(result) reserved(end) comment(# Collapses a text node and merges it with an existing Hash, if) comment(# possible.) comment(# Thanks to Curtis Schofield for reporting a subtle bug.) comment(#) comment(# hash::) comment(# Hash to merge text node value with, if possible.) comment(# element::) comment(# Text node to be collapsed.) reserved(def) method(collapse_text_node)operator(()ident(hash)operator(,) ident(element)operator(\)) ident(value) operator(=) ident(node_to_text)operator(()ident(element)operator(\)) reserved(if) ident(empty)operator(()ident(value)operator(\)) operator(&&) operator(!)ident(element)operator(.)ident(has_attributes?) reserved(return) operator({)operator(}) reserved(end) reserved(if) ident(element)operator(.)ident(has_attributes?) operator(&&) operator(!)instance_variable(@options)operator([)stringoperator(]) reserved(return) ident(merge)operator(()ident(hash)operator(,) instance_variable(@options)operator([)stringoperator(])operator(,) ident(value)operator(\)) reserved(else) reserved(if) instance_variable(@options)operator([)stringoperator(]) reserved(return) ident(merge)operator(()ident(hash)operator(,) instance_variable(@options)operator([)stringoperator(])operator(,) ident(value)operator(\)) reserved(else) reserved(return) ident(value) reserved(end) reserved(end) reserved(end) comment(# Folds all arrays in a Hash.) comment(# ) comment(# hash::) comment(# Hash to be folded.) reserved(def) method(fold_arrays)operator(()ident(hash)operator(\)) ident(fold_amount) operator(=) integer(0) ident(keyattr) operator(=) instance_variable(@options)operator([)stringoperator(]) reserved(if) operator(()ident(keyattr)operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) operator(||) ident(keyattr)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\))operator(\)) ident(hash)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(if) ident(value)operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) reserved(if) ident(keyattr)operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) ident(hash)operator([)ident(key)operator(]) operator(=) ident(fold_array)operator(()ident(value)operator(\)) reserved(else) ident(hash)operator([)ident(key)operator(]) operator(=) ident(fold_array_by_name)operator(()ident(key)operator(,) ident(value)operator(\)) reserved(end) ident(fold_amount) operator(+=) integer(1) reserved(end) operator(}) reserved(end) ident(fold_amount) reserved(end) comment(# Folds an Array to a Hash, if possible. Folding happens) comment(# according to the content of keyattr, which has to be) comment(# an array.) comment(#) comment(# array::) comment(# Array to be folded.) reserved(def) method(fold_array)operator(()ident(array)operator(\)) ident(hash) operator(=) constant(Hash)operator(.)ident(new) ident(array)operator(.)ident(each) operator({) operator(|)ident(x)operator(|) reserved(return) ident(array) reserved(unless) ident(x)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) ident(key_matched) operator(=) pre_constant(false) instance_variable(@options)operator([)stringoperator(])operator(.)ident(each) operator({) operator(|)ident(key)operator(|) reserved(if) ident(x)operator(.)ident(has_key?)operator(()ident(key)operator(\)) ident(key_matched) operator(=) pre_constant(true) ident(value) operator(=) ident(x)operator([)ident(key)operator(]) reserved(return) ident(array) reserved(if) ident(value)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) operator(||) ident(value)operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) ident(value) operator(=) ident(normalise_space)operator(()ident(value)operator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(]) operator(==) integer(1) ident(x)operator(.)ident(delete)operator(()ident(key)operator(\)) ident(hash)operator([)ident(value)operator(]) operator(=) ident(x) reserved(break) reserved(end) operator(}) reserved(return) ident(array) reserved(unless) ident(key_matched) operator(}) ident(hash) operator(=) ident(collapse_content)operator(()ident(hash)operator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(]) ident(hash) reserved(end) comment(# Folds an Array to a Hash, if possible. Folding happens) comment(# according to the content of keyattr, which has to be) comment(# a Hash.) comment(#) comment(# name::) comment(# Name of the attribute to be folded upon.) comment(# array::) comment(# Array to be folded.) reserved(def) method(fold_array_by_name)operator(()ident(name)operator(,) ident(array)operator(\)) reserved(return) ident(array) reserved(unless) instance_variable(@options)operator([)stringoperator(])operator(.)ident(has_key?)operator(()ident(name)operator(\)) ident(key)operator(,) ident(flag) operator(=) instance_variable(@options)operator([)stringoperator(])operator([)ident(name)operator(]) ident(hash) operator(=) constant(Hash)operator(.)ident(new) ident(array)operator(.)ident(each) operator({) operator(|)ident(x)operator(|) reserved(if) ident(x)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) operator(&&) ident(x)operator(.)ident(has_key?)operator(()ident(key)operator(\)) ident(value) operator(=) ident(x)operator([)ident(key)operator(]) reserved(return) ident(array) reserved(if) ident(value)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) operator(||) ident(value)operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) ident(value) operator(=) ident(normalise_space)operator(()ident(value)operator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(]) operator(==) integer(1) ident(hash)operator([)ident(value)operator(]) operator(=) ident(x) ident(hash)operator([)ident(value)operator(])operator([)stringdelimiter(")>operator(]) operator(=) ident(hash)operator([)ident(value)operator(])operator([)ident(key)operator(]) reserved(if) ident(flag) operator(==) string ident(hash)operator([)ident(value)operator(])operator(.)ident(delete)operator(()ident(key)operator(\)) reserved(unless) ident(flag) operator(==) string reserved(else) global_variable($stderr)operator(.)ident(puts)operator(()stringcontent(> element has no ')inlinecontent(' attribute.)delimiter(")>operator(\)) reserved(return) ident(array) reserved(end) operator(}) ident(hash) operator(=) ident(collapse_content)operator(()ident(hash)operator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(]) ident(hash) reserved(end) comment(# Tries to collapse a Hash even more ;-\)) comment(#) comment(# hash::) comment(# Hash to be collapsed again.) reserved(def) method(collapse_content)operator(()ident(hash)operator(\)) ident(content_key) operator(=) instance_variable(@options)operator([)stringoperator(]) ident(hash)operator(.)ident(each_value) operator({) operator(|)ident(value)operator(|) reserved(return) ident(hash) reserved(unless) ident(value)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) operator(&&) ident(value)operator(.)ident(size) operator(==) integer(1) operator(&&) ident(value)operator(.)ident(has_key?)operator(()ident(content_key)operator(\)) ident(hash)operator(.)ident(each_key) operator({) operator(|)ident(key)operator(|) ident(hash)operator([)ident(key)operator(]) operator(=) ident(hash)operator([)ident(key)operator(])operator([)ident(content_key)operator(]) operator(}) operator(}) ident(hash) reserved(end) comment(# Adds a new key/value pair to an existing Hash. If the key to be added) comment(# does already exist and the existing value associated with key is not) comment(# an Array, it will be converted into an Array. Then the new value is) comment(# appended to that Array.) comment(#) comment(# hash::) comment(# Hash to add key/value pair to.) comment(# key::) comment(# Key to be added.) comment(# value::) comment(# Value to be associated with key.) reserved(def) method(merge)operator(()ident(hash)operator(,) ident(key)operator(,) ident(value)operator(\)) reserved(if) ident(value)operator(.)ident(instance_of?)operator(()constant(String)operator(\)) ident(value) operator(=) ident(normalise_space)operator(()ident(value)operator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(]) operator(==) integer(2) comment(# do variable substitutions) reserved(unless) instance_variable(@_var_values)operator(.)ident(nil?) operator(||) instance_variable(@_var_values)operator(.)ident(empty?) ident(value)operator(.)ident(gsub!)operator(()regexpoperator(\)) operator({) operator(|)ident(x)operator(|) ident(get_var)operator(()global_variable($1)operator(\)) operator(}) reserved(end) comment(# look for variable definitions) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) ident(varattr) operator(=) instance_variable(@options)operator([)stringoperator(]) reserved(if) ident(hash)operator(.)ident(has_key?)operator(()ident(varattr)operator(\)) ident(set_var)operator(()ident(hash)operator([)ident(varattr)operator(])operator(,) ident(value)operator(\)) reserved(end) reserved(end) reserved(end) reserved(if) ident(hash)operator(.)ident(has_key?)operator(()ident(key)operator(\)) reserved(if) ident(hash)operator([)ident(key)operator(])operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) ident(hash)operator([)ident(key)operator(]) operator(<<) ident(value) reserved(else) ident(hash)operator([)ident(key)operator(]) operator(=) operator([) ident(hash)operator([)ident(key)operator(])operator(,) ident(value) operator(]) reserved(end) reserved(elsif) ident(value)operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) comment(# Handle anonymous arrays.) ident(hash)operator([)ident(key)operator(]) operator(=) operator([) ident(value) operator(]) reserved(else) reserved(if) ident(force_array?)operator(()ident(key)operator(\)) ident(hash)operator([)ident(key)operator(]) operator(=) operator([) ident(value) operator(]) reserved(else) ident(hash)operator([)ident(key)operator(]) operator(=) ident(value) reserved(end) reserved(end) ident(hash) reserved(end) comment(# Checks, if the 'forcearray' option has to be used for) comment(# a certain key.) reserved(def) method(force_array?)operator(()ident(key)operator(\)) reserved(return) pre_constant(false) reserved(if) ident(key) operator(==) instance_variable(@options)operator([)stringoperator(]) reserved(return) pre_constant(true) reserved(if) instance_variable(@options)operator([)stringoperator(]) operator(==) pre_constant(true) ident(forcearray) operator(=) instance_variable(@options)operator([)stringoperator(]) reserved(if) ident(forcearray)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) reserved(return) pre_constant(true) reserved(if) ident(forcearray)operator(.)ident(has_key?)operator(()ident(key)operator(\)) reserved(return) pre_constant(false) reserved(unless) ident(forcearray)operator(.)ident(has_key?)operator(()stringoperator(\)) ident(forcearray)operator([)stringoperator(])operator(.)ident(each) operator({) operator(|)ident(x)operator(|) reserved(return) pre_constant(true) reserved(if) ident(key) operator(=)operator(~) ident(x) operator(}) reserved(end) reserved(return) pre_constant(false) reserved(end) comment(# Converts the attributes array of a document node into a Hash.) comment(# Returns an empty Hash, if node has no attributes.) comment(#) comment(# node::) comment(# Document node to extract attributes from.) reserved(def) method(get_attributes)operator(()ident(node)operator(\)) ident(attributes) operator(=) operator({)operator(}) ident(node)operator(.)ident(attributes)operator(.)ident(each) operator({) operator(|)ident(n)operator(,)ident(v)operator(|) ident(attributes)operator([)ident(n)operator(]) operator(=) ident(v) operator(}) ident(attributes) reserved(end) comment(# Determines, if a document element has mixed content.) comment(#) comment(# element::) comment(# Document element to be checked.) reserved(def) method(has_mixed_content?)operator(()ident(element)operator(\)) reserved(if) ident(element)operator(.)ident(has_text?) operator(&&) ident(element)operator(.)ident(has_elements?) reserved(return) pre_constant(true) reserved(if) ident(element)operator(.)ident(texts)operator(.)ident(join)operator(()stringoperator(\)) operator(!)operator(~) regexp reserved(end) pre_constant(false) reserved(end) comment(# Called when a variable definition is encountered in the XML.) comment(# A variable definition looks like) comment(# value) comment(# where attrname matches the varattr setting.) reserved(def) method(set_var)operator(()ident(name)operator(,) ident(value)operator(\)) instance_variable(@_var_values)operator([)ident(name)operator(]) operator(=) ident(value) reserved(end) comment(# Called during variable substitution to get the value for the) comment(# named variable.) reserved(def) method(get_var)operator(()ident(name)operator(\)) reserved(if) instance_variable(@_var_values)operator(.)ident(has_key?)operator(()ident(name)operator(\)) reserved(return) instance_variable(@_var_values)operator([)ident(name)operator(]) reserved(else) reserved(return) stringcontent(})delimiter(")> reserved(end) reserved(end) comment(# Recurses through a data structure building up and returning an) comment(# XML representation of that structure as a string.) comment(#) comment(# ref::) comment(# Reference to the data structure to be encoded.) comment(# name::) comment(# The XML tag name to be used for this item.) comment(# indent::) comment(# A string of spaces for use as the current indent level.) reserved(def) method(value_to_xml)operator(()ident(ref)operator(,) ident(name)operator(,) ident(indent)operator(\)) ident(named) operator(=) operator(!)ident(name)operator(.)ident(nil?) operator(&&) ident(name) operator(!=) string ident(nl) operator(=) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) operator(?) string operator(:) string reserved(if) operator(!)ident(scalar)operator(()ident(ref)operator(\)) reserved(if) instance_variable(@ancestors)operator(.)ident(member?)operator(()ident(ref)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(end) instance_variable(@ancestors) operator(<<) ident(ref) reserved(else) reserved(if) ident(named) reserved(return) operator([)ident(indent)operator(,) stringoperator(,) ident(name)operator(,) string)delimiter(')>operator(,) instance_variable(@options)operator([)stringoperator(]) operator(?) ident(ref)operator(.)ident(to_s) operator(:) ident(escape_value)operator(()ident(ref)operator(.)ident(to_s)operator(\))operator(,) stringoperator(,) ident(name)operator(,) string)delimiter(')>operator(,) ident(nl)operator(])operator(.)ident(join)operator(()stringoperator(\)) reserved(else) reserved(return) ident(ref)operator(.)ident(to_s) operator(+) ident(nl) reserved(end) reserved(end) comment(# Unfold hash to array if possible.) reserved(if) ident(ref)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) operator(&&) operator(!)ident(ref)operator(.)ident(empty?) operator(&&) operator(!)instance_variable(@options)operator([)stringoperator(])operator(.)ident(empty?) operator(&&) ident(indent) operator(!=) string ident(ref) operator(=) ident(hash_to_array)operator(()ident(name)operator(,) ident(ref)operator(\)) reserved(end) ident(result) operator(=) operator([)operator(]) reserved(if) ident(ref)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) comment(# Reintermediate grouped values if applicable.) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) ident(ref)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(if) instance_variable(@options)operator([)stringoperator(])operator(.)ident(has_key?)operator(()ident(key)operator(\)) ident(ref)operator([)ident(key)operator(]) operator(=) operator({) instance_variable(@options)operator([)stringoperator(])operator([)ident(key)operator(]) operator(=)operator(>) ident(value) operator(}) reserved(end) operator(}) reserved(end) ident(nested) operator(=) operator([)operator(]) ident(text_content) operator(=) pre_constant(nil) reserved(if) ident(named) ident(result) operator(<<) ident(indent) operator(<<) string operator(<<) ident(name) reserved(end) reserved(if) operator(!)ident(ref)operator(.)ident(empty?) ident(ref)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(next) reserved(if) operator(!)ident(key)operator(.)ident(nil?) operator(&&) ident(key)operator([)integer(0)operator(,) integer(1)operator(]) operator(==) string reserved(if) ident(value)operator(.)ident(nil?) reserved(unless) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) operator(&&) instance_variable(@options)operator([)stringoperator(])operator(.)ident(nil?) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(value) operator(=) operator({)operator(}) reserved(end) reserved(if) operator(!)ident(scalar)operator(()ident(value)operator(\)) operator(||) instance_variable(@options)operator([)stringoperator(]) ident(nested) operator(<<) ident(value_to_xml)operator(()ident(value)operator(,) ident(key)operator(,) ident(indent) operator(+) instance_variable(@options)operator([)stringoperator(])operator(\)) reserved(else) ident(value) operator(=) ident(value)operator(.)ident(to_s) ident(value) operator(=) ident(escape_value)operator(()ident(value)operator(\)) reserved(unless) instance_variable(@options)operator([)stringoperator(]) reserved(if) ident(key) operator(==) instance_variable(@options)operator([)stringoperator(]) ident(text_content) operator(=) ident(value) reserved(else) ident(result) operator(<<) string operator(<<) ident(key) operator(<<) string operator(<<) ident(value) operator(<<) string reserved(end) reserved(end) operator(}) reserved(else) ident(text_content) operator(=) string reserved(end) reserved(if) operator(!)ident(nested)operator(.)ident(empty?) operator(||) operator(!)ident(text_content)operator(.)ident(nil?) reserved(if) ident(named) ident(result) operator(<<) string)delimiter(')> reserved(if) operator(!)ident(text_content)operator(.)ident(nil?) ident(result) operator(<<) ident(text_content) ident(nested)operator([)integer(0)operator(])operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) reserved(if) operator(!)ident(nested)operator(.)ident(empty?) reserved(else) ident(result) operator(<<) ident(nl) reserved(end) reserved(if) operator(!)ident(nested)operator(.)ident(empty?) ident(result) operator(<<) ident(nested) operator(<<) ident(indent) reserved(end) ident(result) operator(<<) string operator(<<) ident(name) operator(<<) string)delimiter(')> operator(<<) ident(nl) reserved(else) ident(result) operator(<<) ident(nested) reserved(end) reserved(else) ident(result) operator(<<) string)delimiter(')> operator(<<) ident(nl) reserved(end) reserved(elsif) ident(ref)operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) ident(ref)operator(.)ident(each) operator({) operator(|)ident(value)operator(|) reserved(if) ident(scalar)operator(()ident(value)operator(\)) ident(result) operator(<<) ident(indent) operator(<<) string operator(<<) ident(name) operator(<<) string)delimiter(')> ident(result) operator(<<) operator(()instance_variable(@options)operator([)stringoperator(]) operator(?) ident(value)operator(.)ident(to_s) operator(:) ident(escape_value)operator(()ident(value)operator(.)ident(to_s)operator(\))operator(\)) ident(result) operator(<<) string operator(<<) ident(name) operator(<<) string)delimiter(')> operator(<<) ident(nl) reserved(elsif) ident(value)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) ident(result) operator(<<) ident(value_to_xml)operator(()ident(value)operator(,) ident(name)operator(,) ident(indent)operator(\)) reserved(else) ident(result) operator(<<) ident(indent) operator(<<) string operator(<<) ident(name) operator(<<) string)delimiter(')> operator(<<) ident(nl) ident(result) operator(<<) ident(value_to_xml)operator(()ident(value)operator(,) instance_variable(@options)operator([)stringoperator(])operator(,) ident(indent) operator(+) instance_variable(@options)operator([)stringoperator(])operator(\)) ident(result) operator(<<) ident(indent) operator(<<) string operator(<<) ident(name) operator(<<) string)delimiter(')> operator(<<) ident(nl) reserved(end) operator(}) reserved(else) comment(# Probably, this is obsolete.) ident(raise) constant(ArgumentError)operator(,) stringcontent(.)delimiter(")> reserved(end) instance_variable(@ancestors)operator(.)ident(pop) reserved(if) operator(!)ident(scalar)operator(()ident(ref)operator(\)) ident(result)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) comment(# Checks, if a certain value is a "scalar" value. Whatever) comment(# that will be in Ruby ... ;-\)) comment(# ) comment(# value::) comment(# Value to be checked.) reserved(def) method(scalar)operator(()ident(value)operator(\)) reserved(return) pre_constant(false) reserved(if) ident(value)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) operator(||) ident(value)operator(.)ident(instance_of?)operator(()constant(Array)operator(\)) reserved(return) pre_constant(true) reserved(end) comment(# Attempts to unfold a hash of hashes into an array of hashes. Returns) comment(# a reference to th array on success or the original hash, if unfolding) comment(# is not possible.) comment(# ) comment(# parent::) comment(# ) comment(# hashref::) comment(# Reference to the hash to be unfolded.) reserved(def) method(hash_to_array)operator(()ident(parent)operator(,) ident(hashref)operator(\)) ident(arrayref) operator(=) operator([)operator(]) ident(hashref)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(return) ident(hashref) reserved(unless) ident(value)operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) reserved(if) instance_variable(@options)operator([)stringoperator(])operator(.)ident(instance_of?)operator(()constant(Hash)operator(\)) reserved(return) ident(hashref) reserved(unless) instance_variable(@options)operator([)stringoperator(])operator(.)ident(has_key?)operator(()ident(parent)operator(\)) ident(arrayref) operator(<<) operator({) instance_variable(@options)operator([)stringoperator(])operator([)ident(parent)operator(])operator([)integer(0)operator(]) operator(=)operator(>) ident(key) operator(})operator(.)ident(update)operator(()ident(value)operator(\)) reserved(else) ident(arrayref) operator(<<) operator({) instance_variable(@options)operator([)stringoperator(])operator([)integer(0)operator(]) operator(=)operator(>) ident(key) operator(})operator(.)ident(update)operator(()ident(value)operator(\)) reserved(end) operator(}) ident(arrayref) reserved(end) comment(# Replaces XML markup characters by their external entities.) comment(#) comment(# data::) comment(# The string to be escaped.) reserved(def) method(escape_value)operator(()ident(data)operator(\)) reserved(return) ident(data) reserved(if) ident(data)operator(.)ident(nil?) operator(||) ident(data) operator(==) string ident(result) operator(=) ident(data)operator(.)ident(dup) ident(result)operator(.)ident(gsub!)operator(()stringoperator(,) stringoperator(\)) ident(result)operator(.)ident(gsub!)operator(()stringoperator(,) stringoperator(\)) ident(result)operator(.)ident(gsub!)operator(()string)delimiter(')>operator(,) stringoperator(\)) ident(result)operator(.)ident(gsub!)operator(()stringoperator(,) stringoperator(\)) ident(result)operator(.)ident(gsub!)operator(()stringoperator(,) stringoperator(\)) ident(result) reserved(end) comment(# Removes leading and trailing whitespace and sequences of) comment(# whitespaces from a string.) comment(#) comment(# text::) comment(# String to be normalised.) reserved(def) method(normalise_space)operator(()ident(text)operator(\)) ident(text)operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) ident(text)operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) ident(text)operator(.)ident(gsub!)operator(()regexpoperator(,) stringoperator(\)) ident(text) reserved(end) comment(# Checks, if an object is nil, an empty String or an empty Hash.) comment(# Thanks to Norbert Gawor for a bugfix.) comment(#) comment(# value::) comment(# Value to be checked for emptyness.) reserved(def) method(empty)operator(()ident(value)operator(\)) reserved(case) ident(value) reserved(when) constant(Hash) reserved(return) ident(value)operator(.)ident(empty?) reserved(when) constant(String) reserved(return) ident(value) operator(!)operator(~) regexp reserved(else) reserved(return) ident(value)operator(.)ident(nil?) reserved(end) reserved(end) comment(# Converts a document node into a String.) comment(# If the node could not be converted into a String) comment(# for any reason, default will be returned.) comment(#) comment(# node::) comment(# Document node to be converted.) comment(# default::) comment(# Value to be returned, if node could not be converted.) reserved(def) method(node_to_text)operator(()ident(node)operator(,) ident(default) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(node)operator(.)ident(instance_of?)operator(()constant(Element)operator(\)) reserved(return) ident(node)operator(.)ident(texts)operator(.)ident(join)operator(()stringoperator(\)) reserved(elsif) ident(node)operator(.)ident(instance_of?)operator(()constant(Attribute)operator(\)) reserved(return) ident(node)operator(.)ident(value)operator(.)ident(nil?) operator(?) ident(default) operator(:) ident(node)operator(.)ident(value)operator(.)ident(strip) reserved(elsif) ident(node)operator(.)ident(instance_of?)operator(()constant(Text)operator(\)) reserved(return) ident(node)operator(.)ident(to_s)operator(.)ident(strip) reserved(else) reserved(return) ident(default) reserved(end) reserved(end) comment(# Parses an XML string and returns the according document.) comment(#) comment(# xml_string::) comment(# XML string to be parsed.) comment(#) comment(# The following exception may be raised:) comment(#) comment(# REXML::ParseException::) comment(# If the specified file is not wellformed.) reserved(def) method(parse)operator(()ident(xml_string)operator(\)) constant(Document)operator(.)ident(new)operator(()ident(xml_string)operator(\)) reserved(end) comment(# Searches in a list of paths for a certain file. Returns) comment(# the full path to the file, if it could be found. Otherwise,) comment(# an exception will be raised.) comment(#) comment(# filename::) comment(# Name of the file to search for.) comment(# searchpath::) comment(# List of paths to search in.) reserved(def) method(find_xml_file)operator(()ident(file)operator(,) ident(searchpath)operator(\)) ident(filename) operator(=) constant(File)operator(::)ident(basename)operator(()ident(file)operator(\)) reserved(if) ident(filename) operator(!=) ident(file) reserved(return) ident(file) reserved(if) constant(File)operator(::)ident(file?)operator(()ident(file)operator(\)) reserved(else) ident(searchpath)operator(.)ident(each) operator({) operator(|)ident(path)operator(|) ident(full_path) operator(=) constant(File)operator(::)ident(join)operator(()ident(path)operator(,) ident(filename)operator(\)) reserved(return) ident(full_path) reserved(if) constant(File)operator(::)ident(file?)operator(()ident(full_path)operator(\)) operator(}) reserved(end) reserved(if) ident(searchpath)operator(.)ident(empty?) reserved(return) ident(file) reserved(if) constant(File)operator(::)ident(file?)operator(()ident(file)operator(\)) ident(raise) constant(ArgumentError)operator(,) stringcontent(.)delimiter(")> reserved(end) ident(raise) constant(ArgumentError)operator(,) stringcontent(> in <)inlineoperator(\))inline_delimiter(})>content(>)delimiter(")> reserved(end) comment(# Loads and parses an XML configuration file.) comment(#) comment(# filename::) comment(# Name of the configuration file to be loaded.) comment(#) comment(# The following exceptions may be raised:) comment(# ) comment(# Errno::ENOENT::) comment(# If the specified file does not exist.) comment(# REXML::ParseException::) comment(# If the specified file is not wellformed.) reserved(def) method(load_xml_file)operator(()ident(filename)operator(\)) ident(parse)operator(()constant(File)operator(.)ident(readlines)operator(()ident(filename)operator(\))operator(.)ident(to_s)operator(\)) reserved(end) comment(# Caches the data belonging to a certain file.) comment(#) comment(# data::) comment(# Data to be cached.) comment(# filename::) comment(# Name of file the data was read from.) reserved(def) method(put_into_cache)operator(()ident(data)operator(,) ident(filename)operator(\)) reserved(if) instance_variable(@options)operator(.)ident(has_key?)operator(()stringoperator(\)) instance_variable(@options)operator([)stringoperator(])operator(.)ident(each) operator({) operator(|)ident(scheme)operator(|) reserved(case)operator(()ident(scheme)operator(\)) reserved(when) string class_variable(@@cache)operator(.)ident(save_storable)operator(()ident(data)operator(,) ident(filename)operator(\)) reserved(when) string class_variable(@@cache)operator(.)ident(save_mem_share)operator(()ident(data)operator(,) ident(filename)operator(\)) reserved(when) string class_variable(@@cache)operator(.)ident(save_mem_copy)operator(()ident(data)operator(,) ident(filename)operator(\)) reserved(else) ident(raise) constant(ArgumentError)operator(,) stringcontent(>.)delimiter(")> reserved(end) operator(}) reserved(end) reserved(end) reserved(end) comment(# vim:sw=2) reserved(module) class(ActionController) comment(#:nodoc:) reserved(module) class(Verification) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# This module provides a class-level method for specifying that certain) comment(# actions are guarded against being called without certain prerequisites) comment(# being met. This is essentially a special kind of before_filter.) comment(#) comment(# An action may be guarded against being invoked without certain request) comment(# parameters being set, or without certain session values existing.) comment(#) comment(# When a verification is violated, values may be inserted into the flash, and) comment(# a specified redirection is triggered.) comment(#) comment(# Usage:) comment(#) comment(# class GlobalController < ActionController::Base) comment(# # prevent the #update_settings action from being invoked unless) comment(# # the 'admin_privileges' request parameter exists.) comment(# verify :params => "admin_privileges", :only => :update_post,) comment(# :redirect_to => { :action => "settings" }) comment(#) comment(# # disallow a post from being updated if there was no information) comment(# # submitted with the post, and if there is no active post in the) comment(# # session, and if there is no "note" key in the flash.) comment(# verify :params => "post", :session => "post", "flash" => "note",) comment(# :only => :update_post,) comment(# :add_flash => { "alert" => "Failed to create your message" },) comment(# :redirect_to => :category_url) comment(#) reserved(module) class(ClassMethods) comment(# Verify the given actions so that if certain prerequisites are not met,) comment(# the user is redirected to a different action. The +options+ parameter) comment(# is a hash consisting of the following key/value pairs:) comment(#) comment(# * :params: a single key or an array of keys that must) comment(# be in the params hash in order for the action(s\) to be safely) comment(# called.) comment(# * :session: a single key or an array of keys that must) comment(# be in the @session in order for the action(s\) to be safely called.) comment(# * :flash: a single key or an array of keys that must) comment(# be in the flash in order for the action(s\) to be safely called.) comment(# * :method: a single key or an array of keys--any one of which) comment(# must match the current request method in order for the action(s\) to) comment(# be safely called. (The key should be a symbol: :get or) comment(# :post, for example.\)) comment(# * :xhr: true/false option to ensure that the request is coming) comment(# from an Ajax call or not. ) comment(# * :add_flash: a hash of name/value pairs that should be merged) comment(# into the session's flash if the prerequisites cannot be satisfied.) comment(# * :redirect_to: the redirection parameters to be used when) comment(# redirecting if the prerequisites cannot be satisfied.) comment(# * :render: the render parameters to be used when) comment(# the prerequisites cannot be satisfied.) comment(# * :only: only apply this verification to the actions specified) comment(# in the associated array (may also be a single value\).) comment(# * :except: do not apply this verification to the actions) comment(# specified in the associated array (may also be a single value\).) reserved(def) method(verify)operator(()ident(options)operator(=)operator({)operator(})operator(\)) ident(filter_opts) operator(=) operator({) symbol(:only) operator(=)operator(>) ident(options)operator([)symbol(:only)operator(])operator(,) symbol(:except) operator(=)operator(>) ident(options)operator([)symbol(:except)operator(]) operator(}) ident(before_filter)operator(()ident(filter_opts)operator(\)) reserved(do) operator(|)ident(c)operator(|) ident(c)operator(.)ident(send) symbol(:verify_action)operator(,) ident(options) reserved(end) reserved(end) reserved(end) reserved(def) method(verify_action)operator(()ident(options)operator(\)) comment(#:nodoc:) ident(prereqs_invalid) operator(=) operator([)operator(*)ident(options)operator([)symbol(:params)operator(]) operator(])operator(.)ident(find) operator({) operator(|)ident(v)operator(|) instance_variable(@params)operator([)ident(v)operator(])operator(.)ident(nil?) operator(}) operator(||) operator([)operator(*)ident(options)operator([)symbol(:session)operator(])operator(])operator(.)ident(find) operator({) operator(|)ident(v)operator(|) instance_variable(@session)operator([)ident(v)operator(])operator(.)ident(nil?) operator(}) operator(||) operator([)operator(*)ident(options)operator([)symbol(:flash)operator(]) operator(])operator(.)ident(find) operator({) operator(|)ident(v)operator(|) ident(flash)operator([)ident(v)operator(])operator(.)ident(nil?) operator(}) reserved(if) operator(!)ident(prereqs_invalid) operator(&&) ident(options)operator([)symbol(:method)operator(]) ident(prereqs_invalid) operator(||=) operator([)operator(*)ident(options)operator([)symbol(:method)operator(])operator(])operator(.)ident(all?) operator({) operator(|)ident(v)operator(|) instance_variable(@request)operator(.)ident(method) operator(!=) ident(v)operator(.)ident(to_sym) operator(}) reserved(end) ident(prereqs_invalid) operator(||=) operator(()ident(request)operator(.)ident(xhr?) operator(!=) ident(options)operator([)symbol(:xhr)operator(])operator(\)) reserved(unless) ident(options)operator([)symbol(:xhr)operator(])operator(.)ident(nil?) reserved(if) ident(prereqs_invalid) ident(flash)operator(.)ident(update)operator(()ident(options)operator([)symbol(:add_flash)operator(])operator(\)) reserved(if) ident(options)operator([)symbol(:add_flash)operator(]) reserved(unless) ident(performed?) ident(render)operator(()ident(options)operator([)symbol(:render)operator(])operator(\)) reserved(if) ident(options)operator([)symbol(:render)operator(]) ident(redirect_to)operator(()ident(options)operator([)symbol(:redirect_to)operator(])operator(\)) reserved(if) ident(options)operator([)symbol(:redirect_to)operator(]) reserved(end) reserved(return) pre_constant(false) reserved(end) pre_constant(true) reserved(end) ident(private) symbol(:verify_action) reserved(end) reserved(end) comment(#--) comment(# Copyright (c\) 2004 David Heinemeier Hansson) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#++) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(\)) reserved(unless) global_variable($:)operator(.)ident(include?)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(\)) operator(||) global_variable($:)operator(.)ident(include?)operator(()constant(File)operator(.)ident(expand_path)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(\))operator(\)) reserved(unless) reserved(defined?)operator(()constant(ActiveSupport)operator(\)) reserved(begin) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string reserved(rescue) constant(LoadError) ident(require) string ident(require_gem) string reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string constant(ActionController)operator(::)constant(Base)operator(.)ident(template_class) operator(=) constant(ActionView)operator(::)constant(Base) constant(ActionController)operator(::)constant(Base)operator(.)ident(class_eval) reserved(do) ident(include) constant(ActionController)operator(::)constant(Flash) ident(include) constant(ActionController)operator(::)constant(Filters) ident(include) constant(ActionController)operator(::)constant(Layout) ident(include) constant(ActionController)operator(::)constant(Benchmarking) ident(include) constant(ActionController)operator(::)constant(Rescue) ident(include) constant(ActionController)operator(::)constant(Dependencies) ident(include) constant(ActionController)operator(::)constant(MimeResponds) ident(include) constant(ActionController)operator(::)constant(Pagination) ident(include) constant(ActionController)operator(::)constant(Scaffolding) ident(include) constant(ActionController)operator(::)constant(Helpers) ident(include) constant(ActionController)operator(::)constant(Cookies) ident(include) constant(ActionController)operator(::)constant(Caching) ident(include) constant(ActionController)operator(::)constant(Verification) ident(include) constant(ActionController)operator(::)constant(Streaming) ident(include) constant(ActionController)operator(::)constant(SessionManagement) ident(include) constant(ActionController)operator(::)constant(Components) ident(include) constant(ActionController)operator(::)constant(Macros)operator(::)constant(AutoComplete) ident(include) constant(ActionController)operator(::)constant(Macros)operator(::)constant(InPlaceEditing) reserved(end) reserved(module) class(ActionPack) comment(#:nodoc:) reserved(module) class(VERSION) comment(#:nodoc:) constant(MAJOR) operator(=) integer(1) constant(MINOR) operator(=) integer(12) constant(TINY) operator(=) integer(5) constant(STRING) operator(=) operator([)constant(MAJOR)operator(,) constant(MINOR)operator(,) constant(TINY)operator(])operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) comment(#--) comment(# Copyright (c\) 2004 David Heinemeier Hansson) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#++) ident(require) string ident(require) string reserved(module) class(ActionView) comment(#:nodoc:) reserved(class) class(ActionViewError) operator(<) constant(StandardError) comment(#:nodoc:) reserved(end) comment(# Action View templates can be written in three ways. If the template file has a +.rhtml+ extension then it uses a mixture of ERb ) comment(# (included in Ruby\) and HTML. If the template file has a +.rxml+ extension then Jim Weirich's Builder::XmlMarkup library is used. ) comment(# If the template file has a +.rjs+ extension then it will use ActionView::Helpers::PrototypeHelper::JavaScriptGenerator.) comment(# ) comment(# = ERb) comment(# ) comment(# You trigger ERb by using embeddings such as <% %>, <% -%>, and <%= %>. The <%= %> tag set is used when you want output. Consider the ) comment(# following loop for names:) comment(#) comment(# Names of all the people) comment(# <% for person in @people %>) comment(# Name: <%= person.name %>
) comment(# <% end %>) comment(#) comment(# The loop is setup in regular embedding tags <% %> and the name is written using the output embedding tag <%= %>. Note that this) comment(# is not just a usage suggestion. Regular output functions like print or puts won't work with ERb templates. So this would be wrong:) comment(#) comment(# Hi, Mr. <% puts "Frodo" %>) comment(#) comment(# If you absolutely must write from within a function, you can use the TextHelper#concat) comment(#) comment(# <%- and -%> suppress leading and trailing whitespace, including the trailing newline, and can be used interchangeably with <% and %>.) comment(#) comment(# == Using sub templates) comment(#) comment(# Using sub templates allows you to sidestep tedious replication and extract common display structures in shared templates. The) comment(# classic example is the use of a header and footer (even though the Action Pack-way would be to use Layouts\):) comment(#) comment(# <%= render "shared/header" %>) comment(# Something really specific and terrific) comment(# <%= render "shared/footer" %>) comment(#) comment(# As you see, we use the output embeddings for the render methods. The render call itself will just return a string holding the) comment(# result of the rendering. The output embedding writes it to the current template.) comment(#) comment(# But you don't have to restrict yourself to static includes. Templates can share variables amongst themselves by using instance) comment(# variables defined using the regular embedding tags. Like this:) comment(#) comment(# <% @page_title = "A Wonderful Hello" %>) comment(# <%= render "shared/header" %>) comment(#) comment(# Now the header can pick up on the @page_title variable and use it for outputting a title tag:) comment(#) comment(# <%= @page_title %>) comment(#) comment(# == Passing local variables to sub templates) comment(# ) comment(# You can pass local variables to sub templates by using a hash with the variable names as keys and the objects as values:) comment(#) comment(# <%= render "shared/header", { "headline" => "Welcome", "person" => person } %>) comment(#) comment(# These can now be accessed in shared/header with:) comment(#) comment(# Headline: <%= headline %>) comment(# First name: <%= person.first_name %>) comment(#) comment(# == Template caching) comment(#) comment(# By default, Rails will compile each template to a method in order to render it. When you alter a template, Rails will) comment(# check the file's modification time and recompile it.) comment(#) comment(# == Builder) comment(#) comment(# Builder templates are a more programmatic alternative to ERb. They are especially useful for generating XML content. An +XmlMarkup+ object ) comment(# named +xml+ is automatically made available to templates with a +.rxml+ extension. ) comment(#) comment(# Here are some basic examples:) comment(#) comment(# xml.em("emphasized"\) # => emphasized) comment(# xml.em { xml.b("emp & bold"\) } # => emph & bold) comment(# xml.a("A Link", "href"=>"http://onestepback.org"\) # => A Link) comment(# xml.target("name"=>"compile", "option"=>"fast"\) # => ) comment(# # NOTE: order of attributes is not specified.) comment(# ) comment(# Any method with a block will be treated as an XML markup tag with nested markup in the block. For example, the following:) comment(#) comment(# xml.div {) comment(# xml.h1(@person.name\)) comment(# xml.p(@person.bio\)) comment(# }) comment(#) comment(# would produce something like:) comment(#) comment(#
) comment(#

David Heinemeier Hansson

) comment(#

A product of Danish Design during the Winter of '79...

) comment(#
) comment(#) comment(# A full-length RSS example actually used on Basecamp:) comment(#) comment(# xml.rss("version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/"\) do) comment(# xml.channel do) comment(# xml.title(@feed_title\)) comment(# xml.link(@url\)) comment(# xml.description "Basecamp: Recent items") comment(# xml.language "en-us") comment(# xml.ttl "40") comment(# ) comment(# for item in @recent_items) comment(# xml.item do) comment(# xml.title(item_title(item\)\)) comment(# xml.description(item_description(item\)\) if item_description(item\)) comment(# xml.pubDate(item_pubDate(item\)\)) comment(# xml.guid(@person.firm.account.url + @recent_items.url(item\)\)) comment(# xml.link(@person.firm.account.url + @recent_items.url(item\)\)) comment(# ) comment(# xml.tag!("dc:creator", item.author_name\) if item_has_creator?(item\)) comment(# end) comment(# end) comment(# end) comment(# end) comment(#) comment(# More builder documentation can be found at http://builder.rubyforge.org.) comment(#) comment(# == JavaScriptGenerator) comment(#) comment(# JavaScriptGenerator templates end in +.rjs+. Unlike conventional templates which are used to ) comment(# render the results of an action, these templates generate instructions on how to modify an already rendered page. This makes it easy to ) comment(# modify multiple elements on your page in one declarative Ajax response. Actions with these templates are called in the background with Ajax ) comment(# and make updates to the page where the request originated from.) comment(# ) comment(# An instance of the JavaScriptGenerator object named +page+ is automatically made available to your template, which is implicitly wrapped in an ActionView::Helpers::PrototypeHelper#update_page block. ) comment(#) comment(# When an .rjs action is called with +link_to_remote+, the generated JavaScript is automatically evaluated. Example:) comment(#) comment(# link_to_remote :url => {:action => 'delete'}) comment(#) comment(# The subsequently rendered +delete.rjs+ might look like:) comment(#) comment(# page.replace_html 'sidebar', :partial => 'sidebar') comment(# page.remove "person-#{@person.id}") comment(# page.visual_effect :highlight, 'user-list' ) comment(#) comment(# This refreshes the sidebar, removes a person element and highlights the user list.) comment(# ) comment(# See the ActionView::Helpers::PrototypeHelper::JavaScriptGenerator documentation for more details.) reserved(class) class(Base) ident(include) constant(ERB)operator(::)constant(Util) ident(attr_reader) symbol(:first_render) ident(attr_accessor) symbol(:base_path)operator(,) symbol(:assigns)operator(,) symbol(:template_extension) ident(attr_accessor) symbol(:controller) ident(attr_reader) symbol(:logger)operator(,) symbol(:params)operator(,) symbol(:request)operator(,) symbol(:response)operator(,) symbol(:session)operator(,) symbol(:headers)operator(,) symbol(:flash) comment(# Specify trim mode for the ERB compiler. Defaults to '-'.) comment(# See ERB documentation for suitable values.) class_variable(@@erb_trim_mode) operator(=) string ident(cattr_accessor) symbol(:erb_trim_mode) comment(# Specify whether file modification times should be checked to see if a template needs recompilation) class_variable(@@cache_template_loading) operator(=) pre_constant(false) ident(cattr_accessor) symbol(:cache_template_loading) comment(# Specify whether file extension lookup should be cached.) comment(# Should be +false+ for development environments. Defaults to +true+.) class_variable(@@cache_template_extensions) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:cache_template_extensions) comment(# Specify whether local_assigns should be able to use string keys.) comment(# Defaults to +true+. String keys are deprecated and will be removed) comment(# shortly.) class_variable(@@local_assigns_support_string_keys) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:local_assigns_support_string_keys) comment(# Specify whether RJS responses should be wrapped in a try/catch block) comment(# that alert(\)s the caught exception (and then re-raises it\). ) class_variable(@@debug_rjs) operator(=) pre_constant(false) ident(cattr_accessor) symbol(:debug_rjs) class_variable(@@template_handlers) operator(=) constant(HashWithIndifferentAccess)operator(.)ident(new) reserved(module) class(CompiledTemplates) comment(#:nodoc:) comment(# holds compiled template code) reserved(end) ident(include) constant(CompiledTemplates) comment(# maps inline templates to their method names ) class_variable(@@method_names) operator(=) operator({)operator(}) comment(# map method names to their compile time) class_variable(@@compile_time) operator(=) operator({)operator(}) comment(# map method names to the names passed in local assigns so far) class_variable(@@template_args) operator(=) operator({)operator(}) comment(# count the number of inline templates) class_variable(@@inline_template_count) operator(=) integer(0) comment(# maps template paths without extension to their file extension returned by pick_template_extension.) comment(# if for a given path, path.ext1 and path.ext2 exist on the file system, the order of extensions) comment(# used by pick_template_extension determines whether ext1 or ext2 will be stored) class_variable(@@cached_template_extension) operator(=) operator({)operator(}) reserved(class) class(ObjectWrapper) operator(<) constant(Struct)operator(.)ident(new)operator(()symbol(:value)operator(\)) comment(#:nodoc:) reserved(end) reserved(def) pre_constant(self)operator(.)method(load_helpers)operator(()ident(helper_dir)operator(\))comment(#:nodoc:) constant(Dir)operator(.)ident(foreach)operator(()ident(helper_dir)operator(\)) reserved(do) operator(|)ident(helper_file)operator(|) reserved(next) reserved(unless) ident(helper_file) operator(=)operator(~) regexp ident(require) constant(File)operator(.)ident(join)operator(()ident(helper_dir)operator(,) global_variable($1)operator(\)) ident(helper_module_name) operator(=) global_variable($1)operator(.)ident(camelize) ident(class_eval)operator(()stringdelimiter(")>operator(\)) reserved(if) constant(Helpers)operator(.)ident(const_defined?)operator(()ident(helper_module_name)operator(\)) reserved(end) reserved(end) comment(# Register a class that knows how to handle template files with the given) comment(# extension. This can be used to implement new template types.) comment(# The constructor for the class must take the ActiveView::Base instance) comment(# as a parameter, and the class must implement a #render method that) comment(# takes the contents of the template to render as well as the Hash of) comment(# local assigns available to the template. The #render method ought to) comment(# return the rendered template as a string.) reserved(def) pre_constant(self)operator(.)method(register_template_handler)operator(()ident(extension)operator(,) ident(klass)operator(\)) class_variable(@@template_handlers)operator([)ident(extension)operator(]) operator(=) ident(klass) reserved(end) reserved(def) method(initialize)operator(()ident(base_path) operator(=) pre_constant(nil)operator(,) ident(assigns_for_first_render) operator(=) operator({)operator(})operator(,) ident(controller) operator(=) pre_constant(nil)operator(\))comment(#:nodoc:) instance_variable(@base_path)operator(,) instance_variable(@assigns) operator(=) ident(base_path)operator(,) ident(assigns_for_first_render) instance_variable(@assigns_added) operator(=) pre_constant(nil) instance_variable(@controller) operator(=) ident(controller) instance_variable(@logger) operator(=) ident(controller) operator(&&) ident(controller)operator(.)ident(logger) reserved(end) comment(# Renders the template present at template_path. If use_full_path is set to true, ) comment(# it's relative to the template_root, otherwise it's absolute. The hash in local_assigns ) comment(# is made available as local variables.) reserved(def) method(render_file)operator(()ident(template_path)operator(,) ident(use_full_path) operator(=) pre_constant(true)operator(,) ident(local_assigns) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) instance_variable(@first_render) operator(||=) ident(template_path) reserved(if) ident(use_full_path) ident(template_path_without_extension)operator(,) ident(template_extension) operator(=) ident(path_and_extension)operator(()ident(template_path)operator(\)) reserved(if) ident(template_extension) ident(template_file_name) operator(=) ident(full_template_path)operator(()ident(template_path_without_extension)operator(,) ident(template_extension)operator(\)) reserved(else) ident(template_extension) operator(=) ident(pick_template_extension)operator(()ident(template_path)operator(\))operator(.)ident(to_s) ident(template_file_name) operator(=) ident(full_template_path)operator(()ident(template_path)operator(,) ident(template_extension)operator(\)) reserved(end) reserved(else) ident(template_file_name) operator(=) ident(template_path) ident(template_extension) operator(=) ident(template_path)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last) reserved(end) ident(template_source) operator(=) pre_constant(nil) comment(# Don't read the source until we know that it is required) reserved(begin) ident(render_template)operator(()ident(template_extension)operator(,) ident(template_source)operator(,) ident(template_file_name)operator(,) ident(local_assigns)operator(\)) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) reserved(if) constant(TemplateError) operator(===) ident(e) ident(e)operator(.)ident(sub_template_of)operator(()ident(template_file_name)operator(\)) ident(raise) ident(e) reserved(else) ident(raise) constant(TemplateError)operator(.)ident(new)operator(()instance_variable(@base_path)operator(,) ident(template_file_name)operator(,) instance_variable(@assigns)operator(,) ident(template_source)operator(,) ident(e)operator(\)) reserved(end) reserved(end) reserved(end) comment(# Renders the template present at template_path (relative to the template_root\). ) comment(# The hash in local_assigns is made available as local variables.) reserved(def) method(render)operator(()ident(options) operator(=) operator({)operator(})operator(,) ident(old_local_assigns) operator(=) operator({)operator(})operator(,) operator(&)ident(block)operator(\)) comment(#:nodoc:) reserved(if) ident(options)operator(.)ident(is_a?)operator(()constant(String)operator(\)) ident(render_file)operator(()ident(options)operator(,) pre_constant(true)operator(,) ident(old_local_assigns)operator(\)) reserved(elsif) ident(options) operator(==) symbol(:update) ident(update_page)operator(()operator(&)ident(block)operator(\)) reserved(elsif) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(options)operator([)symbol(:locals)operator(]) operator(||=) operator({)operator(}) ident(options)operator([)symbol(:use_full_path)operator(]) operator(=) ident(options)operator([)symbol(:use_full_path)operator(])operator(.)ident(nil?) operator(?) pre_constant(true) operator(:) ident(options)operator([)symbol(:use_full_path)operator(]) reserved(if) ident(options)operator([)symbol(:file)operator(]) ident(render_file)operator(()ident(options)operator([)symbol(:file)operator(])operator(,) ident(options)operator([)symbol(:use_full_path)operator(])operator(,) ident(options)operator([)symbol(:locals)operator(])operator(\)) reserved(elsif) ident(options)operator([)symbol(:partial)operator(]) operator(&&) ident(options)operator([)symbol(:collection)operator(]) ident(render_partial_collection)operator(()ident(options)operator([)symbol(:partial)operator(])operator(,) ident(options)operator([)symbol(:collection)operator(])operator(,) ident(options)operator([)symbol(:spacer_template)operator(])operator(,) ident(options)operator([)symbol(:locals)operator(])operator(\)) reserved(elsif) ident(options)operator([)symbol(:partial)operator(]) ident(render_partial)operator(()ident(options)operator([)symbol(:partial)operator(])operator(,) constant(ActionView)operator(::)constant(Base)operator(::)constant(ObjectWrapper)operator(.)ident(new)operator(()ident(options)operator([)symbol(:object)operator(])operator(\))operator(,) ident(options)operator([)symbol(:locals)operator(])operator(\)) reserved(elsif) ident(options)operator([)symbol(:inline)operator(]) ident(render_template)operator(()ident(options)operator([)symbol(:type)operator(]) operator(||) symbol(:rhtml)operator(,) ident(options)operator([)symbol(:inline)operator(])operator(,) pre_constant(nil)operator(,) ident(options)operator([)symbol(:locals)operator(]) operator(||) operator({)operator(})operator(\)) reserved(end) reserved(end) reserved(end) comment(# Renders the +template+ which is given as a string as either rhtml or rxml depending on template_extension.) comment(# The hash in local_assigns is made available as local variables.) reserved(def) method(render_template)operator(()ident(template_extension)operator(,) ident(template)operator(,) ident(file_path) operator(=) pre_constant(nil)operator(,) ident(local_assigns) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) reserved(if) ident(handler) operator(=) class_variable(@@template_handlers)operator([)ident(template_extension)operator(]) ident(template) operator(||=) ident(read_template_file)operator(()ident(file_path)operator(,) ident(template_extension)operator(\)) comment(# Make sure that a lazyily-read template is loaded.) ident(delegate_render)operator(()ident(handler)operator(,) ident(template)operator(,) ident(local_assigns)operator(\)) reserved(else) ident(compile_and_render_template)operator(()ident(template_extension)operator(,) ident(template)operator(,) ident(file_path)operator(,) ident(local_assigns)operator(\)) reserved(end) reserved(end) comment(# Render the provided template with the given local assigns. If the template has not been rendered with the provided) comment(# local assigns yet, or if the template has been updated on disk, then the template will be compiled to a method.) comment(#) comment(# Either, but not both, of template and file_path may be nil. If file_path is given, the template) comment(# will only be read if it has to be compiled.) comment(#) reserved(def) method(compile_and_render_template)operator(()ident(extension)operator(,) ident(template) operator(=) pre_constant(nil)operator(,) ident(file_path) operator(=) pre_constant(nil)operator(,) ident(local_assigns) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) comment(# compile the given template, if necessary) reserved(if) ident(compile_template?)operator(()ident(template)operator(,) ident(file_path)operator(,) ident(local_assigns)operator(\)) ident(template) operator(||=) ident(read_template_file)operator(()ident(file_path)operator(,) ident(extension)operator(\)) ident(compile_template)operator(()ident(extension)operator(,) ident(template)operator(,) ident(file_path)operator(,) ident(local_assigns)operator(\)) reserved(end) comment(# Get the method name for this template and run it) ident(method_name) operator(=) class_variable(@@method_names)operator([)ident(file_path) operator(||) ident(template)operator(]) ident(evaluate_assigns) ident(local_assigns) operator(=) ident(local_assigns)operator(.)ident(symbolize_keys) reserved(if) class_variable(@@local_assigns_support_string_keys) ident(send)operator(()ident(method_name)operator(,) ident(local_assigns)operator(\)) reserved(do) operator(|*)ident(name)operator(|) ident(instance_variable_get) stringinline_delimiter(})>delimiter(")> reserved(end) reserved(end) reserved(def) method(pick_template_extension)operator(()ident(template_path)operator(\))comment(#:nodoc:) reserved(if) class_variable(@@cache_template_extensions) class_variable(@@cached_template_extension)operator([)ident(template_path)operator(]) operator(||=) ident(find_template_extension_for)operator(()ident(template_path)operator(\)) reserved(else) ident(find_template_extension_for)operator(()ident(template_path)operator(\)) reserved(end) reserved(end) reserved(def) method(delegate_template_exists?)operator(()ident(template_path)operator(\))comment(#:nodoc:) class_variable(@@template_handlers)operator(.)ident(find) operator({) operator(|)ident(k)operator(,)operator(|) ident(template_exists?)operator(()ident(template_path)operator(,) ident(k)operator(\)) operator(}) reserved(end) reserved(def) method(erb_template_exists?)operator(()ident(template_path)operator(\))comment(#:nodoc:) ident(template_exists?)operator(()ident(template_path)operator(,) symbol(:rhtml)operator(\)) reserved(end) reserved(def) method(builder_template_exists?)operator(()ident(template_path)operator(\))comment(#:nodoc:) ident(template_exists?)operator(()ident(template_path)operator(,) symbol(:rxml)operator(\)) reserved(end) reserved(def) method(javascript_template_exists?)operator(()ident(template_path)operator(\))comment(#:nodoc:) ident(template_exists?)operator(()ident(template_path)operator(,) symbol(:rjs)operator(\)) reserved(end) reserved(def) method(file_exists?)operator(()ident(template_path)operator(\))comment(#:nodoc:) ident(template_file_name)operator(,) ident(template_file_extension) operator(=) ident(path_and_extension)operator(()ident(template_path)operator(\)) reserved(if) ident(template_file_extension) ident(template_exists?)operator(()ident(template_file_name)operator(,) ident(template_file_extension)operator(\)) reserved(else) ident(cached_template_extension)operator(()ident(template_path)operator(\)) operator(||) stringoperator(.)ident(any?) reserved(do) operator(|)ident(template_type)operator(|) ident(send)operator(()stringcontent(_template_exists?)delimiter(")>operator(,) ident(template_path)operator(\)) reserved(end) reserved(end) reserved(end) comment(# Returns true is the file may be rendered implicitly.) reserved(def) method(file_public?)operator(()ident(template_path)operator(\))comment(#:nodoc:) ident(template_path)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last)operator([)integer(0)operator(,)integer(1)operator(]) operator(!=) string reserved(end) ident(private) reserved(def) method(full_template_path)operator(()ident(template_path)operator(,) ident(extension)operator(\)) stringcontent(/)inlinecontent(.)inlinedelimiter(")> reserved(end) reserved(def) method(template_exists?)operator(()ident(template_path)operator(,) ident(extension)operator(\)) ident(file_path) operator(=) ident(full_template_path)operator(()ident(template_path)operator(,) ident(extension)operator(\)) class_variable(@@method_names)operator(.)ident(has_key?)operator(()ident(file_path)operator(\)) operator(||) constant(FileTest)operator(.)ident(exists?)operator(()ident(file_path)operator(\)) reserved(end) reserved(def) method(path_and_extension)operator(()ident(template_path)operator(\)) ident(template_path_without_extension) operator(=) ident(template_path)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) operator([) ident(template_path_without_extension)operator(,) global_variable($1) operator(]) reserved(end) reserved(def) method(cached_template_extension)operator(()ident(template_path)operator(\)) class_variable(@@cache_template_extensions) operator(&&) class_variable(@@cached_template_extension)operator([)ident(template_path)operator(]) reserved(end) reserved(def) method(find_template_extension_for)operator(()ident(template_path)operator(\)) reserved(if) ident(match) operator(=) ident(delegate_template_exists?)operator(()ident(template_path)operator(\)) ident(match)operator(.)ident(first)operator(.)ident(to_sym) reserved(elsif) ident(erb_template_exists?)operator(()ident(template_path)operator(\))operator(:) symbol(:rhtml) reserved(elsif) ident(builder_template_exists?)operator(()ident(template_path)operator(\))operator(:) symbol(:rxml) reserved(elsif) ident(javascript_template_exists?)operator(()ident(template_path)operator(\))operator(:) symbol(:rjs) reserved(else) ident(raise) constant(ActionViewError)operator(,) stringdelimiter(")> reserved(end) reserved(end) comment(# This method reads a template file.) reserved(def) method(read_template_file)operator(()ident(template_path)operator(,) ident(extension)operator(\)) constant(File)operator(.)ident(read)operator(()ident(template_path)operator(\)) reserved(end) reserved(def) method(evaluate_assigns) reserved(unless) instance_variable(@assigns_added) ident(assign_variables_from_controller) instance_variable(@assigns_added) operator(=) pre_constant(true) reserved(end) reserved(end) reserved(def) method(delegate_render)operator(()ident(handler)operator(,) ident(template)operator(,) ident(local_assigns)operator(\)) ident(handler)operator(.)ident(new)operator(()pre_constant(self)operator(\))operator(.)ident(render)operator(()ident(template)operator(,) ident(local_assigns)operator(\)) reserved(end) reserved(def) method(assign_variables_from_controller) instance_variable(@assigns)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) ident(value)operator(\)) operator(}) reserved(end) comment(# Return true if the given template was compiled for a superset of the keys in local_assigns) reserved(def) method(supports_local_assigns?)operator(()ident(render_symbol)operator(,) ident(local_assigns)operator(\)) ident(local_assigns)operator(.)ident(empty?) operator(||) operator(()operator(()ident(args) operator(=) class_variable(@@template_args)operator([)ident(render_symbol)operator(])operator(\)) operator(&&) ident(local_assigns)operator(.)ident(all?) operator({) operator(|)ident(k)operator(,)ident(_)operator(|) ident(args)operator(.)ident(has_key?)operator(()ident(k)operator(\)) operator(})operator(\)) reserved(end) comment(# Check whether compilation is necessary.) comment(# Compile if the inline template or file has not been compiled yet.) comment(# Or if local_assigns has a new key, which isn't supported by the compiled code yet.) comment(# Or if the file has changed on disk and checking file mods hasn't been disabled. ) reserved(def) method(compile_template?)operator(()ident(template)operator(,) ident(file_name)operator(,) ident(local_assigns)operator(\)) ident(method_key) operator(=) ident(file_name) operator(||) ident(template) ident(render_symbol) operator(=) class_variable(@@method_names)operator([)ident(method_key)operator(]) reserved(if) class_variable(@@compile_time)operator([)ident(render_symbol)operator(]) operator(&&) ident(supports_local_assigns?)operator(()ident(render_symbol)operator(,) ident(local_assigns)operator(\)) reserved(if) ident(file_name) operator(&&) operator(!)class_variable(@@cache_template_loading) class_variable(@@compile_time)operator([)ident(render_symbol)operator(]) operator(<) constant(File)operator(.)ident(mtime)operator(()ident(file_name)operator(\)) operator(||) operator(()constant(File)operator(.)ident(symlink?)operator(()ident(file_name)operator(\)) operator(?) class_variable(@@compile_time)operator([)ident(render_symbol)operator(]) operator(<) constant(File)operator(.)ident(lstat)operator(()ident(file_name)operator(\))operator(.)ident(mtime) operator(:) pre_constant(false)operator(\)) reserved(end) reserved(else) pre_constant(true) reserved(end) reserved(end) comment(# Create source code for given template) reserved(def) method(create_template_source)operator(()ident(extension)operator(,) ident(template)operator(,) ident(render_symbol)operator(,) ident(locals)operator(\)) reserved(if) ident(template_requires_setup?)operator(()ident(extension)operator(\)) ident(body) operator(=) reserved(case) ident(extension)operator(.)ident(to_sym) reserved(when) symbol(:rxml) string 2\))char(\\n)delimiter(")> operator(+) string operator(+) ident(template) reserved(when) symbol(:rjs) string operator(+) stringchar(\\n)content(end)delimiter(")> reserved(end) reserved(else) ident(body) operator(=) constant(ERB)operator(.)ident(new)operator(()ident(template)operator(,) pre_constant(nil)operator(,) class_variable(@@erb_trim_mode)operator(\))operator(.)ident(src) reserved(end) class_variable(@@template_args)operator([)ident(render_symbol)operator(]) operator(||=) operator({)operator(}) ident(locals_keys) operator(=) class_variable(@@template_args)operator([)ident(render_symbol)operator(])operator(.)ident(keys) operator(|) ident(locals) class_variable(@@template_args)operator([)ident(render_symbol)operator(]) operator(=) ident(locals_keys)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({) operator(|)ident(h)operator(,) ident(k)operator(|) ident(h)operator([)ident(k)operator(]) operator(=) pre_constant(true)operator(;) ident(h) operator(}) ident(locals_code) operator(=) string ident(locals_keys)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(|) ident(locals_code) operator(<<) stringcontent( = local_assigns[:)inlinecontent(] if local_assigns.has_key?(:)inlinecontent(\))char(\\n)delimiter(")> reserved(end) stringcontent((local_assigns\))char(\\n)inlineinlinechar(\\n)content(end)delimiter(")> reserved(end) reserved(def) method(template_requires_setup?)operator(()ident(extension)operator(\)) ident(templates_requiring_setup)operator(.)ident(include?) ident(extension)operator(.)ident(to_s) reserved(end) reserved(def) method(templates_requiring_setup) string reserved(end) reserved(def) method(assign_method_name)operator(()ident(extension)operator(,) ident(template)operator(,) ident(file_name)operator(\)) ident(method_name) operator(=) string ident(method_name) operator(<<) stringcontent(_)delimiter(")> reserved(if) ident(extension) reserved(if) ident(file_name) ident(file_path) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(file_name)operator(\)) ident(base_path) operator(=) constant(File)operator(.)ident(expand_path)operator(()instance_variable(@base_path)operator(\)) ident(i) operator(=) ident(file_path)operator(.)ident(index)operator(()ident(base_path)operator(\)) ident(l) operator(=) ident(base_path)operator(.)ident(length) ident(method_name_file_part) operator(=) ident(i) operator(?) ident(file_path)operator([)ident(i)operator(+)ident(l)operator(+)integer(1)operator(,)ident(file_path)operator(.)ident(length)operator(-)ident(l)operator(-)integer(1)operator(]) operator(:) ident(file_path)operator(.)ident(clone) ident(method_name_file_part)operator(.)ident(sub!)operator(()regexpoperator(,)stringoperator(\)) ident(method_name_file_part)operator(.)ident(tr!)operator(()stringoperator(,) stringoperator(\)) ident(method_name_file_part)operator(.)ident(gsub!)operator(()regexpoperator(\))operator({)operator(|)ident(s)operator(|) ident(s)operator([)integer(0)operator(])operator(.)ident(to_s)operator(}) ident(method_name) operator(+=) ident(method_name_file_part) reserved(else) class_variable(@@inline_template_count) operator(+=) integer(1) ident(method_name) operator(<<) class_variable(@@inline_template_count)operator(.)ident(to_s) reserved(end) class_variable(@@method_names)operator([)ident(file_name) operator(||) ident(template)operator(]) operator(=) ident(method_name)operator(.)ident(intern) reserved(end) reserved(def) method(compile_template)operator(()ident(extension)operator(,) ident(template)operator(,) ident(file_name)operator(,) ident(local_assigns)operator(\)) ident(method_key) operator(=) ident(file_name) operator(||) ident(template) ident(render_symbol) operator(=) class_variable(@@method_names)operator([)ident(method_key)operator(]) operator(||) ident(assign_method_name)operator(()ident(extension)operator(,) ident(template)operator(,) ident(file_name)operator(\)) ident(render_source) operator(=) ident(create_template_source)operator(()ident(extension)operator(,) ident(template)operator(,) ident(render_symbol)operator(,) ident(local_assigns)operator(.)ident(keys)operator(\)) ident(line_offset) operator(=) class_variable(@@template_args)operator([)ident(render_symbol)operator(])operator(.)ident(size) reserved(if) ident(extension) reserved(case) ident(extension)operator(.)ident(to_sym) reserved(when) symbol(:rxml)operator(,) symbol(:rjs) ident(line_offset) operator(+=) integer(2) reserved(end) reserved(end) reserved(begin) reserved(unless) ident(file_name)operator(.)ident(blank?) constant(CompiledTemplates)operator(.)ident(module_eval)operator(()ident(render_source)operator(,) ident(file_name)operator(,) operator(-)ident(line_offset)operator(\)) reserved(else) constant(CompiledTemplates)operator(.)ident(module_eval)operator(()ident(render_source)operator(,) stringoperator(,) operator(-)ident(line_offset)operator(\)) reserved(end) reserved(rescue) constant(Object) operator(=)operator(>) ident(e) reserved(if) ident(logger) ident(logger)operator(.)ident(debug) stringcontent( RAISED )inlinedelimiter(")> ident(logger)operator(.)ident(debug) stringdelimiter(")> ident(logger)operator(.)ident(debug) stringoperator(\))inline_delimiter(})>delimiter(")> reserved(end) ident(raise) constant(TemplateError)operator(.)ident(new)operator(()instance_variable(@base_path)operator(,) ident(method_key)operator(,) instance_variable(@assigns)operator(,) ident(template)operator(,) ident(e)operator(\)) reserved(end) class_variable(@@compile_time)operator([)ident(render_symbol)operator(]) operator(=) constant(Time)operator(.)ident(now) comment(# logger.debug "Compiled template #{method_key}\\n ==> #{render_symbol}" if logger) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActionView) comment(# CompiledTemplates modules hold methods that have been compiled.) comment(# Templates are compiled into these methods so that they do not need to be) comment(# re-read and re-parsed each request.) comment(#) comment(# Each template may be compiled into one or more methods. Each method accepts a given) comment(# set of parameters which is used to implement local assigns passing.) comment(#) comment(# To use a compiled template module, create a new instance and include it into the class) comment(# in which you want the template to be rendered.) reserved(class) class(CompiledTemplates) operator(<) constant(Module) comment(#:nodoc:) ident(attr_reader) symbol(:method_names) reserved(def) method(initialize) instance_variable(@method_names) operator(=) constant(Hash)operator(.)ident(new) reserved(do) operator(|)ident(hash)operator(,) ident(key)operator(|) ident(hash)operator([)ident(key)operator(]) operator(=) stringdelimiter(")> reserved(end) instance_variable(@mtimes) operator(=) operator({)operator(}) reserved(end) comment(# Return the full key for the given identifier and argument names) reserved(def) method(full_key)operator(()ident(identifier)operator(,) ident(arg_names)operator(\)) operator([)ident(identifier)operator(,) ident(arg_names)operator(]) reserved(end) comment(# Return the selector for this method or nil if it has not been compiled) reserved(def) method(selector)operator(()ident(identifier)operator(,) ident(arg_names)operator(\)) ident(key) operator(=) ident(full_key)operator(()ident(identifier)operator(,) ident(arg_names)operator(\)) ident(method_names)operator(.)ident(key?)operator(()ident(key)operator(\)) operator(?) ident(method_names)operator([)ident(key)operator(]) operator(:) pre_constant(nil) reserved(end) reserved(alias) symbol(:compiled?) symbol(:selector) comment(# Return the time at which the method for the given identifier and argument names was compiled.) reserved(def) method(mtime)operator(()ident(identifier)operator(,) ident(arg_names)operator(\)) instance_variable(@mtimes)operator([)ident(full_key)operator(()ident(identifier)operator(,) ident(arg_names)operator(\))operator(]) reserved(end) comment(# Compile the provided source code for the given argument names and with the given initial line number.) comment(# The identifier should be unique to this source.) comment(#) comment(# The file_name, if provided will appear in backtraces. If not provded, the file_name defaults) comment(# to the identifier.) comment(#) comment(# This method will return the selector for the compiled version of this method.) reserved(def) method(compile_source)operator(()ident(identifier)operator(,) ident(arg_names)operator(,) ident(source)operator(,) ident(initial_line_number) operator(=) integer(0)operator(,) ident(file_name) operator(=) pre_constant(nil)operator(\)) ident(file_name) operator(||=) ident(identifier) ident(name) operator(=) ident(method_names)operator([)ident(full_key)operator(()ident(identifier)operator(,) ident(arg_names)operator(\))operator(]) ident(arg_desc) operator(=) ident(arg_names)operator(.)ident(empty?) operator(?) string operator(:) stringinline_delimiter(})>content(\))delimiter(")> ident(fake_file_name) operator(=) stringinlinedelimiter(")> comment(# Include the arguments for this version (for now\)) ident(method_def) operator(=) ident(wrap_source)operator(()ident(name)operator(,) ident(arg_names)operator(,) ident(source)operator(\)) reserved(begin) ident(module_eval)operator(()ident(method_def)operator(,) ident(fake_file_name)operator(,) ident(initial_line_number)operator(\)) instance_variable(@mtimes)operator([)ident(full_key)operator(()ident(identifier)operator(,) ident(arg_names)operator(\))operator(]) operator(=) constant(Time)operator(.)ident(now) reserved(rescue) constant(Object) operator(=)operator(>) ident(e) ident(e)operator(.)ident(blame_file!) ident(identifier) ident(raise) reserved(end) ident(name) reserved(end) comment(# Wrap the provided source in a def ... end block.) reserved(def) method(wrap_source)operator(()ident(name)operator(,) ident(arg_names)operator(,) ident(source)operator(\)) stringcontent(()inlineinline_delimiter(})>content(\))char(\\n)inlinechar(\\n)content(end)delimiter(")> reserved(end) reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActionView) reserved(class) class(Base) class_variable(@@field_error_proc) operator(=) constant(Proc)operator(.)ident(new)operator({) operator(|)ident(html_tag)operator(,) ident(instance)operator(|) string)inlinecontent()delimiter(")> operator(}) ident(cattr_accessor) symbol(:field_error_proc) reserved(end) reserved(module) class(Helpers) comment(# The Active Record Helper makes it easier to create forms for records kept in instance variables. The most far-reaching is the form) comment(# method that creates a complete form for all the basic content types of the record (not associations or aggregations, though\). This) comment(# is a great of making the record quickly available for editing, but likely to prove lackluster for a complicated real-world form.) comment(# In that case, it's better to use the input method and the specialized form methods in link:classes/ActionView/Helpers/FormHelper.html) reserved(module) class(ActiveRecordHelper) comment(# Returns a default input tag for the type of object returned by the method. Example) comment(# (title is a VARCHAR column and holds "Hello World"\):) comment(# input("post", "title"\) =>) comment(# ) reserved(def) method(input)operator(()ident(record_name)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(record_name)operator(,) ident(method)operator(,) pre_constant(self)operator(\))operator(.)ident(to_tag)operator(()ident(options)operator(\)) reserved(end) comment(# Returns an entire form with input tags and everything for a specified Active Record object. Example) comment(# (post is a new record that has a title using VARCHAR and a body using TEXT\):) comment(# form("post"\) =>) comment(#
) comment(#

) comment(#
) comment(# ) comment(#

) comment(#

) comment(#
) comment(# ) comment(#

) comment(# ) comment(#
) comment(#) comment(# It's possible to specialize the form builder by using a different action name and by supplying another) comment(# block renderer. Example (entry is a new record that has a message attribute using VARCHAR\):) comment(#) comment(# form("entry", :action => "sign", :input_block =>) comment(# Proc.new { |record, column| "#{column.human_name}: #{input(record, column.name\)}
" }\) =>) comment(#) comment(#
) comment(# Message:) comment(#
) comment(# ) comment(#
) comment(#) comment(# It's also possible to add additional content to the form by giving it a block, such as:) comment(#) comment(# form("entry", :action => "sign"\) do |form|) comment(# form << content_tag("b", "Department"\)) comment(# form << collection_select("department", "id", @departments, "id", "name"\)) comment(# end) reserved(def) method(form)operator(()ident(record_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(record) operator(=) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) ident(options) operator(=) ident(options)operator(.)ident(symbolize_keys) ident(options)operator([)symbol(:action)operator(]) operator(||=) ident(record)operator(.)ident(new_record?) operator(?) string operator(:) string ident(action) operator(=) ident(url_for)operator(()symbol(:action) operator(=)operator(>) ident(options)operator([)symbol(:action)operator(])operator(,) symbol(:id) operator(=)operator(>) ident(record)operator(\)) ident(submit_value) operator(=) ident(options)operator([)symbol(:submit_value)operator(]) operator(||) ident(options)operator([)symbol(:action)operator(])operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(capitalize) ident(contents) operator(=) string ident(contents) operator(<<) ident(hidden_field)operator(()ident(record_name)operator(,) symbol(:id)operator(\)) reserved(unless) ident(record)operator(.)ident(new_record?) ident(contents) operator(<<) ident(all_input_tags)operator(()ident(record)operator(,) ident(record_name)operator(,) ident(options)operator(\)) reserved(yield) ident(contents) reserved(if) ident(block_given?) ident(contents) operator(<<) ident(submit_tag)operator(()ident(submit_value)operator(\)) ident(content_tag)operator(()stringoperator(,) ident(contents)operator(,) symbol(:action) operator(=)operator(>) ident(action)operator(,) symbol(:method) operator(=)operator(>) stringoperator(,) symbol(:enctype) operator(=)operator(>) ident(options)operator([)symbol(:multipart)operator(]) operator(?) stringoperator(:) pre_constant(nil)operator(\)) reserved(end) comment(# Returns a string containing the error message attached to the +method+ on the +object+, if one exists.) comment(# This error message is wrapped in a DIV tag, which can be specialized to include both a +prepend_text+ and +append_text+) comment(# to properly introduce the error and a +css_class+ to style it accordingly. Examples (post has an error message) comment(# "can't be empty" on the title attribute\):) comment(#) comment(# <%= error_message_on "post", "title" %> =>) comment(#
can't be empty
) comment(#) comment(# <%= error_message_on "post", "title", "Title simply ", " (or it won't work\)", "inputError" %> =>) comment(#
Title simply can't be empty (or it won't work\)
) reserved(def) method(error_message_on)operator(()ident(object)operator(,) ident(method)operator(,) ident(prepend_text) operator(=) stringoperator(,) ident(append_text) operator(=) stringoperator(,) ident(css_class) operator(=) stringoperator(\)) reserved(if) ident(errors) operator(=) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\))operator(.)ident(errors)operator(.)ident(on)operator(()ident(method)operator(\)) ident(content_tag)operator(()stringoperator(,) stringinlineinlinedelimiter(")>operator(,) symbol(:class) operator(=)operator(>) ident(css_class)operator(\)) reserved(end) reserved(end) comment(# Returns a string with a div containing all the error messages for the object located as an instance variable by the name) comment(# of object_name. This div can be tailored by the following options:) comment(#) comment(# * header_tag - Used for the header of the error div (default: h2\)) comment(# * id - The id of the error div (default: errorExplanation\)) comment(# * class - The class of the error div (default: errorExplanation\)) comment(#) comment(# NOTE: This is a pre-packaged presentation of the errors with embedded strings and a certain HTML structure. If what) comment(# you need is significantly different from the default presentation, it makes plenty of sense to access the object.errors) comment(# instance yourself and set it up. View the source of this method to see how easy it is.) reserved(def) method(error_messages_for)operator(()ident(object_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options) operator(=) ident(options)operator(.)ident(symbolize_keys) ident(object) operator(=) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(if) ident(object) operator(&&) operator(!)ident(object)operator(.)ident(errors)operator(.)ident(empty?) ident(content_tag)operator(()stringoperator(,) ident(content_tag)operator(() ident(options)operator([)symbol(:header_tag)operator(]) operator(||) stringoperator(,) stringoperator(\))inline_delimiter(})>content( prohibited this )inlineoperator(,) stringoperator(\))inline_delimiter(})>content( from being saved)delimiter(")> operator(\)) operator(+) ident(content_tag)operator(()stringoperator(,) stringoperator(\)) operator(+) ident(content_tag)operator(()stringoperator(,) ident(object)operator(.)ident(errors)operator(.)ident(full_messages)operator(.)ident(collect) operator({) operator(|)ident(msg)operator(|) ident(content_tag)operator(()stringoperator(,) ident(msg)operator(\)) operator(})operator(\))operator(,) string operator(=)operator(>) ident(options)operator([)symbol(:id)operator(]) operator(||) stringoperator(,) string operator(=)operator(>) ident(options)operator([)symbol(:class)operator(]) operator(||) string operator(\)) reserved(else) string reserved(end) reserved(end) ident(private) reserved(def) method(all_input_tags)operator(()ident(record)operator(,) ident(record_name)operator(,) ident(options)operator(\)) ident(input_block) operator(=) ident(options)operator([)symbol(:input_block)operator(]) operator(||) ident(default_input_block) ident(record)operator(.)ident(class)operator(.)ident(content_columns)operator(.)ident(collect)operator({) operator(|)ident(column)operator(|) ident(input_block)operator(.)ident(call)operator(()ident(record_name)operator(,) ident(column)operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(default_input_block) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(record)operator(,) ident(column)operator(|) string
)inlinecontent(

)delimiter(\))> operator(}) reserved(end) reserved(end) reserved(class) class(InstanceTag) comment(#:nodoc:) reserved(def) method(to_tag)operator(()ident(options) operator(=) operator({)operator(})operator(\)) reserved(case) ident(column_type) reserved(when) symbol(:string) ident(field_type) operator(=) instance_variable(@method_name)operator(.)ident(include?)operator(()stringoperator(\)) operator(?) string operator(:) string ident(to_input_field_tag)operator(()ident(field_type)operator(,) ident(options)operator(\)) reserved(when) symbol(:text) ident(to_text_area_tag)operator(()ident(options)operator(\)) reserved(when) symbol(:integer)operator(,) symbol(:float) ident(to_input_field_tag)operator(()stringoperator(,) ident(options)operator(\)) reserved(when) symbol(:date) ident(to_date_select_tag)operator(()ident(options)operator(\)) reserved(when) symbol(:datetime)operator(,) symbol(:timestamp) ident(to_datetime_select_tag)operator(()ident(options)operator(\)) reserved(when) symbol(:boolean) ident(to_boolean_select_tag)operator(()ident(options)operator(\)) reserved(end) reserved(end) ident(alias_method) symbol(:tag_without_error_wrapping)operator(,) symbol(:tag) reserved(def) method(tag)operator(()ident(name)operator(,) ident(options)operator(\)) reserved(if) ident(object)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(&&) ident(object)operator(.)ident(errors)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(error_wrapping)operator(()ident(tag_without_error_wrapping)operator(()ident(name)operator(,) ident(options)operator(\))operator(,) ident(object)operator(.)ident(errors)operator(.)ident(on)operator(()instance_variable(@method_name)operator(\))operator(\)) reserved(else) ident(tag_without_error_wrapping)operator(()ident(name)operator(,) ident(options)operator(\)) reserved(end) reserved(end) ident(alias_method) symbol(:content_tag_without_error_wrapping)operator(,) symbol(:content_tag) reserved(def) method(content_tag)operator(()ident(name)operator(,) ident(value)operator(,) ident(options)operator(\)) reserved(if) ident(object)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(&&) ident(object)operator(.)ident(errors)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(error_wrapping)operator(()ident(content_tag_without_error_wrapping)operator(()ident(name)operator(,) ident(value)operator(,) ident(options)operator(\))operator(,) ident(object)operator(.)ident(errors)operator(.)ident(on)operator(()instance_variable(@method_name)operator(\))operator(\)) reserved(else) ident(content_tag_without_error_wrapping)operator(()ident(name)operator(,) ident(value)operator(,) ident(options)operator(\)) reserved(end) reserved(end) ident(alias_method) symbol(:to_date_select_tag_without_error_wrapping)operator(,) symbol(:to_date_select_tag) reserved(def) method(to_date_select_tag)operator(()ident(options) operator(=) operator({)operator(})operator(\)) reserved(if) ident(object)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(&&) ident(object)operator(.)ident(errors)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(error_wrapping)operator(()ident(to_date_select_tag_without_error_wrapping)operator(()ident(options)operator(\))operator(,) ident(object)operator(.)ident(errors)operator(.)ident(on)operator(()instance_variable(@method_name)operator(\))operator(\)) reserved(else) ident(to_date_select_tag_without_error_wrapping)operator(()ident(options)operator(\)) reserved(end) reserved(end) ident(alias_method) symbol(:to_datetime_select_tag_without_error_wrapping)operator(,) symbol(:to_datetime_select_tag) reserved(def) method(to_datetime_select_tag)operator(()ident(options) operator(=) operator({)operator(})operator(\)) reserved(if) ident(object)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(&&) ident(object)operator(.)ident(errors)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(error_wrapping)operator(()ident(to_datetime_select_tag_without_error_wrapping)operator(()ident(options)operator(\))operator(,) ident(object)operator(.)ident(errors)operator(.)ident(on)operator(()instance_variable(@method_name)operator(\))operator(\)) reserved(else) ident(to_datetime_select_tag_without_error_wrapping)operator(()ident(options)operator(\)) reserved(end) reserved(end) reserved(def) method(error_wrapping)operator(()ident(html_tag)operator(,) ident(has_error)operator(\)) ident(has_error) operator(?) constant(Base)operator(.)ident(field_error_proc)operator(.)ident(call)operator(()ident(html_tag)operator(,) pre_constant(self)operator(\)) operator(:) ident(html_tag) reserved(end) reserved(def) method(error_message) ident(object)operator(.)ident(errors)operator(.)ident(on)operator(()instance_variable(@method_name)operator(\)) reserved(end) reserved(def) method(column_type) ident(object)operator(.)ident(send)operator(()stringoperator(,) instance_variable(@method_name)operator(\))operator(.)ident(type) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides methods for linking a HTML page together with other assets, such as javascripts, stylesheets, and feeds.) reserved(module) class(AssetTagHelper) comment(# Returns a link tag that browsers and news readers can use to auto-detect a RSS or ATOM feed for this page. The +type+ can) comment(# either be :rss (default\) or :atom and the +options+ follow the url_for style of declaring a link target.) comment(#) comment(# Examples:) comment(# auto_discovery_link_tag # =>) comment(# ) comment(# auto_discovery_link_tag(:atom\) # =>) comment(# ) comment(# auto_discovery_link_tag(:rss, {:action => "feed"}\) # =>) comment(# ) comment(# auto_discovery_link_tag(:rss, {:action => "feed"}, {:title => "My RSS"}\) # =>) comment(# ) reserved(def) method(auto_discovery_link_tag)operator(()ident(type) operator(=) symbol(:rss)operator(,) ident(url_options) operator(=) operator({)operator(})operator(,) ident(tag_options) operator(=) operator({)operator(})operator(\)) ident(tag)operator(() stringoperator(,) string operator(=)operator(>) ident(tag_options)operator([)symbol(:rel)operator(]) operator(||) stringoperator(,) string operator(=)operator(>) ident(tag_options)operator([)symbol(:type)operator(]) operator(||) stringcontent(+xml)delimiter(")>operator(,) string operator(=)operator(>) ident(tag_options)operator([)symbol(:title)operator(]) operator(||) ident(type)operator(.)ident(to_s)operator(.)ident(upcase)operator(,) string operator(=)operator(>) ident(url_options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(url_for)operator(()ident(url_options)operator(.)ident(merge)operator(()symbol(:only_path) operator(=)operator(>) pre_constant(false)operator(\))operator(\)) operator(:) ident(url_options) operator(\)) reserved(end) comment(# Returns path to a javascript asset. Example:) comment(#) comment(# javascript_path "xmlhr" # => /javascripts/xmlhr.js) reserved(def) method(javascript_path)operator(()ident(source)operator(\)) ident(compute_public_path)operator(()ident(source)operator(,) stringoperator(,) stringoperator(\)) reserved(end) constant(JAVASCRIPT_DEFAULT_SOURCES) operator(=) operator([)stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(]) reserved(unless) ident(const_defined?)operator(()symbol(:JAVASCRIPT_DEFAULT_SOURCES)operator(\)) class_variable(@@javascript_default_sources) operator(=) constant(JAVASCRIPT_DEFAULT_SOURCES)operator(.)ident(dup) comment(# Returns a script include tag per source given as argument. Examples:) comment(#) comment(# javascript_include_tag "xmlhr" # =>) comment(# ) comment(#) comment(# javascript_include_tag "common.javascript", "/elsewhere/cools" # =>) comment(# ) comment(# ) comment(#) comment(# javascript_include_tag :defaults # =>) comment(# ) comment(# ) comment(# ...) comment(# *see below) comment(# ) comment(# If there's an application.js file in your public/javascripts directory,) comment(# javascript_include_tag :defaults will automatically include it. This file) comment(# facilitates the inclusion of small snippets of JavaScript code, along the lines of) comment(# controllers/application.rb and helpers/application_helper.rb.) reserved(def) method(javascript_include_tag)operator(()operator(*)ident(sources)operator(\)) ident(options) operator(=) ident(sources)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(sources)operator(.)ident(pop)operator(.)ident(stringify_keys) operator(:) operator({) operator(}) reserved(if) ident(sources)operator(.)ident(include?)operator(()symbol(:defaults)operator(\)) ident(sources) operator(=) ident(sources)operator([)integer(0)operator(..)operator(()ident(sources)operator(.)ident(index)operator(()symbol(:defaults)operator(\))operator(\))operator(]) operator(+) class_variable(@@javascript_default_sources)operator(.)ident(dup) operator(+) ident(sources)operator([)operator(()ident(sources)operator(.)ident(index)operator(()symbol(:defaults)operator(\)) operator(+) integer(1)operator(\))operator(..)ident(sources)operator(.)ident(length)operator(]) ident(sources)operator(.)ident(delete)operator(()symbol(:defaults)operator(\)) ident(sources) operator(<<) string reserved(if) reserved(defined?)operator(()constant(RAILS_ROOT)operator(\)) operator(&&) constant(File)operator(.)ident(exists?)operator(()stringcontent(/public/javascripts/application.js)delimiter(")>operator(\)) reserved(end) ident(sources)operator(.)ident(collect) operator({) operator(|)ident(source)operator(|) ident(source) operator(=) ident(javascript_path)operator(()ident(source)operator(\)) ident(content_tag)operator(()stringoperator(,) stringoperator(,) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(source) operator(})operator(.)ident(merge)operator(()ident(options)operator(\))operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) comment(# Register one or more additional JavaScript files to be included when) comment(# ) comment(# javascript_include_tag :defaults) comment(#) comment(# is called. This method is intended to be called only from plugin initialization) comment(# to register extra .js files the plugin installed in public/javascripts.) reserved(def) pre_constant(self)operator(.)method(register_javascript_include_default)operator(()operator(*)ident(sources)operator(\)) class_variable(@@javascript_default_sources)operator(.)ident(concat)operator(()ident(sources)operator(\)) reserved(end) reserved(def) pre_constant(self)operator(.)method(reset_javascript_include_default) comment(#:nodoc:) class_variable(@@javascript_default_sources) operator(=) constant(JAVASCRIPT_DEFAULT_SOURCES)operator(.)ident(dup) reserved(end) comment(# Returns path to a stylesheet asset. Example:) comment(#) comment(# stylesheet_path "style" # => /stylesheets/style.css) reserved(def) method(stylesheet_path)operator(()ident(source)operator(\)) ident(compute_public_path)operator(()ident(source)operator(,) stringoperator(,) stringoperator(\)) reserved(end) comment(# Returns a css link tag per source given as argument. Examples:) comment(#) comment(# stylesheet_link_tag "style" # =>) comment(# ) comment(#) comment(# stylesheet_link_tag "style", :media => "all" # =>) comment(# ) comment(#) comment(# stylesheet_link_tag "random.styles", "/css/stylish" # =>) comment(# ) comment(# ) reserved(def) method(stylesheet_link_tag)operator(()operator(*)ident(sources)operator(\)) ident(options) operator(=) ident(sources)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(sources)operator(.)ident(pop)operator(.)ident(stringify_keys) operator(:) operator({) operator(}) ident(sources)operator(.)ident(collect) operator({) operator(|)ident(source)operator(|) ident(source) operator(=) ident(stylesheet_path)operator(()ident(source)operator(\)) ident(tag)operator(()stringoperator(,) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(source) operator(})operator(.)ident(merge)operator(()ident(options)operator(\))operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) comment(# Returns path to an image asset. Example:) comment(#) comment(# The +src+ can be supplied as a...) comment(# * full path, like "/my_images/image.gif") comment(# * file name, like "rss.gif", that gets expanded to "/images/rss.gif") comment(# * file name without extension, like "logo", that gets expanded to "/images/logo.png") reserved(def) method(image_path)operator(()ident(source)operator(\)) ident(compute_public_path)operator(()ident(source)operator(,) stringoperator(,) stringoperator(\)) reserved(end) comment(# Returns an image tag converting the +options+ into html options on the tag, but with these special cases:) comment(#) comment(# * :alt - If no alt text is given, the file name part of the +src+ is used (capitalized and without the extension\)) comment(# * :size - Supplied as "XxY", so "30x45" becomes width="30" and height="45") comment(#) comment(# The +src+ can be supplied as a...) comment(# * full path, like "/my_images/image.gif") comment(# * file name, like "rss.gif", that gets expanded to "/images/rss.gif") comment(# * file name without extension, like "logo", that gets expanded to "/images/logo.png") reserved(def) method(image_tag)operator(()ident(source)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator(.)ident(symbolize_keys!) ident(options)operator([)symbol(:src)operator(]) operator(=) ident(image_path)operator(()ident(source)operator(\)) ident(options)operator([)symbol(:alt)operator(]) operator(||=) constant(File)operator(.)ident(basename)operator(()ident(options)operator([)symbol(:src)operator(])operator(,) stringoperator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(first)operator(.)ident(capitalize) reserved(if) ident(options)operator([)symbol(:size)operator(]) ident(options)operator([)symbol(:width)operator(])operator(,) ident(options)operator([)symbol(:height)operator(]) operator(=) ident(options)operator([)symbol(:size)operator(])operator(.)ident(split)operator(()stringoperator(\)) ident(options)operator(.)ident(delete) symbol(:size) reserved(end) ident(tag)operator(()stringoperator(,) ident(options)operator(\)) reserved(end) ident(private) reserved(def) method(compute_public_path)operator(()ident(source)operator(,) ident(dir)operator(,) ident(ext)operator(\)) ident(source) operator(=) stringcontent(/)inlinedelimiter(")> reserved(unless) ident(source)operator(.)ident(first) operator(==) string operator(||) ident(source)operator(.)ident(include?)operator(()stringoperator(\)) ident(source) operator(<<) stringdelimiter(")> reserved(unless) ident(source)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last)operator(.)ident(include?)operator(()stringoperator(\)) ident(source) operator(<<) string operator(+) ident(rails_asset_id)operator(()ident(source)operator(\)) reserved(if) reserved(defined?)operator(()constant(RAILS_ROOT)operator(\)) operator(&&) regexp operator(!)operator(~) ident(source) ident(source) operator(=) stringinlinedelimiter(")> reserved(unless) regexp operator(=)operator(~) ident(source) ident(source) operator(=) constant(ActionController)operator(::)constant(Base)operator(.)ident(asset_host) operator(+) ident(source) reserved(unless) ident(source)operator(.)ident(include?)operator(()stringoperator(\)) ident(source) reserved(end) reserved(def) method(rails_asset_id)operator(()ident(source)operator(\)) pre_constant(ENV)operator([)stringoperator(]) operator(||) constant(File)operator(.)ident(mtime)operator(()stringcontent(/public/)inlinedelimiter(")>operator(\))operator(.)ident(to_i)operator(.)ident(to_s) reserved(rescue) string reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActionView) reserved(module) class(Helpers) reserved(module) class(BenchmarkHelper) comment(# Measures the execution time of a block in a template and reports the result to the log. Example:) comment(#) comment(# <% benchmark "Notes section" do %>) comment(# <%= expensive_notes_operation %>) comment(# <% end %>) comment(#) comment(# Will add something like "Notes section (0.34523\)" to the log.) comment(#) comment(# You may give an optional logger level as the second argument) comment(# (:debug, :info, :warn, :error\). The default is :info.) reserved(def) method(benchmark)operator(()ident(message) operator(=) stringoperator(,) ident(level) operator(=) symbol(:info)operator(\)) reserved(if) instance_variable(@logger) ident(real) operator(=) constant(Benchmark)operator(.)ident(realtime) operator({) reserved(yield) operator(}) instance_variable(@logger)operator(.)ident(send) ident(level)operator(,) stringcontent( ()inline operator(%) ident(real)inline_delimiter(})>content(\))delimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# See ActionController::Caching::Fragments for usage instructions.) reserved(module) class(CacheHelper) reserved(def) method(cache)operator(()ident(name) operator(=) operator({)operator(})operator(,) operator(&)ident(block)operator(\)) instance_variable(@controller)operator(.)ident(cache_erb_fragment)operator(()ident(block)operator(,) ident(name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Capture lets you extract parts of code which) comment(# can be used in other points of the template or even layout file.) comment(#) comment(# == Capturing a block into an instance variable) comment(#) comment(# <% @script = capture do %>) comment(# [some html...]) comment(# <% end %>) comment(#) comment(# == Add javascript to header using content_for) comment(#) comment(# content_for("name"\) is a wrapper for capture which will ) comment(# make the fragment available by name to a yielding layout or template.) comment(#) comment(# layout.rhtml:) comment(#) comment(# ) comment(# ) comment(# layout with js) comment(# ) comment(# ) comment(# ) comment(# <%= yield %>) comment(# ) comment(# ) comment(#) comment(# view.rhtml) comment(# ) comment(# This page shows an alert box!) comment(#) comment(# <% content_for("script"\) do %>) comment(# alert('hello world'\)) comment(# <% end %>) comment(#) comment(# Normal view text) reserved(module) class(CaptureHelper) comment(# Capture allows you to extract a part of the template into an ) comment(# instance variable. You can use this instance variable anywhere) comment(# in your templates and even in your layout. ) comment(# ) comment(# Example of capture being used in a .rhtml page:) comment(# ) comment(# <% @greeting = capture do %>) comment(# Welcome To my shiny new web page!) comment(# <% end %>) comment(#) comment(# Example of capture being used in a .rxml page:) comment(# ) comment(# @greeting = capture do) comment(# 'Welcome To my shiny new web page!') comment(# end) reserved(def) method(capture)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) comment(# execute the block) reserved(begin) ident(buffer) operator(=) ident(eval)operator(()stringoperator(,) ident(block)operator(.)ident(binding)operator(\)) reserved(rescue) ident(buffer) operator(=) pre_constant(nil) reserved(end) reserved(if) ident(buffer)operator(.)ident(nil?) ident(capture_block)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(else) ident(capture_erb_with_buffer)operator(()ident(buffer)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) comment(# Calling content_for stores the block of markup for later use.) comment(# Subsequently, you can make calls to it by name with yield) comment(# in another template or in the layout. ) comment(# ) comment(# Example:) comment(# ) comment(# <% content_for("header"\) do %>) comment(# alert('hello world'\)) comment(# <% end %>) comment(#) comment(# You can use yield :header anywhere in your templates.) comment(#) comment(# <%= yield :header %>) comment(#) comment(# NOTE: Beware that content_for is ignored in caches. So you shouldn't use it) comment(# for elements that are going to be fragment cached.) comment(#) comment(# The deprecated way of accessing a content_for block was to use a instance variable) comment(# named @@content_for_#{name_of_the_content_block}@. So <%= content_for('footer'\) %>) comment(# would be avaiable as <%= @content_for_footer %>. The preferred notation now is) comment(# <%= yield :footer %>.) reserved(def) method(content_for)operator(()ident(name)operator(,) operator(&)ident(block)operator(\)) ident(eval) stringcontent( = (@content_for_)inlinecontent( || ''\) + capture(&block\))delimiter(")> reserved(end) ident(private) reserved(def) method(capture_block)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(block)operator(.)ident(call)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(def) method(capture_erb)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(buffer) operator(=) ident(eval)operator(()stringoperator(,) ident(block)operator(.)ident(binding)operator(\)) ident(capture_erb_with_buffer)operator(()ident(buffer)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(capture_erb_with_buffer)operator(()ident(buffer)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(pos) operator(=) ident(buffer)operator(.)ident(length) ident(block)operator(.)ident(call)operator(()operator(*)ident(args)operator(\)) comment(# extract the block ) ident(data) operator(=) ident(buffer)operator([)ident(pos)operator(..)integer(-1)operator(]) comment(# replace it in the original with empty string) ident(buffer)operator([)ident(pos)operator(..)integer(-1)operator(]) operator(=) string ident(data) reserved(end) reserved(def) method(erb_content_for)operator(()ident(name)operator(,) operator(&)ident(block)operator(\)) ident(eval) stringcontent( = (@content_for_)inlinecontent( || ''\) + capture_erb(&block\))delimiter(")> reserved(end) reserved(def) method(block_content_for)operator(()ident(name)operator(,) operator(&)ident(block)operator(\)) ident(eval) stringcontent( = (@content_for_)inlinecontent( || ''\) + capture_block(&block\))delimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# The Date Helper primarily creates select/option tags for different kinds of dates and date elements. All of the select-type methods) comment(# share a number of common options that are as follows:) comment(#) comment(# * :prefix - overwrites the default prefix of "date" used for the select names. So specifying "birthday" would give) comment(# birthday[month] instead of date[month] if passed to the select_month method.) comment(# * :include_blank - set to true if it should be possible to set an empty date.) comment(# * :discard_type - set to true if you want to discard the type part of the select name. If set to true, the select_month) comment(# method would use simply "date" (which can be overwritten using :prefix\) instead of "date[month]".) reserved(module) class(DateHelper) constant(DEFAULT_PREFIX) operator(=) string reserved(unless) ident(const_defined?)operator(()stringoperator(\)) comment(# Reports the approximate distance in time between two Time objects or integers. ) comment(# For example, if the distance is 47 minutes, it'll return) comment(# "about 1 hour". See the source for the complete wording list.) comment(#) comment(# Integers are interpreted as seconds. So,) comment(# distance_of_time_in_words(50\) returns "less than a minute".) comment(#) comment(# Set include_seconds to true if you want more detailed approximations if distance < 1 minute) reserved(def) method(distance_of_time_in_words)operator(()ident(from_time)operator(,) ident(to_time) operator(=) integer(0)operator(,) ident(include_seconds) operator(=) pre_constant(false)operator(\)) ident(from_time) operator(=) ident(from_time)operator(.)ident(to_time) reserved(if) ident(from_time)operator(.)ident(respond_to?)operator(()symbol(:to_time)operator(\)) ident(to_time) operator(=) ident(to_time)operator(.)ident(to_time) reserved(if) ident(to_time)operator(.)ident(respond_to?)operator(()symbol(:to_time)operator(\)) ident(distance_in_minutes) operator(=) operator(()operator(()operator(()ident(to_time) operator(-) ident(from_time)operator(\))operator(.)ident(abs)operator(\))operator(/)integer(60)operator(\))operator(.)ident(round) ident(distance_in_seconds) operator(=) operator(()operator(()ident(to_time) operator(-) ident(from_time)operator(\))operator(.)ident(abs)operator(\))operator(.)ident(round) reserved(case) ident(distance_in_minutes) reserved(when) integer(0)operator(..)integer(1) reserved(return) operator(()ident(distance_in_minutes)operator(==)integer(0)operator(\)) operator(?) string operator(:) string reserved(unless) ident(include_seconds) reserved(case) ident(distance_in_seconds) reserved(when) integer(0)operator(..)integer(5) reserved(then) string reserved(when) integer(6)operator(..)integer(10) reserved(then) string reserved(when) integer(11)operator(..)integer(20) reserved(then) string reserved(when) integer(21)operator(..)integer(40) reserved(then) string reserved(when) integer(41)operator(..)integer(59) reserved(then) string reserved(else) string reserved(end) reserved(when) integer(2)operator(..)integer(45) reserved(then) stringcontent( minutes)delimiter(")> reserved(when) integer(46)operator(..)integer(90) reserved(then) string reserved(when) integer(90)operator(..)integer(1440) reserved(then) stringcontent( hours)delimiter(")> reserved(when) integer(1441)operator(..)integer(2880) reserved(then) string reserved(else) stringcontent( days)delimiter(")> reserved(end) reserved(end) comment(# Like distance_of_time_in_words, but where to_time is fixed to Time.now.) reserved(def) method(time_ago_in_words)operator(()ident(from_time)operator(,) ident(include_seconds) operator(=) pre_constant(false)operator(\)) ident(distance_of_time_in_words)operator(()ident(from_time)operator(,) constant(Time)operator(.)ident(now)operator(,) ident(include_seconds)operator(\)) reserved(end) ident(alias_method) symbol(:distance_of_time_in_words_to_now)operator(,) symbol(:time_ago_in_words) comment(# Returns a set of select tags (one for year, month, and day\) pre-selected for accessing a specified date-based attribute (identified by) comment(# +method+\) on an object assigned to the template (identified by +object+\). It's possible to tailor the selects through the +options+ hash,) comment(# which accepts all the keys that each of the individual select builders do (like :use_month_numbers for select_month\) as well as a range of) comment(# discard options. The discard options are :discard_year, :discard_month and :discard_day. Set to true, they'll) comment(# drop the respective select. Discarding the month select will also automatically discard the day select. It's also possible to explicitly) comment(# set the order of the tags using the :order option with an array of symbols :year, :month and :day in) comment(# the desired order. Symbols may be omitted and the respective select is not included.) comment(#) comment(# Passing :disabled => true as part of the +options+ will make elements inaccessible for change.) comment(#) comment(# NOTE: Discarded selects will default to 1. So if no month select is available, January will be assumed.) comment(#) comment(# Examples:) comment(#) comment(# date_select("post", "written_on"\)) comment(# date_select("post", "written_on", :start_year => 1995\)) comment(# date_select("post", "written_on", :start_year => 1995, :use_month_numbers => true,) comment(# :discard_day => true, :include_blank => true\)) comment(# date_select("post", "written_on", :order => [:day, :month, :year]\)) comment(# date_select("user", "birthday", :order => [:month, :day]\)) comment(#) comment(# The selects are prepared for multi-parameter assignment to an Active Record object.) reserved(def) method(date_select)operator(()ident(object_name)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object_name)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_date_select_tag)operator(()ident(options)operator(\)) reserved(end) comment(# Returns a set of select tags (one for year, month, day, hour, and minute\) pre-selected for accessing a specified datetime-based) comment(# attribute (identified by +method+\) on an object assigned to the template (identified by +object+\). Examples:) comment(#) comment(# datetime_select("post", "written_on"\)) comment(# datetime_select("post", "written_on", :start_year => 1995\)) comment(#) comment(# The selects are prepared for multi-parameter assignment to an Active Record object.) reserved(def) method(datetime_select)operator(()ident(object_name)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object_name)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_datetime_select_tag)operator(()ident(options)operator(\)) reserved(end) comment(# Returns a set of html select-tags (one for year, month, and day\) pre-selected with the +date+.) reserved(def) method(select_date)operator(()ident(date) operator(=) constant(Date)operator(.)ident(today)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(select_year)operator(()ident(date)operator(,) ident(options)operator(\)) operator(+) ident(select_month)operator(()ident(date)operator(,) ident(options)operator(\)) operator(+) ident(select_day)operator(()ident(date)operator(,) ident(options)operator(\)) reserved(end) comment(# Returns a set of html select-tags (one for year, month, day, hour, and minute\) pre-selected with the +datetime+.) reserved(def) method(select_datetime)operator(()ident(datetime) operator(=) constant(Time)operator(.)ident(now)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(select_year)operator(()ident(datetime)operator(,) ident(options)operator(\)) operator(+) ident(select_month)operator(()ident(datetime)operator(,) ident(options)operator(\)) operator(+) ident(select_day)operator(()ident(datetime)operator(,) ident(options)operator(\)) operator(+) ident(select_hour)operator(()ident(datetime)operator(,) ident(options)operator(\)) operator(+) ident(select_minute)operator(()ident(datetime)operator(,) ident(options)operator(\)) reserved(end) comment(# Returns a set of html select-tags (one for hour and minute\)) reserved(def) method(select_time)operator(()ident(datetime) operator(=) constant(Time)operator(.)ident(now)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(h) operator(=) ident(select_hour)operator(()ident(datetime)operator(,) ident(options)operator(\)) operator(+) ident(select_minute)operator(()ident(datetime)operator(,) ident(options)operator(\)) operator(+) operator(()ident(options)operator([)symbol(:include_seconds)operator(]) operator(?) ident(select_second)operator(()ident(datetime)operator(,) ident(options)operator(\)) operator(:) stringoperator(\)) reserved(end) comment(# Returns a select tag with options for each of the seconds 0 through 59 with the current second selected.) comment(# The second can also be substituted for a second number.) comment(# Override the field name using the :field_name option, 'second' by default.) reserved(def) method(select_second)operator(()ident(datetime)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(second_options) operator(=) operator([)operator(]) integer(0)operator(.)ident(upto)operator(()integer(59)operator(\)) reserved(do) operator(|)ident(second)operator(|) ident(second_options) operator(<<) operator(()operator(()ident(datetime) operator(&&) operator(()ident(datetime)operator(.)ident(kind_of?)operator(()constant(Fixnum)operator(\)) operator(?) ident(datetime) operator(:) ident(datetime)operator(.)ident(sec)operator(\)) operator(==) ident(second)operator(\)) operator(?) string)inlinecontent()char(\\n)delimiter(\))> operator(:) string)inlinecontent()char(\\n)delimiter(\))> operator(\)) reserved(end) ident(select_html)operator(()ident(options)operator([)symbol(:field_name)operator(]) operator(||) stringoperator(,) ident(second_options)operator(,) ident(options)operator([)symbol(:prefix)operator(])operator(,) ident(options)operator([)symbol(:include_blank)operator(])operator(,) ident(options)operator([)symbol(:discard_type)operator(])operator(,) ident(options)operator([)symbol(:disabled)operator(])operator(\)) reserved(end) comment(# Returns a select tag with options for each of the minutes 0 through 59 with the current minute selected.) comment(# Also can return a select tag with options by minute_step from 0 through 59 with the 00 minute selected) comment(# The minute can also be substituted for a minute number.) comment(# Override the field name using the :field_name option, 'minute' by default.) reserved(def) method(select_minute)operator(()ident(datetime)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(minute_options) operator(=) operator([)operator(]) integer(0)operator(.)ident(step)operator(()integer(59)operator(,) ident(options)operator([)symbol(:minute_step)operator(]) operator(||) integer(1)operator(\)) reserved(do) operator(|)ident(minute)operator(|) ident(minute_options) operator(<<) operator(()operator(()ident(datetime) operator(&&) operator(()ident(datetime)operator(.)ident(kind_of?)operator(()constant(Fixnum)operator(\)) operator(?) ident(datetime) operator(:) ident(datetime)operator(.)ident(min)operator(\)) operator(==) ident(minute)operator(\)) operator(?) string)inlinecontent()char(\\n)delimiter(\))> operator(:) string)inlinecontent()char(\\n)delimiter(\))> operator(\)) reserved(end) ident(select_html)operator(()ident(options)operator([)symbol(:field_name)operator(]) operator(||) stringoperator(,) ident(minute_options)operator(,) ident(options)operator([)symbol(:prefix)operator(])operator(,) ident(options)operator([)symbol(:include_blank)operator(])operator(,) ident(options)operator([)symbol(:discard_type)operator(])operator(,) ident(options)operator([)symbol(:disabled)operator(])operator(\)) reserved(end) comment(# Returns a select tag with options for each of the hours 0 through 23 with the current hour selected.) comment(# The hour can also be substituted for a hour number.) comment(# Override the field name using the :field_name option, 'hour' by default.) reserved(def) method(select_hour)operator(()ident(datetime)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(hour_options) operator(=) operator([)operator(]) integer(0)operator(.)ident(upto)operator(()integer(23)operator(\)) reserved(do) operator(|)ident(hour)operator(|) ident(hour_options) operator(<<) operator(()operator(()ident(datetime) operator(&&) operator(()ident(datetime)operator(.)ident(kind_of?)operator(()constant(Fixnum)operator(\)) operator(?) ident(datetime) operator(:) ident(datetime)operator(.)ident(hour)operator(\)) operator(==) ident(hour)operator(\)) operator(?) string)inlinecontent()char(\\n)delimiter(\))> operator(:) string)inlinecontent()char(\\n)delimiter(\))> operator(\)) reserved(end) ident(select_html)operator(()ident(options)operator([)symbol(:field_name)operator(]) operator(||) stringoperator(,) ident(hour_options)operator(,) ident(options)operator([)symbol(:prefix)operator(])operator(,) ident(options)operator([)symbol(:include_blank)operator(])operator(,) ident(options)operator([)symbol(:discard_type)operator(])operator(,) ident(options)operator([)symbol(:disabled)operator(])operator(\)) reserved(end) comment(# Returns a select tag with options for each of the days 1 through 31 with the current day selected.) comment(# The date can also be substituted for a hour number.) comment(# Override the field name using the :field_name option, 'day' by default.) reserved(def) method(select_day)operator(()ident(date)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(day_options) operator(=) operator([)operator(]) integer(1)operator(.)ident(upto)operator(()integer(31)operator(\)) reserved(do) operator(|)ident(day)operator(|) ident(day_options) operator(<<) operator(()operator(()ident(date) operator(&&) operator(()ident(date)operator(.)ident(kind_of?)operator(()constant(Fixnum)operator(\)) operator(?) ident(date) operator(:) ident(date)operator(.)ident(day)operator(\)) operator(==) ident(day)operator(\)) operator(?) string)inlinecontent()char(\\n)delimiter(\))> operator(:) string)inlinecontent()char(\\n)delimiter(\))> operator(\)) reserved(end) ident(select_html)operator(()ident(options)operator([)symbol(:field_name)operator(]) operator(||) stringoperator(,) ident(day_options)operator(,) ident(options)operator([)symbol(:prefix)operator(])operator(,) ident(options)operator([)symbol(:include_blank)operator(])operator(,) ident(options)operator([)symbol(:discard_type)operator(])operator(,) ident(options)operator([)symbol(:disabled)operator(])operator(\)) reserved(end) comment(# Returns a select tag with options for each of the months January through December with the current month selected.) comment(# The month names are presented as keys (what's shown to the user\) and the month numbers (1-12\) are used as values) comment(# (what's submitted to the server\). It's also possible to use month numbers for the presentation instead of names --) comment(# set the :use_month_numbers key in +options+ to true for this to happen. If you want both numbers and names,) comment(# set the :add_month_numbers key in +options+ to true. Examples:) comment(#) comment(# select_month(Date.today\) # Will use keys like "January", "March") comment(# select_month(Date.today, :use_month_numbers => true\) # Will use keys like "1", "3") comment(# select_month(Date.today, :add_month_numbers => true\) # Will use keys like "1 - January", "3 - March") comment(#) comment(# Override the field name using the :field_name option, 'month' by default.) comment(#) comment(# If you would prefer to show month names as abbreviations, set the) comment(# :use_short_month key in +options+ to true.) reserved(def) method(select_month)operator(()ident(date)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(month_options) operator(=) operator([)operator(]) ident(month_names) operator(=) ident(options)operator([)symbol(:use_short_month)operator(]) operator(?) constant(Date)operator(::)constant(ABBR_MONTHNAMES) operator(:) constant(Date)operator(::)constant(MONTHNAMES) integer(1)operator(.)ident(upto)operator(()integer(12)operator(\)) reserved(do) operator(|)ident(month_number)operator(|) ident(month_name) operator(=) reserved(if) ident(options)operator([)symbol(:use_month_numbers)operator(]) ident(month_number) reserved(elsif) ident(options)operator([)symbol(:add_month_numbers)operator(]) ident(month_number)operator(.)ident(to_s) operator(+) string operator(+) ident(month_names)operator([)ident(month_number)operator(]) reserved(else) ident(month_names)operator([)ident(month_number)operator(]) reserved(end) ident(month_options) operator(<<) operator(()operator(()ident(date) operator(&&) operator(()ident(date)operator(.)ident(kind_of?)operator(()constant(Fixnum)operator(\)) operator(?) ident(date) operator(:) ident(date)operator(.)ident(month)operator(\)) operator(==) ident(month_number)operator(\)) operator(?) string)inlinecontent()char(\\n)delimiter(\))> operator(:) string)inlinecontent()char(\\n)delimiter(\))> operator(\)) reserved(end) ident(select_html)operator(()ident(options)operator([)symbol(:field_name)operator(]) operator(||) stringoperator(,) ident(month_options)operator(,) ident(options)operator([)symbol(:prefix)operator(])operator(,) ident(options)operator([)symbol(:include_blank)operator(])operator(,) ident(options)operator([)symbol(:discard_type)operator(])operator(,) ident(options)operator([)symbol(:disabled)operator(])operator(\)) reserved(end) comment(# Returns a select tag with options for each of the five years on each side of the current, which is selected. The five year radius) comment(# can be changed using the :start_year and :end_year keys in the +options+. Both ascending and descending year) comment(# lists are supported by making :start_year less than or greater than :end_year. The date can also be) comment(# substituted for a year given as a number. Example:) comment(#) comment(# select_year(Date.today, :start_year => 1992, :end_year => 2007\) # ascending year values) comment(# select_year(Date.today, :start_year => 2005, :end_year => 1900\) # descending year values) comment(#) comment(# Override the field name using the :field_name option, 'year' by default.) reserved(def) method(select_year)operator(()ident(date)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(year_options) operator(=) operator([)operator(]) ident(y) operator(=) ident(date) operator(?) operator(()ident(date)operator(.)ident(kind_of?)operator(()constant(Fixnum)operator(\)) operator(?) operator(()ident(y) operator(=) operator(()ident(date) operator(==) integer(0)operator(\)) operator(?) constant(Date)operator(.)ident(today)operator(.)ident(year) operator(:) ident(date)operator(\)) operator(:) ident(date)operator(.)ident(year)operator(\)) operator(:) constant(Date)operator(.)ident(today)operator(.)ident(year) ident(start_year)operator(,) ident(end_year) operator(=) operator(()ident(options)operator([)symbol(:start_year)operator(]) operator(||) ident(y)operator(-)integer(5)operator(\))operator(,) operator(()ident(options)operator([)symbol(:end_year)operator(]) operator(||) ident(y)operator(+)integer(5)operator(\)) ident(step_val) operator(=) ident(start_year) operator(<) ident(end_year) operator(?) integer(1) operator(:) integer(-1) ident(start_year)operator(.)ident(step)operator(()ident(end_year)operator(,) ident(step_val)operator(\)) reserved(do) operator(|)ident(year)operator(|) ident(year_options) operator(<<) operator(()operator(()ident(date) operator(&&) operator(()ident(date)operator(.)ident(kind_of?)operator(()constant(Fixnum)operator(\)) operator(?) ident(date) operator(:) ident(date)operator(.)ident(year)operator(\)) operator(==) ident(year)operator(\)) operator(?) string)inlinecontent()char(\\n)delimiter(\))> operator(:) string)inlinecontent()char(\\n)delimiter(\))> operator(\)) reserved(end) ident(select_html)operator(()ident(options)operator([)symbol(:field_name)operator(]) operator(||) stringoperator(,) ident(year_options)operator(,) ident(options)operator([)symbol(:prefix)operator(])operator(,) ident(options)operator([)symbol(:include_blank)operator(])operator(,) ident(options)operator([)symbol(:discard_type)operator(])operator(,) ident(options)operator([)symbol(:disabled)operator(])operator(\)) reserved(end) ident(private) reserved(def) method(select_html)operator(()ident(type)operator(,) ident(options)operator(,) ident(prefix) operator(=) pre_constant(nil)operator(,) ident(include_blank) operator(=) pre_constant(false)operator(,) ident(discard_type) operator(=) pre_constant(false)operator(,) ident(disabled) operator(=) pre_constant(false)operator(\)) ident(select_html) operator(=) stringcontent(])delimiter(")> reserved(unless) ident(discard_type) ident(select_html) operator(<<) string ident(select_html) operator(<<) string reserved(if) ident(disabled) ident(select_html) operator(<<) string)char(\\n)delimiter(\))> ident(select_html) operator(<<) string)char(\\n)delimiter(\))> reserved(if) ident(include_blank) ident(select_html) operator(<<) ident(options)operator(.)ident(to_s) ident(select_html) operator(<<) string)char(\\n)delimiter(")> reserved(end) reserved(def) method(leading_zero_on_single_digits)operator(()ident(number)operator(\)) ident(number) operator(>) integer(9) operator(?) ident(number) operator(:) stringdelimiter(")> reserved(end) reserved(end) reserved(class) class(InstanceTag) comment(#:nodoc:) ident(include) constant(DateHelper) reserved(def) method(to_date_select_tag)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(defaults) operator(=) operator({) symbol(:discard_type) operator(=)operator(>) pre_constant(true) operator(}) ident(options) operator(=) ident(defaults)operator(.)ident(merge)operator(()ident(options)operator(\)) ident(options_with_prefix) operator(=) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(position)operator(|) ident(options)operator(.)ident(merge)operator(()symbol(:prefix) operator(=)operator(>) stringcontent([)inlinecontent(()inlinecontent(i\)])delimiter(")>operator(\)) operator(}) ident(date) operator(=) ident(options)operator([)symbol(:include_blank)operator(]) operator(?) operator(()ident(value) operator(||) integer(0)operator(\)) operator(:) operator(()ident(value) operator(||) constant(Date)operator(.)ident(today)operator(\)) ident(date_select) operator(=) string ident(options)operator([)symbol(:order)operator(]) operator(=) operator([)symbol(:month)operator(,) symbol(:year)operator(,) symbol(:day)operator(]) reserved(if) ident(options)operator([)symbol(:month_before_year)operator(]) comment(# For backwards compatibility) ident(options)operator([)symbol(:order)operator(]) operator(||=) operator([)symbol(:year)operator(,) symbol(:month)operator(,) symbol(:day)operator(]) ident(position) operator(=) operator({)symbol(:year) operator(=)operator(>) integer(1)operator(,) symbol(:month) operator(=)operator(>) integer(2)operator(,) symbol(:day) operator(=)operator(>) integer(3)operator(}) ident(discard) operator(=) operator({)operator(}) ident(discard)operator([)symbol(:year)operator(]) operator(=) pre_constant(true) reserved(if) ident(options)operator([)symbol(:discard_year)operator(]) ident(discard)operator([)symbol(:month)operator(]) operator(=) pre_constant(true) reserved(if) ident(options)operator([)symbol(:discard_month)operator(]) ident(discard)operator([)symbol(:day)operator(]) operator(=) pre_constant(true) reserved(if) ident(options)operator([)symbol(:discard_day)operator(]) reserved(or) ident(options)operator([)symbol(:discard_month)operator(]) ident(options)operator([)symbol(:order)operator(])operator(.)ident(each) reserved(do) operator(|)ident(param)operator(|) ident(date_select) operator(<<) pre_constant(self)operator(.)ident(send)operator(()stringdelimiter(")>operator(,) ident(date)operator(,) ident(options_with_prefix)operator(.)ident(call)operator(()ident(position)operator([)ident(param)operator(])operator(\))operator(\)) reserved(unless) ident(discard)operator([)ident(param)operator(]) reserved(end) ident(date_select) reserved(end) reserved(def) method(to_datetime_select_tag)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(defaults) operator(=) operator({) symbol(:discard_type) operator(=)operator(>) pre_constant(true) operator(}) ident(options) operator(=) ident(defaults)operator(.)ident(merge)operator(()ident(options)operator(\)) ident(options_with_prefix) operator(=) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(position)operator(|) ident(options)operator(.)ident(merge)operator(()symbol(:prefix) operator(=)operator(>) stringcontent([)inlinecontent(()inlinecontent(i\)])delimiter(")>operator(\)) operator(}) ident(datetime) operator(=) ident(options)operator([)symbol(:include_blank)operator(]) operator(?) operator(()ident(value) operator(||) pre_constant(nil)operator(\)) operator(:) operator(()ident(value) operator(||) constant(Time)operator(.)ident(now)operator(\)) ident(datetime_select) operator(=) ident(select_year)operator(()ident(datetime)operator(,) ident(options_with_prefix)operator(.)ident(call)operator(()integer(1)operator(\))operator(\)) ident(datetime_select) operator(<<) ident(select_month)operator(()ident(datetime)operator(,) ident(options_with_prefix)operator(.)ident(call)operator(()integer(2)operator(\))operator(\)) reserved(unless) ident(options)operator([)symbol(:discard_month)operator(]) ident(datetime_select) operator(<<) ident(select_day)operator(()ident(datetime)operator(,) ident(options_with_prefix)operator(.)ident(call)operator(()integer(3)operator(\))operator(\)) reserved(unless) ident(options)operator([)symbol(:discard_day)operator(]) operator(||) ident(options)operator([)symbol(:discard_month)operator(]) ident(datetime_select) operator(<<) string operator(+) ident(select_hour)operator(()ident(datetime)operator(,) ident(options_with_prefix)operator(.)ident(call)operator(()integer(4)operator(\))operator(\)) reserved(unless) ident(options)operator([)symbol(:discard_hour)operator(]) ident(datetime_select) operator(<<) string operator(+) ident(select_minute)operator(()ident(datetime)operator(,) ident(options_with_prefix)operator(.)ident(call)operator(()integer(5)operator(\))operator(\)) reserved(unless) ident(options)operator([)symbol(:discard_minute)operator(]) operator(||) ident(options)operator([)symbol(:discard_hour)operator(]) ident(datetime_select) reserved(end) reserved(end) reserved(class) class(FormBuilder) reserved(def) method(date_select)operator(()ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) instance_variable(@template)operator(.)ident(date_select)operator(()instance_variable(@object_name)operator(,) ident(method)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:object) operator(=)operator(>) instance_variable(@object)operator(\))operator(\)) reserved(end) reserved(def) method(datetime_select)operator(()ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) instance_variable(@template)operator(.)ident(datetime_select)operator(()instance_variable(@object_name)operator(,) ident(method)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:object) operator(=)operator(>) instance_variable(@object)operator(\))operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides a set of methods for making it easier to locate problems.) reserved(module) class(DebugHelper) comment(# Returns a
-tag set with the +object+ dumped by YAML. Very readable way to inspect an object.)
      reserved(def) method(debug)operator(()ident(object)operator(\))
        reserved(begin)
          constant(Marshal)operator(::)ident(dump)operator(()ident(object)operator(\))
          string)inlineoperator(,) stringoperator(\))inline_delimiter(})>content(
)delimiter(")> reserved(rescue) constant(Object) operator(=)operator(>) ident(e) comment(# Object couldn't be dumped, perhaps because of singleton methods -- this is the fallback) string)inlinecontent()delimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) ident(endrequire) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides a set of methods for working with forms and especially forms related to objects assigned to the template.) comment(# The following is an example of a complete form for a person object that works for both creates and updates built) comment(# with all the form helpers. The @person object was assigned by an action on the controller:) comment(#
) comment(# Name:) comment(# <%= text_field "person", "name", "size" => 20 %>) comment(#) comment(# Password:) comment(# <%= password_field "person", "password", "maxsize" => 20 %>) comment(#) comment(# Single?:) comment(# <%= check_box "person", "single" %>) comment(#) comment(# Description:) comment(# <%= text_area "person", "description", "cols" => 20 %>) comment(#) comment(# ) comment(#
) comment(#) comment(# ...is compiled to:) comment(#) comment(#
) comment(# Name:) comment(# ) comment(#) comment(# Password:) comment(# ) comment(#) comment(# Single?:) comment(# ) comment(#) comment(# Description:) comment(# ) comment(#) comment(# ) comment(#
) comment(#) comment(# If the object name contains square brackets the id for the object will be inserted. Example:) comment(#) comment(# <%= text_field "person[]", "name" %> ) comment(# ) comment(# ...becomes:) comment(#) comment(# ) comment(#) comment(# If the helper is being used to generate a repetitive sequence of similar form elements, for example in a partial) comment(# used by render_collection_of_partials, the "index" option may come in handy. Example:) comment(#) comment(# <%= text_field "person", "name", "index" => 1 %>) comment(#) comment(# becomes) comment(#) comment(# ) comment(#) comment(# There's also methods for helping to build form tags in link:classes/ActionView/Helpers/FormOptionsHelper.html,) comment(# link:classes/ActionView/Helpers/DateHelper.html, and link:classes/ActionView/Helpers/ActiveRecordHelper.html) reserved(module) class(FormHelper) comment(# Creates a form and a scope around a specific model object, which is then used as a base for questioning about) comment(# values for the fields. Examples:) comment(#) comment(# <% form_for :person, @person, :url => { :action => "update" } do |f| %>) comment(# First name: <%= f.text_field :first_name %>) comment(# Last name : <%= f.text_field :last_name %>) comment(# Biography : <%= f.text_area :biography %>) comment(# Admin? : <%= f.check_box :admin %>) comment(# <% end %>) comment(#) comment(# Worth noting is that the form_for tag is called in a ERb evaluation block, not a ERb output block. So that's <% %>, ) comment(# not <%= %>. Also worth noting is that the form_for yields a form_builder object, in this example as f, which emulates) comment(# the API for the stand-alone FormHelper methods, but without the object name. So instead of text_field :person, :name,) comment(# you get away with f.text_field :name. ) comment(#) comment(# That in itself is a modest increase in comfort. The big news is that form_for allows us to more easily escape the instance) comment(# variable convention, so while the stand-alone approach would require text_field :person, :name, :object => person ) comment(# to work with local variables instead of instance ones, the form_for calls remain the same. You simply declare once with ) comment(# :person, person and all subsequent field calls save :person and :object => person.) comment(#) comment(# Also note that form_for doesn't create an exclusive scope. It's still possible to use both the stand-alone FormHelper methods) comment(# and methods from FormTagHelper. Example:) comment(#) comment(# <% form_for :person, @person, :url => { :action => "update" } do |f| %>) comment(# First name: <%= f.text_field :first_name %>) comment(# Last name : <%= f.text_field :last_name %>) comment(# Biography : <%= text_area :person, :biography %>) comment(# Admin? : <%= check_box_tag "person[admin]", @person.company.admin? %>) comment(# <% end %>) comment(#) comment(# Note: This also works for the methods in FormOptionHelper and DateHelper that are designed to work with an object as base.) comment(# Like collection_select and datetime_select.) comment(#) comment(# Html attributes for the form tag can be given as :html => {...}. Example:) comment(# ) comment(# <% form_for :person, @person, :html => {:id => 'person_form'} do |f| %>) comment(# ...) comment(# <% end %>) comment(#) comment(# You can also build forms using a customized FormBuilder class. Subclass FormBuilder and override or define some more helpers,) comment(# then use your custom builder like so:) comment(# ) comment(# <% form_for :person, @person, :url => { :action => "update" }, :builder => LabellingFormBuilder do |f| %>) comment(# <%= f.text_field :first_name %>) comment(# <%= f.text_field :last_name %>) comment(# <%= text_area :person, :biography %>) comment(# <%= check_box_tag "person[admin]", @person.company.admin? %>) comment(# <% end %>) comment(# ) comment(# In many cases you will want to wrap the above in another helper, such as:) comment(#) comment(# def labelled_form_for(name, object, options, &proc\)) comment(# form_for(name, object, options.merge(:builder => LabellingFormBuiler\), &proc\)) comment(# end) comment(#) reserved(def) method(form_for)operator(()ident(object_name)operator(,) operator(*)ident(args)operator(,) operator(&)ident(proc)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(unless) ident(block_given?) ident(options) operator(=) ident(args)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(args)operator(.)ident(pop) operator(:) operator({)operator(}) ident(concat)operator(()ident(form_tag)operator(()ident(options)operator(.)ident(delete)operator(()symbol(:url)operator(\)) operator(||) operator({)operator(})operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:html)operator(\)) operator(||) operator({)operator(})operator(\))operator(,) ident(proc)operator(.)ident(binding)operator(\)) ident(fields_for)operator(()ident(object_name)operator(,) operator(*)operator(()ident(args) operator(<<) ident(options)operator(\))operator(,) operator(&)ident(proc)operator(\)) ident(concat)operator(()string)delimiter(')>operator(,) ident(proc)operator(.)ident(binding)operator(\)) reserved(end) comment(# Creates a scope around a specific model object like form_for, but doesn't create the form tags themselves. This makes) comment(# fields_for suitable for specifying additional model objects in the same form. Example:) comment(#) comment(# <% form_for :person, @person, :url => { :action => "update" } do |person_form| %>) comment(# First name: <%= person_form.text_field :first_name %>) comment(# Last name : <%= person_form.text_field :last_name %>) comment(# ) comment(# <% fields_for :permission, @person.permission do |permission_fields| %>) comment(# Admin? : <%= permission_fields.check_box :admin %>) comment(# <% end %>) comment(# <% end %>) comment(#) comment(# Note: This also works for the methods in FormOptionHelper and DateHelper that are designed to work with an object as base.) comment(# Like collection_select and datetime_select.) reserved(def) method(fields_for)operator(()ident(object_name)operator(,) operator(*)ident(args)operator(,) operator(&)ident(proc)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(unless) ident(block_given?) ident(options) operator(=) ident(args)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(args)operator(.)ident(pop) operator(:) operator({)operator(}) ident(object) operator(=) ident(args)operator(.)ident(first) reserved(yield)operator(()operator(()ident(options)operator([)symbol(:builder)operator(]) operator(||) constant(FormBuilder)operator(\))operator(.)ident(new)operator(()ident(object_name)operator(,) ident(object)operator(,) pre_constant(self)operator(,) ident(options)operator(,) ident(proc)operator(\))operator(\)) reserved(end) comment(# Returns an input tag of the "text" type tailored for accessing a specified attribute (identified by +method+\) on an object) comment(# assigned to the template (identified by +object+\). Additional options on the input tag can be passed as a) comment(# hash with +options+.) comment(#) comment(# Examples (call, result\):) comment(# text_field("post", "title", "size" => 20\)) comment(# ) reserved(def) method(text_field)operator(()ident(object_name)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object_name)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_input_field_tag)operator(()stringoperator(,) ident(options)operator(\)) reserved(end) comment(# Works just like text_field, but returns an input tag of the "password" type instead.) reserved(def) method(password_field)operator(()ident(object_name)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object_name)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_input_field_tag)operator(()stringoperator(,) ident(options)operator(\)) reserved(end) comment(# Works just like text_field, but returns an input tag of the "hidden" type instead.) reserved(def) method(hidden_field)operator(()ident(object_name)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object_name)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_input_field_tag)operator(()stringoperator(,) ident(options)operator(\)) reserved(end) comment(# Works just like text_field, but returns an input tag of the "file" type instead, which won't have a default value.) reserved(def) method(file_field)operator(()ident(object_name)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object_name)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_input_field_tag)operator(()stringoperator(,) ident(options)operator(\)) reserved(end) comment(# Returns a textarea opening and closing tag set tailored for accessing a specified attribute (identified by +method+\)) comment(# on an object assigned to the template (identified by +object+\). Additional options on the input tag can be passed as a) comment(# hash with +options+.) comment(#) comment(# Example (call, result\):) comment(# text_area("post", "body", "cols" => 20, "rows" => 40\)) comment(# ) reserved(def) method(text_area)operator(()ident(object_name)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object_name)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_text_area_tag)operator(()ident(options)operator(\)) reserved(end) comment(# Returns a checkbox tag tailored for accessing a specified attribute (identified by +method+\) on an object) comment(# assigned to the template (identified by +object+\). It's intended that +method+ returns an integer and if that) comment(# integer is above zero, then the checkbox is checked. Additional options on the input tag can be passed as a) comment(# hash with +options+. The +checked_value+ defaults to 1 while the default +unchecked_value+) comment(# is set to 0 which is convenient for boolean values. Usually unchecked checkboxes don't post anything.) comment(# We work around this problem by adding a hidden value with the same name as the checkbox.) comment(#) comment(# Example (call, result\). Imagine that @post.validated? returns 1:) comment(# check_box("post", "validated"\)) comment(# ) comment(# ) comment(#) comment(# Example (call, result\). Imagine that @puppy.gooddog returns no:) comment(# check_box("puppy", "gooddog", {}, "yes", "no"\)) comment(# ) comment(# ) reserved(def) method(check_box)operator(()ident(object_name)operator(,) ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(checked_value) operator(=) stringoperator(,) ident(unchecked_value) operator(=) stringoperator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object_name)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_check_box_tag)operator(()ident(options)operator(,) ident(checked_value)operator(,) ident(unchecked_value)operator(\)) reserved(end) comment(# Returns a radio button tag for accessing a specified attribute (identified by +method+\) on an object) comment(# assigned to the template (identified by +object+\). If the current value of +method+ is +tag_value+ the) comment(# radio button will be checked. Additional options on the input tag can be passed as a) comment(# hash with +options+.) comment(# Example (call, result\). Imagine that @post.category returns "rails":) comment(# radio_button("post", "category", "rails"\)) comment(# radio_button("post", "category", "java"\)) comment(# ) comment(# ) comment(#) reserved(def) method(radio_button)operator(()ident(object_name)operator(,) ident(method)operator(,) ident(tag_value)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object_name)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_radio_button_tag)operator(()ident(tag_value)operator(,) ident(options)operator(\)) reserved(end) reserved(end) reserved(class) class(InstanceTag) comment(#:nodoc:) ident(include) constant(Helpers)operator(::)constant(TagHelper) ident(attr_reader) symbol(:method_name)operator(,) symbol(:object_name) constant(DEFAULT_FIELD_OPTIONS) operator(=) operator({) string operator(=)operator(>) integer(30) operator(})operator(.)ident(freeze) reserved(unless) ident(const_defined?)operator(()symbol(:DEFAULT_FIELD_OPTIONS)operator(\)) constant(DEFAULT_RADIO_OPTIONS) operator(=) operator({) operator(})operator(.)ident(freeze) reserved(unless) ident(const_defined?)operator(()symbol(:DEFAULT_RADIO_OPTIONS)operator(\)) constant(DEFAULT_TEXT_AREA_OPTIONS) operator(=) operator({) string operator(=)operator(>) integer(40)operator(,) string operator(=)operator(>) integer(20) operator(})operator(.)ident(freeze) reserved(unless) ident(const_defined?)operator(()symbol(:DEFAULT_TEXT_AREA_OPTIONS)operator(\)) constant(DEFAULT_DATE_OPTIONS) operator(=) operator({) symbol(:discard_type) operator(=)operator(>) pre_constant(true) operator(})operator(.)ident(freeze) reserved(unless) ident(const_defined?)operator(()symbol(:DEFAULT_DATE_OPTIONS)operator(\)) reserved(def) method(initialize)operator(()ident(object_name)operator(,) ident(method_name)operator(,) ident(template_object)operator(,) ident(local_binding) operator(=) pre_constant(nil)operator(,) ident(object) operator(=) pre_constant(nil)operator(\)) instance_variable(@object_name)operator(,) instance_variable(@method_name) operator(=) ident(object_name)operator(.)ident(to_s)operator(.)ident(dup)operator(,) ident(method_name)operator(.)ident(to_s)operator(.)ident(dup) instance_variable(@template_object)operator(,) instance_variable(@local_binding) operator(=) ident(template_object)operator(,) ident(local_binding) instance_variable(@object) operator(=) ident(object) reserved(if) instance_variable(@object_name)operator(.)ident(sub!)operator(()regexpoperator(,)stringoperator(\)) instance_variable(@auto_index) operator(=) instance_variable(@template_object)operator(.)ident(instance_variable_get)operator(()stringdelimiter(")>operator(\))operator(.)ident(id_before_type_cast) reserved(end) reserved(end) reserved(def) method(to_input_field_tag)operator(()ident(field_type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options) operator(=) ident(options)operator(.)ident(stringify_keys) ident(options)operator([)stringoperator(]) operator(||=) ident(options)operator([)stringoperator(]) operator(||) constant(DEFAULT_FIELD_OPTIONS)operator([)stringoperator(]) ident(options) operator(=) constant(DEFAULT_FIELD_OPTIONS)operator(.)ident(merge)operator(()ident(options)operator(\)) reserved(if) ident(field_type) operator(==) string ident(options)operator(.)ident(delete)operator(()stringoperator(\)) reserved(end) ident(options)operator([)stringoperator(]) operator(=) ident(field_type) ident(options)operator([)stringoperator(]) operator(||=) ident(value_before_type_cast) reserved(unless) ident(field_type) operator(==) string ident(add_default_name_and_id)operator(()ident(options)operator(\)) ident(tag)operator(()stringoperator(,) ident(options)operator(\)) reserved(end) reserved(def) method(to_radio_button_tag)operator(()ident(tag_value)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options) operator(=) constant(DEFAULT_RADIO_OPTIONS)operator(.)ident(merge)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) ident(options)operator([)stringoperator(]) operator(=) string ident(options)operator([)stringoperator(]) operator(=) ident(tag_value) ident(options)operator([)stringoperator(]) operator(=) string reserved(if) ident(value)operator(.)ident(to_s) operator(==) ident(tag_value)operator(.)ident(to_s) ident(pretty_tag_value) operator(=) ident(tag_value)operator(.)ident(to_s)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(downcase) ident(options)operator([)stringoperator(]) operator(=) instance_variable(@auto_index) operator(?) stringcontent(_)inlinecontent(_)inlinecontent(_)inlinedelimiter(")> operator(:) stringcontent(_)inlinecontent(_)inlinedelimiter(")> ident(add_default_name_and_id)operator(()ident(options)operator(\)) ident(tag)operator(()stringoperator(,) ident(options)operator(\)) reserved(end) reserved(def) method(to_text_area_tag)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(options) operator(=) constant(DEFAULT_TEXT_AREA_OPTIONS)operator(.)ident(merge)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) ident(add_default_name_and_id)operator(()ident(options)operator(\)) ident(content_tag)operator(()stringoperator(,) ident(html_escape)operator(()ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator(||) ident(value_before_type_cast)operator(\))operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(to_check_box_tag)operator(()ident(options) operator(=) operator({)operator(})operator(,) ident(checked_value) operator(=) stringoperator(,) ident(unchecked_value) operator(=) stringoperator(\)) ident(options) operator(=) ident(options)operator(.)ident(stringify_keys) ident(options)operator([)stringoperator(]) operator(=) string ident(options)operator([)stringoperator(]) operator(=) ident(checked_value) ident(checked) operator(=) reserved(case) ident(value) reserved(when) constant(TrueClass)operator(,) constant(FalseClass) ident(value) reserved(when) constant(NilClass) pre_constant(false) reserved(when) constant(Integer) ident(value) operator(!=) integer(0) reserved(when) constant(String) ident(value) operator(==) ident(checked_value) reserved(else) ident(value)operator(.)ident(to_i) operator(!=) integer(0) reserved(end) reserved(if) ident(checked) operator(||) ident(options)operator([)stringoperator(]) operator(==) string ident(options)operator([)stringoperator(]) operator(=) string reserved(else) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) reserved(end) ident(add_default_name_and_id)operator(()ident(options)operator(\)) ident(tag)operator(()stringoperator(,) ident(options)operator(\)) operator(<<) ident(tag)operator(()stringoperator(,) string operator(=)operator(>) ident(options)operator([)stringoperator(])operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(unchecked_value)operator(\)) reserved(end) reserved(def) method(to_date_tag)operator(()operator(\)) ident(defaults) operator(=) constant(DEFAULT_DATE_OPTIONS)operator(.)ident(dup) ident(date) operator(=) ident(value) operator(||) constant(Date)operator(.)ident(today) ident(options) operator(=) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(position)operator(|) ident(defaults)operator(.)ident(merge)operator(()symbol(:prefix) operator(=)operator(>) stringcontent([)inlinecontent(()inlinecontent(i\)])delimiter(")>operator(\)) operator(}) ident(html_day_select)operator(()ident(date)operator(,) ident(options)operator(.)ident(call)operator(()integer(3)operator(\))operator(\)) operator(+) ident(html_month_select)operator(()ident(date)operator(,) ident(options)operator(.)ident(call)operator(()integer(2)operator(\))operator(\)) operator(+) ident(html_year_select)operator(()ident(date)operator(,) ident(options)operator(.)ident(call)operator(()integer(1)operator(\))operator(\)) reserved(end) reserved(def) method(to_boolean_select_tag)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(options) operator(=) ident(options)operator(.)ident(stringify_keys) ident(add_default_name_and_id)operator(()ident(options)operator(\)) ident(tag_text) operator(=) string ident(tag_text) operator(<<) ident(tag_options)operator(()ident(options)operator(\)) ident(tag_text) operator(<<) string)delimiter(")> reserved(end) reserved(def) method(to_content_tag)operator(()ident(tag_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(content_tag)operator(()ident(tag_name)operator(,) ident(value)operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(object) instance_variable(@object) operator(||) instance_variable(@template_object)operator(.)ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(end) reserved(def) method(value) reserved(unless) ident(object)operator(.)ident(nil?) ident(object)operator(.)ident(send)operator(()instance_variable(@method_name)operator(\)) reserved(end) reserved(end) reserved(def) method(value_before_type_cast) reserved(unless) ident(object)operator(.)ident(nil?) ident(object)operator(.)ident(respond_to?)operator(()instance_variable(@method_name) operator(+) stringoperator(\)) operator(?) ident(object)operator(.)ident(send)operator(()instance_variable(@method_name) operator(+) stringoperator(\)) operator(:) ident(object)operator(.)ident(send)operator(()instance_variable(@method_name)operator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(add_default_name_and_id)operator(()ident(options)operator(\)) reserved(if) ident(options)operator(.)ident(has_key?)operator(()stringoperator(\)) ident(options)operator([)stringoperator(]) operator(||=) ident(tag_name_with_index)operator(()ident(options)operator([)stringoperator(])operator(\)) ident(options)operator([)stringoperator(]) operator(||=) ident(tag_id_with_index)operator(()ident(options)operator([)stringoperator(])operator(\)) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) reserved(elsif) instance_variable(@auto_index) ident(options)operator([)stringoperator(]) operator(||=) ident(tag_name_with_index)operator(()instance_variable(@auto_index)operator(\)) ident(options)operator([)stringoperator(]) operator(||=) ident(tag_id_with_index)operator(()instance_variable(@auto_index)operator(\)) reserved(else) ident(options)operator([)stringoperator(]) operator(||=) ident(tag_name) ident(options)operator([)stringoperator(]) operator(||=) ident(tag_id) reserved(end) reserved(end) reserved(def) method(tag_name) stringcontent([)inlinecontent(])delimiter(")> reserved(end) reserved(def) method(tag_name_with_index)operator(()ident(index)operator(\)) stringcontent([)inlinecontent(][)inlinecontent(])delimiter(")> reserved(end) reserved(def) method(tag_id) stringcontent(_)inlinedelimiter(")> reserved(end) reserved(def) method(tag_id_with_index)operator(()ident(index)operator(\)) stringcontent(_)inlinecontent(_)inlinedelimiter(")> reserved(end) reserved(end) reserved(class) class(FormBuilder) comment(#:nodoc:) comment(# The methods which wrap a form helper call.) ident(class_inheritable_accessor) symbol(:field_helpers) pre_constant(self)operator(.)ident(field_helpers) operator(=) operator(()constant(FormHelper)operator(.)ident(instance_methods) operator(-) operator([)stringoperator(])operator(\)) ident(attr_accessor) symbol(:object_name)operator(,) symbol(:object) reserved(def) method(initialize)operator(()ident(object_name)operator(,) ident(object)operator(,) ident(template)operator(,) ident(options)operator(,) ident(proc)operator(\)) instance_variable(@object_name)operator(,) instance_variable(@object)operator(,) instance_variable(@template)operator(,) instance_variable(@options)operator(,) instance_variable(@proc) operator(=) ident(object_name)operator(,) ident(object)operator(,) ident(template)operator(,) ident(options)operator(,) ident(proc) reserved(end) operator(()ident(field_helpers) operator(-) stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(selector)operator(|) ident(src) operator(=) stringstringcontent((method, options = {}\) @template.send()inlinecontent(, @object_name, method, options.merge(:object => @object\)\) end)delimiter( end_src)> ident(class_eval) ident(src)operator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__) reserved(end) reserved(def) method(check_box)operator(()ident(method)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(checked_value) operator(=) stringoperator(,) ident(unchecked_value) operator(=) stringoperator(\)) instance_variable(@template)operator(.)ident(check_box)operator(()instance_variable(@object_name)operator(,) ident(method)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:object) operator(=)operator(>) instance_variable(@object)operator(\))operator(,) ident(checked_value)operator(,) ident(unchecked_value)operator(\)) reserved(end) reserved(def) method(radio_button)operator(()ident(method)operator(,) ident(tag_value)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) instance_variable(@template)operator(.)ident(radio_button)operator(()instance_variable(@object_name)operator(,) ident(method)operator(,) ident(tag_value)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:object) operator(=)operator(>) instance_variable(@object)operator(\))operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides a number of methods for turning different kinds of containers into a set of option tags.) comment(# == Options) comment(# The collection_select, country_select, select,) comment(# and time_zone_select methods take an options parameter,) comment(# a hash.) comment(#) comment(# * :include_blank - set to true if the first option element of the select element is a blank. Useful if there is not a default value required for the select element. For example,) comment(#) comment(# select("post", "category", Post::CATEGORIES, {:include_blank => true}\)) comment(#) comment(# could become:) comment(#) comment(# ) comment(#) comment(# * :prompt - set to true or a prompt string. When the select element doesn't have a value yet, this prepends an option with a generic prompt -- "Please select" -- or the given prompt string.) comment(#) comment(# Another common case is a select tag for an belongs_to-associated object. For example,) comment(#) comment(# select("post", "person_id", Person.find_all.collect {|p| [ p.name, p.id ] }\)) comment(#) comment(# could become:) comment(#) comment(# ) reserved(module) class(FormOptionsHelper) ident(include) constant(ERB)operator(::)constant(Util) comment(# Create a select tag and a series of contained option tags for the provided object and method.) comment(# The option currently held by the object will be selected, provided that the object is available.) comment(# See options_for_select for the required format of the choices parameter.) comment(#) comment(# Example with @post.person_id => 1:) comment(# select("post", "person_id", Person.find_all.collect {|p| [ p.name, p.id ] }, { :include_blank => true }\)) comment(#) comment(# could become:) comment(#) comment(# ) comment(#) comment(# This can be used to provide a default set of options in the standard way: before rendering the create form, a) comment(# new model instance is assigned the default options and bound to @model_name. Usually this model is not saved) comment(# to the database. Instead, a second model object is created when the create request is received.) comment(# This allows the user to submit a form page more than once with the expected results of creating multiple records.) comment(# In addition, this allows a single partial to be used to generate form inputs for both edit and create forms.) comment(#) comment(# By default, post.person_id is the selected option. Specify :selected => value to use a different selection) comment(# or :selected => nil to leave all options unselected.) reserved(def) method(select)operator(()ident(object)operator(,) ident(method)operator(,) ident(choices)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_select_tag)operator(()ident(choices)operator(,) ident(options)operator(,) ident(html_options)operator(\)) reserved(end) comment(# Return select and option tags for the given object and method using options_from_collection_for_select to generate the list of option tags.) reserved(def) method(collection_select)operator(()ident(object)operator(,) ident(method)operator(,) ident(collection)operator(,) ident(value_method)operator(,) ident(text_method)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_collection_select_tag)operator(()ident(collection)operator(,) ident(value_method)operator(,) ident(text_method)operator(,) ident(options)operator(,) ident(html_options)operator(\)) reserved(end) comment(# Return select and option tags for the given object and method, using country_options_for_select to generate the list of option tags.) reserved(def) method(country_select)operator(()ident(object)operator(,) ident(method)operator(,) ident(priority_countries) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_country_select_tag)operator(()ident(priority_countries)operator(,) ident(options)operator(,) ident(html_options)operator(\)) reserved(end) comment(# Return select and option tags for the given object and method, using) comment(# #time_zone_options_for_select to generate the list of option tags.) comment(#) comment(# In addition to the :include_blank option documented above,) comment(# this method also supports a :model option, which defaults) comment(# to TimeZone. This may be used by users to specify a different time) comment(# zone model object. (See #time_zone_options_for_select for more) comment(# information.\)) reserved(def) method(time_zone_select)operator(()ident(object)operator(,) ident(method)operator(,) ident(priority_zones) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) constant(InstanceTag)operator(.)ident(new)operator(()ident(object)operator(,) ident(method)operator(,) pre_constant(self)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(delete)operator(()symbol(:object)operator(\))operator(\))operator(.)ident(to_time_zone_select_tag)operator(()ident(priority_zones)operator(,) ident(options)operator(,) ident(html_options)operator(\)) reserved(end) comment(# Accepts a container (hash, array, enumerable, your type\) and returns a string of option tags. Given a container) comment(# where the elements respond to first and last (such as a two-element array\), the "lasts" serve as option values and) comment(# the "firsts" as option text. Hashes are turned into this form automatically, so the keys become "firsts" and values) comment(# become lasts. If +selected+ is specified, the matching "last" or element will get the selected option-tag. +Selected+) comment(# may also be an array of values to be selected when using a multiple select.) comment(#) comment(# Examples (call, result\):) comment(# options_for_select([["Dollar", "$"], ["Kroner", "DKK"]]\)) comment(# \\n) comment(#) comment(# options_for_select([ "VISA", "MasterCard" ], "MasterCard"\)) comment(# \\n) comment(#) comment(# options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40"\)) comment(# \\n) comment(#) comment(# options_for_select([ "VISA", "MasterCard", "Discover" ], ["VISA", "Discover"]\)) comment(# \\n\\n) comment(#) comment(# NOTE: Only the option tags are returned, you have to wrap this call in a regular HTML select tag.) reserved(def) method(options_for_select)operator(()ident(container)operator(,) ident(selected) operator(=) pre_constant(nil)operator(\)) ident(container) operator(=) ident(container)operator(.)ident(to_a) reserved(if) constant(Hash) operator(===) ident(container) ident(options_for_select) operator(=) ident(container)operator(.)ident(inject)operator(()operator([)operator(])operator(\)) reserved(do) operator(|)ident(options)operator(,) ident(element)operator(|) reserved(if) operator(!)ident(element)operator(.)ident(is_a?)operator(()constant(String)operator(\)) reserved(and) ident(element)operator(.)ident(respond_to?)operator(()symbol(:first)operator(\)) reserved(and) ident(element)operator(.)ident(respond_to?)operator(()symbol(:last)operator(\)) ident(is_selected) operator(=) operator(() operator(()ident(selected)operator(.)ident(respond_to?)operator(()symbol(:include?)operator(\)) operator(?) ident(selected)operator(.)ident(include?)operator(()ident(element)operator(.)ident(last)operator(\)) operator(:) ident(element)operator(.)ident(last) operator(==) ident(selected)operator(\)) operator(\)) ident(is_selected) operator(=) operator(() operator(()ident(selected)operator(.)ident(respond_to?)operator(()symbol(:include?)operator(\)) operator(&&) operator(!)ident(selected)operator(.)ident(is_a?)operator(()constant(String)operator(\)) operator(?) ident(selected)operator(.)ident(include?)operator(()ident(element)operator(.)ident(last)operator(\)) operator(:) ident(element)operator(.)ident(last) operator(==) ident(selected)operator(\)) operator(\)) reserved(if) ident(is_selected) ident(options) operator(<<) stringchar(\\")content( selected=)char(\\")content(selected)char(\\")content(>)inlinecontent()delimiter(")> reserved(else) ident(options) operator(<<) stringchar(\\")content(>)inlinecontent()delimiter(")> reserved(end) reserved(else) ident(is_selected) operator(=) operator(() operator(()ident(selected)operator(.)ident(respond_to?)operator(()symbol(:include?)operator(\)) operator(?) ident(selected)operator(.)ident(include?)operator(()ident(element)operator(\)) operator(:) ident(element) operator(==) ident(selected)operator(\)) operator(\)) ident(is_selected) operator(=) operator(() operator(()ident(selected)operator(.)ident(respond_to?)operator(()symbol(:include?)operator(\)) operator(&&) operator(!)ident(selected)operator(.)ident(is_a?)operator(()constant(String)operator(\)) operator(?) ident(selected)operator(.)ident(include?)operator(()ident(element)operator(\)) operator(:) ident(element) operator(==) ident(selected)operator(\)) operator(\)) ident(options) operator(<<) operator(()operator(()ident(is_selected)operator(\)) operator(?) stringchar(\\")content( selected=)char(\\")content(selected)char(\\")content(>)inlinecontent()delimiter(")> operator(:) stringchar(\\")content(>)inlinecontent()delimiter(")>operator(\)) reserved(end) reserved(end) ident(options_for_select)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) comment(# Returns a string of option tags that have been compiled by iterating over the +collection+ and assigning the) comment(# the result of a call to the +value_method+ as the option value and the +text_method+ as the option text.) comment(# If +selected_value+ is specified, the element returning a match on +value_method+ will get the selected option tag.) comment(#) comment(# Example (call, result\). Imagine a loop iterating over each +person+ in @project.people to generate an input tag:) comment(# options_from_collection_for_select(@project.people, "id", "name"\)) comment(# ) comment(#) comment(# NOTE: Only the option tags are returned, you have to wrap this call in a regular HTML select tag.) reserved(def) method(options_from_collection_for_select)operator(()ident(collection)operator(,) ident(value_method)operator(,) ident(text_method)operator(,) ident(selected_value) operator(=) pre_constant(nil)operator(\)) ident(options_for_select)operator(() ident(collection)operator(.)ident(inject)operator(()operator([)operator(])operator(\)) operator({) operator(|)ident(options)operator(,) ident(object)operator(|) ident(options) operator(<<) operator([) ident(object)operator(.)ident(send)operator(()ident(text_method)operator(\))operator(,) ident(object)operator(.)ident(send)operator(()ident(value_method)operator(\)) operator(]) operator(})operator(,) ident(selected_value) operator(\)) reserved(end) comment(# Returns a string of option tags, like options_from_collection_for_select, but surrounds them with tags.) comment(#) comment(# An array of group objects are passed. Each group should return an array of options when calling group_method) comment(# Each group should return its name when calling group_label_method.) comment(#) comment(# html_option_groups_from_collection(@continents, "countries", "continent_name", "country_id", "country_name", @selected_country.id\)) comment(#) comment(# Could become:) comment(# ) comment(# ) comment(# ) comment(# ...) comment(# ) comment(# ) comment(# ) comment(# ) comment(# ) comment(# ...) comment(# ) comment(#) comment(# with objects of the following classes:) comment(# class Continent) comment(# def initialize(p_name, p_countries\) @continent_name = p_name; @countries = p_countries; end) comment(# def continent_name(\) @continent_name; end) comment(# def countries(\) @countries; end) comment(# end) comment(# class Country) comment(# def initialize(id, name\) @id = id; @name = name end) comment(# def country_id(\) @id; end) comment(# def country_name(\) @name; end) comment(# end) comment(#) comment(# NOTE: Only the option tags are returned, you have to wrap this call in a regular HTML select tag.) reserved(def) method(option_groups_from_collection_for_select)operator(()ident(collection)operator(,) ident(group_method)operator(,) ident(group_label_method)operator(,) ident(option_key_method)operator(,) ident(option_value_method)operator(,) ident(selected_key) operator(=) pre_constant(nil)operator(\)) ident(collection)operator(.)ident(inject)operator(()stringoperator(\)) reserved(do) operator(|)ident(options_for_select)operator(,) ident(group)operator(|) ident(group_label_string) operator(=) ident(eval)operator(()stringdelimiter(")>operator(\)) ident(options_for_select) operator(+=) stringchar(\\")content(>)delimiter(")> ident(options_for_select) operator(+=) ident(options_from_collection_for_select)operator(()ident(eval)operator(()stringdelimiter(")>operator(\))operator(,) ident(option_key_method)operator(,) ident(option_value_method)operator(,) ident(selected_key)operator(\)) ident(options_for_select) operator(+=) string)delimiter(')> reserved(end) reserved(end) comment(# Returns a string of option tags for pretty much any country in the world. Supply a country name as +selected+ to) comment(# have it marked as the selected option tag. You can also supply an array of countries as +priority_countries+, so) comment(# that they will be listed above the rest of the (long\) list.) comment(#) comment(# NOTE: Only the option tags are returned, you have to wrap this call in a regular HTML select tag.) reserved(def) method(country_options_for_select)operator(()ident(selected) operator(=) pre_constant(nil)operator(,) ident(priority_countries) operator(=) pre_constant(nil)operator(\)) ident(country_options) operator(=) string reserved(if) ident(priority_countries) ident(country_options) operator(+=) ident(options_for_select)operator(()ident(priority_countries)operator(,) ident(selected)operator(\)) ident(country_options) operator(+=) string-------------)char(\\n)delimiter(")> reserved(end) reserved(if) ident(priority_countries) operator(&&) ident(priority_countries)operator(.)ident(include?)operator(()ident(selected)operator(\)) ident(country_options) operator(+=) ident(options_for_select)operator(()constant(COUNTRIES) operator(-) ident(priority_countries)operator(,) ident(selected)operator(\)) reserved(else) ident(country_options) operator(+=) ident(options_for_select)operator(()constant(COUNTRIES)operator(,) ident(selected)operator(\)) reserved(end) reserved(return) ident(country_options) reserved(end) comment(# Returns a string of option tags for pretty much any time zone in the) comment(# world. Supply a TimeZone name as +selected+ to have it marked as the) comment(# selected option tag. You can also supply an array of TimeZone objects) comment(# as +priority_zones+, so that they will be listed above the rest of the) comment(# (long\) list. (You can use TimeZone.us_zones as a convenience for) comment(# obtaining a list of the US time zones.\)) comment(#) comment(# The +selected+ parameter must be either +nil+, or a string that names) comment(# a TimeZone.) comment(#) comment(# By default, +model+ is the TimeZone constant (which can be obtained) comment(# in ActiveRecord as a value object\). The only requirement is that the) comment(# +model+ parameter be an object that responds to #all, and returns) comment(# an array of objects that represent time zones.) comment(#) comment(# NOTE: Only the option tags are returned, you have to wrap this call in) comment(# a regular HTML select tag.) reserved(def) method(time_zone_options_for_select)operator(()ident(selected) operator(=) pre_constant(nil)operator(,) ident(priority_zones) operator(=) pre_constant(nil)operator(,) ident(model) operator(=) constant(TimeZone)operator(\)) ident(zone_options) operator(=) string ident(zones) operator(=) ident(model)operator(.)ident(all) ident(convert_zones) operator(=) ident(lambda) operator({) operator(|)ident(list)operator(|) ident(list)operator(.)ident(map) operator({) operator(|)ident(z)operator(|) operator([) ident(z)operator(.)ident(to_s)operator(,) ident(z)operator(.)ident(name) operator(]) operator(}) operator(}) reserved(if) ident(priority_zones) ident(zone_options) operator(+=) ident(options_for_select)operator(()ident(convert_zones)operator([)ident(priority_zones)operator(])operator(,) ident(selected)operator(\)) ident(zone_options) operator(+=) string-------------)char(\\n)delimiter(")> ident(zones) operator(=) ident(zones)operator(.)ident(reject) operator({) operator(|)ident(z)operator(|) ident(priority_zones)operator(.)ident(include?)operator(() ident(z) operator(\)) operator(}) reserved(end) ident(zone_options) operator(+=) ident(options_for_select)operator(()ident(convert_zones)operator([)ident(zones)operator(])operator(,) ident(selected)operator(\)) ident(zone_options) reserved(end) ident(private) comment(# All the countries included in the country_options output.) constant(COUNTRIES) operator(=) operator([) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(]) reserved(unless) ident(const_defined?)operator(()stringoperator(\)) reserved(end) reserved(class) class(InstanceTag) comment(#:nodoc:) ident(include) constant(FormOptionsHelper) reserved(def) method(to_select_tag)operator(()ident(choices)operator(,) ident(options)operator(,) ident(html_options)operator(\)) ident(html_options) operator(=) ident(html_options)operator(.)ident(stringify_keys) ident(add_default_name_and_id)operator(()ident(html_options)operator(\)) ident(selected_value) operator(=) ident(options)operator(.)ident(has_key?)operator(()symbol(:selected)operator(\)) operator(?) ident(options)operator([)symbol(:selected)operator(]) operator(:) ident(value) ident(content_tag)operator(()stringoperator(,) ident(add_options)operator(()ident(options_for_select)operator(()ident(choices)operator(,) ident(selected_value)operator(\))operator(,) ident(options)operator(,) ident(value)operator(\))operator(,) ident(html_options)operator(\)) reserved(end) reserved(def) method(to_collection_select_tag)operator(()ident(collection)operator(,) ident(value_method)operator(,) ident(text_method)operator(,) ident(options)operator(,) ident(html_options)operator(\)) ident(html_options) operator(=) ident(html_options)operator(.)ident(stringify_keys) ident(add_default_name_and_id)operator(()ident(html_options)operator(\)) ident(content_tag)operator(() stringoperator(,) ident(add_options)operator(()ident(options_from_collection_for_select)operator(()ident(collection)operator(,) ident(value_method)operator(,) ident(text_method)operator(,) ident(value)operator(\))operator(,) ident(options)operator(,) ident(value)operator(\))operator(,) ident(html_options) operator(\)) reserved(end) reserved(def) method(to_country_select_tag)operator(()ident(priority_countries)operator(,) ident(options)operator(,) ident(html_options)operator(\)) ident(html_options) operator(=) ident(html_options)operator(.)ident(stringify_keys) ident(add_default_name_and_id)operator(()ident(html_options)operator(\)) ident(content_tag)operator(()stringoperator(,) ident(add_options)operator(()ident(country_options_for_select)operator(()ident(value)operator(,) ident(priority_countries)operator(\))operator(,) ident(options)operator(,) ident(value)operator(\))operator(,) ident(html_options)operator(\)) reserved(end) reserved(def) method(to_time_zone_select_tag)operator(()ident(priority_zones)operator(,) ident(options)operator(,) ident(html_options)operator(\)) ident(html_options) operator(=) ident(html_options)operator(.)ident(stringify_keys) ident(add_default_name_and_id)operator(()ident(html_options)operator(\)) ident(content_tag)operator(()stringoperator(,) ident(add_options)operator(() ident(time_zone_options_for_select)operator(()ident(value)operator(,) ident(priority_zones)operator(,) ident(options)operator([)symbol(:model)operator(]) operator(||) constant(TimeZone)operator(\))operator(,) ident(options)operator(,) ident(value) operator(\))operator(,) ident(html_options) operator(\)) reserved(end) ident(private) reserved(def) method(add_options)operator(()ident(option_tags)operator(,) ident(options)operator(,) ident(value) operator(=) pre_constant(nil)operator(\)) ident(option_tags) operator(=) string)char(\\n)delimiter(")> operator(+) ident(option_tags) reserved(if) ident(options)operator([)symbol(:include_blank)operator(]) reserved(if) ident(value)operator(.)ident(blank?) operator(&&) ident(options)operator([)symbol(:prompt)operator(]) operator(()string)inlineinline_delimiter(})>content()char(\\n)delimiter(")>operator(\)) operator(+) ident(option_tags) reserved(else) ident(option_tags) reserved(end) reserved(end) reserved(end) reserved(class) class(FormBuilder) reserved(def) method(select)operator(()ident(method)operator(,) ident(choices)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) instance_variable(@template)operator(.)ident(select)operator(()instance_variable(@object_name)operator(,) ident(method)operator(,) ident(choices)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:object) operator(=)operator(>) instance_variable(@object)operator(\))operator(,) ident(html_options)operator(\)) reserved(end) reserved(def) method(collection_select)operator(()ident(method)operator(,) ident(collection)operator(,) ident(value_method)operator(,) ident(text_method)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) instance_variable(@template)operator(.)ident(collection_select)operator(()instance_variable(@object_name)operator(,) ident(method)operator(,) ident(collection)operator(,) ident(value_method)operator(,) ident(text_method)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:object) operator(=)operator(>) instance_variable(@object)operator(\))operator(,) ident(html_options)operator(\)) reserved(end) reserved(def) method(country_select)operator(()ident(method)operator(,) ident(priority_countries) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) instance_variable(@template)operator(.)ident(country_select)operator(()instance_variable(@object_name)operator(,) ident(method)operator(,) ident(priority_countries)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:object) operator(=)operator(>) instance_variable(@object)operator(\))operator(,) ident(html_options)operator(\)) reserved(end) reserved(def) method(time_zone_select)operator(()ident(method)operator(,) ident(priority_zones) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) instance_variable(@template)operator(.)ident(time_zone_select)operator(()instance_variable(@object_name)operator(,) ident(method)operator(,) ident(priority_zones)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:object) operator(=)operator(>) instance_variable(@object)operator(\))operator(,) ident(html_options)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides a number of methods for creating form tags that doesn't rely on conventions with an object assigned to the template like) comment(# FormHelper does. With the FormTagHelper, you provide the names and values yourself.) comment(#) comment(# NOTE: The html options disabled, readonly, and multiple can all be treated as booleans. So specifying :disabled => true) comment(# will give disabled="disabled".) reserved(module) class(FormTagHelper) comment(# Starts a form tag that points the action to an url configured with url_for_options just like) comment(# ActionController::Base#url_for. The method for the form defaults to POST.) comment(#) comment(# Options:) comment(# * :multipart - If set to true, the enctype is set to "multipart/form-data".) comment(# * :method - The method to use when submitting the form, usually either "get" or "post".) reserved(def) method(form_tag)operator(()ident(url_for_options) operator(=) operator({)operator(})operator(,) ident(options) operator(=) operator({)operator(})operator(,) operator(*)ident(parameters_for_url)operator(,) operator(&)ident(proc)operator(\)) ident(html_options) operator(=) operator({) string operator(=)operator(>) string operator(})operator(.)ident(merge)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) ident(html_options)operator([)stringoperator(]) operator(=) string reserved(if) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\)) ident(html_options)operator([)stringoperator(]) operator(=) ident(url_for)operator(()ident(url_for_options)operator(,) operator(*)ident(parameters_for_url)operator(\)) ident(tag) symbol(:form)operator(,) ident(html_options)operator(,) pre_constant(true) reserved(end) ident(alias_method) symbol(:start_form_tag)operator(,) symbol(:form_tag) comment(# Outputs "") reserved(def) method(end_form_tag) string)delimiter(")> reserved(end) comment(# Creates a dropdown selection box, or if the :multiple option is set to true, a multiple) comment(# choice selection box.) comment(#) comment(# Helpers::FormOptions can be used to create common select boxes such as countries, time zones, or) comment(# associated records.) comment(#) comment(# option_tags is a string containing the option tags for the select box:) comment(# # Outputs ) comment(# select_tag "people", "") comment(#) comment(# Options:) comment(# * :multiple - If set to true the selection will allow multiple choices.) reserved(def) method(select_tag)operator(()ident(name)operator(,) ident(option_tags) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(content_tag) symbol(:select)operator(,) ident(option_tags)operator(,) operator({) string operator(=)operator(>) ident(name)operator(,) string operator(=)operator(>) ident(name) operator(})operator(.)ident(update)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) reserved(end) comment(# Creates a standard text field.) comment(#) comment(# Options:) comment(# * :disabled - If set to true, the user will not be able to use this input.) comment(# * :size - The number of visible characters that will fit in the input.) comment(# * :maxlength - The maximum number of characters that the browser will allow the user to enter.) comment(# ) comment(# A hash of standard HTML options for the tag.) reserved(def) method(text_field_tag)operator(()ident(name)operator(,) ident(value) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(tag) symbol(:input)operator(,) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(name)operator(,) string operator(=)operator(>) ident(name)operator(,) string operator(=)operator(>) ident(value) operator(})operator(.)ident(update)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) reserved(end) comment(# Creates a hidden field.) comment(#) comment(# Takes the same options as text_field_tag) reserved(def) method(hidden_field_tag)operator(()ident(name)operator(,) ident(value) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(text_field_tag)operator(()ident(name)operator(,) ident(value)operator(,) ident(options)operator(.)ident(stringify_keys)operator(.)ident(update)operator(()string operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) comment(# Creates a file upload field.) comment(#) comment(# If you are using file uploads then you will also need to set the multipart option for the form:) comment(# <%= form_tag { :action => "post" }, { :multipart => true } %>) comment(# <%= file_field_tag "file" %>) comment(# <%= submit_tag %>) comment(# <%= end_form_tag %>) comment(#) comment(# The specified URL will then be passed a File object containing the selected file, or if the field ) comment(# was left blank, a StringIO object.) reserved(def) method(file_field_tag)operator(()ident(name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(text_field_tag)operator(()ident(name)operator(,) pre_constant(nil)operator(,) ident(options)operator(.)ident(update)operator(()string operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) comment(# Creates a password field.) comment(#) comment(# Takes the same options as text_field_tag) reserved(def) method(password_field_tag)operator(()ident(name) operator(=) stringoperator(,) ident(value) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(text_field_tag)operator(()ident(name)operator(,) ident(value)operator(,) ident(options)operator(.)ident(update)operator(()string operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) comment(# Creates a text input area.) comment(#) comment(# Options:) comment(# * :size - A string specifying the dimensions of the textarea.) comment(# # Outputs ) comment(# <%= text_area_tag "body", nil, :size => "25x10" %>) reserved(def) method(text_area_tag)operator(()ident(name)operator(,) ident(content) operator(=) pre_constant(nil)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator(.)ident(stringify_keys!) reserved(if) ident(size) operator(=) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) ident(options)operator([)stringoperator(])operator(,) ident(options)operator([)stringoperator(]) operator(=) ident(size)operator(.)ident(split)operator(()stringoperator(\)) reserved(end) ident(content_tag) symbol(:textarea)operator(,) ident(content)operator(,) operator({) string operator(=)operator(>) ident(name)operator(,) string operator(=)operator(>) ident(name) operator(})operator(.)ident(update)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) reserved(end) comment(# Creates a check box.) reserved(def) method(check_box_tag)operator(()ident(name)operator(,) ident(value) operator(=) stringoperator(,) ident(checked) operator(=) pre_constant(false)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(html_options) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(name)operator(,) string operator(=)operator(>) ident(name)operator(,) string operator(=)operator(>) ident(value) operator(})operator(.)ident(update)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) ident(html_options)operator([)stringoperator(]) operator(=) string reserved(if) ident(checked) ident(tag) symbol(:input)operator(,) ident(html_options) reserved(end) comment(# Creates a radio button.) reserved(def) method(radio_button_tag)operator(()ident(name)operator(,) ident(value)operator(,) ident(checked) operator(=) pre_constant(false)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(html_options) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(name)operator(,) string operator(=)operator(>) ident(name)operator(,) string operator(=)operator(>) ident(value) operator(})operator(.)ident(update)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) ident(html_options)operator([)stringoperator(]) operator(=) string reserved(if) ident(checked) ident(tag) symbol(:input)operator(,) ident(html_options) reserved(end) comment(# Creates a submit button with the text value as the caption. If options contains a pair with the key of "disable_with",) comment(# then the value will be used to rename a disabled version of the submit button.) reserved(def) method(submit_tag)operator(()ident(value) operator(=) stringoperator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator(.)ident(stringify_keys!) reserved(if) ident(disable_with) operator(=) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) ident(options)operator([)stringoperator(]) operator(=) stringcontent(';this.form.submit(\);)inlineoperator(])inline_delimiter(})>delimiter(")> reserved(end) ident(tag) symbol(:input)operator(,) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(value) operator(})operator(.)ident(update)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) reserved(end) comment(# Displays an image which when clicked will submit the form.) comment(#) comment(# source is passed to AssetTagHelper#image_path) reserved(def) method(image_submit_tag)operator(()ident(source)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(tag) symbol(:input)operator(,) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(image_path)operator(()ident(source)operator(\)) operator(})operator(.)ident(update)operator(()ident(options)operator(.)ident(stringify_keys)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides a set of helpers for creating JavaScript macros that rely on and often bundle methods from JavaScriptHelper into) comment(# larger units. These macros also rely on counterparts in the controller that provide them with their backing. The in-place) comment(# editing relies on ActionController::Base.in_place_edit_for and the autocompletion relies on ) comment(# ActionController::Base.auto_complete_for.) reserved(module) class(JavaScriptMacrosHelper) comment(# Makes an HTML element specified by the DOM ID +field_id+ become an in-place) comment(# editor of a property.) comment(#) comment(# A form is automatically created and displayed when the user clicks the element,) comment(# something like this:) comment(#
) comment(# ) comment(# ) comment(# cancel) comment(#
) comment(# ) comment(# The form is serialized and sent to the server using an AJAX call, the action on) comment(# the server should process the value and return the updated value in the body of) comment(# the reponse. The element will automatically be updated with the changed value) comment(# (as returned from the server\).) comment(# ) comment(# Required +options+ are:) comment(# :url:: Specifies the url where the updated value should) comment(# be sent after the user presses "ok".) comment(# ) comment(#) comment(# Addtional +options+ are:) comment(# :rows:: Number of rows (more than 1 will use a TEXTAREA\)) comment(# :cols:: Number of characters the text input should span (works for both INPUT and TEXTAREA\)) comment(# :size:: Synonym for :cols when using a single line text input.) comment(# :cancel_text:: The text on the cancel link. (default: "cancel"\)) comment(# :save_text:: The text on the save link. (default: "ok"\)) comment(# :loading_text:: The text to display when submitting to the server (default: "Saving..."\)) comment(# :external_control:: The id of an external control used to enter edit mode.) comment(# :load_text_url:: URL where initial value of editor (content\) is retrieved.) comment(# :options:: Pass through options to the AJAX call (see prototype's Ajax.Updater\)) comment(# :with:: JavaScript snippet that should return what is to be sent) comment(# in the AJAX call, +form+ is an implicit parameter) comment(# :script:: Instructs the in-place editor to evaluate the remote JavaScript response (default: false\)) reserved(def) method(in_place_editor)operator(()ident(field_id)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(function) operator(=) string ident(function) operator(<<) stringcontent(', )delimiter(")> ident(function) operator(<<) stringcontent(')delimiter(")> ident(js_options) operator(=) operator({)operator(}) ident(js_options)operator([)stringoperator(]) operator(=) stringcontent(')delimiter(\))> reserved(if) ident(options)operator([)symbol(:cancel_text)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) stringcontent(')delimiter(\))> reserved(if) ident(options)operator([)symbol(:save_text)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) stringcontent(')delimiter(\))> reserved(if) ident(options)operator([)symbol(:loading_text)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) ident(options)operator([)symbol(:rows)operator(]) reserved(if) ident(options)operator([)symbol(:rows)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) ident(options)operator([)symbol(:cols)operator(]) reserved(if) ident(options)operator([)symbol(:cols)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) ident(options)operator([)symbol(:size)operator(]) reserved(if) ident(options)operator([)symbol(:size)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) stringcontent(')delimiter(")> reserved(if) ident(options)operator([)symbol(:external_control)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) stringcontent(')delimiter(")> reserved(if) ident(options)operator([)symbol(:load_text_url)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) ident(options)operator([)symbol(:options)operator(]) reserved(if) ident(options)operator([)symbol(:options)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) ident(options)operator([)symbol(:script)operator(]) reserved(if) ident(options)operator([)symbol(:script)operator(]) ident(js_options)operator([)stringoperator(]) operator(=) stringcontent( })delimiter(")> reserved(if) ident(options)operator([)symbol(:with)operator(]) ident(function) operator(<<) operator(()string operator(+) ident(options_for_javascript)operator(()ident(js_options)operator(\))operator(\)) reserved(unless) ident(js_options)operator(.)ident(empty?) ident(function) operator(<<) string ident(javascript_tag)operator(()ident(function)operator(\)) reserved(end) comment(# Renders the value of the specified object and method with in-place editing capabilities.) comment(#) comment(# See the RDoc on ActionController::InPlaceEditing to learn more about this.) reserved(def) method(in_place_editor_field)operator(()ident(object)operator(,) ident(method)operator(,) ident(tag_options) operator(=) operator({)operator(})operator(,) ident(in_place_editor_options) operator(=) operator({)operator(})operator(\)) ident(tag) operator(=) operator(::)constant(ActionView)operator(::)constant(Helpers)operator(::)constant(InstanceTag)operator(.)ident(new)operator(()ident(object)operator(,) ident(method)operator(,) pre_constant(self)operator(\)) ident(tag_options) operator(=) operator({)symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringcontent(_)inlinecontent(_)inlinecontent(_in_place_editor)delimiter(")>operator(,) symbol(:class) operator(=)operator(>) stringoperator(})operator(.)ident(merge!)operator(()ident(tag_options)operator(\)) ident(in_place_editor_options)operator([)symbol(:url)operator(]) operator(=) ident(in_place_editor_options)operator([)symbol(:url)operator(]) operator(||) ident(url_for)operator(()operator({) symbol(:action) operator(=)operator(>) stringcontent(_)inlinedelimiter(")>operator(,) symbol(:id) operator(=)operator(>) ident(tag)operator(.)ident(object)operator(.)ident(id) operator(})operator(\)) ident(tag)operator(.)ident(to_content_tag)operator(()ident(tag_options)operator(.)ident(delete)operator(()symbol(:tag)operator(\))operator(,) ident(tag_options)operator(\)) operator(+) ident(in_place_editor)operator(()ident(tag_options)operator([)symbol(:id)operator(])operator(,) ident(in_place_editor_options)operator(\)) reserved(end) comment(# Adds AJAX autocomplete functionality to the text input field with the ) comment(# DOM ID specified by +field_id+.) comment(#) comment(# This function expects that the called action returns a HTML
    list,) comment(# or nothing if no entries should be displayed for autocompletion.) comment(#) comment(# You'll probably want to turn the browser's built-in autocompletion off,) comment(# so be sure to include a autocomplete="off" attribute with your text) comment(# input field.) comment(#) comment(# The autocompleter object is assigned to a Javascript variable named field_id_auto_completer.) comment(# This object is useful if you for example want to trigger the auto-complete suggestions through) comment(# other means than user input (for that specific case, call the activate method on that object\). ) comment(# ) comment(# Required +options+ are:) comment(# :url:: URL to call for autocompletion results) comment(# in url_for format.) comment(# ) comment(# Addtional +options+ are:) comment(# :update:: Specifies the DOM ID of the element whose ) comment(# innerHTML should be updated with the autocomplete) comment(# entries returned by the AJAX request. ) comment(# Defaults to field_id + '_auto_complete') comment(# :with:: A JavaScript expression specifying the) comment(# parameters for the XMLHttpRequest. This defaults) comment(# to 'fieldname=value'.) comment(# :frequency:: Determines the time to wait after the last keystroke) comment(# for the AJAX request to be initiated.) comment(# :indicator:: Specifies the DOM ID of an element which will be) comment(# displayed while autocomplete is running.) comment(# :tokens:: A string or an array of strings containing) comment(# separator tokens for tokenized incremental ) comment(# autocompletion. Example: :tokens => ',' would) comment(# allow multiple autocompletion entries, separated) comment(# by commas.) comment(# :min_chars:: The minimum number of characters that should be) comment(# in the input field before an Ajax call is made) comment(# to the server.) comment(# :on_hide:: A Javascript expression that is called when the) comment(# autocompletion div is hidden. The expression) comment(# should take two variables: element and update.) comment(# Element is a DOM element for the field, update) comment(# is a DOM element for the div from which the) comment(# innerHTML is replaced.) comment(# :on_show:: Like on_hide, only now the expression is called) comment(# then the div is shown.) comment(# :after_update_element:: A Javascript expression that is called when the) comment(# user has selected one of the proposed values. ) comment(# The expression should take two variables: element and value.) comment(# Element is a DOM element for the field, value) comment(# is the value selected by the user.) comment(# :select:: Pick the class of the element from which the value for ) comment(# insertion should be extracted. If this is not specified,) comment(# the entire element is used.) reserved(def) method(auto_complete_field)operator(()ident(field_id)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(function) operator(=) stringcontent(_auto_completer = new Ajax.Autocompleter()delimiter(")> ident(function) operator(<<) stringcontent(', )delimiter(")> ident(function) operator(<<) string operator(+) operator(()ident(options)operator([)symbol(:update)operator(]) operator(||) stringcontent(_auto_complete)delimiter(")>operator(\)) operator(+) string ident(function) operator(<<) stringcontent(')delimiter(")> ident(js_options) operator(=) operator({)operator(}) ident(js_options)operator([)symbol(:tokens)operator(]) operator(=) ident(array_or_string_for_javascript)operator(()ident(options)operator([)symbol(:tokens)operator(])operator(\)) reserved(if) ident(options)operator([)symbol(:tokens)operator(]) ident(js_options)operator([)symbol(:callback)operator(]) operator(=) stringcontent( })delimiter(")> reserved(if) ident(options)operator([)symbol(:with)operator(]) ident(js_options)operator([)symbol(:indicator)operator(]) operator(=) stringcontent(')delimiter(")> reserved(if) ident(options)operator([)symbol(:indicator)operator(]) ident(js_options)operator([)symbol(:select)operator(]) operator(=) stringcontent(')delimiter(")> reserved(if) ident(options)operator([)symbol(:select)operator(]) ident(js_options)operator([)symbol(:frequency)operator(]) operator(=) stringdelimiter(")> reserved(if) ident(options)operator([)symbol(:frequency)operator(]) operator({) symbol(:after_update_element) operator(=)operator(>) symbol(:afterUpdateElement)operator(,) symbol(:on_show) operator(=)operator(>) symbol(:onShow)operator(,) symbol(:on_hide) operator(=)operator(>) symbol(:onHide)operator(,) symbol(:min_chars) operator(=)operator(>) symbol(:minChars) operator(})operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,)ident(v)operator(|) ident(js_options)operator([)ident(v)operator(]) operator(=) ident(options)operator([)ident(k)operator(]) reserved(if) ident(options)operator([)ident(k)operator(]) reserved(end) ident(function) operator(<<) operator(()string operator(+) ident(options_for_javascript)operator(()ident(js_options)operator(\)) operator(+) stringoperator(\)) ident(javascript_tag)operator(()ident(function)operator(\)) reserved(end) comment(# Use this method in your view to generate a return for the AJAX autocomplete requests.) comment(#) comment(# Example action:) comment(#) comment(# def auto_complete_for_item_title) comment(# @items = Item.find(:all, ) comment(# :conditions => [ 'LOWER(description\) LIKE ?', ) comment(# '%' + request.raw_post.downcase + '%' ]\)) comment(# render :inline => '<%= auto_complete_result(@items, 'description'\) %>') comment(# end) comment(#) comment(# The auto_complete_result can of course also be called from a view belonging to the ) comment(# auto_complete action if you need to decorate it further.) reserved(def) method(auto_complete_result)operator(()ident(entries)operator(,) ident(field)operator(,) ident(phrase) operator(=) pre_constant(nil)operator(\)) reserved(return) reserved(unless) ident(entries) ident(items) operator(=) ident(entries)operator(.)ident(map) operator({) operator(|)ident(entry)operator(|) ident(content_tag)operator(()stringoperator(,) ident(phrase) operator(?) ident(highlight)operator(()ident(entry)operator([)ident(field)operator(])operator(,) ident(phrase)operator(\)) operator(:) ident(h)operator(()ident(entry)operator([)ident(field)operator(])operator(\))operator(\)) operator(}) ident(content_tag)operator(()stringoperator(,) ident(items)operator(.)ident(uniq)operator(\)) reserved(end) comment(# Wrapper for text_field with added AJAX autocompletion functionality.) comment(#) comment(# In your controller, you'll need to define an action called) comment(# auto_complete_for_object_method to respond the AJAX calls,) comment(# ) comment(# See the RDoc on ActionController::AutoComplete to learn more about this.) reserved(def) method(text_field_with_auto_complete)operator(()ident(object)operator(,) ident(method)operator(,) ident(tag_options) operator(=) operator({)operator(})operator(,) ident(completion_options) operator(=) operator({)operator(})operator(\)) operator(()ident(completion_options)operator([)symbol(:skip_style)operator(]) operator(?) string operator(:) ident(auto_complete_stylesheet)operator(\)) operator(+) ident(text_field)operator(()ident(object)operator(,) ident(method)operator(,) ident(tag_options)operator(\)) operator(+) ident(content_tag)operator(()stringoperator(,) stringoperator(,) symbol(:id) operator(=)operator(>) stringcontent(_)inlinecontent(_auto_complete)delimiter(")>operator(,) symbol(:class) operator(=)operator(>) stringoperator(\)) operator(+) ident(auto_complete_field)operator(()stringcontent(_)inlinedelimiter(")>operator(,) operator({) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) stringcontent(_)inlinedelimiter(")> operator(}) operator(})operator(.)ident(update)operator(()ident(completion_options)operator(\))operator(\)) reserved(end) ident(private) reserved(def) method(auto_complete_stylesheet) ident(content_tag)operator(()stringoperator(,) stringstring operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides functionality for working with JavaScript in your views.) comment(# ) comment(# == Ajax, controls and visual effects) comment(# ) comment(# * For information on using Ajax, see ) comment(# ActionView::Helpers::PrototypeHelper.) comment(# * For information on using controls and visual effects, see) comment(# ActionView::Helpers::ScriptaculousHelper.) comment(#) comment(# == Including the JavaScript libraries into your pages) comment(#) comment(# Rails includes the Prototype JavaScript framework and the Scriptaculous) comment(# JavaScript controls and visual effects library. If you wish to use) comment(# these libraries and their helpers (ActionView::Helpers::PrototypeHelper) comment(# and ActionView::Helpers::ScriptaculousHelper\), you must do one of the) comment(# following:) comment(#) comment(# * Use <%= javascript_include_tag :defaults %> in the HEAD ) comment(# section of your page (recommended\): This function will return ) comment(# references to the JavaScript files created by the +rails+ command in) comment(# your public/javascripts directory. Using it is recommended as) comment(# the browser can then cache the libraries instead of fetching all the ) comment(# functions anew on every request.) comment(# * Use <%= javascript_include_tag 'prototype' %>: As above, but ) comment(# will only include the Prototype core library, which means you are able) comment(# to use all basic AJAX functionality. For the Scriptaculous-based ) comment(# JavaScript helpers, like visual effects, autocompletion, drag and drop ) comment(# and so on, you should use the method described above.) comment(# * Use <%= define_javascript_functions %>: this will copy all the) comment(# JavaScript support functions within a single script block. Not) comment(# recommended.) comment(#) comment(# For documentation on +javascript_include_tag+ see ) comment(# ActionView::Helpers::AssetTagHelper.) reserved(module) class(JavaScriptHelper) reserved(unless) ident(const_defined?) symbol(:JAVASCRIPT_PATH) constant(JAVASCRIPT_PATH) operator(=) constant(File)operator(.)ident(join)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(,) stringoperator(\)) reserved(end) comment(# Returns a link that'll trigger a JavaScript +function+ using the ) comment(# onclick handler and return false after the fact.) comment(#) comment(# Examples:) comment(# link_to_function "Greeting", "alert('Hello world!'\)") comment(# link_to_function(image_tag("delete"\), "if confirm('Really?'\){ do_delete(\); }"\)) reserved(def) method(link_to_function)operator(()ident(name)operator(,) ident(function)operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) ident(html_options)operator(.)ident(symbolize_keys!) ident(content_tag)operator(() stringoperator(,) ident(name)operator(,) ident(html_options)operator(.)ident(merge)operator(()operator({) symbol(:href) operator(=)operator(>) ident(html_options)operator([)symbol(:href)operator(]) operator(||) stringoperator(,) symbol(:onclick) operator(=)operator(>) operator(()ident(html_options)operator([)symbol(:onclick)operator(]) operator(?) stringcontent(; )delimiter(")> operator(:) stringoperator(\)) operator(+) stringcontent(; return false;)delimiter(")> operator(})operator(\)) operator(\)) reserved(end) comment(# Returns a link that'll trigger a JavaScript +function+ using the ) comment(# onclick handler.) comment(#) comment(# Examples:) comment(# button_to_function "Greeting", "alert('Hello world!'\)") comment(# button_to_function "Delete", "if confirm('Really?'\){ do_delete(\); }"\)) reserved(def) method(button_to_function)operator(()ident(name)operator(,) ident(function)operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) ident(html_options)operator(.)ident(symbolize_keys!) ident(tag)operator(()symbol(:input)operator(,) ident(html_options)operator(.)ident(merge)operator(()operator({) symbol(:type) operator(=)operator(>) stringoperator(,) symbol(:value) operator(=)operator(>) ident(name)operator(,) symbol(:onclick) operator(=)operator(>) operator(()ident(html_options)operator([)symbol(:onclick)operator(]) operator(?) stringcontent(; )delimiter(")> operator(:) stringoperator(\)) operator(+) stringcontent(;)delimiter(")> operator(})operator(\))operator(\)) reserved(end) comment(# Includes the Action Pack JavaScript libraries inside a single )delimiter(')> reserved(end) comment(# Escape carrier returns and single and double quotes for JavaScript segments.) reserved(def) method(escape_javascript)operator(()ident(javascript)operator(\)) operator(()ident(javascript) operator(||) stringoperator(\))operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(gsub)operator(()regexpoperator(\)) operator({) operator(|)ident(m)operator(|) stringdelimiter(")> operator(}) reserved(end) comment(# Returns a JavaScript tag with the +content+ inside. Example:) comment(# javascript_tag "alert('All is good'\)" # => ) reserved(def) method(javascript_tag)operator(()ident(content)operator(\)) ident(content_tag)operator(()stringoperator(,) ident(javascript_cdata_section)operator(()ident(content)operator(\))operator(,) symbol(:type) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(javascript_cdata_section)operator(()ident(content)operator(\)) comment(#:nodoc:) stringchar(\\n)content(//)delimiter(")>operator(\))inline_delimiter(})>char(\\n)delimiter(")> reserved(end) ident(protected) reserved(def) method(options_for_javascript)operator(()ident(options)operator(\)) string operator(+) ident(options)operator(.)ident(map) operator({)operator(|)ident(k)operator(,) ident(v)operator(|) stringcontent(:)inlinedelimiter(")>operator(})operator(.)ident(sort)operator(.)ident(join)operator(()stringoperator(\)) operator(+) string reserved(end) reserved(def) method(array_or_string_for_javascript)operator(()ident(option)operator(\)) ident(js_option) operator(=) reserved(if) ident(option)operator(.)ident(kind_of?)operator(()constant(Array)operator(\)) stringoperator(\))inline_delimiter(})>content('])delimiter(")> reserved(elsif) operator(!)ident(option)operator(.)ident(nil?) stringcontent(')delimiter(")> reserved(end) ident(js_option) reserved(end) reserved(end) constant(JavascriptHelper) operator(=) constant(JavaScriptHelper) reserved(unless) ident(const_defined?) symbol(:JavascriptHelper) reserved(end) reserved(end) reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides methods for converting a number into a formatted string that currently represents) comment(# one of the following forms: phone number, percentage, money, or precision level.) reserved(module) class(NumberHelper) comment(# Formats a +number+ into a US phone number string. The +options+ can be a hash used to customize the format of the output.) comment(# The area code can be surrounded by parentheses by setting +:area_code+ to true; default is false) comment(# The delimiter can be set using +:delimiter+; default is "-") comment(# Examples:) comment(# number_to_phone(1235551234\) => 123-555-1234) comment(# number_to_phone(1235551234, {:area_code => true}\) => (123\) 555-1234) comment(# number_to_phone(1235551234, {:delimiter => " "}\) => 123 555 1234) comment(# number_to_phone(1235551234, {:area_code => true, :extension => 555}\) => (123\) 555-1234 x 555) reserved(def) method(number_to_phone)operator(()ident(number)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options) operator(=) ident(options)operator(.)ident(stringify_keys) ident(area_code) operator(=) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator({) pre_constant(false) operator(}) ident(delimiter) operator(=) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator({) string operator(}) ident(extension) operator(=) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator({) string operator(}) reserved(begin) ident(str) operator(=) ident(area_code) operator(==) pre_constant(true) operator(?) ident(number)operator(.)ident(to_s)operator(.)ident(gsub)operator(()regexpoperator(,)stringchar(\\\\)content(3)delimiter(")>operator(\)) operator(:) ident(number)operator(.)ident(to_s)operator(.)ident(gsub)operator(()regexpoperator(,)stringchar(\\\\)content(2)inlinechar(\\\\)content(3)delimiter(")>operator(\)) ident(extension)operator(.)ident(to_s)operator(.)ident(strip)operator(.)ident(empty?) operator(?) ident(str) operator(:) stringcontent( x )inlinedelimiter(")> reserved(rescue) ident(number) reserved(end) reserved(end) comment(# Formats a +number+ into a currency string. The +options+ hash can be used to customize the format of the output.) comment(# The +number+ can contain a level of precision using the +precision+ key; default is 2) comment(# The currency type can be set using the +unit+ key; default is "$") comment(# The unit separator can be set using the +separator+ key; default is ".") comment(# The delimiter can be set using the +delimiter+ key; default is ",") comment(# Examples:) comment(# number_to_currency(1234567890.50\) => $1,234,567,890.50) comment(# number_to_currency(1234567890.506\) => $1,234,567,890.51) comment(# number_to_currency(1234567890.50, {:unit => "£", :separator => ",", :delimiter => ""}\) => £1234567890,50) reserved(def) method(number_to_currency)operator(()ident(number)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options) operator(=) ident(options)operator(.)ident(stringify_keys) ident(precision)operator(,) ident(unit)operator(,) ident(separator)operator(,) ident(delimiter) operator(=) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator({) integer(2) operator(})operator(,) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator({) string operator(})operator(,) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator({) string operator(})operator(,) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator({) string operator(}) ident(separator) operator(=) string reserved(unless) ident(precision) operator(>) integer(0) reserved(begin) ident(parts) operator(=) ident(number_with_precision)operator(()ident(number)operator(,) ident(precision)operator(\))operator(.)ident(split)operator(()stringoperator(\)) ident(unit) operator(+) ident(number_with_delimiter)operator(()ident(parts)operator([)integer(0)operator(])operator(,) ident(delimiter)operator(\)) operator(+) ident(separator) operator(+) ident(parts)operator([)integer(1)operator(])operator(.)ident(to_s) reserved(rescue) ident(number) reserved(end) reserved(end) comment(# Formats a +number+ as into a percentage string. The +options+ hash can be used to customize the format of the output.) comment(# The +number+ can contain a level of precision using the +precision+ key; default is 3) comment(# The unit separator can be set using the +separator+ key; default is ".") comment(# Examples:) comment(# number_to_percentage(100\) => 100.000%) comment(# number_to_percentage(100, {:precision => 0}\) => 100%) comment(# number_to_percentage(302.0574, {:precision => 2}\) => 302.06%) reserved(def) method(number_to_percentage)operator(()ident(number)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options) operator(=) ident(options)operator(.)ident(stringify_keys) ident(precision)operator(,) ident(separator) operator(=) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator({) integer(3) operator(})operator(,) ident(options)operator(.)ident(delete)operator(()stringoperator(\)) operator({) string operator(}) reserved(begin) ident(number) operator(=) ident(number_with_precision)operator(()ident(number)operator(,) ident(precision)operator(\)) ident(parts) operator(=) ident(number)operator(.)ident(split)operator(()stringoperator(\)) reserved(if) ident(parts)operator(.)ident(at)operator(()integer(1)operator(\))operator(.)ident(nil?) ident(parts)operator([)integer(0)operator(]) operator(+) string reserved(else) ident(parts)operator([)integer(0)operator(]) operator(+) ident(separator) operator(+) ident(parts)operator([)integer(1)operator(])operator(.)ident(to_s) operator(+) string reserved(end) reserved(rescue) ident(number) reserved(end) reserved(end) comment(# Formats a +number+ with a +delimiter+.) comment(# Example:) comment(# number_with_delimiter(12345678\) => 12,345,678) reserved(def) method(number_with_delimiter)operator(()ident(number)operator(,) ident(delimiter)operator(=)stringoperator(\)) ident(number)operator(.)ident(to_s)operator(.)ident(gsub)operator(()regexpoperator(,) stringdelimiter(")>operator(\)) reserved(end) comment(# Returns a formatted-for-humans file size.) comment(# ) comment(# Examples:) comment(# human_size(123\) => 123 Bytes) comment(# human_size(1234\) => 1.2 KB) comment(# human_size(12345\) => 12.1 KB) comment(# human_size(1234567\) => 1.2 MB) comment(# human_size(1234567890\) => 1.1 GB) reserved(def) method(number_to_human_size)operator(()ident(size)operator(\)) reserved(case) reserved(when) ident(size) operator(<) integer(1)operator(.)ident(kilobyte)operator(:) string operator(%) ident(size) reserved(when) ident(size) operator(<) integer(1)operator(.)ident(megabyte)operator(:) string operator(%) operator(()ident(size) operator(/) float(1.0)operator(.)ident(kilobyte)operator(\)) reserved(when) ident(size) operator(<) integer(1)operator(.)ident(gigabyte)operator(:) string operator(%) operator(()ident(size) operator(/) float(1.0)operator(.)ident(megabyte)operator(\)) reserved(when) ident(size) operator(<) integer(1)operator(.)ident(terabyte)operator(:) string operator(%) operator(()ident(size) operator(/) float(1.0)operator(.)ident(gigabyte)operator(\)) reserved(else) string operator(%) operator(()ident(size) operator(/) float(1.0)operator(.)ident(terabyte)operator(\)) reserved(end)operator(.)ident(sub)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) reserved(end) ident(alias_method) symbol(:human_size)operator(,) symbol(:number_to_human_size) comment(# deprecated alias) comment(# Formats a +number+ with a level of +precision+.) comment(# Example:) comment(# number_with_precision(111.2345\) => 111.235) reserved(def) method(number_with_precision)operator(()ident(number)operator(,) ident(precision)operator(=)integer(3)operator(\)) ident(sprintf)operator(()stringcontent(f)delimiter(")>operator(,) ident(number)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides methods for linking to ActionController::Pagination objects.) comment(#) comment(# You can also build your links manually, like in this example:) comment(#) comment(# <%= link_to "Previous page", { :page => paginator.current.previous } if paginator.current.previous %>) comment(#) comment(# <%= link_to "Next page", { :page => paginator.current.next } if paginator.current.next %>) reserved(module) class(PaginationHelper) reserved(unless) ident(const_defined?)operator(()symbol(:DEFAULT_OPTIONS)operator(\)) constant(DEFAULT_OPTIONS) operator(=) operator({) symbol(:name) operator(=)operator(>) symbol(:page)operator(,) symbol(:window_size) operator(=)operator(>) integer(2)operator(,) symbol(:always_show_anchors) operator(=)operator(>) pre_constant(true)operator(,) symbol(:link_to_current_page) operator(=)operator(>) pre_constant(false)operator(,) symbol(:params) operator(=)operator(>) operator({)operator(}) operator(}) reserved(end) comment(# Creates a basic HTML link bar for the given +paginator+.) comment(# +html_options+ are passed to +link_to+.) comment(#) comment(# +options+ are:) comment(# :name:: the routing name for this paginator) comment(# (defaults to +page+\)) comment(# :window_size:: the number of pages to show around ) comment(# the current page (defaults to +2+\)) comment(# :always_show_anchors:: whether or not the first and last) comment(# pages should always be shown) comment(# (defaults to +true+\)) comment(# :link_to_current_page:: whether or not the current page) comment(# should be linked to (defaults to) comment(# +false+\)) comment(# :params:: any additional routing parameters) comment(# for page URLs) reserved(def) method(pagination_links)operator(()ident(paginator)operator(,) ident(options)operator(=)operator({)operator(})operator(,) ident(html_options)operator(=)operator({)operator(})operator(\)) ident(name) operator(=) ident(options)operator([)symbol(:name)operator(]) operator(||) constant(DEFAULT_OPTIONS)operator([)symbol(:name)operator(]) ident(params) operator(=) operator(()ident(options)operator([)symbol(:params)operator(]) operator(||) constant(DEFAULT_OPTIONS)operator([)symbol(:params)operator(])operator(\))operator(.)ident(clone) ident(pagination_links_each)operator(()ident(paginator)operator(,) ident(options)operator(\)) reserved(do) operator(|)ident(n)operator(|) ident(params)operator([)ident(name)operator(]) operator(=) ident(n) ident(link_to)operator(()ident(n)operator(.)ident(to_s)operator(,) ident(params)operator(,) ident(html_options)operator(\)) reserved(end) reserved(end) comment(# Iterate through the pages of a given +paginator+, invoking a) comment(# block for each page number that needs to be rendered as a link.) reserved(def) method(pagination_links_each)operator(()ident(paginator)operator(,) ident(options)operator(\)) ident(options) operator(=) constant(DEFAULT_OPTIONS)operator(.)ident(merge)operator(()ident(options)operator(\)) ident(link_to_current_page) operator(=) ident(options)operator([)symbol(:link_to_current_page)operator(]) ident(always_show_anchors) operator(=) ident(options)operator([)symbol(:always_show_anchors)operator(]) ident(current_page) operator(=) ident(paginator)operator(.)ident(current_page) ident(window_pages) operator(=) ident(current_page)operator(.)ident(window)operator(()ident(options)operator([)symbol(:window_size)operator(])operator(\))operator(.)ident(pages) reserved(return) reserved(if) ident(window_pages)operator(.)ident(length) operator(<=) integer(1) reserved(unless) ident(link_to_current_page) ident(first)operator(,) ident(last) operator(=) ident(paginator)operator(.)ident(first)operator(,) ident(paginator)operator(.)ident(last) ident(html) operator(=) string reserved(if) ident(always_show_anchors) reserved(and) reserved(not) operator(()ident(wp_first) operator(=) ident(window_pages)operator([)integer(0)operator(])operator(\))operator(.)ident(first?) ident(html) operator(<<) reserved(yield)operator(()ident(first)operator(.)ident(number)operator(\)) ident(html) operator(<<) string reserved(if) ident(wp_first)operator(.)ident(number) operator(-) ident(first)operator(.)ident(number) operator(>) integer(1) ident(html) operator(<<) string reserved(end) ident(window_pages)operator(.)ident(each) reserved(do) operator(|)ident(page)operator(|) reserved(if) ident(current_page) operator(==) ident(page) operator(&&) operator(!)ident(link_to_current_page) ident(html) operator(<<) ident(page)operator(.)ident(number)operator(.)ident(to_s) reserved(else) ident(html) operator(<<) reserved(yield)operator(()ident(page)operator(.)ident(number)operator(\)) reserved(end) ident(html) operator(<<) string reserved(end) reserved(if) ident(always_show_anchors) reserved(and) reserved(not) operator(()ident(wp_last) operator(=) ident(window_pages)operator([)integer(-1)operator(])operator(\))operator(.)ident(last?) ident(html) operator(<<) string reserved(if) ident(last)operator(.)ident(number) operator(-) ident(wp_last)operator(.)ident(number) operator(>) integer(1) ident(html) operator(<<) reserved(yield)operator(()ident(last)operator(.)ident(number)operator(\)) reserved(end) ident(html) reserved(end) reserved(end) comment(# PaginationHelper) reserved(end) comment(# Helpers) reserved(end) comment(# ActionView) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string reserved(module) class(ActionView) reserved(module) class(Helpers) comment(# Provides a set of helpers for calling Prototype JavaScript functions, ) comment(# including functionality to call remote methods using ) comment(# Ajax[http://www.adaptivepath.com/publications/essays/archives/000385.php]. ) comment(# This means that you can call actions in your controllers without ) comment(# reloading the page, but still update certain parts of it using ) comment(# injections into the DOM. The common use case is having a form that adds) comment(# a new element to a list without reloading the page.) comment(#) comment(# To be able to use these helpers, you must include the Prototype ) comment(# JavaScript framework in your pages. See the documentation for ) comment(# ActionView::Helpers::JavaScriptHelper for more information on including ) comment(# the necessary JavaScript.) comment(#) comment(# See link_to_remote for documentation of options common to all Ajax) comment(# helpers.) comment(#) comment(# See also ActionView::Helpers::ScriptaculousHelper for helpers which work) comment(# with the Scriptaculous controls and visual effects library.) comment(#) comment(# See JavaScriptGenerator for information on updating multiple elements) comment(# on the page in an Ajax response. ) reserved(module) class(PrototypeHelper) reserved(unless) ident(const_defined?) symbol(:CALLBACKS) constant(CALLBACKS) operator(=) constant(Set)operator(.)ident(new)operator(()operator([) symbol(:uninitialized)operator(,) symbol(:loading)operator(,) symbol(:loaded)operator(,) symbol(:interactive)operator(,) symbol(:complete)operator(,) symbol(:failure)operator(,) symbol(:success) operator(]) operator(+) operator(()integer(100)operator(..)integer(599)operator(\))operator(.)ident(to_a)operator(\)) constant(AJAX_OPTIONS) operator(=) constant(Set)operator(.)ident(new)operator(()operator([) symbol(:before)operator(,) symbol(:after)operator(,) symbol(:condition)operator(,) symbol(:url)operator(,) symbol(:asynchronous)operator(,) symbol(:method)operator(,) symbol(:insertion)operator(,) symbol(:position)operator(,) symbol(:form)operator(,) symbol(:with)operator(,) symbol(:update)operator(,) symbol(:script) operator(])operator(\))operator(.)ident(merge)operator(()constant(CALLBACKS)operator(\)) reserved(end) comment(# Returns a link to a remote action defined by options[:url] ) comment(# (using the url_for format\) that's called in the background using ) comment(# XMLHttpRequest. The result of that request can then be inserted into a) comment(# DOM object whose id can be specified with options[:update]. ) comment(# Usually, the result would be a partial prepared by the controller with) comment(# either render_partial or render_partial_collection. ) comment(#) comment(# Examples:) comment(# link_to_remote "Delete this post", :update => "posts", ) comment(# :url => { :action => "destroy", :id => post.id }) comment(# link_to_remote(image_tag("refresh"\), :update => "emails", ) comment(# :url => { :action => "list_emails" }\)) comment(#) comment(# You can also specify a hash for options[:update] to allow for) comment(# easy redirection of output to an other DOM element if a server-side ) comment(# error occurs:) comment(#) comment(# Example:) comment(# link_to_remote "Delete this post",) comment(# :url => { :action => "destroy", :id => post.id },) comment(# :update => { :success => "posts", :failure => "error" }) comment(#) comment(# Optionally, you can use the options[:position] parameter to ) comment(# influence how the target DOM element is updated. It must be one of ) comment(# :before, :top, :bottom, or :after.) comment(#) comment(# By default, these remote requests are processed asynchronous during ) comment(# which various JavaScript callbacks can be triggered (for progress ) comment(# indicators and the likes\). All callbacks get access to the ) comment(# request object, which holds the underlying XMLHttpRequest. ) comment(#) comment(# To access the server response, use request.responseText, to) comment(# find out the HTTP status, use request.status.) comment(#) comment(# Example:) comment(# link_to_remote word,) comment(# :url => { :action => "undo", :n => word_counter },) comment(# :complete => "undoRequestCompleted(request\)") comment(#) comment(# The callbacks that may be specified are (in order\):) comment(#) comment(# :loading:: Called when the remote document is being ) comment(# loaded with data by the browser.) comment(# :loaded:: Called when the browser has finished loading) comment(# the remote document.) comment(# :interactive:: Called when the user can interact with the ) comment(# remote document, even though it has not ) comment(# finished loading.) comment(# :success:: Called when the XMLHttpRequest is completed,) comment(# and the HTTP status code is in the 2XX range.) comment(# :failure:: Called when the XMLHttpRequest is completed,) comment(# and the HTTP status code is not in the 2XX) comment(# range.) comment(# :complete:: Called when the XMLHttpRequest is complete ) comment(# (fires after success/failure if they are ) comment(# present\).) comment(# ) comment(# You can further refine :success and :failure by ) comment(# adding additional callbacks for specific status codes.) comment(#) comment(# Example:) comment(# link_to_remote word,) comment(# :url => { :action => "action" },) comment(# 404 => "alert('Not found...? Wrong URL...?'\)",) comment(# :failure => "alert('HTTP Error ' + request.status + '!'\)") comment(#) comment(# A status code callback overrides the success/failure handlers if ) comment(# present.) comment(#) comment(# If you for some reason or another need synchronous processing (that'll) comment(# block the browser while the request is happening\), you can specify ) comment(# options[:type] = :synchronous.) comment(#) comment(# You can customize further browser side call logic by passing in) comment(# JavaScript code snippets via some optional parameters. In their order ) comment(# of use these are:) comment(#) comment(# :confirm:: Adds confirmation dialog.) comment(# :condition:: Perform remote request conditionally) comment(# by this expression. Use this to) comment(# describe browser-side conditions when) comment(# request should not be initiated.) comment(# :before:: Called before request is initiated.) comment(# :after:: Called immediately after request was) comment(# initiated and before :loading.) comment(# :submit:: Specifies the DOM element ID that's used) comment(# as the parent of the form elements. By ) comment(# default this is the current form, but) comment(# it could just as well be the ID of a) comment(# table row or any other DOM element.) reserved(def) method(link_to_remote)operator(()ident(name)operator(,) ident(options) operator(=) operator({)operator(})operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) ident(link_to_function)operator(()ident(name)operator(,) ident(remote_function)operator(()ident(options)operator(\))operator(,) ident(html_options)operator(\)) reserved(end) comment(# Periodically calls the specified url (options[:url]\) every ) comment(# options[:frequency] seconds (default is 10\). Usually used to) comment(# update a specified div (options[:update]\) with the results ) comment(# of the remote call. The options for specifying the target with :url ) comment(# and defining callbacks is the same as link_to_remote.) reserved(def) method(periodically_call_remote)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(frequency) operator(=) ident(options)operator([)symbol(:frequency)operator(]) operator(||) integer(10) comment(# every ten seconds by default) ident(code) operator(=) stringcontent(}, )inlinecontent(\))delimiter(")> ident(javascript_tag)operator(()ident(code)operator(\)) reserved(end) comment(# Returns a form tag that will submit using XMLHttpRequest in the ) comment(# background instead of the regular reloading POST arrangement. Even ) comment(# though it's using JavaScript to serialize the form elements, the form) comment(# submission will work just like a regular submission as viewed by the) comment(# receiving side (all elements available in params\). The options for ) comment(# specifying the target with :url and defining callbacks is the same as) comment(# link_to_remote.) comment(#) comment(# A "fall-through" target for browsers that doesn't do JavaScript can be) comment(# specified with the :action/:method options on :html.) comment(#) comment(# Example:) comment(# form_remote_tag :html => { :action => ) comment(# url_for(:controller => "some", :action => "place"\) }) comment(#) comment(# The Hash passed to the :html key is equivalent to the options (2nd\) ) comment(# argument in the FormTagHelper.form_tag method.) comment(#) comment(# By default the fall-through action is the same as the one specified in ) comment(# the :url (and the default method is :post\).) reserved(def) method(form_remote_tag)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator([)symbol(:form)operator(]) operator(=) pre_constant(true) ident(options)operator([)symbol(:html)operator(]) operator(||=) operator({)operator(}) ident(options)operator([)symbol(:html)operator(])operator([)symbol(:onsubmit)operator(]) operator(=) stringcontent(; return false;)delimiter(")> ident(options)operator([)symbol(:html)operator(])operator([)symbol(:action)operator(]) operator(=) ident(options)operator([)symbol(:html)operator(])operator([)symbol(:action)operator(]) operator(||) ident(url_for)operator(()ident(options)operator([)symbol(:url)operator(])operator(\)) ident(options)operator([)symbol(:html)operator(])operator([)symbol(:method)operator(]) operator(=) ident(options)operator([)symbol(:html)operator(])operator([)symbol(:method)operator(]) operator(||) string ident(tag)operator(()stringoperator(,) ident(options)operator([)symbol(:html)operator(])operator(,) pre_constant(true)operator(\)) reserved(end) comment(# Works like form_remote_tag, but uses form_for semantics.) reserved(def) method(remote_form_for)operator(()ident(object_name)operator(,) operator(*)ident(args)operator(,) operator(&)ident(proc)operator(\)) ident(options) operator(=) ident(args)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(args)operator(.)ident(pop) operator(:) operator({)operator(}) ident(concat)operator(()ident(form_remote_tag)operator(()ident(options)operator(\))operator(,) ident(proc)operator(.)ident(binding)operator(\)) ident(fields_for)operator(()ident(object_name)operator(,) operator(*)operator(()ident(args) operator(<<) ident(options)operator(\))operator(,) operator(&)ident(proc)operator(\)) ident(concat)operator(()string)delimiter(')>operator(,) ident(proc)operator(.)ident(binding)operator(\)) reserved(end) ident(alias_method) symbol(:form_remote_for)operator(,) symbol(:remote_form_for) comment(# Returns a button input tag that will submit form using XMLHttpRequest ) comment(# in the background instead of regular reloading POST arrangement. ) comment(# options argument is the same as in form_remote_tag.) reserved(def) method(submit_to_remote)operator(()ident(name)operator(,) ident(value)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator([)symbol(:with)operator(]) operator(||=) string ident(options)operator([)symbol(:html)operator(]) operator(||=) operator({)operator(}) ident(options)operator([)symbol(:html)operator(])operator([)symbol(:type)operator(]) operator(=) string ident(options)operator([)symbol(:html)operator(])operator([)symbol(:onclick)operator(]) operator(=) stringcontent(; return false;)delimiter(")> ident(options)operator([)symbol(:html)operator(])operator([)symbol(:name)operator(]) operator(=) ident(name) ident(options)operator([)symbol(:html)operator(])operator([)symbol(:value)operator(]) operator(=) ident(value) ident(tag)operator(()stringoperator(,) ident(options)operator([)symbol(:html)operator(])operator(,) pre_constant(false)operator(\)) reserved(end) comment(# Returns a JavaScript function (or expression\) that'll update a DOM ) comment(# element according to the options passed.) comment(#) comment(# * :content: The content to use for updating. Can be left out) comment(# if using block, see example.) comment(# * :action: Valid options are :update (assumed by default\), ) comment(# :empty, :remove) comment(# * :position If the :action is :update, you can optionally ) comment(# specify one of the following positions: :before, :top, :bottom, ) comment(# :after.) comment(#) comment(# Examples:) comment(# <%= javascript_tag(update_element_function("products", ) comment(# :position => :bottom, :content => "

    New product!

    "\)\) %>) comment(#) comment(# <% replacement_function = update_element_function("products"\) do %>) comment(#

    Product 1

    ) comment(#

    Product 2

    ) comment(# <% end %>) comment(# <%= javascript_tag(replacement_function\) %>) comment(#) comment(# This method can also be used in combination with remote method call ) comment(# where the result is evaluated afterwards to cause multiple updates on) comment(# a page. Example:) comment(#) comment(# # Calling view) comment(# <%= form_remote_tag :url => { :action => "buy" }, ) comment(# :complete => evaluate_remote_response %>) comment(# all the inputs here...) comment(#) comment(# # Controller action) comment(# def buy) comment(# @product = Product.find(1\)) comment(# end) comment(#) comment(# # Returning view) comment(# <%= update_element_function() comment(# "cart", :action => :update, :position => :bottom, ) comment(# :content => "

    New Product: #{@product.name}

    "\)\) %>) comment(# <% update_element_function("status", :binding => binding\) do %>) comment(# You've bought a new product!) comment(# <% end %>) comment(#) comment(# Notice how the second call doesn't need to be in an ERb output block) comment(# since it uses a block and passes in the binding to render directly. ) comment(# This trick will however only work in ERb (not Builder or other ) comment(# template forms\).) comment(#) comment(# See also JavaScriptGenerator and update_page.) reserved(def) method(update_element_function)operator(()ident(element_id)operator(,) ident(options) operator(=) operator({)operator(})operator(,) operator(&)ident(block)operator(\)) ident(content) operator(=) ident(escape_javascript)operator(()ident(options)operator([)symbol(:content)operator(]) operator(||) stringoperator(\)) ident(content) operator(=) ident(escape_javascript)operator(()ident(capture)operator(()operator(&)ident(block)operator(\))operator(\)) reserved(if) ident(block) ident(javascript_function) operator(=) reserved(case) operator(()ident(options)operator([)symbol(:action)operator(]) operator(||) symbol(:update)operator(\)) reserved(when) symbol(:update) reserved(if) ident(options)operator([)symbol(:position)operator(]) stringcontent((')inlinecontent(',')inlinecontent('\))delimiter(")> reserved(else) stringcontent('\).innerHTML = ')inlinecontent(')delimiter(")> reserved(end) reserved(when) symbol(:empty) stringcontent('\).innerHTML = '')delimiter(")> reserved(when) symbol(:remove) stringcontent('\))delimiter(")> reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(javascript_function) operator(<<) string ident(options)operator([)symbol(:binding)operator(]) operator(?) ident(concat)operator(()ident(javascript_function)operator(,) ident(options)operator([)symbol(:binding)operator(])operator(\)) operator(:) ident(javascript_function) reserved(end) comment(# Returns 'eval(request.responseText\)' which is the JavaScript function) comment(# that form_remote_tag can call in :complete to evaluate a multiple) comment(# update return document using update_element_function calls.) reserved(def) method(evaluate_remote_response) string reserved(end) comment(# Returns the JavaScript needed for a remote function.) comment(# Takes the same arguments as link_to_remote.) comment(# ) comment(# Example:) comment(# ) reserved(def) method(remote_function)operator(()ident(options)operator(\)) ident(javascript_options) operator(=) ident(options_for_ajax)operator(()ident(options)operator(\)) ident(update) operator(=) string reserved(if) ident(options)operator([)symbol(:update)operator(]) reserved(and) ident(options)operator([)symbol(:update)operator(])operator(.)ident(is_a?)constant(Hash) ident(update) operator(=) operator([)operator(]) ident(update) operator(<<) stringcontent(')delimiter(")> reserved(if) ident(options)operator([)symbol(:update)operator(])operator([)symbol(:success)operator(]) ident(update) operator(<<) stringcontent(')delimiter(")> reserved(if) ident(options)operator([)symbol(:update)operator(])operator([)symbol(:failure)operator(]) ident(update) operator(=) string operator(+) ident(update)operator(.)ident(join)operator(()stringoperator(\)) operator(+) string reserved(elsif) ident(options)operator([)symbol(:update)operator(]) ident(update) operator(<<) stringcontent(')delimiter(")> reserved(end) ident(function) operator(=) ident(update)operator(.)ident(empty?) operator(?) string operator(:) stringcontent(, )delimiter(")> ident(url_options) operator(=) ident(options)operator([)symbol(:url)operator(]) ident(url_options) operator(=) ident(url_options)operator(.)ident(merge)operator(()symbol(:escape) operator(=)operator(>) pre_constant(false)operator(\)) reserved(if) ident(url_options)operator(.)ident(is_a?) constant(Hash) ident(function) operator(<<) stringcontent(')delimiter(")> ident(function) operator(<<) stringcontent(\))delimiter(")> ident(function) operator(=) stringcontent(; )inlinedelimiter(")> reserved(if) ident(options)operator([)symbol(:before)operator(]) ident(function) operator(=) stringcontent(; )inlinedelimiter(")> reserved(if) ident(options)operator([)symbol(:after)operator(]) ident(function) operator(=) stringcontent(\) { )inlinecontent(; })delimiter(")> reserved(if) ident(options)operator([)symbol(:condition)operator(]) ident(function) operator(=) stringcontent('\)\) { )inlinecontent(; })delimiter(")> reserved(if) ident(options)operator([)symbol(:confirm)operator(]) reserved(return) ident(function) reserved(end) comment(# Observes the field with the DOM ID specified by +field_id+ and makes) comment(# an Ajax call when its contents have changed.) comment(# ) comment(# Required +options+ are either of:) comment(# :url:: +url_for+-style options for the action to call) comment(# when the field has changed.) comment(# :function:: Instead of making a remote call to a URL, you) comment(# can specify a function to be called instead.) comment(# ) comment(# Additional options are:) comment(# :frequency:: The frequency (in seconds\) at which changes to) comment(# this field will be detected. Not setting this) comment(# option at all or to a value equal to or less than) comment(# zero will use event based observation instead of) comment(# time based observation.) comment(# :update:: Specifies the DOM ID of the element whose ) comment(# innerHTML should be updated with the) comment(# XMLHttpRequest response text.) comment(# :with:: A JavaScript expression specifying the) comment(# parameters for the XMLHttpRequest. This defaults) comment(# to 'value', which in the evaluated context ) comment(# refers to the new field value. If you specify a) comment(# string without a "=", it'll be extended to mean) comment(# the form key that the value should be assigned to.) comment(# So :with => "term" gives "'term'=value". If a "=" is) comment(# present, no extension will happen.) comment(# :on:: Specifies which event handler to observe. By default,) comment(# it's set to "changed" for text fields and areas and) comment(# "click" for radio buttons and checkboxes. With this,) comment(# you can specify it instead to be "blur" or "focus" or) comment(# any other event.) comment(#) comment(# Additionally, you may specify any of the options documented in) comment(# link_to_remote.) reserved(def) method(observe_field)operator(()ident(field_id)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) reserved(if) ident(options)operator([)symbol(:frequency)operator(]) operator(&&) ident(options)operator([)symbol(:frequency)operator(]) operator(>) integer(0) ident(build_observer)operator(()stringoperator(,) ident(field_id)operator(,) ident(options)operator(\)) reserved(else) ident(build_observer)operator(()stringoperator(,) ident(field_id)operator(,) ident(options)operator(\)) reserved(end) reserved(end) comment(# Like +observe_field+, but operates on an entire form identified by the) comment(# DOM ID +form_id+. +options+ are the same as +observe_field+, except ) comment(# the default value of the :with option evaluates to the) comment(# serialized (request string\) value of the form.) reserved(def) method(observe_form)operator(()ident(form_id)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) reserved(if) ident(options)operator([)symbol(:frequency)operator(]) ident(build_observer)operator(()stringoperator(,) ident(form_id)operator(,) ident(options)operator(\)) reserved(else) ident(build_observer)operator(()stringoperator(,) ident(form_id)operator(,) ident(options)operator(\)) reserved(end) reserved(end) comment(# All the methods were moved to GeneratorMethods so that ) comment(# #include_helpers_from_context has nothing to overwrite.) reserved(class) class(JavaScriptGenerator) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(context)operator(,) operator(&)ident(block)operator(\)) comment(#:nodoc:) instance_variable(@context)operator(,) instance_variable(@lines) operator(=) ident(context)operator(,) operator([)operator(]) ident(include_helpers_from_context) instance_variable(@context)operator(.)ident(instance_exec)operator(()pre_constant(self)operator(,) operator(&)ident(block)operator(\)) reserved(end) ident(private) reserved(def) method(include_helpers_from_context) instance_variable(@context)operator(.)ident(extended_by)operator(.)ident(each) reserved(do) operator(|)ident(mod)operator(|) ident(extend) ident(mod) reserved(unless) ident(mod)operator(.)ident(name) operator(=)operator(~) regexp reserved(end) ident(extend) constant(GeneratorMethods) reserved(end) comment(# JavaScriptGenerator generates blocks of JavaScript code that allow you ) comment(# to change the content and presentation of multiple DOM elements. Use ) comment(# this in your Ajax response bodies, either in a ) comment(#) comment(# mail_to "me@domain.com", "My email", :encode => "hex" # =>) comment(# My email) comment(#) comment(# You can also specify the cc address, bcc address, subject, and body parts of the message header to create a complex e-mail using the) comment(# corresponding +cc+, +bcc+, +subject+, and +body+ html_options keys. Each of these options are URI escaped and then appended to) comment(# the email_address before being output. Be aware that javascript keywords will not be escaped and may break this feature) comment(# when encoding with javascript.) comment(# Examples:) comment(# mail_to "me@domain.com", "My email", :cc => "ccaddress@domain.com", :bcc => "bccaddress@domain.com", :subject => "This is an example email", :body => "This is the body of the message." # =>) comment(# My email) reserved(def) method(mail_to)operator(()ident(email_address)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(html_options) operator(=) operator({)operator(})operator(\)) ident(html_options) operator(=) ident(html_options)operator(.)ident(stringify_keys) ident(encode) operator(=) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\)) ident(cc)operator(,) ident(bcc)operator(,) ident(subject)operator(,) ident(body) operator(=) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\))operator(,) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\))operator(,) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\))operator(,) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\)) ident(string) operator(=) string ident(extras) operator(=) string ident(extras) operator(<<) stringoperator(,) stringoperator(\))inline_delimiter(})>content(&)delimiter(")> reserved(unless) ident(cc)operator(.)ident(nil?) ident(extras) operator(<<) stringoperator(,) stringoperator(\))inline_delimiter(})>content(&)delimiter(")> reserved(unless) ident(bcc)operator(.)ident(nil?) ident(extras) operator(<<) stringoperator(,) stringoperator(\))inline_delimiter(})>content(&)delimiter(")> reserved(unless) ident(body)operator(.)ident(nil?) ident(extras) operator(<<) stringoperator(,) stringoperator(\))inline_delimiter(})>content(&)delimiter(")> reserved(unless) ident(subject)operator(.)ident(nil?) ident(extras) operator(=) string operator(<<) ident(extras)operator(.)ident(gsub!)operator(()regexpoperator(,)stringoperator(\)) reserved(unless) ident(extras)operator(.)ident(empty?) ident(email_address_obfuscated) operator(=) ident(email_address)operator(.)ident(dup) ident(email_address_obfuscated)operator(.)ident(gsub!)operator(()regexpoperator(,) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\))operator(\)) reserved(if) ident(html_options)operator(.)ident(has_key?)operator(()stringoperator(\)) ident(email_address_obfuscated)operator(.)ident(gsub!)operator(()regexpoperator(,) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\))operator(\)) reserved(if) ident(html_options)operator(.)ident(has_key?)operator(()stringoperator(\)) reserved(if) ident(encode) operator(==) string ident(tmp) operator(=) stringoperator(,) ident(name) operator(||) ident(email_address)operator(,) ident(html_options)operator(.)ident(merge)operator(()operator({) string operator(=)operator(>) stringoperator(+)ident(email_address)operator(.)ident(to_s)operator(+)ident(extras) operator(})operator(\))operator(\))inline_delimiter(})>content('\);)delimiter(")> reserved(for) ident(i) reserved(in) integer(0)operator(...)ident(tmp)operator(.)ident(length) ident(string) operator(<<) ident(sprintf)operator(()stringoperator(,)ident(tmp)operator([)ident(i)operator(])operator(\)) reserved(end) stringeval(unescape(')inlinecontent('\)\))delimiter(")> reserved(elsif) ident(encode) operator(==) string reserved(for) ident(i) reserved(in) integer(0)operator(...)ident(email_address)operator(.)ident(length) reserved(if) ident(email_address)operator([)ident(i)operator(,)integer(1)operator(]) operator(=)operator(~) regexp ident(string) operator(<<) ident(sprintf)operator(()stringoperator(,)ident(email_address)operator([)ident(i)operator(])operator(\)) reserved(else) ident(string) operator(<<) ident(email_address)operator([)ident(i)operator(,)integer(1)operator(]) reserved(end) reserved(end) ident(content_tag) stringoperator(,) ident(name) operator(||) ident(email_address_obfuscated)operator(,) ident(html_options)operator(.)ident(merge)operator(()operator({) string operator(=)operator(>) stringinlinedelimiter(")> operator(})operator(\)) reserved(else) ident(content_tag) stringoperator(,) ident(name) operator(||) ident(email_address_obfuscated)operator(,) ident(html_options)operator(.)ident(merge)operator(()operator({) string operator(=)operator(>) stringinlinedelimiter(")> operator(})operator(\)) reserved(end) reserved(end) comment(# Returns true if the current page uri is generated by the options passed (in url_for format\).) reserved(def) method(current_page?)operator(()ident(options)operator(\)) constant(CGI)operator(.)ident(escapeHTML)operator(()ident(url_for)operator(()ident(options)operator(\))operator(\)) operator(==) instance_variable(@controller)operator(.)ident(request)operator(.)ident(request_uri) reserved(end) ident(private) reserved(def) method(convert_options_to_javascript!)operator(()ident(html_options)operator(\)) ident(confirm)operator(,) ident(popup)operator(,) ident(post) operator(=) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\))operator(,) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\))operator(,) ident(html_options)operator(.)ident(delete)operator(()stringoperator(\)) ident(html_options)operator([)stringoperator(]) operator(=) reserved(case) reserved(when) ident(popup) operator(&&) ident(post) ident(raise) constant(ActionView)operator(::)constant(ActionViewError)operator(,) string reserved(when) ident(confirm) operator(&&) ident(popup) stringcontent(\) { )inlinecontent( };return false;)delimiter(")> reserved(when) ident(confirm) operator(&&) ident(post) stringcontent(\) { )inlinecontent( };return false;)delimiter(")> reserved(when) ident(confirm) stringcontent(;)delimiter(")> reserved(when) ident(post) stringcontent(return false;)delimiter(")> reserved(when) ident(popup) ident(popup_javascript_function)operator(()ident(popup)operator(\)) operator(+) string reserved(else) ident(html_options)operator([)stringoperator(]) reserved(end) reserved(end) reserved(def) method(confirm_javascript_function)operator(()ident(confirm)operator(\)) stringcontent('\))delimiter(")> reserved(end) reserved(def) method(popup_javascript_function)operator(()ident(popup)operator(\)) ident(popup)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) operator(?) stringcontent(',')inlinecontent('\);)delimiter(")> operator(:) string reserved(end) reserved(def) method(post_javascript_function) string reserved(end) comment(# Processes the _html_options_ hash, converting the boolean) comment(# attributes from true/false form into the form required by) comment(# HTML/XHTML. (An attribute is considered to be boolean if) comment(# its name is listed in the given _bool_attrs_ array.\)) comment(#) comment(# More specifically, for each boolean attribute in _html_options_) comment(# given as:) comment(#) comment(# "attr" => bool_value) comment(#) comment(# if the associated _bool_value_ evaluates to true, it is) comment(# replaced with the attribute's name; otherwise the attribute is) comment(# removed from the _html_options_ hash. (See the XHTML 1.0 spec,) comment(# section 4.5 "Attribute Minimization" for more:) comment(# http://www.w3.org/TR/xhtml1/#h-4.5\)) comment(#) comment(# Returns the updated _html_options_ hash, which is also modified) comment(# in place.) comment(#) comment(# Example:) comment(#) comment(# convert_boolean_attributes!( html_options,) comment(# %w( checked disabled readonly \) \)) reserved(def) method(convert_boolean_attributes!)operator(()ident(html_options)operator(,) ident(bool_attrs)operator(\)) ident(bool_attrs)operator(.)ident(each) operator({) operator(|)ident(x)operator(|) ident(html_options)operator([)ident(x)operator(]) operator(=) ident(x) reserved(if) ident(html_options)operator(.)ident(delete)operator(()ident(x)operator(\)) operator(}) ident(html_options) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionView) comment(# There's also a convenience method for rendering sub templates within the current controller that depends on a single object ) comment(# (we call this kind of sub templates for partials\). It relies on the fact that partials should follow the naming convention of being ) comment(# prefixed with an underscore -- as to separate them from regular templates that could be rendered on their own. ) comment(#) comment(# In a template for Advertiser#account:) comment(#) comment(# <%= render :partial => "account" %>) comment(#) comment(# This would render "advertiser/_account.rhtml" and pass the instance variable @account in as a local variable +account+ to ) comment(# the template for display.) comment(#) comment(# In another template for Advertiser#buy, we could have:) comment(#) comment(# <%= render :partial => "account", :locals => { :account => @buyer } %>) comment(#) comment(# <% for ad in @advertisements %>) comment(# <%= render :partial => "ad", :locals => { :ad => ad } %>) comment(# <% end %>) comment(#) comment(# This would first render "advertiser/_account.rhtml" with @buyer passed in as the local variable +account+, then render ) comment(# "advertiser/_ad.rhtml" and pass the local variable +ad+ to the template for display.) comment(#) comment(# == Rendering a collection of partials) comment(#) comment(# The example of partial use describes a familiar pattern where a template needs to iterate over an array and render a sub) comment(# template for each of the elements. This pattern has been implemented as a single method that accepts an array and renders) comment(# a partial by the same name as the elements contained within. So the three-lined example in "Using partials" can be rewritten) comment(# with a single line:) comment(#) comment(# <%= render :partial => "ad", :collection => @advertisements %>) comment(#) comment(# This will render "advertiser/_ad.rhtml" and pass the local variable +ad+ to the template for display. An iteration counter) comment(# will automatically be made available to the template with a name of the form +partial_name_counter+. In the case of the ) comment(# example above, the template would be fed +ad_counter+.) comment(#) comment(# NOTE: Due to backwards compatibility concerns, the collection can't be one of hashes. Normally you'd also just keep domain objects,) comment(# like Active Records, in there.) comment(# ) comment(# == Rendering shared partials) comment(#) comment(# Two controllers can share a set of partials and render them like this:) comment(#) comment(# <%= render :partial => "advertisement/ad", :locals => { :ad => @advertisement } %>) comment(#) comment(# This will render the partial "advertisement/_ad.rhtml" regardless of which controller this is being called from.) reserved(module) class(Partials) comment(# Deprecated, use render :partial) reserved(def) method(render_partial)operator(()ident(partial_path)operator(,) ident(local_assigns) operator(=) pre_constant(nil)operator(,) ident(deprecated_local_assigns) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(path)operator(,) ident(partial_name) operator(=) ident(partial_pieces)operator(()ident(partial_path)operator(\)) ident(object) operator(=) ident(extracting_object)operator(()ident(partial_name)operator(,) ident(local_assigns)operator(,) ident(deprecated_local_assigns)operator(\)) ident(local_assigns) operator(=) ident(extract_local_assigns)operator(()ident(local_assigns)operator(,) ident(deprecated_local_assigns)operator(\)) ident(local_assigns) operator(=) ident(local_assigns) operator(?) ident(local_assigns)operator(.)ident(clone) operator(:) operator({)operator(}) ident(add_counter_to_local_assigns!)operator(()ident(partial_name)operator(,) ident(local_assigns)operator(\)) ident(add_object_to_local_assigns!)operator(()ident(partial_name)operator(,) ident(local_assigns)operator(,) ident(object)operator(\)) reserved(if) ident(logger) constant(ActionController)operator(::)constant(Base)operator(.)ident(benchmark)operator(()stringcontent(/_)inlinedelimiter(")>operator(,) constant(Logger)operator(::)constant(DEBUG)operator(,) pre_constant(false)operator(\)) reserved(do) ident(render)operator(()stringcontent(/_)inlinedelimiter(")>operator(,) ident(local_assigns)operator(\)) reserved(end) reserved(else) ident(render)operator(()stringcontent(/_)inlinedelimiter(")>operator(,) ident(local_assigns)operator(\)) reserved(end) reserved(end) comment(# Deprecated, use render :partial, :collection) reserved(def) method(render_partial_collection)operator(()ident(partial_name)operator(,) ident(collection)operator(,) ident(partial_spacer_template) operator(=) pre_constant(nil)operator(,) ident(local_assigns) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(collection_of_partials) operator(=) constant(Array)operator(.)ident(new) ident(counter_name) operator(=) ident(partial_counter_name)operator(()ident(partial_name)operator(\)) ident(local_assigns) operator(=) ident(local_assigns) operator(?) ident(local_assigns)operator(.)ident(clone) operator(:) operator({)operator(}) ident(collection)operator(.)ident(each_with_index) reserved(do) operator(|)ident(element)operator(,) ident(counter)operator(|) ident(local_assigns)operator([)ident(counter_name)operator(]) operator(=) ident(counter) ident(collection_of_partials)operator(.)ident(push)operator(()ident(render_partial)operator(()ident(partial_name)operator(,) ident(element)operator(,) ident(local_assigns)operator(\))operator(\)) reserved(end) reserved(return) string reserved(if) ident(collection_of_partials)operator(.)ident(empty?) reserved(if) ident(partial_spacer_template) ident(spacer_path)operator(,) ident(spacer_name) operator(=) ident(partial_pieces)operator(()ident(partial_spacer_template)operator(\)) ident(collection_of_partials)operator(.)ident(join)operator(()ident(render)operator(()stringcontent(/_)inlinedelimiter(")>operator(\))operator(\)) reserved(else) ident(collection_of_partials)operator(.)ident(join) reserved(end) reserved(end) ident(alias_method) symbol(:render_collection_of_partials)operator(,) symbol(:render_partial_collection) ident(private) reserved(def) method(partial_pieces)operator(()ident(partial_path)operator(\)) reserved(if) ident(partial_path)operator(.)ident(include?)operator(()stringoperator(\)) reserved(return) constant(File)operator(.)ident(dirname)operator(()ident(partial_path)operator(\))operator(,) constant(File)operator(.)ident(basename)operator(()ident(partial_path)operator(\)) reserved(else) reserved(return) ident(controller)operator(.)ident(class)operator(.)ident(controller_path)operator(,) ident(partial_path) reserved(end) reserved(end) reserved(def) method(partial_counter_name)operator(()ident(partial_name)operator(\)) stringoperator(\))operator(.)ident(last)inline_delimiter(})>content(_counter)delimiter(")>operator(.)ident(intern) reserved(end) reserved(def) method(extracting_object)operator(()ident(partial_name)operator(,) ident(local_assigns)operator(,) ident(deprecated_local_assigns)operator(\)) reserved(if) ident(local_assigns)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(||) ident(local_assigns)operator(.)ident(nil?) ident(controller)operator(.)ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(else) comment(# deprecated form where object could be passed in as second parameter) ident(local_assigns) reserved(end) reserved(end) reserved(def) method(extract_local_assigns)operator(()ident(local_assigns)operator(,) ident(deprecated_local_assigns)operator(\)) ident(local_assigns)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(local_assigns) operator(:) ident(deprecated_local_assigns) reserved(end) reserved(def) method(add_counter_to_local_assigns!)operator(()ident(partial_name)operator(,) ident(local_assigns)operator(\)) ident(counter_name) operator(=) ident(partial_counter_name)operator(()ident(partial_name)operator(\)) ident(local_assigns)operator([)ident(counter_name)operator(]) operator(=) integer(1) reserved(unless) ident(local_assigns)operator(.)ident(has_key?)operator(()ident(counter_name)operator(\)) reserved(end) reserved(def) method(add_object_to_local_assigns!)operator(()ident(partial_name)operator(,) ident(local_assigns)operator(,) ident(object)operator(\)) ident(local_assigns)operator([)ident(partial_name)operator(.)ident(intern)operator(]) operator(||=) reserved(if) ident(object)operator(.)ident(is_a?)operator(()constant(ActionView)operator(::)constant(Base)operator(::)constant(ObjectWrapper)operator(\)) ident(object)operator(.)ident(value) reserved(else) ident(object) reserved(end) operator(||) ident(controller)operator(.)ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionView) comment(# The TemplateError exception is raised when the compilation of the template fails. This exception then gathers a) comment(# bunch of intimate details and uses it to report a very precise exception message.) reserved(class) class(TemplateError) operator(<) constant(ActionViewError) comment(#:nodoc:) constant(SOURCE_CODE_RADIUS) operator(=) integer(3) ident(attr_reader) symbol(:original_exception) reserved(def) method(initialize)operator(()ident(base_path)operator(,) ident(file_name)operator(,) ident(assigns)operator(,) ident(source)operator(,) ident(original_exception)operator(\)) instance_variable(@base_path)operator(,) instance_variable(@assigns)operator(,) instance_variable(@source)operator(,) instance_variable(@original_exception) operator(=) ident(base_path)operator(,) ident(assigns)operator(,) ident(source)operator(,) ident(original_exception) instance_variable(@file_name) operator(=) ident(file_name) reserved(end) reserved(def) method(message) ident(original_exception)operator(.)ident(message) reserved(end) reserved(def) method(sub_template_message) reserved(if) instance_variable(@sub_templates) string operator(+) instance_variable(@sub_templates)operator(.)ident(collect) operator({) operator(|)ident(template)operator(|) ident(strip_base_path)operator(()ident(template)operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(else) string reserved(end) reserved(end) reserved(def) method(source_extract)operator(()ident(indention) operator(=) integer(0)operator(\)) ident(source_code) operator(=) constant(IO)operator(.)ident(readlines)operator(()instance_variable(@file_name)operator(\)) ident(start_on_line) operator(=) operator([) ident(line_number) operator(-) constant(SOURCE_CODE_RADIUS) operator(-) integer(1)operator(,) integer(0) operator(])operator(.)ident(max) ident(end_on_line) operator(=) operator([) ident(line_number) operator(+) constant(SOURCE_CODE_RADIUS) operator(-) integer(1)operator(,) ident(source_code)operator(.)ident(length)operator(])operator(.)ident(min) ident(line_counter) operator(=) ident(start_on_line) ident(extract) operator(=) ident(source_code)operator([)ident(start_on_line)operator(..)ident(end_on_line)operator(])operator(.)ident(collect) reserved(do) operator(|)ident(line)operator(|) ident(line_counter) operator(+=) integer(1) string operator(*) ident(indention)inline_delimiter(})>inlinecontent(: )delimiter(")> operator(+) ident(line) reserved(end) ident(extract)operator(.)ident(join) reserved(end) reserved(def) method(sub_template_of)operator(()ident(file_name)operator(\)) instance_variable(@sub_templates) operator(||=) operator([)operator(]) instance_variable(@sub_templates) operator(<<) ident(file_name) reserved(end) reserved(def) method(line_number) reserved(if) ident(file_name) ident(regexp) operator(=) regexpcontent(:()char(\\d)content(+\))delimiter(/)> operator([)instance_variable(@original_exception)operator(.)ident(message)operator(,) instance_variable(@original_exception)operator(.)ident(clean_backtrace)operator(])operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(line)operator(|) reserved(return) global_variable($1)operator(.)ident(to_i) reserved(if) ident(regexp) operator(=)operator(~) ident(line) reserved(end) reserved(end) integer(0) reserved(end) reserved(def) method(file_name) ident(stripped) operator(=) ident(strip_base_path)operator(()instance_variable(@file_name)operator(\)) ident(stripped)operator([)integer(0)operator(]) operator(==) integer(?/) operator(?) ident(stripped)operator([)integer(1)operator(..)integer(-1)operator(]) operator(:) ident(stripped) reserved(end) reserved(def) method(to_s) stringcontent( ()inlinecontent(\) on line #)inlinecontent( of )inlinecontent(:)char(\\n)delimiter(")> operator(+) ident(source_extract) operator(+) string operator(+) ident(original_exception)operator(.)ident(clean_backtrace)operator(.)ident(join)operator(()stringoperator(\)) operator(+) string reserved(end) reserved(def) method(backtrace) operator([) stringcontent( of )inlinechar(\\n)char(\\n)inlinechar(\\n)content( )delimiter(")> operator(+) ident(original_exception)operator(.)ident(clean_backtrace)operator(.)ident(join)operator(()stringoperator(\)) operator(]) reserved(end) ident(private) reserved(def) method(strip_base_path)operator(()ident(file_name)operator(\)) ident(file_name) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(file_name)operator(\))operator(.)ident(gsub)operator(()regexpdelimiter(/)>operator(,) stringoperator(\)) ident(file_name)operator(.)ident(gsub)operator(()instance_variable(@base_path)operator(,) stringoperator(\)) reserved(end) reserved(end) reserved(end) constant(Exception)operator(::)constant(TraceSubstitutions) operator(<<) operator([)regexpoperator(,) stringoperator(]) reserved(if) reserved(defined?)operator(()constant(Exception)operator(::)constant(TraceSubstitutions)operator(\)) constant(Exception)operator(::)constant(TraceSubstitutions) operator(<<) operator([)regexpdelimiter(})>operator(,) stringoperator(]) reserved(if) reserved(defined?)operator(()constant(RAILS_ROOT)operator(\)) comment(#--) comment(# Copyright (c\) 2004 David Heinemeier Hansson) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#++) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string constant(ActionView)operator(::)constant(Base)operator(.)ident(class_eval) reserved(do) ident(include) constant(ActionView)operator(::)constant(Partials) reserved(end) constant(ActionView)operator(::)constant(Base)operator(.)ident(load_helpers)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string constant(ActionController)operator(::)constant(Base)operator(.)ident(logger) operator(=) pre_constant(nil) constant(ActionController)operator(::)constant(Base)operator(.)ident(ignore_missing_templates) operator(=) pre_constant(false) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(reload) reserved(rescue) ident(nilrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string comment(# Define the essentials) reserved(class) class(ActiveRecordTestConnector) ident(cattr_accessor) symbol(:able_to_connect) ident(cattr_accessor) symbol(:connected) comment(# Set our defaults) pre_constant(self)operator(.)ident(connected) operator(=) pre_constant(false) pre_constant(self)operator(.)ident(able_to_connect) operator(=) pre_constant(true) reserved(end) comment(# Try to grab AR) reserved(begin) constant(PATH_TO_AR) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) stringcontent(/lib/active_record)delimiter(")> reserved(unless) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:ActiveRecord)operator(\)) ident(require) stringcontent(/lib/active_record/fixtures)delimiter(")> reserved(unless) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:Fixtures)operator(\)) reserved(rescue) constant(Object) operator(=)operator(>) ident(e) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> constant(ActiveRecordTestConnector)operator(.)ident(able_to_connect) operator(=) pre_constant(false) reserved(end) comment(# Define the rest of the connector) reserved(class) class(ActiveRecordTestConnector) reserved(def) pre_constant(self)operator(.)method(setup) reserved(unless) pre_constant(self)operator(.)ident(connected) operator(||) operator(!)pre_constant(self)operator(.)ident(able_to_connect) ident(setup_connection) ident(load_schema) pre_constant(self)operator(.)ident(connected) operator(=) pre_constant(true) reserved(end) reserved(rescue) constant(Object) operator(=)operator(>) ident(e) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> comment(#$stderr.puts " #{e.backtrace.join("\\n "\)}\\n") pre_constant(self)operator(.)ident(able_to_connect) operator(=) pre_constant(false) reserved(end) ident(private) reserved(def) pre_constant(self)operator(.)method(setup_connection) reserved(if) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:ActiveRecord)operator(\)) reserved(begin) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(()symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:dbfile) operator(=)operator(>) stringoperator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) reserved(rescue) constant(Object) global_variable($stderr)operator(.)ident(puts) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(()symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:dbfile) operator(=)operator(>) stringoperator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) reserved(end) constant(Object)operator(.)ident(send)operator(()symbol(:const_set)operator(,) symbol(:QUOTED_TYPE)operator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(quote_column_name)operator(()stringoperator(\))operator(\)) reserved(unless) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:QUOTED_TYPE)operator(\)) reserved(else) ident(raise) string reserved(end) reserved(end) comment(# Load actionpack sqlite tables) reserved(def) pre_constant(self)operator(.)method(load_schema) constant(File)operator(.)ident(read)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(sql)operator(|) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(sql)operator(\)) reserved(unless) ident(sql)operator(.)ident(blank?) reserved(end) reserved(end) reserved(end) comment(# Test case for inheiritance ) reserved(class) class(ActiveRecordTestCase) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) comment(# Set our fixture path) pre_constant(self)operator(.)ident(fixture_path) operator(=) stringcontent(/fixtures/)delimiter(")> reserved(def) method(setup) ident(abort_tests) reserved(unless) constant(ActiveRecordTestConnector)operator(.)ident(connected) operator(=) pre_constant(true) reserved(end) comment(# Default so Test::Unit::TestCase doesn't complain) reserved(def) method(test_truth) reserved(end) ident(private) comment(# If things go wrong, we don't want to run our test cases. We'll just define them to test nothing.) reserved(def) method(abort_tests) pre_constant(self)operator(.)ident(class)operator(.)ident(public_instance_methods)operator(.)ident(grep)operator(()regexpoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) pre_constant(self)operator(.)ident(class)operator(.)ident(class_eval) operator({) ident(define_method)operator(()ident(method)operator(.)ident(to_sym)operator(\))operator({)operator(}) operator(}) reserved(end) reserved(end) reserved(end) constant(ActiveRecordTestConnector)operator(.)ident(setuprequire) stringcontent(/../active_record_unit)delimiter(")> ident(require) string reserved(class) class(ActiveRecordAssertionsController) operator(<) constant(ActionController)operator(::)constant(Base) pre_constant(self)operator(.)ident(template_root) operator(=) stringcontent(/../fixtures/)delimiter(")> comment(# fail with 1 bad column) reserved(def) method(nasty_columns_1) instance_variable(@company) operator(=) constant(Company)operator(.)ident(new) instance_variable(@company)operator(.)ident(name) operator(=) string instance_variable(@company)operator(.)ident(rating) operator(=) integer(2) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) comment(# fail with 2 bad columns) reserved(def) method(nasty_columns_2) instance_variable(@company) operator(=) constant(Company)operator(.)ident(new) instance_variable(@company)operator(.)ident(name) operator(=) string instance_variable(@company)operator(.)ident(rating) operator(=) integer(2) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) comment(# this will pass validation) reserved(def) method(good_company) instance_variable(@company) operator(=) constant(Company)operator(.)ident(new) instance_variable(@company)operator(.)ident(name) operator(=) string instance_variable(@company)operator(.)ident(rating) operator(=) integer(69) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) comment(# this will fail validation) reserved(def) method(bad_company) instance_variable(@company) operator(=) constant(Company)operator(.)ident(new) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) comment(# the safety dance......) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise)operator(;) reserved(end) reserved(end) reserved(class) class(ActiveRecordAssertionsControllerTest) operator(<) constant(ActiveRecordTestCase) ident(fixtures) symbol(:companies) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@controller) operator(=) constant(ActiveRecordAssertionsController)operator(.)ident(new) reserved(super) reserved(end) comment(# test for 1 bad apple column) reserved(def) method(test_some_invalid_columns) ident(process) symbol(:nasty_columns_1) ident(assert_success) ident(assert_invalid_record) string ident(assert_invalid_column_on_record) stringoperator(,) string ident(assert_valid_column_on_record) stringoperator(,) string ident(assert_valid_column_on_record) stringoperator(,) string reserved(end) comment(# test for 2 bad apples columns) reserved(def) method(test_all_invalid_columns) ident(process) symbol(:nasty_columns_2) ident(assert_success) ident(assert_invalid_record) string ident(assert_invalid_column_on_record) stringoperator(,) string ident(assert_invalid_column_on_record) stringoperator(,) string ident(assert_invalid_column_on_record) stringoperator(,) string reserved(end) comment(# ensure we have no problems with an ActiveRecord) reserved(def) method(test_valid_record) ident(process) symbol(:good_company) ident(assert_success) ident(assert_valid_record) string reserved(end) comment(# ensure we have problems with an ActiveRecord) reserved(def) method(test_invalid_record) ident(process) symbol(:bad_company) ident(assert_success) ident(assert_invalid_record) string reserved(end) reserved(end)comment(# Unfurl the safety net.) ident(path_to_ar) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(if) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:ActiveRecord)operator(\)) reserved(or) constant(File)operator(.)ident(exist?)operator(()ident(path_to_ar)operator(\)) reserved(begin) comment(# These tests exercise CGI::Session::ActiveRecordStore, so you're going to) comment(# need AR in a sibling directory to AP and have SQLite installed.) reserved(unless) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:ActiveRecord)operator(\)) ident(require) constant(File)operator(.)ident(join)operator(()ident(path_to_ar)operator(,) stringoperator(,) stringoperator(\)) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string comment(#ActiveRecord::Base.logger = Logger.new($stdout\)) reserved(begin) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(Session)operator(.)ident(establish_connection)operator(()symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) stringoperator(\)) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(Session)operator(.)ident(connection) reserved(rescue) constant(Object) global_variable($stderr)operator(.)ident(puts) string reserved(begin) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(Session)operator(.)ident(establish_connection)operator(()symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) stringoperator(\)) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(Session)operator(.)ident(connection) reserved(rescue) constant(Object) global_variable($stderr)operator(.)ident(puts) string ident(raise) constant(SystemExit) reserved(end) reserved(end) reserved(module) class(CommonActiveRecordStoreTests) reserved(def) method(test_basics) ident(s) operator(=) ident(session_class)operator(.)ident(new)operator(()symbol(:session_id) operator(=)operator(>) stringoperator(,) symbol(:data) operator(=)operator(>) operator({) string operator(=)operator(>) string operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(s)operator(.)ident(data)operator([)stringoperator(]) ident(assert) ident(s)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(s)operator(.)ident(data)operator([)stringoperator(]) ident(assert_not_nil) ident(t) operator(=) ident(session_class)operator(.)ident(find_by_session_id)operator(()stringoperator(\)) ident(assert_not_nil) ident(t)operator(.)ident(data) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(data)operator([)stringoperator(]) reserved(end) reserved(def) method(test_reload_same_session) instance_variable(@new_session)operator(.)ident(update) ident(reloaded) operator(=) constant(CGI)operator(::)constant(Session)operator(.)ident(new)operator(()constant(CGI)operator(.)ident(new)operator(,) string operator(=)operator(>) instance_variable(@new_session)operator(.)ident(session_id)operator(,) string operator(=)operator(>) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(\)) ident(assert_equal) stringoperator(,) ident(reloaded)operator([)stringoperator(]) reserved(end) reserved(def) method(test_tolerates_close_close) ident(assert_nothing_raised) reserved(do) instance_variable(@new_session)operator(.)ident(close) instance_variable(@new_session)operator(.)ident(close) reserved(end) reserved(end) reserved(end) reserved(class) class(ActiveRecordStoreTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(CommonActiveRecordStoreTests) reserved(def) method(session_class) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(Session) reserved(end) reserved(def) method(session_id_column) string reserved(end) reserved(def) method(setup) ident(session_class)operator(.)ident(create_table!) pre_constant(ENV)operator([)stringoperator(]) operator(=) string constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(.)ident(session_class) operator(=) ident(session_class) instance_variable(@cgi) operator(=) constant(CGI)operator(.)ident(new) instance_variable(@new_session) operator(=) constant(CGI)operator(::)constant(Session)operator(.)ident(new)operator(()instance_variable(@cgi)operator(,) string operator(=)operator(>) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(,) string operator(=)operator(>) pre_constant(true)operator(\)) instance_variable(@new_session)operator([)stringoperator(]) operator(=) string reserved(end) comment(# this test only applies for eager sesssion saving) comment(# def test_another_instance) comment(# @another = CGI::Session.new(@cgi, 'session_id' => @new_session.session_id, 'database_manager' => CGI::Session::ActiveRecordStore\)) comment(# assert_equal @new_session.session_id, @another.session_id) comment(# end) reserved(def) method(test_model_attribute) ident(assert_kind_of) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(Session)operator(,) instance_variable(@new_session)operator(.)ident(model) ident(assert_equal)operator(()operator({) string operator(=)operator(>) string operator(})operator(,) instance_variable(@new_session)operator(.)ident(model)operator(.)ident(data)operator(\)) reserved(end) reserved(def) method(test_save_unloaded_session) ident(c) operator(=) ident(session_class)operator(.)ident(connection) ident(bogus_class) operator(=) ident(c)operator(.)ident(quote)operator(()constant(Base64)operator(.)ident(encode64)operator(()stringoperator(\))operator(\)) ident(c)operator(.)ident(insert)operator(()stringcontent( (')inlinecontent(', 'data'\) VALUES ('abcdefghijklmnop', )inlinecontent(\))delimiter(")>operator(\)) ident(sess) operator(=) ident(session_class)operator(.)ident(find_by_session_id)operator(()stringoperator(\)) ident(assert_not_nil) ident(sess) ident(assert) operator(!)ident(sess)operator(.)ident(loaded?) comment(# because the session is not loaded, the save should be a no-op. If it) comment(# isn't, this'll try and unmarshall the bogus class, and should get an error.) ident(assert_nothing_raised) operator({) ident(sess)operator(.)ident(save) operator(}) reserved(end) reserved(def) method(teardown) ident(session_class)operator(.)ident(drop_table!) reserved(end) reserved(end) reserved(class) class(ColumnLimitTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@session_class) operator(=) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(Session) instance_variable(@session_class)operator(.)ident(create_table!) reserved(end) reserved(def) method(teardown) instance_variable(@session_class)operator(.)ident(drop_table!) reserved(end) reserved(def) method(test_protection_from_data_larger_than_column) comment(# Can't test this unless there is a limit) reserved(return) reserved(unless) ident(limit) operator(=) instance_variable(@session_class)operator(.)ident(data_column_size_limit) ident(too_big) operator(=) string operator(*) ident(limit) ident(s) operator(=) instance_variable(@session_class)operator(.)ident(new)operator(()symbol(:session_id) operator(=)operator(>) stringoperator(,) symbol(:data) operator(=)operator(>) operator({)string operator(=)operator(>) ident(too_big)operator(})operator(\)) ident(s)operator(.)ident(data) ident(assert_raise)operator(()constant(ActionController)operator(::)constant(SessionOverflowError)operator(\)) operator({) ident(s)operator(.)ident(save) operator(}) reserved(end) reserved(end) reserved(class) class(DeprecatedActiveRecordStoreTest) operator(<) constant(ActiveRecordStoreTest) reserved(def) method(session_id_column) string reserved(end) reserved(def) method(setup) ident(session_class)operator(.)ident(connection)operator(.)ident(execute) string ident(session_class)operator(.)ident(table_name) operator(=) string ident(session_class)operator(.)ident(send) symbol(:setup_sessid_compatibility!) pre_constant(ENV)operator([)stringoperator(]) operator(=) string constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(.)ident(session_class) operator(=) ident(session_class) instance_variable(@new_session) operator(=) constant(CGI)operator(::)constant(Session)operator(.)ident(new)operator(()constant(CGI)operator(.)ident(new)operator(,) string operator(=)operator(>) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(,) string operator(=)operator(>) pre_constant(true)operator(\)) instance_variable(@new_session)operator([)stringoperator(]) operator(=) string reserved(end) reserved(def) method(teardown) ident(session_class)operator(.)ident(connection)operator(.)ident(execute) string ident(session_class)operator(.)ident(table_name) operator(=) string reserved(end) reserved(end) reserved(class) class(SqlBypassActiveRecordStoreTest) operator(<) constant(ActiveRecordStoreTest) reserved(def) method(session_class) reserved(unless) instance_variable(@session_class) instance_variable(@session_class) operator(=) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(SqlBypass) instance_variable(@session_class)operator(.)ident(connection) operator(=) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(Session)operator(.)ident(connection) reserved(end) instance_variable(@session_class) reserved(end) reserved(def) method(test_model_attribute) ident(assert_kind_of) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(::)constant(SqlBypass)operator(,) instance_variable(@new_session)operator(.)ident(model) ident(assert_equal)operator(()operator({) string operator(=)operator(>) string operator(})operator(,) instance_variable(@new_session)operator(.)ident(model)operator(.)ident(data)operator(\)) reserved(end) reserved(end) comment(# End of safety net.) reserved(rescue) constant(Object) operator(=)operator(>) ident(e) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> comment(#$stderr.puts " #{e.backtrace.join("\\n "\)}") reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(PaginationTest) operator(<) constant(ActiveRecordTestCase) ident(fixtures) symbol(:topics)operator(,) symbol(:replies)operator(,) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:developers_projects) reserved(class) class(PaginationController) operator(<) constant(ActionController)operator(::)constant(Base) pre_constant(self)operator(.)ident(template_root) operator(=) stringcontent(/../fixtures/)delimiter(")> reserved(def) method(simple_paginate) instance_variable(@topic_pages)operator(,) instance_variable(@topics) operator(=) ident(paginate)operator(()symbol(:topics)operator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_per_page) instance_variable(@topic_pages)operator(,) instance_variable(@topics) operator(=) ident(paginate)operator(()symbol(:topics)operator(,) symbol(:per_page) operator(=)operator(>) integer(1)operator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_order) instance_variable(@topic_pages)operator(,) instance_variable(@topics) operator(=) ident(paginate)operator(()symbol(:topics)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_order_by) instance_variable(@topic_pages)operator(,) instance_variable(@topics) operator(=) ident(paginate)operator(()symbol(:topics)operator(,) symbol(:order_by) operator(=)operator(>) stringoperator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_include_and_order) instance_variable(@topic_pages)operator(,) instance_variable(@topics) operator(=) ident(paginate)operator(()symbol(:topics)operator(,) symbol(:include) operator(=)operator(>) symbol(:replies)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_conditions) instance_variable(@topic_pages)operator(,) instance_variable(@topics) operator(=) ident(paginate)operator(()symbol(:topics)operator(,) symbol(:conditions) operator(=)operator(>) operator([)string ?)delimiter(")>operator(,) integer(30)operator(.)ident(minutes)operator(.)ident(ago)operator(])operator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_class_name) instance_variable(@developer_pages)operator(,) instance_variable(@developers) operator(=) ident(paginate)operator(()symbol(:developers)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_singular_name) instance_variable(@developer_pages)operator(,) instance_variable(@developers) operator(=) ident(paginate)operator(()operator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_joins) instance_variable(@developer_pages)operator(,) instance_variable(@developers) operator(=) ident(paginate)operator(()symbol(:developers)operator(,) symbol(:joins) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_join) instance_variable(@developer_pages)operator(,) instance_variable(@developers) operator(=) ident(paginate)operator(()symbol(:developers)operator(,) symbol(:join) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(paginate_with_join_and_count) instance_variable(@developer_pages)operator(,) instance_variable(@developers) operator(=) ident(paginate)operator(()symbol(:developers)operator(,) symbol(:join) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:count) operator(=)operator(>) stringoperator(\)) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(rescue_errors)operator(()ident(e)operator(\)) ident(raise) ident(e) reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(PaginationController)operator(.)ident(new) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(super) reserved(end) comment(# Single Action Pagination Tests) reserved(def) method(test_simple_paginate) ident(get) symbol(:simple_paginate) ident(assert_equal) integer(1)operator(,) ident(assigns)operator(()symbol(:topic_pages)operator(\))operator(.)ident(page_count) ident(assert_equal) integer(3)operator(,) ident(assigns)operator(()symbol(:topics)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_paginate_with_per_page) ident(get) symbol(:paginate_with_per_page) ident(assert_equal) integer(1)operator(,) ident(assigns)operator(()symbol(:topics)operator(\))operator(.)ident(size) ident(assert_equal) integer(3)operator(,) ident(assigns)operator(()symbol(:topic_pages)operator(\))operator(.)ident(page_count) reserved(end) reserved(def) method(test_paginate_with_order) ident(get) symbol(:paginate_with_order) ident(expected) operator(=) operator([)ident(topics)operator(()symbol(:futurama)operator(\))operator(,) ident(topics)operator(()symbol(:harvey_birdman)operator(\))operator(,) ident(topics)operator(()symbol(:rails)operator(\))operator(]) ident(assert_equal) ident(expected)operator(,) ident(assigns)operator(()symbol(:topics)operator(\)) ident(assert_equal) integer(1)operator(,) ident(assigns)operator(()symbol(:topic_pages)operator(\))operator(.)ident(page_count) reserved(end) reserved(def) method(test_paginate_with_order_by) ident(get) symbol(:paginate_with_order) ident(expected) operator(=) ident(assigns)operator(()symbol(:topics)operator(\)) ident(get) symbol(:paginate_with_order_by) ident(assert_equal) ident(expected)operator(,) ident(assigns)operator(()symbol(:topics)operator(\)) ident(assert_equal) integer(1)operator(,) ident(assigns)operator(()symbol(:topic_pages)operator(\))operator(.)ident(page_count) reserved(end) reserved(def) method(test_paginate_with_conditions) ident(get) symbol(:paginate_with_conditions) ident(expected) operator(=) operator([)ident(topics)operator(()symbol(:rails)operator(\))operator(]) ident(assert_equal) ident(expected)operator(,) ident(assigns)operator(()symbol(:topics)operator(\)) ident(assert_equal) integer(1)operator(,) ident(assigns)operator(()symbol(:topic_pages)operator(\))operator(.)ident(page_count) reserved(end) reserved(def) method(test_paginate_with_class_name) ident(get) symbol(:paginate_with_class_name) ident(assert) ident(assigns)operator(()symbol(:developers)operator(\))operator(.)ident(size) operator(>) integer(0) ident(assert_equal) constant(DeVeLoPeR)operator(,) ident(assigns)operator(()symbol(:developers)operator(\))operator(.)ident(first)operator(.)ident(class) reserved(end) reserved(def) method(test_paginate_with_joins) ident(get) symbol(:paginate_with_joins) ident(assert_equal) integer(2)operator(,) ident(assigns)operator(()symbol(:developers)operator(\))operator(.)ident(size) ident(developer_names) operator(=) ident(assigns)operator(()symbol(:developers)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) ident(assert) ident(developer_names)operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(developer_names)operator(.)ident(include?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_paginate_with_join_and_conditions) ident(get) symbol(:paginate_with_joins) ident(expected) operator(=) ident(assigns)operator(()symbol(:developers)operator(\)) ident(get) symbol(:paginate_with_join) ident(assert_equal) ident(expected)operator(,) ident(assigns)operator(()symbol(:developers)operator(\)) reserved(end) reserved(def) method(test_paginate_with_join_and_count) ident(get) symbol(:paginate_with_joins) ident(expected) operator(=) ident(assigns)operator(()symbol(:developers)operator(\)) ident(get) symbol(:paginate_with_join_and_count) ident(assert_equal) ident(expected)operator(,) ident(assigns)operator(()symbol(:developers)operator(\)) reserved(end) reserved(def) method(test_paginate_with_include_and_order) ident(get) symbol(:paginate_with_include_and_order) ident(expected) operator(=) constant(Topic)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(10)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(assigns)operator(()symbol(:topics)operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string comment(# a controller class to facilitate the tests) reserved(class) class(ActionPackAssertionsController) operator(<) constant(ActionController)operator(::)constant(Base) comment(# this does absolutely nothing) reserved(def) method(nothing)operator(()operator(\)) ident(render_text) stringoperator(;) reserved(end) comment(# a standard template) reserved(def) method(hello_world)operator(()operator(\)) ident(render) stringoperator(;) reserved(end) comment(# a standard template) reserved(def) method(hello_xml_world)operator(()operator(\)) ident(render) stringoperator(;) reserved(end) comment(# a redirect to an internal location) reserved(def) method(redirect_internal)operator(()operator(\)) ident(redirect_to) stringoperator(;) reserved(end) reserved(def) method(redirect_to_action)operator(()operator(\)) ident(redirect_to) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(1)operator(,) symbol(:params) operator(=)operator(>) operator({) string operator(=)operator(>) string operator(})operator(;) reserved(end) reserved(def) method(redirect_to_controller)operator(()operator(\)) ident(redirect_to) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(;) reserved(end) reserved(def) method(redirect_to_path)operator(()operator(\)) ident(redirect_to) string reserved(end) reserved(def) method(redirect_to_named_route)operator(()operator(\)) ident(redirect_to) ident(route_one_url) reserved(end) comment(# a redirect to an external location) reserved(def) method(redirect_external)operator(()operator(\)) ident(redirect_to_url) stringoperator(;) reserved(end) comment(# a 404) reserved(def) method(response404)operator(()operator(\)) ident(render_text) stringoperator(,) stringoperator(;) reserved(end) comment(# a 500) reserved(def) method(response500)operator(()operator(\)) ident(render_text) stringoperator(,) stringoperator(;) reserved(end) comment(# a fictional 599) reserved(def) method(response599)operator(()operator(\)) ident(render_text) stringoperator(,) stringoperator(;) reserved(end) comment(# putting stuff in the flash) reserved(def) method(flash_me) ident(flash)operator([)stringoperator(]) operator(=) string ident(render_text) string reserved(end) comment(# we have a flash, but nothing is in it) reserved(def) method(flash_me_naked) ident(flash)operator(.)ident(clear) ident(render_text) string reserved(end) comment(# assign some template instance variables) reserved(def) method(assign_this) instance_variable(@howdy) operator(=) string ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(render_based_on_parameters) ident(render_text) stringoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(render_url) ident(render_text) string)inline) stringoperator(,) symbol(:only_path) operator(=)operator(>) pre_constant(true)operator(\))inline_delimiter(})>content()delimiter(")> reserved(end) comment(# puts something in the session) reserved(def) method(session_stuffing) ident(session)operator([)stringoperator(]) operator(=) string ident(render_text) string reserved(end) comment(# raises exception on get requests) reserved(def) method(raise_on_get) ident(raise) string reserved(if) instance_variable(@request)operator(.)ident(get?) ident(render_text) stringoperator(])inline_delimiter(})>delimiter(")> reserved(end) comment(# raises exception on post requests) reserved(def) method(raise_on_post) ident(raise) string reserved(if) instance_variable(@request)operator(.)ident(post?) ident(render_text) stringoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(get_valid_record) instance_variable(@record) operator(=) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(valid?) pre_constant(true) reserved(end) reserved(def) method(errors) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(full_messages)operator(;) operator([)operator(])operator(;) reserved(end) reserved(end)operator(.)ident(new) reserved(end) reserved(end)operator(.)ident(new) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(get_invalid_record) instance_variable(@record) operator(=) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(valid?) pre_constant(false) reserved(end) reserved(def) method(errors) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(full_messages)operator(;) operator([)stringoperator(])operator(;) reserved(end) reserved(end)operator(.)ident(new) reserved(end) reserved(end)operator(.)ident(new) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) comment(# 911) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise)operator(;) reserved(end) reserved(end) reserved(module) class(Admin) reserved(class) class(InnerModuleController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(redirect_to_absolute_controller) ident(redirect_to) symbol(:controller) operator(=)operator(>) string reserved(end) reserved(def) method(redirect_to_fellow_controller) ident(redirect_to) symbol(:controller) operator(=)operator(>) string reserved(end) reserved(end) reserved(end) comment(# ---------------------------------------------------------------------------) comment(# tell the controller where to find its templates but start from parent ) comment(# directory of test_request_response to simulate the behaviour of a ) comment(# production environment) constant(ActionPackAssertionsController)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string comment(# a test case to exercise the new capabilities TestRequest & TestResponse) reserved(class) class(ActionPackAssertionsControllerTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) comment(# let's get this party started ) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(ActionPackAssertionsController)operator(.)ident(new) instance_variable(@request)operator(,) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new)operator(,) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) comment(# -- assertion-based testing ------------------------------------------------) reserved(def) method(test_assert_tag_and_url_for) ident(get) symbol(:render_url) ident(assert_tag) symbol(:content) operator(=)operator(>) string reserved(end) comment(# test the session assertion to make sure something is there.) reserved(def) method(test_assert_session_has) ident(process) symbol(:session_stuffing) ident(assert_session_has) string ident(assert_session_has_no) string reserved(end) comment(# test the get method, make sure the request really was a get) reserved(def) method(test_get) ident(assert_raise)operator(()constant(RuntimeError)operator(\)) operator({) ident(get) symbol(:raise_on_get) operator(}) ident(get) symbol(:raise_on_post) ident(assert_equal) instance_variable(@response)operator(.)ident(body)operator(,) string reserved(end) comment(# test the get method, make sure the request really was a get) reserved(def) method(test_post) ident(assert_raise)operator(()constant(RuntimeError)operator(\)) operator({) ident(post) symbol(:raise_on_post) operator(}) ident(post) symbol(:raise_on_get) ident(assert_equal) instance_variable(@response)operator(.)ident(body)operator(,) string reserved(end) comment(# the following test fails because the request_method is now cached on the request instance) comment(# test the get/post switch within one test action) comment(# def test_get_post_switch) comment(# post :raise_on_get) comment(# assert_equal @response.body, 'request method: POST') comment(# get :raise_on_post) comment(# assert_equal @response.body, 'request method: GET') comment(# post :raise_on_get) comment(# assert_equal @response.body, 'request method: POST') comment(# get :raise_on_post) comment(# assert_equal @response.body, 'request method: GET') comment(# end) comment(# test the assertion of goodies in the template) reserved(def) method(test_assert_template_has) ident(process) symbol(:assign_this) ident(assert_template_has) string reserved(end) comment(# test the assertion for goodies that shouldn't exist in the template) reserved(def) method(test_assert_template_has_no) ident(process) symbol(:nothing) ident(assert_template_has_no) string ident(assert_template_has_no) string reserved(end) comment(# test the redirection assertions) reserved(def) method(test_assert_redirect) ident(process) symbol(:redirect_internal) ident(assert_redirect) reserved(end) comment(# test the redirect url string) reserved(def) method(test_assert_redirect_url) ident(process) symbol(:redirect_external) ident(assert_redirect_url) string reserved(end) comment(# test the redirection pattern matching on a string) reserved(def) method(test_assert_redirect_url_match_string) ident(process) symbol(:redirect_external) ident(assert_redirect_url_match) string reserved(end) comment(# test the redirection pattern matching on a pattern) reserved(def) method(test_assert_redirect_url_match_pattern) ident(process) symbol(:redirect_external) ident(assert_redirect_url_match) regexp reserved(end) comment(# test the redirection to a named route) reserved(def) method(test_assert_redirect_to_named_route) ident(process) symbol(:redirect_to_named_route) ident(assert_raise)operator(()constant(Test)operator(::)constant(Unit)operator(::)constant(AssertionFailedError)operator(\)) reserved(do) ident(assert_redirected_to) string reserved(end) reserved(end) comment(# test the flash-based assertions with something is in the flash) reserved(def) method(test_flash_assertions_full) ident(process) symbol(:flash_me) ident(assert) instance_variable(@response)operator(.)ident(has_flash_with_contents?) ident(assert_flash_exists) ident(assert_flash_not_empty) ident(assert_flash_has) string ident(assert_flash_has_no) string reserved(end) comment(# test the flash-based assertions with no flash at all) reserved(def) method(test_flash_assertions_negative) ident(process) symbol(:nothing) ident(assert_flash_empty) ident(assert_flash_has_no) string ident(assert_flash_has_no) string reserved(end) comment(# test the assert_rendered_file ) reserved(def) method(test_assert_rendered_file) ident(process) symbol(:hello_world) ident(assert_rendered_file) string ident(assert_rendered_file) string reserved(end) comment(# test the assert_success assertion) reserved(def) method(test_assert_success) ident(process) symbol(:nothing) ident(assert_success) ident(assert_rendered_file) reserved(end) comment(# -- standard request/response object testing --------------------------------) comment(# ensure our session is working properly) reserved(def) method(test_session_objects) ident(process) symbol(:session_stuffing) ident(assert) instance_variable(@response)operator(.)ident(has_session_object?)operator(()stringoperator(\)) ident(assert_session_equal) stringoperator(,) string ident(assert) operator(!)instance_variable(@response)operator(.)ident(has_session_object?)operator(()stringoperator(\)) reserved(end) comment(# make sure that the template objects exist) reserved(def) method(test_template_objects_alive) ident(process) symbol(:assign_this) ident(assert) operator(!)instance_variable(@response)operator(.)ident(has_template_object?)operator(()stringoperator(\)) ident(assert) instance_variable(@response)operator(.)ident(has_template_object?)operator(()stringoperator(\)) reserved(end) comment(# make sure we don't have template objects when we shouldn't) reserved(def) method(test_template_object_missing) ident(process) symbol(:nothing) ident(assert_nil) instance_variable(@response)operator(.)ident(template_objects)operator([)stringoperator(]) reserved(end) reserved(def) method(test_assigned_equal) ident(process) symbol(:assign_this) ident(assert_assigned_equal) stringoperator(,) symbol(:howdy) reserved(end) comment(# check the empty flashing) reserved(def) method(test_flash_me_naked) ident(process) symbol(:flash_me_naked) ident(assert) operator(!)instance_variable(@response)operator(.)ident(has_flash?) ident(assert) operator(!)instance_variable(@response)operator(.)ident(has_flash_with_contents?) reserved(end) comment(# check if we have flash objects) reserved(def) method(test_flash_haves) ident(process) symbol(:flash_me) ident(assert) instance_variable(@response)operator(.)ident(has_flash?) ident(assert) instance_variable(@response)operator(.)ident(has_flash_with_contents?) ident(assert) instance_variable(@response)operator(.)ident(has_flash_object?)operator(()stringoperator(\)) reserved(end) comment(# ensure we don't have flash objects) reserved(def) method(test_flash_have_nots) ident(process) symbol(:nothing) ident(assert) operator(!)instance_variable(@response)operator(.)ident(has_flash?) ident(assert) operator(!)instance_variable(@response)operator(.)ident(has_flash_with_contents?) ident(assert_nil) instance_variable(@response)operator(.)ident(flash)operator([)stringoperator(]) reserved(end) comment(# examine that the flash objects are what we expect) reserved(def) method(test_flash_equals) ident(process) symbol(:flash_me) ident(assert_flash_equal) stringoperator(,) string reserved(end) comment(# check if we were rendered by a file-based template? ) reserved(def) method(test_rendered_action) ident(process) symbol(:nothing) ident(assert) operator(!)instance_variable(@response)operator(.)ident(rendered_with_file?) ident(process) symbol(:hello_world) ident(assert) instance_variable(@response)operator(.)ident(rendered_with_file?) ident(assert) stringoperator(,) instance_variable(@response)operator(.)ident(rendered_file) reserved(end) comment(# check the redirection location) reserved(def) method(test_redirection_location) ident(process) symbol(:redirect_internal) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(redirect_url) ident(process) symbol(:redirect_external) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(redirect_url) ident(process) symbol(:nothing) ident(assert_nil) instance_variable(@response)operator(.)ident(redirect_url) reserved(end) comment(# check server errors ) reserved(def) method(test_server_error_response_code) ident(process) symbol(:response500) ident(assert) instance_variable(@response)operator(.)ident(server_error?) ident(process) symbol(:response599) ident(assert) instance_variable(@response)operator(.)ident(server_error?) ident(process) symbol(:response404) ident(assert) operator(!)instance_variable(@response)operator(.)ident(server_error?) reserved(end) comment(# check a 404 response code) reserved(def) method(test_missing_response_code) ident(process) symbol(:response404) ident(assert) instance_variable(@response)operator(.)ident(missing?) reserved(end) comment(# check to see if our redirection matches a pattern) reserved(def) method(test_redirect_url_match) ident(process) symbol(:redirect_external) ident(assert) instance_variable(@response)operator(.)ident(redirect?) ident(assert) instance_variable(@response)operator(.)ident(redirect_url_match?)operator(()stringoperator(\)) ident(assert) instance_variable(@response)operator(.)ident(redirect_url_match?)operator(()regexpoperator(\)) ident(assert) operator(!)instance_variable(@response)operator(.)ident(redirect_url_match?)operator(()stringoperator(\)) ident(assert) operator(!)instance_variable(@response)operator(.)ident(redirect_url_match?)operator(()regexpoperator(\)) reserved(end) comment(# check for a redirection) reserved(def) method(test_redirection) ident(process) symbol(:redirect_internal) ident(assert) instance_variable(@response)operator(.)ident(redirect?) ident(process) symbol(:redirect_external) ident(assert) instance_variable(@response)operator(.)ident(redirect?) ident(process) symbol(:nothing) ident(assert) operator(!)instance_variable(@response)operator(.)ident(redirect?) reserved(end) comment(# check a successful response code) reserved(def) method(test_successful_response_code) ident(process) symbol(:nothing) ident(assert) instance_variable(@response)operator(.)ident(success?) reserved(end) comment(# a basic check to make sure we have a TestResponse object) reserved(def) method(test_has_response) ident(process) symbol(:nothing) ident(assert_kind_of) constant(ActionController)operator(::)constant(TestResponse)operator(,) instance_variable(@response) reserved(end) reserved(def) method(test_render_based_on_parameters) ident(process) symbol(:render_based_on_parameters)operator(,) string operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_assert_template_xpath_match_no_matches) ident(process) symbol(:hello_xml_world) ident(assert_raises) constant(Test)operator(::)constant(Unit)operator(::)constant(AssertionFailedError) reserved(do) ident(assert_template_xpath_match)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_simple_one_element_xpath_match) ident(process) symbol(:hello_xml_world) ident(assert_template_xpath_match)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_array_of_elements_in_xpath_match) ident(process) symbol(:hello_xml_world) ident(assert_template_xpath_match)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_follow_redirect) ident(process) symbol(:redirect_to_action) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string ident(follow_redirect) ident(assert_equal) integer(1)operator(,) instance_variable(@request)operator(.)ident(parameters)operator([)stringoperator(])operator(.)ident(to_i) ident(assert) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_follow_redirect_outside_current_action) ident(process) symbol(:redirect_to_controller) ident(assert_redirected_to) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(assert_raises)operator(()constant(RuntimeError)operator(,) stringoperator(\)) operator({) ident(follow_redirect) operator(}) reserved(end) reserved(def) method(test_redirected_to_url_leadling_slash) ident(process) symbol(:redirect_to_path) ident(assert_redirected_to) string reserved(end) reserved(def) method(test_redirected_to_url_no_leadling_slash) ident(process) symbol(:redirect_to_path) ident(assert_redirected_to) string reserved(end) reserved(def) method(test_redirected_to_url_full_url) ident(process) symbol(:redirect_to_path) ident(assert_redirected_to) string reserved(end) reserved(def) method(test_redirected_to_with_nested_controller) instance_variable(@controller) operator(=) constant(Admin)operator(::)constant(InnerModuleController)operator(.)ident(new) ident(get) symbol(:redirect_to_absolute_controller) ident(assert_redirected_to) symbol(:controller) operator(=)operator(>) string ident(get) symbol(:redirect_to_fellow_controller) ident(assert_redirected_to) symbol(:controller) operator(=)operator(>) string reserved(end) reserved(def) method(test_assert_valid) ident(get) symbol(:get_valid_record) ident(assert_valid) ident(assigns)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_assert_valid_failing) ident(get) symbol(:get_invalid_record) reserved(begin) ident(assert_valid) ident(assigns)operator(()stringoperator(\)) ident(assert) pre_constant(false) reserved(rescue) constant(Test)operator(::)constant(Unit)operator(::)constant(AssertionFailedError) operator(=)operator(>) ident(e) reserved(end) reserved(end) reserved(end) reserved(class) class(ActionPackHeaderTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(ActionPackAssertionsController)operator(.)ident(new) instance_variable(@request)operator(,) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new)operator(,) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) reserved(def) method(test_rendering_xml_sets_content_type) ident(process) symbol(:hello_xml_world) ident(assert_equal)operator(()stringoperator(,) instance_variable(@controller)operator(.)ident(headers)operator([)stringoperator(])operator(\)) reserved(end) reserved(def) method(test_rendering_xml_respects_content_type) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) operator(=) string ident(process) symbol(:hello_xml_world) ident(assert_equal)operator(()stringoperator(,) instance_variable(@controller)operator(.)ident(headers)operator([)stringoperator(])operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Address) reserved(def) constant(Address)operator(.)method(count)operator(()ident(conditions) operator(=) pre_constant(nil)operator(,) ident(join) operator(=) pre_constant(nil)operator(\)) pre_constant(nil) reserved(end) reserved(def) constant(Address)operator(.)method(find_all)operator(()ident(arg1)operator(,) ident(arg2)operator(,) ident(arg3)operator(,) ident(arg4)operator(\)) operator([)operator(]) reserved(end) reserved(def) pre_constant(self)operator(.)method(find)operator(()operator(*)ident(args)operator(\)) operator([)operator(]) reserved(end) reserved(end) reserved(class) class(AddressesTestController) operator(<) constant(ActionController)operator(::)constant(Base) ident(scaffold) symbol(:address) reserved(def) pre_constant(self)operator(.)method(controller_name)operator(;) stringoperator(;) reserved(end) reserved(def) pre_constant(self)operator(.)method(controller_path)operator(;) stringoperator(;) reserved(end) reserved(end) constant(AddressesTestController)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(AddressesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(AddressesTestController)operator(.)ident(new) comment(# enable a logger so that (e.g.\) the benchmarking stuff runs, so we can get) comment(# a more accurate simulation of what happens in "real life".) instance_variable(@controller)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()pre_constant(nil)operator(\)) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@request)operator(.)ident(host) operator(=) string reserved(end) reserved(def) method(test_list) ident(get) symbol(:list) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body)operator(.)ident(chomp) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string ident(require) string comment(# require 'pp' early to prevent hidden_methods from not picking up the pretty-print methods until too late) comment(# Provide some controller to run the tests on.) reserved(module) class(Submodule) reserved(class) class(ContainedEmptyController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(end) reserved(class) class(ContainedNonEmptyController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(public_action) reserved(end) ident(hide_action) symbol(:hidden_action) reserved(def) method(hidden_action) reserved(end) reserved(def) method(another_hidden_action) reserved(end) ident(hide_action) symbol(:another_hidden_action) reserved(end) reserved(class) class(SubclassedController) operator(<) constant(ContainedNonEmptyController) ident(hide_action) symbol(:public_action) comment(# Hiding it here should not affect the superclass.) reserved(end) reserved(end) reserved(class) class(EmptyController) operator(<) constant(ActionController)operator(::)constant(Base) ident(include) constant(ActionController)operator(::)constant(Caching) reserved(end) reserved(class) class(NonEmptyController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(public_action) reserved(end) ident(hide_action) symbol(:hidden_action) reserved(def) method(hidden_action) reserved(end) reserved(end) reserved(class) class(ControllerClassTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_controller_path) ident(assert_equal) stringoperator(,) constant(EmptyController)operator(.)ident(controller_path) ident(assert_equal) stringoperator(,) constant(Submodule)operator(::)constant(ContainedEmptyController)operator(.)ident(controller_path) reserved(end) reserved(def) method(test_controller_name) ident(assert_equal) stringoperator(,) constant(EmptyController)operator(.)ident(controller_name) ident(assert_equal) stringoperator(,) constant(Submodule)operator(::)constant(ContainedEmptyController)operator(.)ident(controller_name) reserved(end) reserved(end) reserved(class) class(ControllerInstanceTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@empty) operator(=) constant(EmptyController)operator(.)ident(new) instance_variable(@contained) operator(=) constant(Submodule)operator(::)constant(ContainedEmptyController)operator(.)ident(new) instance_variable(@empty_controllers) operator(=) operator([)instance_variable(@empty)operator(,) instance_variable(@contained)operator(,) constant(Submodule)operator(::)constant(SubclassedController)operator(.)ident(new)operator(]) instance_variable(@non_empty_controllers) operator(=) operator([)constant(NonEmptyController)operator(.)ident(new)operator(,) constant(Submodule)operator(::)constant(ContainedNonEmptyController)operator(.)ident(new)operator(]) reserved(end) reserved(def) method(test_action_methods) instance_variable(@empty_controllers)operator(.)ident(each) reserved(do) operator(|)ident(c)operator(|) ident(assert_equal) constant(Set)operator(.)ident(new)operator(,) ident(c)operator(.)ident(send)operator(()symbol(:action_methods)operator(\))operator(,) stringcontent( should be empty!)delimiter(")> reserved(end) instance_variable(@non_empty_controllers)operator(.)ident(each) reserved(do) operator(|)ident(c)operator(|) ident(assert_equal) constant(Set)operator(.)ident(new)operator(()stringoperator(\))operator(,) ident(c)operator(.)ident(send)operator(()symbol(:action_methods)operator(\))operator(,) stringcontent( should not be empty!)delimiter(")> reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string comment(# Provide some static controllers.) reserved(class) class(BenchmarkedController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(public_action) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) ident(e) reserved(end) reserved(end) reserved(class) class(BenchmarkTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(class) class(MockLogger) reserved(def) method(method_missing)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(BenchmarkedController)operator(.)ident(new) comment(# benchmark doesn't do anything unless a logger is set) instance_variable(@controller)operator(.)ident(logger) operator(=) constant(MockLogger)operator(.)ident(new) instance_variable(@request)operator(,) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new)operator(,) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@request)operator(.)ident(host) operator(=) string reserved(end) reserved(def) method(test_with_http_1_0_request) instance_variable(@request)operator(.)ident(host) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(get) symbol(:public_action) operator(}) reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(TestLogDevice) operator(<) constant(Logger)operator(::)constant(LogDevice) ident(attr) symbol(:last_message)operator(,) pre_constant(true) reserved(def) method(initialize) instance_variable(@last_message)operator(=)constant(String)operator(.)ident(new) reserved(end) reserved(def) method(write)operator(()ident(message)operator(\)) instance_variable(@last_message) operator(<<) ident(message) reserved(end) reserved(def) method(clear) instance_variable(@last_message) operator(=) constant(String)operator(.)ident(new) reserved(end) reserved(end) comment(#setup our really sophisticated logger) constant(TestLog) operator(=) constant(TestLogDevice)operator(.)ident(new) constant(RAILS_DEFAULT_LOGGER) operator(=) constant(Logger)operator(.)ident(new)operator(()constant(TestLog)operator(\)) constant(ActionController)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(RAILS_DEFAULT_LOGGER) reserved(def) method(use_store) comment(#generate a random key to ensure the cache is always in a different location) constant(RANDOM_KEY) operator(=) ident(rand)operator(()integer(99999999)operator(\))operator(.)ident(to_s) constant(FILE_STORE_PATH) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string operator(+) constant(RANDOM_KEY) constant(ActionController)operator(::)constant(Base)operator(.)ident(perform_caching) operator(=) pre_constant(true) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(=) symbol(:file_store)operator(,) constant(FILE_STORE_PATH) reserved(end) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) ident(caches_action) symbol(:render_to_cache)operator(,) symbol(:index) reserved(def) method(render_to_cache) ident(render_text) string reserved(end) reserved(alias) symbol(:index) symbol(:render_to_cache) reserved(end) reserved(class) class(FileStoreTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@controller) operator(=) constant(TestController)operator(.)ident(new) instance_variable(@request)operator(.)ident(host) operator(=) string reserved(end) reserved(def) method(teardown) constant(FileUtils)operator(.)ident(rm_rf)operator(()constant(FILE_STORE_PATH)operator(\)) reserved(end) reserved(def) method(test_render_cached) ident(assert_fragment_cached) operator({) ident(get) symbol(:render_to_cache) operator(}) ident(assert_fragment_hit) operator({) ident(get) symbol(:render_to_cache) operator(}) reserved(end) ident(private) reserved(def) method(assert_fragment_cached) reserved(yield) ident(assert)operator(()constant(TestLog)operator(.)ident(last_message)operator(.)ident(include?)operator(()stringoperator(\))operator(,) stringoperator(\)) ident(assert)operator(()operator(!)constant(TestLog)operator(.)ident(last_message)operator(.)ident(include?)operator(()stringoperator(\))operator(,) stringoperator(\)) constant(TestLog)operator(.)ident(clear) reserved(end) reserved(def) method(assert_fragment_hit) reserved(yield) ident(assert)operator(()constant(TestLog)operator(.)ident(last_message)operator(.)ident(include?)operator(()stringoperator(\))operator(,) stringoperator(\)) ident(assert)operator(()operator(!)constant(TestLog)operator(.)ident(last_message)operator(.)ident(include?)operator(()stringoperator(\))operator(,) stringoperator(\)) constant(TestLog)operator(.)ident(clear) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(CaptureController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) pre_constant(self)operator(.)method(controller_name)operator(;) stringoperator(;) reserved(end) reserved(def) pre_constant(self)operator(.)method(controller_path)operator(;) stringoperator(;) reserved(end) reserved(def) method(content_for) ident(render) symbol(:layout) operator(=)operator(>) string reserved(end) reserved(def) method(erb_content_for) ident(render) symbol(:layout) operator(=)operator(>) string reserved(end) reserved(def) method(block_content_for) ident(render) symbol(:layout) operator(=)operator(>) string reserved(end) reserved(def) method(non_erb_block_content_for) ident(render) symbol(:layout) operator(=)operator(>) string reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) constant(CaptureController)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(CaptureTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(CaptureController)operator(.)ident(new) comment(# enable a logger so that (e.g.\) the benchmarking stuff runs, so we can get) comment(# a more accurate simulation of what happens in "real life".) instance_variable(@controller)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()pre_constant(nil)operator(\)) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@request)operator(.)ident(host) operator(=) string reserved(end) reserved(def) method(test_simple_capture) ident(get) symbol(:capturing) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body)operator(.)ident(strip) reserved(end) reserved(def) method(test_content_for) ident(get) symbol(:content_for) ident(assert_equal) ident(expected_content_for_output)operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_erb_content_for) ident(get) symbol(:content_for) ident(assert_equal) ident(expected_content_for_output)operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_block_content_for) ident(get) symbol(:block_content_for) ident(assert_equal) ident(expected_content_for_output)operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_non_erb_block_content_for) ident(get) symbol(:non_erb_block_content_for) ident(assert_equal) ident(expected_content_for_output)operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_update_element_with_capture) ident(get) symbol(:update_element_with_capture) ident(assert_equal)operator(() string)char(\\n)content(//Product 1

    )char(\\\\)content(n

    Product 2

    )char(\\\\)content(n';)char(\\n)char(\\n)content(//]]>)char(\\n)content()delimiter(")> operator(+) stringYou bought something!)char(\\\\)content(n';)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body)operator(.)ident(strip) operator(\)) reserved(end) ident(private) reserved(def) method(expected_content_for_output) stringPutting stuff in the title!)char(\\n)char(\\n)content(Great stuff!)delimiter(")> reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string ident(require) string ident(require) string reserved(class) class(CGITest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@query_string) operator(=) string instance_variable(@query_string_with_nil) operator(=) string instance_variable(@query_string_with_array) operator(=) string instance_variable(@query_string_with_amps) operator(=) string instance_variable(@query_string_with_multiple_of_same_name) operator(=) string instance_variable(@query_string_with_many_equal) operator(=) string instance_variable(@query_string_without_equal) operator(=) string instance_variable(@query_string_with_many_ampersands) operator(=) string reserved(end) reserved(def) method(test_query_string) ident(assert_equal)operator(() operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()instance_variable(@query_string)operator(\)) operator(\)) reserved(end) reserved(def) method(test_deep_query_string) ident(assert_equal)operator(()operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(})operator(})operator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_deep_query_string_with_array) ident(assert_equal)operator(()operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) operator([)stringoperator(])operator(})operator(})operator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(})operator(})operator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_query_string_with_nil) ident(assert_equal)operator(() operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) pre_constant(nil)operator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()instance_variable(@query_string_with_nil)operator(\)) operator(\)) reserved(end) reserved(def) method(test_query_string_with_array) ident(assert_equal)operator(() operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) operator([)stringoperator(,) stringoperator(,) stringoperator(])operator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()instance_variable(@query_string_with_array)operator(\)) operator(\)) reserved(end) reserved(def) method(test_query_string_with_amps) ident(assert_equal)operator(() operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()instance_variable(@query_string_with_amps)operator(\)) operator(\)) reserved(end) reserved(def) method(test_query_string_with_many_equal) ident(assert_equal)operator(() operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()instance_variable(@query_string_with_many_equal)operator(\)) operator(\)) reserved(end) reserved(def) method(test_query_string_without_equal) ident(assert_equal)operator(() operator({) string operator(=)operator(>) pre_constant(nil) operator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()instance_variable(@query_string_without_equal)operator(\)) operator(\)) reserved(end) reserved(def) method(test_query_string_with_many_ampersands) ident(assert_equal)operator(() operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) constant(CGIMethods)operator(.)ident(parse_query_parameters)operator(()instance_variable(@query_string_with_many_ampersands)operator(\)) operator(\)) reserved(end) reserved(def) method(test_parse_params) ident(input) operator(=) operator({) string operator(=)operator(>) operator([) string operator(])operator(,) string operator(=)operator(>) operator([) string operator(])operator(,) string operator(=)operator(>) operator([) string operator(])operator(,) string operator(=)operator(>) operator([) string operator(])operator(,) string operator(=)operator(>) operator([) string operator(])operator(,) string operator(=)operator(>) operator([) pre_constant(nil) operator(])operator(,) string operator(=)operator(>) operator([) string operator(])operator(,) string operator(=)operator(>) operator([) string operator(])operator(,) string operator(=)operator(>) operator([) string operator(]) operator(}) ident(expected_output) operator(=) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(})operator(,) string operator(=)operator(>) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) operator(}) operator(})operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) operator(}) ident(assert_equal) ident(expected_output)operator(,) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(input)operator(\)) reserved(end) reserved(def) method(test_parse_params_from_multipart_upload) ident(mockup) operator(=) constant(Struct)operator(.)ident(new)operator(()symbol(:content_type)operator(,) symbol(:original_filename)operator(\)) ident(file) operator(=) ident(mockup)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\)) ident(ie_file) operator(=) ident(mockup)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\)) ident(input) operator(=) operator({) string operator(=)operator(>) operator([) constant(StringIO)operator(.)ident(new)operator(()stringoperator(\)) operator(])operator(,) string operator(=)operator(>) operator([)operator([) constant(StringIO)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(StringIO)operator(.)ident(new)operator(()stringoperator(\)) operator(])operator(])operator(,) string operator(=)operator(>) operator([)operator([) constant(StringIO)operator(.)ident(new)operator(()stringoperator(\))operator(,) string operator(])operator(])operator(,) string operator(=)operator(>) operator([)operator([) ident(file)operator(,) stringoperator(,) constant(StringIO)operator(.)ident(new)operator(()stringoperator(\))operator(])operator(])operator(,) string operator(=)operator(>) operator([)operator([) ident(ie_file)operator(,) stringoperator(,) constant(StringIO)operator(.)ident(new)operator(()stringoperator(\))operator(])operator(])operator(,) string operator(=)operator(>) operator([) constant(StringIO)operator(.)ident(new)operator(()stringoperator(\)) operator(])operator(,) string operator(=)operator(>) operator([) ident(file) operator(])operator(,) string operator(=)operator(>) operator([) constant(StringIO)operator(.)ident(new)operator(()stringoperator(\)) operator(])operator(,) string operator(=)operator(>) operator([) ident(ie_file) operator(]) operator(}) ident(expected_output) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(,) string operator(=)operator(>) operator([) stringoperator(,) string operator(])operator(,) string operator(=)operator(>) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) operator([) ident(file)operator(,) stringoperator(,) string operator(]) operator(})operator(,) operator(})operator(,) string operator(=)operator(>) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) operator([) ident(ie_file)operator(,) stringoperator(,) string operator(]) operator(})operator(,) operator(})operator(,) string operator(=)operator(>) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(file) operator(})operator(,) string operator(=)operator(>) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(ie_file) operator(}) operator(}) ident(params) operator(=) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(input)operator(\)) ident(assert_equal) ident(expected_output)operator(,) ident(params) comment(# Lone filenames are preserved.) ident(assert_equal) stringoperator(,) ident(params)operator([)stringoperator(])operator([)stringoperator(])operator([)stringoperator(])operator(.)ident(first)operator(.)ident(original_filename) ident(assert_equal) stringoperator(,) ident(params)operator([)stringoperator(])operator([)stringoperator(])operator(.)ident(original_filename) comment(# But full Windows paths are reduced to their basename.) ident(assert_equal) stringoperator(,) ident(params)operator([)stringoperator(])operator([)stringoperator(])operator([)stringoperator(])operator(.)ident(first)operator(.)ident(original_filename) ident(assert_equal) stringoperator(,) ident(params)operator([)stringoperator(])operator([)stringoperator(])operator(.)ident(original_filename) reserved(end) reserved(def) method(test_parse_params_with_file) ident(input) operator(=) operator({) string operator(=)operator(>) operator([) string operator(])operator(,) string operator(=)operator(>) operator([) string operator(])operator(,) string operator(=)operator(>) operator([) constant(File)operator(.)ident(new)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\))operator(.)ident(path) operator(]) operator(}) ident(expected_output) operator(=) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) string operator(}) operator(}) operator(})operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(File)operator(.)ident(new)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\))operator(.)ident(path)operator(,) operator(}) ident(assert_equal) ident(expected_output)operator(,) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(input)operator(\)) reserved(end) reserved(def) method(test_parse_params_with_array) ident(input) operator(=) operator({) string operator(=)operator(>) operator([) stringoperator(,) stringoperator(,) string operator(]) operator(}) ident(expected_output) operator(=) operator({) string operator(=)operator(>) operator([) stringoperator(,) stringoperator(,) string operator(]) operator(}) ident(assert_equal) ident(expected_output)operator(,) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(input)operator(\)) reserved(end) reserved(def) method(test_parse_params_with_non_alphanumeric_name) ident(input) operator(=) operator({) string operator(=)operator(>) string operator(}) ident(expected) operator(=) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) string operator(})operator(}) ident(assert_equal) ident(expected)operator(,) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(input)operator(\)) reserved(end) reserved(def) method(test_parse_params_with_single_brackets_in_middle) ident(input) operator(=) operator({) string operator(=)operator(>) string operator(}) ident(expected) operator(=) operator({) string operator(=)operator(>) string operator(}) ident(assert_equal) ident(expected)operator(,) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(input)operator(\)) reserved(end) reserved(def) method(test_parse_params_with_separated_brackets) ident(input) operator(=) operator({) string operator(=)operator(>) string operator(}) ident(expected) operator(=) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) string operator(})operator(}) ident(assert_equal) ident(expected)operator(,) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(input)operator(\)) reserved(end) reserved(def) method(test_parse_params_with_separated_brackets_and_array) ident(input) operator(=) operator({) string operator(=)operator(>) string operator(}) ident(expected) operator(=) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) operator([)stringoperator(]) operator(})operator(}) ident(assert_equal) ident(expected) operator(,) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(input)operator(\)) reserved(end) reserved(def) method(test_parse_params_with_unmatched_brackets_and_array) ident(input) operator(=) operator({) string operator(=)operator(>) string operator(}) ident(expected) operator(=) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) operator({) string operator(=)operator(>) operator([)stringoperator(]) operator(})operator(})operator(}) ident(assert_equal) ident(expected)operator(,) constant(CGIMethods)operator(.)ident(parse_request_parameters)operator(()ident(input)operator(\)) reserved(end) reserved(end) reserved(class) class(MultipartCGITest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) constant(FIXTURE_PATH) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(def) method(setup) pre_constant(ENV)operator([)stringoperator(]) operator(=) string pre_constant(ENV)operator([)stringoperator(]) operator(=) string pre_constant(ENV)operator([)stringoperator(]) operator(=) string reserved(end) reserved(def) method(test_single_parameter) ident(params) operator(=) ident(process)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({) string operator(=)operator(>) string operator(})operator(,) ident(params)operator(\)) reserved(end) reserved(def) method(test_text_file) ident(params) operator(=) ident(process)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) ident(params)operator(.)ident(keys)operator(.)ident(sort) ident(assert_equal) stringoperator(,) ident(params)operator([)stringoperator(]) ident(file) operator(=) ident(params)operator([)stringoperator(]) ident(assert_kind_of) constant(StringIO)operator(,) ident(file) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(original_filename) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(read) reserved(end) reserved(def) method(test_large_text_file) ident(params) operator(=) ident(process)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) ident(params)operator(.)ident(keys)operator(.)ident(sort) ident(assert_equal) stringoperator(,) ident(params)operator([)stringoperator(]) ident(file) operator(=) ident(params)operator([)stringoperator(]) ident(assert_kind_of) constant(Tempfile)operator(,) ident(file) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(original_filename) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(content_type) ident(assert) operator(()string operator(*) integer(20480)operator(\)) operator(==) ident(file)operator(.)ident(read) reserved(end) reserved(def) method(test_binary_file) ident(params) operator(=) ident(process)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) ident(params)operator(.)ident(keys)operator(.)ident(sort) ident(assert_equal) stringoperator(,) ident(params)operator([)stringoperator(]) ident(file) operator(=) ident(params)operator([)stringoperator(]) ident(assert_kind_of) constant(StringIO)operator(,) ident(file) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(original_filename) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(content_type) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(read) ident(file) operator(=) ident(params)operator([)stringoperator(]) ident(assert_kind_of) constant(StringIO)operator(,) ident(file) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(original_filename) ident(assert_equal) stringoperator(,) ident(file)operator(.)ident(content_type) ident(assert_equal) integer(19512)operator(,) ident(file)operator(.)ident(size) comment(#assert_equal File.read(File.dirname(__FILE__\) + '/../../../activerecord/test/fixtures/flowers.jpg'\), file.read) reserved(end) reserved(def) method(test_mixed_files) ident(params) operator(=) ident(process)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) ident(params)operator(.)ident(keys)operator(.)ident(sort) ident(assert_equal) stringoperator(,) ident(params)operator([)stringoperator(]) comment(# Ruby CGI doesn't handle multipart/mixed for us.) ident(assert_kind_of) constant(StringIO)operator(,) ident(params)operator([)stringoperator(]) ident(assert_equal) integer(19756)operator(,) ident(params)operator([)stringoperator(])operator(.)ident(size) reserved(end) ident(private) reserved(def) method(process)operator(()ident(name)operator(\)) ident(old_stdin) operator(=) global_variable($stdin) constant(File)operator(.)ident(open)operator(()constant(File)operator(.)ident(join)operator(()constant(FIXTURE_PATH)operator(,) ident(name)operator(\))operator(,) stringoperator(\)) reserved(do) operator(|)ident(file)operator(|) pre_constant(ENV)operator([)stringoperator(]) operator(=) ident(file)operator(.)ident(stat)operator(.)ident(size)operator(.)ident(to_s) global_variable($stdin) operator(=) ident(file) constant(CGIMethods)operator(.)ident(parse_request_parameters) constant(CGI)operator(.)ident(new)operator(.)ident(params) reserved(end) reserved(ensure) global_variable($stdin) operator(=) ident(old_stdin) reserved(end) reserved(end) reserved(class) class(CGIRequestTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@request_hash) operator(=) operator({)stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(}) comment(# cookie as returned by some Nokia phone browsers (no space after semicolon separator\)) instance_variable(@alt_cookie_fmt_request_hash) operator(=) operator({)stringoperator(=)operator(>)stringoperator(}) instance_variable(@fake_cgi) operator(=) constant(Struct)operator(.)ident(new)operator(()symbol(:env_table)operator(\))operator(.)ident(new)operator(()instance_variable(@request_hash)operator(\)) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(CgiRequest)operator(.)ident(new)operator(()instance_variable(@fake_cgi)operator(\)) reserved(end) reserved(def) method(test_proxy_request) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(host_with_port) reserved(end) reserved(def) method(test_http_host) instance_variable(@request_hash)operator(.)ident(delete) string instance_variable(@request_hash)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(host_with_port) instance_variable(@request_hash)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(host) reserved(end) reserved(def) method(test_http_host_with_default_port_overrides_server_port) instance_variable(@request_hash)operator(.)ident(delete) string instance_variable(@request_hash)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(host_with_port) reserved(end) reserved(def) method(test_host_with_port_defaults_to_server_name_if_no_host_headers) instance_variable(@request_hash)operator(.)ident(delete) string instance_variable(@request_hash)operator(.)ident(delete) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(host_with_port) reserved(end) reserved(def) method(test_host_with_port_falls_back_to_server_addr_if_necessary) instance_variable(@request_hash)operator(.)ident(delete) string instance_variable(@request_hash)operator(.)ident(delete) string instance_variable(@request_hash)operator(.)ident(delete) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(host_with_port) reserved(end) reserved(def) method(test_cookie_syntax_resilience) ident(cookies) operator(=) constant(CGI)operator(::)constant(Cookie)operator(::)ident(parse)operator(()instance_variable(@request_hash)operator([)stringoperator(])operator(\))operator(;) ident(assert_equal) operator([)stringoperator(])operator(,) ident(cookies)operator([)stringoperator(]) ident(assert_equal) operator([)stringoperator(])operator(,) ident(cookies)operator([)stringoperator(]) ident(alt_cookies) operator(=) constant(CGI)operator(::)constant(Cookie)operator(::)ident(parse)operator(()instance_variable(@alt_cookie_fmt_request_hash)operator([)stringoperator(])operator(\))operator(;) ident(assert_equal) operator([)stringoperator(])operator(,) ident(alt_cookies)operator([)stringoperator(]) ident(assert_equal) operator([)stringoperator(])operator(,) ident(alt_cookies)operator([)stringoperator(]) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(CallerController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(calling_from_controller) ident(render_component)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(calling_from_controller_with_params) ident(render_component)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:params) operator(=)operator(>) operator({) string operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(calling_from_controller_with_different_status_code) ident(render_component)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(calling_from_template) ident(render_template) string 'callee', :action => 'being_called'\) %>)delimiter(")> reserved(end) reserved(def) method(internal_caller) ident(render_template) string 'internal_callee'\) %>)delimiter(")> reserved(end) reserved(def) method(internal_callee) ident(render_text) string reserved(end) reserved(def) method(set_flash) ident(render_component)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(use_flash) ident(render_component)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(calling_redirected) ident(render_component)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(calling_redirected_as_string) ident(render_template) string 'callee', :action => 'redirected'\) %>)delimiter(")> reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) reserved(class) class(CalleeController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(being_called) ident(render_text) stringoperator(]) operator(||) stringinline_delimiter(})>content( of the House, speaking)delimiter(")> reserved(end) reserved(def) method(blowing_up) ident(render_text) stringoperator(,) string reserved(end) reserved(def) method(set_flash) ident(flash)operator([)symbol(:notice)operator(]) operator(=) string ident(render) symbol(:text) operator(=)operator(>) string reserved(end) reserved(def) method(use_flash) ident(render) symbol(:text) operator(=)operator(>) ident(flash)operator([)symbol(:notice)operator(]) operator(||) string reserved(end) reserved(def) method(redirected) ident(redirect_to) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) reserved(class) class(ComponentsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(CallerController)operator(.)ident(new) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) reserved(def) method(test_calling_from_controller) ident(get) symbol(:calling_from_controller) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_calling_from_controller_with_params) ident(get) symbol(:calling_from_controller_with_params) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_calling_from_controller_with_different_status_code) ident(get) symbol(:calling_from_controller_with_different_status_code) ident(assert_equal) integer(500)operator(,) instance_variable(@response)operator(.)ident(response_code) reserved(end) reserved(def) method(test_calling_from_template) ident(get) symbol(:calling_from_template) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_internal_calling) ident(get) symbol(:internal_caller) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_flash) ident(get) symbol(:set_flash) ident(assert_equal) stringoperator(,) ident(flash)operator([)symbol(:notice)operator(]) ident(get) symbol(:use_flash) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(get) symbol(:use_flash) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_component_redirect_redirects) ident(get) symbol(:calling_redirected) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_component_multiple_redirect_redirects) ident(test_component_redirect_redirects) ident(test_internal_calling) reserved(end) reserved(def) method(test_component_as_string_redirect_renders_redirecte_action) ident(get) symbol(:calling_redirected_as_string) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(CookieTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(authenticate_with_deprecated_writer) ident(cookie) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(render_text) string reserved(end) reserved(def) method(authenticate) ident(cookies)operator([)stringoperator(]) operator(=) string ident(render_text) string reserved(end) reserved(def) method(authenticate_for_fourten_days) ident(cookies)operator([)stringoperator(]) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(local)operator(()integer(2005)operator(,) integer(10)operator(,) integer(10)operator(\)) operator(}) ident(render_text) string reserved(end) reserved(def) method(authenticate_for_fourten_days_with_symbols) ident(cookies)operator([)symbol(:user_name)operator(]) operator(=) operator({) symbol(:value) operator(=)operator(>) stringoperator(,) symbol(:expires) operator(=)operator(>) constant(Time)operator(.)ident(local)operator(()integer(2005)operator(,) integer(10)operator(,) integer(10)operator(\)) operator(}) ident(render_text) string reserved(end) reserved(def) method(set_multiple_cookies) ident(cookies)operator([)stringoperator(]) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(local)operator(()integer(2005)operator(,) integer(10)operator(,) integer(10)operator(\)) operator(}) ident(cookies)operator([)stringoperator(]) operator(=) string ident(render_text) string reserved(end) reserved(def) method(access_frozen_cookies) instance_variable(@cookies)operator([)stringoperator(]) operator(=) string ident(render_text) string reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@request)operator(.)ident(host) operator(=) string reserved(end) reserved(def) method(test_setting_cookie_with_deprecated_writer) instance_variable(@request)operator(.)ident(action) operator(=) string ident(assert_equal) operator([) constant(CGI)operator(::)constant(Cookie)operator(::)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator(])operator(,) ident(process_request)operator(.)ident(headers)operator([)stringoperator(]) reserved(end) reserved(def) method(test_setting_cookie) instance_variable(@request)operator(.)ident(action) operator(=) string ident(assert_equal) operator([) constant(CGI)operator(::)constant(Cookie)operator(::)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator(])operator(,) ident(process_request)operator(.)ident(headers)operator([)stringoperator(]) reserved(end) reserved(def) method(test_setting_cookie_for_fourteen_days) instance_variable(@request)operator(.)ident(action) operator(=) string ident(assert_equal) operator([) constant(CGI)operator(::)constant(Cookie)operator(::)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(local)operator(()integer(2005)operator(,) integer(10)operator(,) integer(10)operator(\))operator(\)) operator(])operator(,) ident(process_request)operator(.)ident(headers)operator([)stringoperator(]) reserved(end) reserved(def) method(test_setting_cookie_for_fourteen_days_with_symbols) instance_variable(@request)operator(.)ident(action) operator(=) string ident(assert_equal) operator([) constant(CGI)operator(::)constant(Cookie)operator(::)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(local)operator(()integer(2005)operator(,) integer(10)operator(,) integer(10)operator(\))operator(\)) operator(])operator(,) ident(process_request)operator(.)ident(headers)operator([)stringoperator(]) reserved(end) reserved(def) method(test_multiple_cookies) instance_variable(@request)operator(.)ident(action) operator(=) string ident(assert_equal) integer(2)operator(,) ident(process_request)operator(.)ident(headers)operator([)stringoperator(])operator(.)ident(size) reserved(end) reserved(def) method(test_setting_test_cookie) instance_variable(@request)operator(.)ident(action) operator(=) string ident(assert_nothing_raised) operator({) ident(process_request) operator(}) reserved(end) ident(private) reserved(def) method(process_request) constant(TestController)operator(.)ident(process)operator(()instance_variable(@request)operator(,) instance_variable(@response)operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(CustomHandler) reserved(def) method(initialize)operator(() ident(view) operator(\)) instance_variable(@view) operator(=) ident(view) reserved(end) reserved(def) method(render)operator(() ident(template)operator(,) ident(local_assigns) operator(\)) operator([) ident(template)operator(,) ident(local_assigns)operator(,) instance_variable(@view) operator(]) reserved(end) reserved(end) reserved(class) class(CustomHandlerTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) constant(ActionView)operator(::)constant(Base)operator(.)ident(register_template_handler) stringoperator(,) constant(CustomHandler) constant(ActionView)operator(::)constant(Base)operator(.)ident(register_template_handler) symbol(:foo2)operator(,) constant(CustomHandler) instance_variable(@view) operator(=) constant(ActionView)operator(::)constant(Base)operator(.)ident(new) reserved(end) reserved(def) method(test_custom_render) ident(result) operator(=) instance_variable(@view)operator(.)ident(render_template)operator(() stringoperator(,) string)delimiter(")>operator(,) pre_constant(nil)operator(,) symbol(:one) operator(=)operator(>) string operator(\)) ident(assert_equal)operator(() operator([) string)delimiter(")>operator(,) operator({) symbol(:one) operator(=)operator(>) string operator(})operator(,) instance_variable(@view) operator(])operator(,) ident(result) operator(\)) reserved(end) reserved(def) method(test_custom_render2) ident(result) operator(=) instance_variable(@view)operator(.)ident(render_template)operator(() stringoperator(,) string)delimiter(")>operator(,) pre_constant(nil)operator(,) symbol(:one) operator(=)operator(>) string operator(\)) ident(assert_equal)operator(() operator([) string)delimiter(")>operator(,) operator({) symbol(:one) operator(=)operator(>) string operator(})operator(,) instance_variable(@view) operator(])operator(,) ident(result) operator(\)) reserved(end) reserved(def) method(test_unhandled_extension) comment(# uses the ERb handler by default if the extension isn't recognized) ident(result) operator(=) instance_variable(@view)operator(.)ident(render_template)operator(() stringoperator(,) string)delimiter(")>operator(,) pre_constant(nil)operator(,) symbol(:one) operator(=)operator(>) string operator(\)) ident(assert_equal) stringoperator(,) ident(result) reserved(end) reserved(end) reserved(class) operator(<<) class(Object)operator(;) ident(alias_method) symbol(:const_available?)operator(,) symbol(:const_defined?)operator(;) reserved(end) reserved(class) class(ContentController) operator(<) constant(Class)operator(.)ident(new)operator(()constant(ActionController)operator(::)constant(Base)operator(\)) reserved(end) reserved(class) class(NotAController) reserved(end) reserved(module) class(Admin) reserved(class) operator(<<) class(self)operator(;) ident(alias_method) symbol(:const_available?)operator(,) symbol(:const_defined?)operator(;) reserved(end) constant(SomeConstant) operator(=) integer(10) reserved(class) class(UserController) operator(<) constant(Class)operator(.)ident(new)operator(()constant(ActionController)operator(::)constant(Base)operator(\))operator(;) reserved(end) reserved(class) class(NewsFeedController) operator(<) constant(Class)operator(.)ident(new)operator(()constant(ActionController)operator(::)constant(Base)operator(\))operator(;) reserved(end) reserved(end) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(map)operator(.)ident(route_one) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(map)operator(.)ident(connect) string reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(FilterParamController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(end) reserved(class) class(FilterParamTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(FilterParamController)operator(.)ident(new) reserved(end) reserved(def) method(test_filter_parameters) ident(assert) constant(FilterParamController)operator(.)ident(respond_to?)operator(()symbol(:filter_parameter_logging)operator(\)) ident(assert) operator(!)instance_variable(@controller)operator(.)ident(respond_to?)operator(()symbol(:filter_parameters)operator(\)) constant(FilterParamController)operator(.)ident(filter_parameter_logging) ident(assert) instance_variable(@controller)operator(.)ident(respond_to?)operator(()symbol(:filter_parameters)operator(\)) ident(test_hashes) operator(=) operator([)operator([)operator({)operator(})operator(,)operator({)operator(})operator(,)operator([)operator(])operator(])operator(,) operator([)operator({)stringoperator(=)operator(>)stringoperator(})operator(,)operator({)stringoperator(=)operator(>)stringoperator(})operator(,)operator([)operator(])operator(])operator(,) operator([)operator({)stringoperator(=)operator(>)stringoperator(})operator(,)operator({)stringoperator(=)operator(>)stringoperator(})operator(,)stringoperator(])operator(,) operator([)operator({)stringoperator(=)operator(>)stringoperator(})operator(,)operator({)stringoperator(=)operator(>)stringoperator(})operator(,)stringoperator(])operator(,) operator([)operator({)stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(})operator(,)operator({)stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(})operator(,)stringoperator(])operator(,) operator([)operator({)stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(})operator(,)operator({)stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(})operator(,)stringoperator(])operator(,) operator([)operator({)stringoperator(=)operator(>)operator({)stringoperator(=)operator(>)stringoperator(,)stringoperator(=)operator(>)stringoperator(})operator(})operator(,)operator({)stringoperator(=)operator(>)operator({)stringoperator(=)operator(>)stringoperator(,)stringoperator(=)operator(>)stringoperator(})operator(})operator(,)stringoperator(])operator(,) operator([)operator({)stringoperator(=)operator(>)operator({)stringoperator(=)operator(>)stringoperator(,)stringoperator(=)operator(>)stringoperator(})operator(})operator(,)operator({)stringoperator(=)operator(>)stringoperator(})operator(,)stringoperator(])operator(]) ident(test_hashes)operator(.)ident(each) reserved(do) operator(|)ident(before_filter)operator(,) ident(after_filter)operator(,) ident(filter_words)operator(|) constant(FilterParamController)operator(.)ident(filter_parameter_logging)operator(()operator(*)ident(filter_words)operator(\)) ident(assert_equal) ident(after_filter)operator(,) instance_variable(@controller)operator(.)ident(filter_parameters)operator(()ident(before_filter)operator(\)) ident(filter_words)operator(.)ident(push)operator(()stringoperator(\)) constant(FilterParamController)operator(.)ident(filter_parameter_logging)operator(()operator(*)ident(filter_words)operator(\)) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) ident(value)operator(.)ident(reverse!) reserved(if) ident(key) operator(=)operator(~) regexp reserved(end) ident(before_filter)operator([)stringoperator(]) operator(=) operator({)stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)operator({)stringoperator(=)operator(>)operator({)stringoperator(=)operator(>)stringoperator(})operator(})operator(}) ident(after_filter)operator([)stringoperator(]) operator(=) operator({)stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)stringoperator(,) stringoperator(=)operator(>)operator({)stringoperator(=)operator(>)operator({)stringoperator(=)operator(>)stringoperator(})operator(})operator(}) ident(assert_equal) ident(after_filter)operator(,) instance_variable(@controller)operator(.)ident(filter_parameters)operator(()ident(before_filter)operator(\)) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(FilterTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) ident(before_filter) symbol(:ensure_login) ident(after_filter) symbol(:clean_up) reserved(def) method(show) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) ident(private) reserved(def) method(ensure_login) instance_variable(@ran_filter) operator(||=) operator([)operator(]) instance_variable(@ran_filter) operator(<<) string reserved(end) reserved(def) method(clean_up) instance_variable(@ran_after_filter) operator(||=) operator([)operator(]) instance_variable(@ran_after_filter) operator(<<) string reserved(end) reserved(end) reserved(class) class(RenderingController) operator(<) constant(ActionController)operator(::)constant(Base) ident(before_filter) symbol(:render_something_else) reserved(def) method(show) instance_variable(@ran_action) operator(=) pre_constant(true) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) ident(private) reserved(def) method(render_something_else) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(end) reserved(class) class(ConditionalFilterController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(show) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(another_action) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(show_without_filter) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) ident(private) reserved(def) method(ensure_login) instance_variable(@ran_filter) operator(||=) operator([)operator(]) instance_variable(@ran_filter) operator(<<) string reserved(end) reserved(def) method(clean_up_tmp) instance_variable(@ran_filter) operator(||=) operator([)operator(]) instance_variable(@ran_filter) operator(<<) string reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise)operator(()ident(e)operator(\)) reserved(end) reserved(end) reserved(class) class(ConditionalCollectionFilterController) operator(<) constant(ConditionalFilterController) ident(before_filter) symbol(:ensure_login)operator(,) symbol(:except) operator(=)operator(>) operator([) symbol(:show_without_filter)operator(,) symbol(:another_action) operator(]) reserved(end) reserved(class) class(OnlyConditionSymController) operator(<) constant(ConditionalFilterController) ident(before_filter) symbol(:ensure_login)operator(,) symbol(:only) operator(=)operator(>) symbol(:show) reserved(end) reserved(class) class(ExceptConditionSymController) operator(<) constant(ConditionalFilterController) ident(before_filter) symbol(:ensure_login)operator(,) symbol(:except) operator(=)operator(>) symbol(:show_without_filter) reserved(end) reserved(class) class(BeforeAndAfterConditionController) operator(<) constant(ConditionalFilterController) ident(before_filter) symbol(:ensure_login)operator(,) symbol(:only) operator(=)operator(>) symbol(:show) ident(after_filter) symbol(:clean_up_tmp)operator(,) symbol(:only) operator(=)operator(>) symbol(:show) reserved(end) reserved(class) class(OnlyConditionProcController) operator(<) constant(ConditionalFilterController) ident(before_filter)operator(()symbol(:only) operator(=)operator(>) symbol(:show)operator(\)) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true) operator(}) reserved(end) reserved(class) class(ExceptConditionProcController) operator(<) constant(ConditionalFilterController) ident(before_filter)operator(()symbol(:except) operator(=)operator(>) symbol(:show_without_filter)operator(\)) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true) operator(}) reserved(end) reserved(class) class(ConditionalClassFilter) reserved(def) pre_constant(self)operator(.)method(filter)operator(()ident(controller)operator(\)) ident(controller)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true) reserved(end) reserved(end) reserved(class) class(OnlyConditionClassController) operator(<) constant(ConditionalFilterController) ident(before_filter) constant(ConditionalClassFilter)operator(,) symbol(:only) operator(=)operator(>) symbol(:show) reserved(end) reserved(class) class(ExceptConditionClassController) operator(<) constant(ConditionalFilterController) ident(before_filter) constant(ConditionalClassFilter)operator(,) symbol(:except) operator(=)operator(>) symbol(:show_without_filter) reserved(end) reserved(class) class(AnomolousYetValidConditionController) operator(<) constant(ConditionalFilterController) ident(before_filter)operator(()constant(ConditionalClassFilter)operator(,) symbol(:ensure_login)operator(,) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true) operator(})operator(,) symbol(:except) operator(=)operator(>) symbol(:show_without_filter)operator(\)) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true)operator(}) reserved(end) reserved(class) class(PrependingController) operator(<) constant(TestController) ident(prepend_before_filter) symbol(:wonderful_life) comment(# skip_before_filter :fire_flash) ident(private) reserved(def) method(wonderful_life) instance_variable(@ran_filter) operator(||=) operator([)operator(]) instance_variable(@ran_filter) operator(<<) string reserved(end) reserved(end) reserved(class) class(ConditionalSkippingController) operator(<) constant(TestController) ident(skip_before_filter) symbol(:ensure_login)operator(,) symbol(:only) operator(=)operator(>) operator([) symbol(:login) operator(]) ident(skip_after_filter) symbol(:clean_up)operator(,) symbol(:only) operator(=)operator(>) operator([) symbol(:login) operator(]) ident(before_filter) symbol(:find_user)operator(,) symbol(:only) operator(=)operator(>) operator([) symbol(:change_password) operator(]) reserved(def) method(login) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(change_password) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) ident(protected) reserved(def) method(find_user) instance_variable(@ran_filter) operator(||=) operator([)operator(]) instance_variable(@ran_filter) operator(<<) string reserved(end) reserved(end) reserved(class) class(ConditionalParentOfConditionalSkippingController) operator(<) constant(ConditionalFilterController) ident(before_filter) symbol(:conditional_in_parent)operator(,) symbol(:only) operator(=)operator(>) operator([)symbol(:show)operator(,) symbol(:another_action)operator(]) ident(after_filter) symbol(:conditional_in_parent)operator(,) symbol(:only) operator(=)operator(>) operator([)symbol(:show)operator(,) symbol(:another_action)operator(]) ident(private) reserved(def) method(conditional_in_parent) instance_variable(@ran_filter) operator(||=) operator([)operator(]) instance_variable(@ran_filter) operator(<<) string reserved(end) reserved(end) reserved(class) class(ChildOfConditionalParentController) operator(<) constant(ConditionalParentOfConditionalSkippingController) ident(skip_before_filter) symbol(:conditional_in_parent)operator(,) symbol(:only) operator(=)operator(>) symbol(:another_action) ident(skip_after_filter) symbol(:conditional_in_parent)operator(,) symbol(:only) operator(=)operator(>) symbol(:another_action) reserved(end) reserved(class) class(ProcController) operator(<) constant(PrependingController) ident(before_filter)operator(()ident(proc) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true) operator(})operator(\)) reserved(end) reserved(class) class(ImplicitProcController) operator(<) constant(PrependingController) ident(before_filter) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true) operator(}) reserved(end) reserved(class) class(AuditFilter) reserved(def) pre_constant(self)operator(.)method(filter)operator(()ident(controller)operator(\)) ident(controller)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true) reserved(end) reserved(end) reserved(class) class(AroundFilter) reserved(def) method(before)operator(()ident(controller)operator(\)) instance_variable(@execution_log) operator(=) string ident(controller)operator(.)ident(class)operator(.)ident(execution_log) operator(<<) string reserved(if) ident(controller)operator(.)ident(respond_to?) symbol(:execution_log) ident(controller)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true) reserved(end) reserved(def) method(after)operator(()ident(controller)operator(\)) ident(controller)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) instance_variable(@execution_log) operator(+) string ident(controller)operator(.)ident(assigns)operator([)stringoperator(]) operator(=) pre_constant(true) ident(controller)operator(.)ident(class)operator(.)ident(execution_log) operator(<<) string reserved(if) ident(controller)operator(.)ident(respond_to?) symbol(:execution_log) reserved(end) reserved(end) reserved(class) class(AppendedAroundFilter) reserved(def) method(before)operator(()ident(controller)operator(\)) ident(controller)operator(.)ident(class)operator(.)ident(execution_log) operator(<<) string reserved(end) reserved(def) method(after)operator(()ident(controller)operator(\)) ident(controller)operator(.)ident(class)operator(.)ident(execution_log) operator(<<) string reserved(end) reserved(end) reserved(class) class(AuditController) operator(<) constant(ActionController)operator(::)constant(Base) ident(before_filter)operator(()constant(AuditFilter)operator(\)) reserved(def) method(show) ident(render_text) string reserved(end) reserved(end) reserved(class) class(BadFilterController) operator(<) constant(ActionController)operator(::)constant(Base) ident(before_filter) integer(2) reserved(def) method(show)operator(()operator(\)) string reserved(end) ident(protected) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise)operator(()ident(e)operator(\)) reserved(end) reserved(end) reserved(class) class(AroundFilterController) operator(<) constant(PrependingController) ident(around_filter) constant(AroundFilter)operator(.)ident(new) reserved(end) reserved(class) class(MixedFilterController) operator(<) constant(PrependingController) ident(cattr_accessor) symbol(:execution_log) reserved(def) method(initialize) class_variable(@@execution_log) operator(=) string reserved(end) ident(before_filter) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(class)operator(.)ident(execution_log) operator(<<) string operator(}) ident(prepend_around_filter) constant(AroundFilter)operator(.)ident(new) ident(after_filter) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(class)operator(.)ident(execution_log) operator(<<) string operator(}) ident(append_around_filter) constant(AppendedAroundFilter)operator(.)ident(new) reserved(end) reserved(class) class(MixedSpecializationController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(class) class(OutOfOrder) operator(<) constant(StandardError)operator(;) reserved(end) ident(before_filter) symbol(:first) ident(before_filter) symbol(:second)operator(,) symbol(:only) operator(=)operator(>) symbol(:foo) reserved(def) method(foo) ident(render_text) string reserved(end) reserved(def) method(bar) ident(render_text) string reserved(end) ident(protected) reserved(def) method(first) instance_variable(@first) operator(=) pre_constant(true) reserved(end) reserved(def) method(second) ident(raise) constant(OutOfOrder) reserved(unless) instance_variable(@first) reserved(end) reserved(end) reserved(class) class(DynamicDispatchController) operator(<) constant(ActionController)operator(::)constant(Base) ident(before_filter) symbol(:choose) stringoperator(.)ident(each) reserved(do) operator(|)ident(action)operator(|) ident(define_method)operator(()ident(action)operator(\)) operator({) ident(render) symbol(:text) operator(=)operator(>) ident(action) operator(}) reserved(end) ident(private) reserved(def) method(choose) pre_constant(self)operator(.)ident(action_name) operator(=) ident(params)operator([)symbol(:choose)operator(]) reserved(end) reserved(end) reserved(def) method(test_added_filter_to_inheritance_graph) ident(assert_equal) operator([) symbol(:ensure_login) operator(])operator(,) constant(TestController)operator(.)ident(before_filters) reserved(end) reserved(def) method(test_base_class_in_isolation) ident(assert_equal) operator([) operator(])operator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(before_filters) reserved(end) reserved(def) method(test_prepending_filter) ident(assert_equal) operator([) symbol(:wonderful_life)operator(,) symbol(:ensure_login) operator(])operator(,) constant(PrependingController)operator(.)ident(before_filters) reserved(end) reserved(def) method(test_running_filters) ident(assert_equal) stringoperator(,) ident(test_process)operator(()constant(PrependingController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_running_filters_with_proc) ident(assert) ident(test_process)operator(()constant(ProcController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_running_filters_with_implicit_proc) ident(assert) ident(test_process)operator(()constant(ImplicitProcController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_running_filters_with_class) ident(assert) ident(test_process)operator(()constant(AuditController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_running_anomolous_yet_valid_condition_filters) ident(response) operator(=) ident(test_process)operator(()constant(AnomolousYetValidConditionController)operator(\)) ident(assert_equal) stringoperator(,) ident(response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) ident(response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) ident(response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) ident(response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(response) operator(=) ident(test_process)operator(()constant(AnomolousYetValidConditionController)operator(,) stringoperator(\)) ident(assert_equal) pre_constant(nil)operator(,) ident(response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) operator(!)ident(response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) operator(!)ident(response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) operator(!)ident(response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_running_collection_condition_filters) ident(assert_equal) stringoperator(,) ident(test_process)operator(()constant(ConditionalCollectionFilterController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert_equal) pre_constant(nil)operator(,) ident(test_process)operator(()constant(ConditionalCollectionFilterController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert_equal) pre_constant(nil)operator(,) ident(test_process)operator(()constant(ConditionalCollectionFilterController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_running_only_condition_filters) ident(assert_equal) stringoperator(,) ident(test_process)operator(()constant(OnlyConditionSymController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert_equal) pre_constant(nil)operator(,) ident(test_process)operator(()constant(OnlyConditionSymController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) ident(test_process)operator(()constant(OnlyConditionProcController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) operator(!)ident(test_process)operator(()constant(OnlyConditionProcController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) ident(test_process)operator(()constant(OnlyConditionClassController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) operator(!)ident(test_process)operator(()constant(OnlyConditionClassController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_running_except_condition_filters) ident(assert_equal) stringoperator(,) ident(test_process)operator(()constant(ExceptConditionSymController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert_equal) pre_constant(nil)operator(,) ident(test_process)operator(()constant(ExceptConditionSymController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) ident(test_process)operator(()constant(ExceptConditionProcController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) operator(!)ident(test_process)operator(()constant(ExceptConditionProcController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) ident(test_process)operator(()constant(ExceptConditionClassController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) operator(!)ident(test_process)operator(()constant(ExceptConditionClassController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_running_before_and_after_condition_filters) ident(assert_equal) stringoperator(,) ident(test_process)operator(()constant(BeforeAndAfterConditionController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert_equal) pre_constant(nil)operator(,) ident(test_process)operator(()constant(BeforeAndAfterConditionController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_bad_filter) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(ActionControllerError)operator(\)) operator({) ident(test_process)operator(()constant(BadFilterController)operator(\)) operator(}) reserved(end) reserved(def) method(test_around_filter) ident(controller) operator(=) ident(test_process)operator(()constant(AroundFilterController)operator(\)) ident(assert) ident(controller)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert) ident(controller)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_having_properties_in_around_filter) ident(controller) operator(=) ident(test_process)operator(()constant(AroundFilterController)operator(\)) ident(assert_equal) stringoperator(,) ident(controller)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_prepending_and_appending_around_filter) ident(controller) operator(=) ident(test_process)operator(()constant(MixedFilterController)operator(\)) ident(assert_equal) string operator(+) stringoperator(,) constant(MixedFilterController)operator(.)ident(execution_log) reserved(end) reserved(def) method(test_rendering_breaks_filtering_chain) ident(response) operator(=) ident(test_process)operator(()constant(RenderingController)operator(\)) ident(assert_equal) stringoperator(,) ident(response)operator(.)ident(body) ident(assert) operator(!)ident(response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_filters_with_mixed_specialization_run_in_order) ident(assert_nothing_raised) reserved(do) ident(response) operator(=) ident(test_process)operator(()constant(MixedSpecializationController)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(response)operator(.)ident(body) reserved(end) ident(assert_nothing_raised) reserved(do) ident(response) operator(=) ident(test_process)operator(()constant(MixedSpecializationController)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(response)operator(.)ident(body) reserved(end) reserved(end) reserved(def) method(test_dynamic_dispatch) stringoperator(.)ident(each) reserved(do) operator(|)ident(action)operator(|) ident(request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) ident(request)operator(.)ident(query_parameters)operator([)symbol(:choose)operator(]) operator(=) ident(action) ident(response) operator(=) constant(DynamicDispatchController)operator(.)ident(process)operator(()ident(request)operator(,) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new)operator(\)) ident(assert_equal) ident(action)operator(,) ident(response)operator(.)ident(body) reserved(end) reserved(end) reserved(def) method(test_conditional_skipping_of_filters) ident(assert_nil) ident(test_process)operator(()constant(ConditionalSkippingController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(test_process)operator(()constant(ConditionalSkippingController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert_nil) ident(test_process)operator(()constant(ConditionalSkippingController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(controller)operator(.)ident(instance_variable_get)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) ident(test_process)operator(()constant(ConditionalSkippingController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(controller)operator(.)ident(instance_variable_get)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_conditional_skipping_of_filters_when_parent_filter_is_also_conditional) ident(assert_equal) stringoperator(,) ident(test_process)operator(()constant(ChildOfConditionalParentController)operator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(assert_nil) ident(test_process)operator(()constant(ChildOfConditionalParentController)operator(,) stringoperator(\))operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) ident(private) reserved(def) method(test_process)operator(()ident(controller)operator(,) ident(action) operator(=) stringoperator(\)) ident(request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) ident(request)operator(.)ident(action) operator(=) ident(action) ident(controller)operator(.)ident(process)operator(()ident(request)operator(,) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new)operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(FlashTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(set_flash) ident(flash)operator([)stringoperator(]) operator(=) string ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(set_flash_now) ident(flash)operator(.)ident(now)operator([)stringoperator(]) operator(=) string ident(flash)operator(.)ident(now)operator([)stringoperator(]) operator(||=) string ident(flash)operator(.)ident(now)operator([)stringoperator(]) operator(||=) string instance_variable(@flashy) operator(=) ident(flash)operator(.)ident(now)operator([)stringoperator(]) instance_variable(@flash_copy) operator(=) operator({)operator(})operator(.)ident(update) ident(flash) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(attempt_to_use_flash_now) instance_variable(@flash_copy) operator(=) operator({)operator(})operator(.)ident(update) ident(flash) instance_variable(@flashy) operator(=) ident(flash)operator([)stringoperator(]) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(use_flash) instance_variable(@flash_copy) operator(=) operator({)operator(})operator(.)ident(update) ident(flash) instance_variable(@flashy) operator(=) ident(flash)operator([)stringoperator(]) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(use_flash_and_keep_it) instance_variable(@flash_copy) operator(=) operator({)operator(})operator(.)ident(update) ident(flash) instance_variable(@flashy) operator(=) ident(flash)operator([)stringoperator(]) ident(silence_warnings) operator({) ident(keep_flash) operator(}) ident(render) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(unless) constant(ActionController)operator(::)constant(MissingTemplate) operator(===) ident(e) reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@controller) operator(=) constant(TestController)operator(.)ident(new) reserved(end) reserved(def) method(test_flash) ident(get) symbol(:set_flash) ident(get) symbol(:use_flash) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(])operator([)stringoperator(]) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(get) symbol(:use_flash) ident(assert_nil) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(])operator([)stringoperator(])operator(,) string reserved(end) reserved(def) method(test_keep_flash) ident(get) symbol(:set_flash) ident(get) symbol(:use_flash_and_keep_it) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(])operator([)stringoperator(]) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(get) symbol(:use_flash) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(])operator([)stringoperator(])operator(,) string ident(get) symbol(:use_flash) ident(assert_nil) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(])operator([)stringoperator(])operator(,) string reserved(end) reserved(def) method(test_flash_now) ident(get) symbol(:set_flash_now) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(])operator([)stringoperator(]) ident(assert_equal) string operator(,) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(])operator([)stringoperator(]) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) ident(get) symbol(:attempt_to_use_flash_now) ident(assert_nil) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(])operator([)stringoperator(]) ident(assert_nil) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(])operator([)stringoperator(]) ident(assert_nil) instance_variable(@response)operator(.)ident(template)operator(.)ident(assigns)operator([)stringoperator(]) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string constant(MemCache) operator(=) constant(Struct)operator(.)ident(new)operator(()symbol(:MemCache)operator(,) symbol(:address)operator(\)) reserved(unless) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:MemCache)operator(\)) reserved(class) class(FragmentCacheStoreSettingTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(teardown) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(=) constant(ActionController)operator(::)constant(Caching)operator(::)constant(Fragments)operator(::)constant(MemoryStore)operator(.)ident(new) reserved(end) reserved(def) method(test_file_fragment_cache_store) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(=) symbol(:file_store)operator(,) string ident(assert_kind_of)operator(() constant(ActionController)operator(::)constant(Caching)operator(::)constant(Fragments)operator(::)constant(FileStore)operator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(\)) ident(assert_equal) stringoperator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store)operator(.)ident(cache_path) reserved(end) reserved(def) method(test_drb_fragment_cache_store) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(=) symbol(:drb_store)operator(,) string ident(assert_kind_of)operator(() constant(ActionController)operator(::)constant(Caching)operator(::)constant(Fragments)operator(::)constant(DRbStore)operator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(\)) ident(assert_equal) stringoperator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store)operator(.)ident(address) reserved(end) reserved(def) method(test_mem_cache_fragment_cache_store) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(=) symbol(:mem_cache_store)operator(,) string ident(assert_kind_of)operator(() constant(ActionController)operator(::)constant(Caching)operator(::)constant(Fragments)operator(::)constant(MemCacheStore)operator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(\)) ident(assert_equal) stringoperator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store)operator(.)ident(addresses) reserved(end) reserved(def) method(test_object_assigned_fragment_cache_store) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(=) constant(ActionController)operator(::)constant(Caching)operator(::)constant(Fragments)operator(::)constant(FileStore)operator(.)ident(new)operator(()stringoperator(\)) ident(assert_kind_of)operator(() constant(ActionController)operator(::)constant(Caching)operator(::)constant(Fragments)operator(::)constant(FileStore)operator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store) operator(\)) ident(assert_equal) stringoperator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(fragment_cache_store)operator(.)ident(cache_path) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) ident(attr_accessor) symbol(:delegate_attr) reserved(def) method(delegate_method)operator(()operator(\)) reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) reserved(module) class(Fun) reserved(class) class(GamesController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(render_hello_world) ident(render) symbol(:inline) operator(=)operator(>) string)delimiter(")> reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) reserved(class) class(PDFController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(test) ident(render) symbol(:inline) operator(=)operator(>) string)delimiter(")> reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) reserved(end) reserved(module) class(LocalAbcHelper) reserved(def) method(a)operator(()operator(\)) reserved(end) reserved(def) method(b)operator(()operator(\)) reserved(end) reserved(def) method(c)operator(()operator(\)) reserved(end) reserved(end) reserved(class) class(HelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) comment(# Increment symbol counter.) instance_variable(@symbol) operator(=) operator(()class_variable(@@counter) operator(||=) stringoperator(\))operator(.)ident(succ!)operator(.)ident(dup) comment(# Generate new controller class.) ident(controller_class_name) operator(=) stringcontent(Controller)delimiter(")> ident(eval)operator(()stringcontent( < TestController; end)delimiter(")>operator(\)) instance_variable(@controller_class) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(const_get)operator(()ident(controller_class_name)operator(\)) comment(# Generate new template class and assign to controller.) ident(template_class_name) operator(=) stringcontent(View)delimiter(")> ident(eval)operator(()stringcontent( < ActionView::Base; end)delimiter(")>operator(\)) instance_variable(@template_class) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(const_get)operator(()ident(template_class_name)operator(\)) instance_variable(@controller_class)operator(.)ident(template_class) operator(=) instance_variable(@template_class) comment(# Set default test helper.) pre_constant(self)operator(.)ident(test_helper) operator(=) constant(LocalAbcHelper) reserved(end) reserved(def) method(teardown) comment(# Reset template class.) comment(#ActionController::Base.template_class = ActionView::Base) reserved(end) reserved(def) method(test_deprecated_helper) ident(assert_equal) ident(expected_helper_methods)operator(,) ident(missing_methods) ident(assert_nothing_raised) operator({) instance_variable(@controller_class)operator(.)ident(helper) constant(TestHelper) operator(}) ident(assert_equal) operator([)operator(])operator(,) ident(missing_methods) reserved(end) reserved(def) method(test_declare_helper) ident(require) string pre_constant(self)operator(.)ident(test_helper) operator(=) constant(AbcHelper) ident(assert_equal) ident(expected_helper_methods)operator(,) ident(missing_methods) ident(assert_nothing_raised) operator({) instance_variable(@controller_class)operator(.)ident(helper) symbol(:abc) operator(}) ident(assert_equal) operator([)operator(])operator(,) ident(missing_methods) reserved(end) reserved(def) method(test_declare_missing_helper) ident(assert_equal) ident(expected_helper_methods)operator(,) ident(missing_methods) ident(assert_raise)operator(()constant(MissingSourceFile)operator(\)) operator({) instance_variable(@controller_class)operator(.)ident(helper) symbol(:missing) operator(}) reserved(end) reserved(def) method(test_declare_missing_file_from_helper) ident(require) string reserved(rescue) constant(LoadError) operator(=)operator(>) ident(e) ident(assert_nil) regexpoperator(.)ident(match)operator(()ident(e)operator(.)ident(to_s)operator(\))operator([)integer(1)operator(]) reserved(end) reserved(def) method(test_helper_block) ident(assert_nothing_raised) operator({) instance_variable(@controller_class)operator(.)ident(helper) operator({) reserved(def) method(block_helper_method)operator(;) reserved(end) operator(}) operator(}) ident(assert) ident(master_helper_methods)operator(.)ident(include?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_helper_block_include) ident(assert_equal) ident(expected_helper_methods)operator(,) ident(missing_methods) ident(assert_nothing_raised) operator({) instance_variable(@controller_class)operator(.)ident(helper) operator({) ident(include) constant(TestHelper) operator(}) operator(}) ident(assert) operator([)operator(])operator(,) ident(missing_methods) reserved(end) reserved(def) method(test_helper_method) ident(assert_nothing_raised) operator({) instance_variable(@controller_class)operator(.)ident(helper_method) symbol(:delegate_method) operator(}) ident(assert) ident(master_helper_methods)operator(.)ident(include?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_helper_attr) ident(assert_nothing_raised) operator({) instance_variable(@controller_class)operator(.)ident(helper_attr) symbol(:delegate_attr) operator(}) ident(assert) ident(master_helper_methods)operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(master_helper_methods)operator(.)ident(include?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_helper_for_nested_controller) ident(request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) ident(response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) ident(request)operator(.)ident(action) operator(=) string ident(assert_equal) stringoperator(,) constant(Fun)operator(::)constant(GamesController)operator(.)ident(process)operator(()ident(request)operator(,) ident(response)operator(\))operator(.)ident(body) reserved(end) reserved(def) method(test_helper_for_acronym_controller) ident(request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) ident(response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) ident(request)operator(.)ident(action) operator(=) string ident(assert_equal) stringoperator(,) constant(Fun)operator(::)constant(PDFController)operator(.)ident(process)operator(()ident(request)operator(,) ident(response)operator(\))operator(.)ident(body) reserved(end) ident(private) reserved(def) method(expected_helper_methods) constant(TestHelper)operator(.)ident(instance_methods) reserved(end) reserved(def) method(master_helper_methods) instance_variable(@controller_class)operator(.)ident(master_helper_module)operator(.)ident(instance_methods) reserved(end) reserved(def) method(missing_methods) ident(expected_helper_methods) operator(-) ident(master_helper_methods) reserved(end) reserved(def) method(test_helper=)operator(()ident(helper_module)operator(\)) ident(silence_warnings) operator({) pre_constant(self)operator(.)ident(class)operator(.)ident(const_set)operator(()stringoperator(,) ident(helper_module)operator(\)) operator(}) reserved(end) reserved(end) reserved(class) class(IsolatedHelpersTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(class) class(A) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(index) ident(render) symbol(:inline) operator(=)operator(>) string)delimiter(')> reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) reserved(class) class(B) operator(<) constant(A) ident(helper) operator({) reserved(def) method(shout)operator(;) string reserved(end) operator(}) reserved(def) method(index) ident(render) symbol(:inline) operator(=)operator(>) string)delimiter(')> reserved(end) reserved(end) reserved(class) class(C) operator(<) constant(A) ident(helper) operator({) reserved(def) method(shout)operator(;) string reserved(end) operator(}) reserved(def) method(index) ident(render) symbol(:inline) operator(=)operator(>) string)delimiter(')> reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@request)operator(.)ident(action) operator(=) string reserved(end) reserved(def) method(test_helper_in_a) ident(assert_raise)operator(()constant(NameError)operator(\)) operator({) constant(A)operator(.)ident(process)operator(()instance_variable(@request)operator(,) instance_variable(@response)operator(\)) operator(}) reserved(end) reserved(def) method(test_helper_in_b) ident(assert_equal) stringoperator(,) constant(B)operator(.)ident(process)operator(()instance_variable(@request)operator(,) instance_variable(@response)operator(\))operator(.)ident(body) reserved(end) reserved(def) method(test_helper_in_c) ident(assert_equal) stringoperator(,) constant(C)operator(.)ident(process)operator(()instance_variable(@request)operator(,) instance_variable(@response)operator(\))operator(.)ident(body) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string comment(# The template_root must be set on Base and not LayoutTest so that LayoutTest's inherited method has access to) comment(# the template_root when looking for a layout) constant(ActionController)operator(::)constant(Base)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(LayoutTest) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) pre_constant(self)operator(.)method(controller_path)operator(;) string reserved(end) reserved(end) comment(# Restore template root to be unset) constant(ActionController)operator(::)constant(Base)operator(.)ident(template_root) operator(=) pre_constant(nil) reserved(class) class(ProductController) operator(<) constant(LayoutTest) reserved(end) reserved(class) class(ItemController) operator(<) constant(LayoutTest) reserved(end) reserved(class) class(ThirdPartyTemplateLibraryController) operator(<) constant(LayoutTest) reserved(end) reserved(module) class(ControllerNameSpace) reserved(end) reserved(class) class(ControllerNameSpace::NestedController) operator(<) constant(LayoutTest) reserved(end) reserved(class) class(MabView) reserved(def) method(initialize)operator(()ident(view)operator(\)) reserved(end) reserved(def) method(render)operator(()ident(text)operator(,) ident(locals) operator(=) operator({)operator(})operator(\)) ident(text) reserved(end) reserved(end) constant(ActionView)operator(::)constant(Base)operator(::)ident(register_template_handler) symbol(:mab)operator(,) constant(MabView) reserved(class) class(LayoutAutoDiscoveryTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@request)operator(.)ident(host) operator(=) string reserved(end) reserved(def) method(test_application_layout_is_default_when_no_controller_match) instance_variable(@controller) operator(=) constant(ProductController)operator(.)ident(new) ident(get) symbol(:hello) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_controller_name_layout_name_match) instance_variable(@controller) operator(=) constant(ItemController)operator(.)ident(new) ident(get) symbol(:hello) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_third_party_template_library_auto_discovers_layout) instance_variable(@controller) operator(=) constant(ThirdPartyTemplateLibraryController)operator(.)ident(new) ident(get) symbol(:hello) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(active_layout) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_namespaced_controllers_auto_detect_layouts) instance_variable(@controller) operator(=) constant(ControllerNameSpace)operator(::)constant(NestedController)operator(.)ident(new) ident(get) symbol(:hello) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(active_layout) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(RespondToController) operator(<) constant(ActionController)operator(::)constant(Base) ident(layout) symbol(:set_layout) reserved(def) method(html_xml_or_rss) ident(respond_to) reserved(do) operator(|)ident(type)operator(|) ident(type)operator(.)ident(html) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(xml) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(rss) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(all) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) reserved(end) reserved(end) reserved(def) method(js_or_html) ident(respond_to) reserved(do) operator(|)ident(type)operator(|) ident(type)operator(.)ident(html) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(js) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(all) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) reserved(end) reserved(end) reserved(def) method(html_or_xml) ident(respond_to) reserved(do) operator(|)ident(type)operator(|) ident(type)operator(.)ident(html) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(xml) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(all) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) reserved(end) reserved(end) reserved(def) method(just_xml) ident(respond_to) reserved(do) operator(|)ident(type)operator(|) ident(type)operator(.)ident(xml) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) reserved(end) reserved(end) reserved(def) method(using_defaults) ident(respond_to) reserved(do) operator(|)ident(type)operator(|) ident(type)operator(.)ident(html) ident(type)operator(.)ident(js) ident(type)operator(.)ident(xml) reserved(end) reserved(end) reserved(def) method(using_defaults_with_type_list) ident(respond_to)operator(()symbol(:html)operator(,) symbol(:js)operator(,) symbol(:xml)operator(\)) reserved(end) reserved(def) method(made_for_content_type) ident(respond_to) reserved(do) operator(|)ident(type)operator(|) ident(type)operator(.)ident(rss) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(atom) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(all) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) reserved(end) reserved(end) reserved(def) method(custom_type_handling) ident(respond_to) reserved(do) operator(|)ident(type)operator(|) ident(type)operator(.)ident(html) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(custom)operator(()stringoperator(\)) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(all) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) reserved(end) reserved(end) reserved(def) method(handle_any) ident(respond_to) reserved(do) operator(|)ident(type)operator(|) ident(type)operator(.)ident(html) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) ident(type)operator(.)ident(any)operator(()symbol(:js)operator(,) symbol(:xml)operator(\)) operator({) ident(render) symbol(:text) operator(=)operator(>) string operator(}) reserved(end) reserved(end) reserved(def) method(all_types_with_layout) ident(respond_to) reserved(do) operator(|)ident(type)operator(|) ident(type)operator(.)ident(html) ident(type)operator(.)ident(js) reserved(end) reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) ident(protected) reserved(def) method(set_layout) reserved(if) ident(action_name) operator(==) string string reserved(end) reserved(end) reserved(end) constant(RespondToController)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(MimeControllerTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@controller) operator(=) constant(RespondToController)operator(.)ident(new) instance_variable(@request)operator(.)ident(host) operator(=) string reserved(end) reserved(def) method(test_html) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:js_or_html) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(get) symbol(:html_or_xml) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(get) symbol(:just_xml) ident(assert_response) integer(406) reserved(end) reserved(def) method(test_all) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:js_or_html) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) comment(# js is not part of all) ident(get) symbol(:html_or_xml) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(get) symbol(:just_xml) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_xml) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:html_xml_or_rss) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_js_or_html) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:js_or_html) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(get) symbol(:html_or_xml) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(get) symbol(:just_xml) ident(assert_response) integer(406) reserved(end) reserved(def) method(test_js_or_anything) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:js_or_html) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(get) symbol(:html_or_xml) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(get) symbol(:just_xml) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_using_defaults) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:using_defaults) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:using_defaults) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:using_defaults) ident(assert_equal) stringHello world!

    )char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_using_defaults_with_type_list) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:using_defaults_with_type_list) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:using_defaults_with_type_list) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:using_defaults_with_type_list) ident(assert_equal) stringHello world!

    )char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_with_content_type) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:made_for_content_type) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:made_for_content_type) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_synonyms) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:js_or_html) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:html_xml_or_rss) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_custom_types) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:custom_type_handling) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:custom_type_handling) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_xhtml_alias) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:html_or_xml) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_firefox_simulation) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:html_or_xml) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_handle_any) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:handle_any) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:handle_any) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:handle_any) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_all_types_with_layout) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:all_types_with_layout) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:all_types_with_layout) ident(assert_equal) stringHTML for all_types_with_layout)delimiter(')>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_xhr) ident(xhr) symbol(:get)operator(,) symbol(:js_or_html) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(xhr) symbol(:get)operator(,) symbol(:using_defaults) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(MimeTypeTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) constant(Mime)operator(::)constant(PNG) operator(=) constant(Mime)operator(::)constant(Type)operator(.)ident(new)operator(()stringoperator(\)) constant(Mime)operator(::)constant(PLAIN) operator(=) constant(Mime)operator(::)constant(Type)operator(.)ident(new)operator(()stringoperator(\)) reserved(def) method(test_parse_single) constant(Mime)operator(::)constant(LOOKUP)operator(.)ident(keys)operator(.)ident(each) reserved(do) operator(|)ident(mime_type)operator(|) ident(assert_equal) operator([)constant(Mime)operator(::)constant(Type)operator(.)ident(lookup)operator(()ident(mime_type)operator(\))operator(])operator(,) constant(Mime)operator(::)constant(Type)operator(.)ident(parse)operator(()ident(mime_type)operator(\)) reserved(end) reserved(end) reserved(def) method(test_parse_without_q) ident(accept) operator(=) string ident(expect) operator(=) operator([)constant(Mime)operator(::)constant(HTML)operator(,) constant(Mime)operator(::)constant(XML)operator(,) constant(Mime)operator(::)constant(YAML)operator(,) constant(Mime)operator(::)constant(PNG)operator(,) constant(Mime)operator(::)constant(PLAIN)operator(,) constant(Mime)operator(::)constant(ALL)operator(]) ident(assert_equal) ident(expect)operator(,) constant(Mime)operator(::)constant(Type)operator(.)ident(parse)operator(()ident(accept)operator(\)) reserved(end) reserved(def) method(test_parse_with_q) ident(accept) operator(=) string ident(expect) operator(=) operator([)constant(Mime)operator(::)constant(HTML)operator(,) constant(Mime)operator(::)constant(XML)operator(,) constant(Mime)operator(::)constant(PNG)operator(,) constant(Mime)operator(::)constant(PLAIN)operator(,) constant(Mime)operator(::)constant(YAML)operator(,) constant(Mime)operator(::)constant(ALL)operator(]) ident(assert_equal) ident(expect)operator(,) constant(Mime)operator(::)constant(Type)operator(.)ident(parse)operator(()ident(accept)operator(\)) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(silence_warnings) operator({) constant(Customer) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:name)operator(\)) operator(}) reserved(module) class(Fun) reserved(class) class(GamesController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(hello_world) reserved(end) reserved(end) reserved(end) reserved(module) class(NewRenderTestHelper) reserved(def) method(rjs_helper_method_from_module) ident(page)operator(.)ident(visual_effect) symbol(:highlight) reserved(end) reserved(end) reserved(class) class(NewRenderTestController) operator(<) constant(ActionController)operator(::)constant(Base) ident(layout) symbol(:determine_layout) reserved(def) pre_constant(self)operator(.)method(controller_name)operator(;) stringoperator(;) reserved(end) reserved(def) pre_constant(self)operator(.)method(controller_path)operator(;) stringoperator(;) reserved(end) reserved(def) method(hello_world) reserved(end) reserved(def) method(render_hello_world) ident(render) symbol(:template) operator(=)operator(>) string reserved(end) reserved(def) method(render_hello_world_from_variable) instance_variable(@person) operator(=) string ident(render) symbol(:text) operator(=)operator(>) stringdelimiter(")> reserved(end) reserved(def) method(render_action_hello_world) ident(render) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(render_action_hello_world_as_symbol) ident(render) symbol(:action) operator(=)operator(>) symbol(:hello_world) reserved(end) reserved(def) method(render_text_hello_world) ident(render) symbol(:text) operator(=)operator(>) string reserved(end) reserved(def) method(render_text_hello_world_with_layout) instance_variable(@variable_for_layout) operator(=) string ident(render) symbol(:text) operator(=)operator(>) stringoperator(,) symbol(:layout) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(hello_world_with_layout_false) ident(render) symbol(:layout) operator(=)operator(>) pre_constant(false) reserved(end) reserved(def) method(render_custom_code) ident(render) symbol(:text) operator(=)operator(>) stringoperator(,) symbol(:status) operator(=)operator(>) string reserved(end) reserved(def) method(render_file_with_instance_variables) instance_variable(@secret) operator(=) string ident(path) operator(=) constant(File)operator(.)ident(join)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(,) stringoperator(\)) ident(render) symbol(:file) operator(=)operator(>) ident(path) reserved(end) reserved(def) method(render_file_with_locals) ident(path) operator(=) constant(File)operator(.)ident(join)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(,) stringoperator(\)) ident(render) symbol(:file) operator(=)operator(>) ident(path)operator(,) symbol(:locals) operator(=)operator(>) operator({)symbol(:secret) operator(=)operator(>) stringoperator(}) reserved(end) reserved(def) method(render_file_not_using_full_path) instance_variable(@secret) operator(=) string ident(render) symbol(:file) operator(=)operator(>) stringoperator(,) symbol(:use_full_path) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(render_file_not_using_full_path_with_relative_path) instance_variable(@secret) operator(=) string ident(render) symbol(:file) operator(=)operator(>) stringoperator(,) symbol(:use_full_path) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(render_file_not_using_full_path_with_dot_in_path) instance_variable(@secret) operator(=) string ident(render) symbol(:file) operator(=)operator(>) stringoperator(,) symbol(:use_full_path) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(render_xml_hello) instance_variable(@name) operator(=) string ident(render) symbol(:template) operator(=)operator(>) string reserved(end) reserved(def) method(greeting) comment(# let's just rely on the template) reserved(end) reserved(def) method(layout_test) ident(render) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(layout_test_with_different_layout) ident(render) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:layout) operator(=)operator(>) string reserved(end) reserved(def) method(rendering_without_layout) ident(render) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:layout) operator(=)operator(>) pre_constant(false) reserved(end) reserved(def) method(layout_overriding_layout) ident(render) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:layout) operator(=)operator(>) string reserved(end) reserved(def) method(rendering_nothing_on_layout) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(builder_layout_test) ident(render) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(partials_list) instance_variable(@test_unchanged) operator(=) string instance_variable(@customers) operator(=) operator([) constant(Customer)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Customer)operator(.)ident(new)operator(()stringoperator(\)) operator(]) ident(render) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(partial_only) ident(render) symbol(:partial) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(partial_only_with_layout) ident(render) symbol(:partial) operator(=)operator(>) stringoperator(,) symbol(:layout) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(partial_with_locals) ident(render) symbol(:partial) operator(=)operator(>) stringoperator(,) symbol(:locals) operator(=)operator(>) operator({) symbol(:customer) operator(=)operator(>) constant(Customer)operator(.)ident(new)operator(()stringoperator(\)) operator(}) reserved(end) reserved(def) method(partial_collection) ident(render) symbol(:partial) operator(=)operator(>) stringoperator(,) symbol(:collection) operator(=)operator(>) operator([) constant(Customer)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Customer)operator(.)ident(new)operator(()stringoperator(\)) operator(]) reserved(end) reserved(def) method(partial_collection_with_locals) ident(render) symbol(:partial) operator(=)operator(>) stringoperator(,) symbol(:collection) operator(=)operator(>) operator([) constant(Customer)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Customer)operator(.)ident(new)operator(()stringoperator(\)) operator(])operator(,) symbol(:locals) operator(=)operator(>) operator({) symbol(:greeting) operator(=)operator(>) string operator(}) reserved(end) reserved(def) method(empty_partial_collection) ident(render) symbol(:partial) operator(=)operator(>) stringoperator(,) symbol(:collection) operator(=)operator(>) operator([)operator(]) reserved(end) reserved(def) method(partial_with_hash_object) ident(render) symbol(:partial) operator(=)operator(>) stringoperator(,) symbol(:object) operator(=)operator(>) operator({)symbol(:first_name) operator(=)operator(>) stringoperator(}) reserved(end) reserved(def) method(partial_with_implicit_local_assignment) instance_variable(@customer) operator(=) constant(Customer)operator(.)ident(new)operator(()stringoperator(\)) ident(render) symbol(:partial) operator(=)operator(>) string reserved(end) reserved(def) method(hello_in_a_string) instance_variable(@customers) operator(=) operator([) constant(Customer)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Customer)operator(.)ident(new)operator(()stringoperator(\)) operator(]) ident(render) symbol(:text) operator(=)operator(>) stringoperator(\))inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(accessing_params_in_template) ident(render) symbol(:inline) operator(=)operator(>) string)delimiter(")> reserved(end) reserved(def) method(accessing_params_in_template_with_layout) ident(render) symbol(:layout) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:inline) operator(=)operator(>) string)delimiter(")> reserved(end) reserved(def) method(render_with_explicit_template) ident(render) string reserved(end) reserved(def) method(double_render) ident(render) symbol(:text) operator(=)operator(>) string ident(render) symbol(:text) operator(=)operator(>) string reserved(end) reserved(def) method(double_redirect) ident(redirect_to) symbol(:action) operator(=)operator(>) string ident(redirect_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(render_and_redirect) ident(render) symbol(:text) operator(=)operator(>) string ident(redirect_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(rendering_with_conflicting_local_vars) instance_variable(@name) operator(=) string reserved(def) instance_variable(@template)operator(.)method(name)operator(()operator(\)) pre_constant(nil) reserved(end) ident(render) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(hello_world_from_rxml_using_action) ident(render) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(hello_world_from_rxml_using_template) ident(render) symbol(:template) operator(=)operator(>) string reserved(end) ident(helper) constant(NewRenderTestHelper) ident(helper) reserved(do) reserved(def) method(rjs_helper_method)operator(()ident(value)operator(\)) ident(page)operator(.)ident(visual_effect) symbol(:highlight)operator(,) ident(value) reserved(end) reserved(end) reserved(def) method(enum_rjs_test) ident(render) symbol(:update) reserved(do) operator(|)ident(page)operator(|) ident(page)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(value)operator(|) ident(page)operator(.)ident(rjs_helper_method_from_module) ident(page)operator(.)ident(rjs_helper_method)operator(()ident(value)operator(\)) ident(page)operator(.)ident(sortable)operator(()ident(value)operator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) ident(page)operator(.)ident(draggable)operator(()ident(value)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(delete_with_js) instance_variable(@project_id) operator(=) integer(4) reserved(end) reserved(def) method(render_js_with_explicit_template) instance_variable(@project_id) operator(=) integer(4) ident(render) symbol(:template) operator(=)operator(>) string reserved(end) reserved(def) method(render_js_with_explicit_action_template) instance_variable(@project_id) operator(=) integer(4) ident(render) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(update_page) ident(render) symbol(:update) reserved(do) operator(|)ident(page)operator(|) ident(page)operator(.)ident(replace_html) stringoperator(,) string ident(page)operator(.)ident(visual_effect) symbol(:highlight)operator(,) string reserved(end) reserved(end) reserved(def) method(update_page_with_instance_variables) instance_variable(@money) operator(=) string instance_variable(@div_id) operator(=) string ident(render) symbol(:update) reserved(do) operator(|)ident(page)operator(|) ident(page)operator(.)ident(replace_html) instance_variable(@div_id)operator(,) instance_variable(@money) ident(page)operator(.)ident(visual_effect) symbol(:highlight)operator(,) instance_variable(@div_id) reserved(end) reserved(end) reserved(def) method(action_talk_to_layout) comment(# Action template sets variable that's picked up by layout) reserved(end) reserved(def) method(render_text_with_assigns) instance_variable(@hello) operator(=) string ident(render) symbol(:text) operator(=)operator(>) string reserved(end) reserved(def) method(yield_content_for) ident(render) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:layout) operator(=)operator(>) string reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) ident(private) reserved(def) method(determine_layout) reserved(case) ident(action_name) reserved(when) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string string reserved(when) string string reserved(when) stringoperator(,) string string reserved(end) reserved(end) reserved(end) constant(NewRenderTestController)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string constant(Fun)operator(::)constant(GamesController)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(NewRenderTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(NewRenderTestController)operator(.)ident(new) comment(# enable a logger so that (e.g.\) the benchmarking stuff runs, so we can get) comment(# a more accurate simulation of what happens in "real life".) instance_variable(@controller)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()pre_constant(nil)operator(\)) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@request)operator(.)ident(host) operator(=) string reserved(end) reserved(def) method(test_simple_show) ident(get) symbol(:hello_world) ident(assert_response) symbol(:success) ident(assert_template) string ident(assert_equal) stringHello world!)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_do_with_render) ident(get) symbol(:render_hello_world) ident(assert_template) string reserved(end) reserved(def) method(test_do_with_render_from_variable) ident(get) symbol(:render_hello_world_from_variable) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_do_with_render_action) ident(get) symbol(:render_action_hello_world) ident(assert_template) string reserved(end) reserved(def) method(test_do_with_render_action_as_symbol) ident(get) symbol(:render_action_hello_world_as_symbol) ident(assert_template) string reserved(end) reserved(def) method(test_do_with_render_text) ident(get) symbol(:render_text_hello_world) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_do_with_render_text_and_layout) ident(get) symbol(:render_text_hello_world_with_layout) ident(assert_equal) stringhello world, I'm here!)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_do_with_render_action_and_layout_false) ident(get) symbol(:hello_world_with_layout_false) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_do_with_render_custom_code) ident(get) symbol(:render_custom_code) ident(assert_response) symbol(:missing) reserved(end) reserved(def) method(test_render_file_with_instance_variables) ident(get) symbol(:render_file_with_instance_variables) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_file_not_using_full_path) ident(get) symbol(:render_file_not_using_full_path) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_file_not_using_full_path_with_relative_path) ident(get) symbol(:render_file_not_using_full_path_with_relative_path) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_file_not_using_full_path_with_dot_in_path) ident(get) symbol(:render_file_not_using_full_path_with_dot_in_path) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_file_with_locals) ident(get) symbol(:render_file_with_locals) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_attempt_to_access_object_method) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(UnknownAction)operator(,) stringoperator(\)) operator({) ident(get) symbol(:clone) operator(}) reserved(end) reserved(def) method(test_private_methods) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(UnknownAction)operator(,) stringoperator(\)) operator({) ident(get) symbol(:determine_layout) operator(}) reserved(end) reserved(def) method(test_access_to_request_in_view) ident(view_internals_old_value) operator(=) constant(ActionController)operator(::)constant(Base)operator(.)ident(view_controller_internals) constant(ActionController)operator(::)constant(Base)operator(.)ident(view_controller_internals) operator(=) pre_constant(false) constant(ActionController)operator(::)constant(Base)operator(.)ident(protected_variables_cache) operator(=) pre_constant(nil) ident(get) symbol(:hello_world) ident(assert_nil)operator(()ident(assigns)operator([)stringoperator(])operator(\)) constant(ActionController)operator(::)constant(Base)operator(.)ident(view_controller_internals) operator(=) pre_constant(true) constant(ActionController)operator(::)constant(Base)operator(.)ident(protected_variables_cache) operator(=) pre_constant(nil) ident(get) symbol(:hello_world) ident(assert_kind_of) constant(ActionController)operator(::)constant(AbstractRequest)operator(,) ident(assigns)operator([)stringoperator(]) constant(ActionController)operator(::)constant(Base)operator(.)ident(view_controller_internals) operator(=) ident(view_internals_old_value) constant(ActionController)operator(::)constant(Base)operator(.)ident(protected_variables_cache) operator(=) pre_constant(nil) reserved(end) reserved(def) method(test_render_xml) ident(get) symbol(:render_xml_hello) ident(assert_equal) string)char(\\n)content(

    Hello David

    )char(\\n)content(

    This is grand!

    )char(\\n)content()char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_enum_rjs_test) ident(get) symbol(:enum_rjs_test) ident(assert_equal) stringoperator(.)ident(strip)operator(,) instance_variable(@response)operator(.)ident(body)string reserved(end) reserved(def) method(test_render_xml_with_default) ident(get) symbol(:greeting) ident(assert_equal) stringThis is grand!

    )char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_rjs_with_default) ident(get) symbol(:delete_with_js) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_rjs_template_explicitly) ident(get) symbol(:render_js_with_explicit_template) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_rendering_rjs_action_explicitly) ident(get) symbol(:render_js_with_explicit_action_template) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_layout_rendering) ident(get) symbol(:layout_test) ident(assert_equal) stringHello world!)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_layout_test_with_different_layout) ident(get) symbol(:layout_test_with_different_layout) ident(assert_equal) stringHello world!)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_rendering_without_layout) ident(get) symbol(:rendering_without_layout) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_layout_overriding_layout) ident(get) symbol(:layout_overriding_layout) ident(assert_no_match) regexp)delimiter(})>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_rendering_nothing_on_layout) ident(get) symbol(:rendering_nothing_on_layout) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_xml_with_layouts) ident(get) symbol(:builder_layout_test) ident(assert_equal) string)char(\\n)content()char(\\n)content(

    Hello

    )char(\\n)content(

    This is grand!

    )char(\\n)content()char(\\n)content()char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_partial_only) ident(get) symbol(:partial_only) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_partial_only_with_layout) ident(get) symbol(:partial_only_with_layout) ident(assert_equal) stringonly partial)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_to_string) ident(get) symbol(:hello_in_a_string) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_nested_rendering) ident(get) symbol(:hello_world) ident(assert_equal) stringoperator(,) constant(Fun)operator(::)constant(GamesController)operator(.)ident(process)operator(()instance_variable(@request)operator(,) instance_variable(@response)operator(\))operator(.)ident(body) reserved(end) reserved(def) method(test_accessing_params_in_template) ident(get) symbol(:accessing_params_in_template)operator(,) symbol(:name) operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_accessing_params_in_template_with_layout) ident(get) symbol(:accessing_params_in_template_with_layout)operator(,) symbol(:name) operator(=)operator(>) string ident(assert_equal) stringHello: David)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_with_explicit_template) ident(get) symbol(:render_with_explicit_template) ident(assert_response) symbol(:success) reserved(end) reserved(def) method(test_double_render) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(DoubleRenderError)operator(\)) operator({) ident(get) symbol(:double_render) operator(}) reserved(end) reserved(def) method(test_double_redirect) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(DoubleRenderError)operator(\)) operator({) ident(get) symbol(:double_redirect) operator(}) reserved(end) reserved(def) method(test_render_and_redirect) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(DoubleRenderError)operator(\)) operator({) ident(get) symbol(:render_and_redirect) operator(}) reserved(end) reserved(def) method(test_rendering_with_conflicting_local_vars) ident(get) symbol(:rendering_with_conflicting_local_vars) ident(assert_equal)operator(()stringoperator(,) instance_variable(@response)operator(.)ident(body)operator(\)) reserved(end) reserved(def) method(test_action_talk_to_layout) ident(get) symbol(:action_talk_to_layout) ident(assert_equal) stringTalking to the layout)char(\\n)content(Action was here!)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_partials_list) ident(get) symbol(:partials_list) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_partial_with_locals) ident(get) symbol(:partial_with_locals) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_partial_collection) ident(get) symbol(:partial_collection) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_partial_collection_with_locals) ident(get) symbol(:partial_collection_with_locals) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_empty_partial_collection) ident(get) symbol(:empty_partial_collection) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_partial_with_hash_object) ident(get) symbol(:partial_with_hash_object) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_partial_with_implicit_local_assignment) ident(get) symbol(:partial_with_implicit_local_assignment) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_text_with_assigns) ident(get) symbol(:render_text_with_assigns) ident(assert_equal) stringoperator(,) ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_update_page) ident(get) symbol(:update_page) ident(assert_template) pre_constant(nil) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) ident(assert_equal) integer(2)operator(,) instance_variable(@response)operator(.)ident(body)operator(.)ident(split)operator(()global_variable($/)operator(\))operator(.)ident(length) reserved(end) reserved(def) method(test_update_page_with_instance_variables) ident(get) symbol(:update_page_with_instance_variables) ident(assert_template) pre_constant(nil) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(headers)operator([)stringoperator(]) ident(assert_match) regexpoperator(,) instance_variable(@response)operator(.)ident(body) ident(assert_match) regexpoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_yield_content_for) ident(get) symbol(:yield_content_for) ident(assert_equal) stringPutting stuff in the title!)char(\\n)char(\\n)content(Great stuff!)char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_overwritting_rendering_relative_file_with_extension) ident(get) symbol(:hello_world_from_rxml_using_template) ident(assert_equal) string)char(\\n)content(

    Hello

    )char(\\n)content()char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) ident(get) symbol(:hello_world_from_rxml_using_action) ident(assert_equal) string)char(\\n)content(

    Hello

    )char(\\n)content()char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(RawPostDataTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) pre_constant(ENV)operator([)stringoperator(]) operator(=) string pre_constant(ENV)operator([)stringoperator(]) operator(=) string pre_constant(ENV)operator([)stringoperator(]) operator(=) string reserved(end) reserved(def) method(test_raw_post_data) ident(process_raw) string reserved(end) ident(private) reserved(def) method(process_raw)operator(()ident(query_string)operator(\)) ident(old_stdin) operator(=) global_variable($stdin) reserved(begin) global_variable($stdin) operator(=) constant(StringIO)operator(.)ident(new)operator(()ident(query_string)operator(.)ident(dup)operator(\)) pre_constant(ENV)operator([)stringoperator(]) operator(=) global_variable($stdin)operator(.)ident(size)operator(.)ident(to_s) constant(CGI)operator(.)ident(new) ident(assert_not_nil) pre_constant(ENV)operator([)stringoperator(]) ident(assert) pre_constant(ENV)operator([)stringoperator(])operator(.)ident(frozen?) ident(assert_equal) ident(query_string)operator(,) pre_constant(ENV)operator([)stringoperator(]) reserved(ensure) global_variable($stdin) operator(=) ident(old_stdin) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(RedirectController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(simple_redirect) ident(redirect_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(method_redirect) ident(redirect_to) symbol(:dashbord_url)operator(,) integer(1)operator(,) string reserved(end) reserved(def) method(host_redirect) ident(redirect_to) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:only_path) operator(=)operator(>) pre_constant(false)operator(,) symbol(:host) operator(=)operator(>) string reserved(end) reserved(def) method(module_redirect) ident(redirect_to) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(redirect_with_assigns) instance_variable(@hello) operator(=) string ident(redirect_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(redirect_to_back) ident(redirect_to) symbol(:back) reserved(end) reserved(def) method(rescue_errors)operator(()ident(e)operator(\)) ident(raise) ident(e) reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) ident(protected) reserved(def) method(dashbord_url)operator(()ident(id)operator(,) ident(message)operator(\)) ident(url_for) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:params) operator(=)operator(>) operator({) string operator(=)operator(>) ident(id)operator(,) string operator(=)operator(>) ident(message) operator(}) reserved(end) reserved(end) reserved(class) class(RedirectTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(RedirectController)operator(.)ident(new) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) reserved(def) method(test_simple_redirect) ident(get) symbol(:simple_redirect) ident(assert_redirect_url) string reserved(end) reserved(def) method(test_redirect_with_method_reference_and_parameters) ident(get) symbol(:method_redirect) ident(assert_redirect_url) string reserved(end) reserved(def) method(test_simple_redirect_using_options) ident(get) symbol(:host_redirect) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:only_path) operator(=)operator(>) pre_constant(false)operator(,) symbol(:host) operator(=)operator(>) string reserved(end) reserved(def) method(test_redirect_error_with_pretty_diff) ident(get) symbol(:host_redirect) reserved(begin) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:only_path) operator(=)operator(>) pre_constant(true) reserved(rescue) constant(Test)operator(::)constant(Unit)operator(::)constant(AssertionFailedError) operator(=)operator(>) ident(err) ident(redirection_msg)operator(,) ident(diff_msg) operator(=) ident(err)operator(.)ident(message)operator(.)ident(scan)operator(()regexp)delimiter(/)>operator(\))operator(.)ident(collect) operator({) operator(|)ident(s)operator(|) ident(s)operator([)integer(2)operator(..)integer(-3)operator(]) operator(}) ident(assert_match) regexpfalse)delimiter(\))>operator(,) ident(redirection_msg) ident(assert_match) regexp"other.test.host")delimiter(\))>operator(,) ident(redirection_msg) ident(assert_match) regexp"other_host")delimiter(\))>operator(,) ident(redirection_msg) ident(assert_match) regexptrue)delimiter(\))>operator(,) ident(diff_msg) ident(assert_match) regexp"other.test.host")delimiter(\))>operator(,) ident(diff_msg) reserved(end) reserved(end) reserved(def) method(test_module_redirect) ident(get) symbol(:module_redirect) ident(assert_redirect_url) string reserved(end) reserved(def) method(test_module_redirect_using_options) ident(get) symbol(:module_redirect) ident(assert_redirected_to) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_redirect_with_assigns) ident(get) symbol(:redirect_with_assigns) ident(assert_equal) stringoperator(,) ident(assigns)operator([)stringoperator(]) reserved(end) reserved(def) method(test_redirect_to_back) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(get) symbol(:redirect_to_back) ident(assert_redirect_url) string reserved(end) reserved(def) method(test_redirect_to_back_with_no_referer) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(RedirectBackError)operator(\)) operator({) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) pre_constant(nil) ident(get) symbol(:redirect_to_back) operator(}) reserved(end) reserved(end) reserved(module) class(ModuleTest) reserved(class) class(ModuleRedirectController) operator(<) operator(::)constant(RedirectController) reserved(def) method(module_redirect) ident(redirect_to) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string reserved(end) reserved(end) reserved(class) class(ModuleRedirectTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(ModuleRedirectController)operator(.)ident(new) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) reserved(def) method(test_simple_redirect) ident(get) symbol(:simple_redirect) ident(assert_redirect_url) string reserved(end) reserved(def) method(test_redirect_with_method_reference_and_parameters) ident(get) symbol(:method_redirect) ident(assert_redirect_url) string reserved(end) reserved(def) method(test_simple_redirect_using_options) ident(get) symbol(:host_redirect) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:only_path) operator(=)operator(>) pre_constant(false)operator(,) symbol(:host) operator(=)operator(>) string reserved(end) reserved(def) method(test_module_redirect) ident(get) symbol(:module_redirect) ident(assert_redirect_url) string reserved(end) reserved(def) method(test_module_redirect_using_options) ident(get) symbol(:module_redirect) ident(assert_redirected_to) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(unless) reserved(defined?)operator(()constant(Customer)operator(\)) constant(Customer) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:name)operator(\)) reserved(end) reserved(module) class(Fun) reserved(class) class(GamesController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(hello_world) reserved(end) reserved(end) reserved(end) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) ident(layout) symbol(:determine_layout) reserved(def) method(hello_world) reserved(end) reserved(def) method(render_hello_world) ident(render) string reserved(end) reserved(def) method(render_hello_world_from_variable) instance_variable(@person) operator(=) string ident(render_text) stringdelimiter(")> reserved(end) reserved(def) method(render_action_hello_world) ident(render_action) string reserved(end) reserved(def) method(render_action_hello_world_with_symbol) ident(render_action) symbol(:hello_world) reserved(end) reserved(def) method(render_text_hello_world) ident(render_text) string reserved(end) reserved(def) method(render_custom_code) ident(render_text) stringoperator(,) string reserved(end) reserved(def) method(render_xml_hello) instance_variable(@name) operator(=) string ident(render) string reserved(end) reserved(def) method(greeting) comment(# let's just rely on the template) reserved(end) reserved(def) method(layout_test) ident(render_action) string reserved(end) reserved(def) method(builder_layout_test) ident(render_action) string reserved(end) reserved(def) method(partials_list) instance_variable(@test_unchanged) operator(=) string instance_variable(@customers) operator(=) operator([) constant(Customer)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Customer)operator(.)ident(new)operator(()stringoperator(\)) operator(]) ident(render_action) string reserved(end) reserved(def) method(partial_only) ident(render_partial) reserved(end) reserved(def) method(hello_in_a_string) instance_variable(@customers) operator(=) operator([) constant(Customer)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Customer)operator(.)ident(new)operator(()stringoperator(\)) operator(]) ident(render_text) stringoperator(\))inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(accessing_params_in_template) ident(render_template) string)delimiter(")> reserved(end) reserved(def) method(accessing_local_assigns_in_inline_template) ident(name) operator(=) ident(params)operator([)symbol(:local_name)operator(]) ident(render) symbol(:inline) operator(=)operator(>) string)delimiter(")>operator(,) symbol(:locals) operator(=)operator(>) operator({) symbol(:local_name) operator(=)operator(>) ident(name) operator(}) reserved(end) reserved(def) method(accessing_local_assigns_in_inline_template_with_string_keys) ident(name) operator(=) ident(params)operator([)symbol(:local_name)operator(]) constant(ActionView)operator(::)constant(Base)operator(.)ident(local_assigns_support_string_keys) operator(=) pre_constant(true) ident(render) symbol(:inline) operator(=)operator(>) string)delimiter(")>operator(,) symbol(:locals) operator(=)operator(>) operator({) string operator(=)operator(>) ident(name) operator(}) constant(ActionView)operator(::)constant(Base)operator(.)ident(local_assigns_support_string_keys) operator(=) pre_constant(false) reserved(end) reserved(def) method(render_to_string_test) instance_variable(@foo) operator(=) ident(render_to_string) symbol(:inline) operator(=)operator(>) string reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) ident(private) reserved(def) method(determine_layout) reserved(case) ident(action_name) reserved(when) stringoperator(:) string reserved(when) stringoperator(:) string reserved(end) reserved(end) reserved(end) constant(TestController)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string constant(Fun)operator(::)constant(GamesController)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(RenderTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@controller) operator(=) constant(TestController)operator(.)ident(new) instance_variable(@request)operator(.)ident(host) operator(=) string reserved(end) reserved(def) method(test_simple_show) ident(get) symbol(:hello_world) ident(assert_response) integer(200) ident(assert_template) string reserved(end) reserved(def) method(test_do_with_render) ident(get) symbol(:render_hello_world) ident(assert_template) string reserved(end) reserved(def) method(test_do_with_render_from_variable) ident(get) symbol(:render_hello_world_from_variable) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_do_with_render_action) ident(get) symbol(:render_action_hello_world) ident(assert_template) string reserved(end) reserved(def) method(test_do_with_render_action_with_symbol) ident(get) symbol(:render_action_hello_world_with_symbol) ident(assert_template) string reserved(end) reserved(def) method(test_do_with_render_text) ident(get) symbol(:render_text_hello_world) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_do_with_render_custom_code) ident(get) symbol(:render_custom_code) ident(assert_response) integer(404) reserved(end) reserved(def) method(test_attempt_to_access_object_method) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(UnknownAction)operator(,) stringoperator(\)) operator({) ident(get) symbol(:clone) operator(}) reserved(end) reserved(def) method(test_private_methods) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(UnknownAction)operator(,) stringoperator(\)) operator({) ident(get) symbol(:determine_layout) operator(}) reserved(end) reserved(def) method(test_access_to_request_in_view) ident(view_internals_old_value) operator(=) constant(ActionController)operator(::)constant(Base)operator(.)ident(view_controller_internals) constant(ActionController)operator(::)constant(Base)operator(.)ident(view_controller_internals) operator(=) pre_constant(false) constant(ActionController)operator(::)constant(Base)operator(.)ident(protected_variables_cache) operator(=) pre_constant(nil) ident(get) symbol(:hello_world) ident(assert_nil) ident(assigns)operator([)stringoperator(]) constant(ActionController)operator(::)constant(Base)operator(.)ident(view_controller_internals) operator(=) pre_constant(true) constant(ActionController)operator(::)constant(Base)operator(.)ident(protected_variables_cache) operator(=) pre_constant(nil) ident(get) symbol(:hello_world) ident(assert_kind_of) constant(ActionController)operator(::)constant(AbstractRequest)operator(,) ident(assigns)operator([)stringoperator(]) constant(ActionController)operator(::)constant(Base)operator(.)ident(view_controller_internals) operator(=) ident(view_internals_old_value) constant(ActionController)operator(::)constant(Base)operator(.)ident(protected_variables_cache) operator(=) pre_constant(nil) reserved(end) reserved(def) method(test_render_xml) ident(get) symbol(:render_xml_hello) ident(assert_equal) string)char(\\n)content(

    Hello David

    )char(\\n)content(

    This is grand!

    )char(\\n)content()char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_xml_with_default) ident(get) symbol(:greeting) ident(assert_equal) stringThis is grand!

    )char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_layout_rendering) ident(get) symbol(:layout_test) ident(assert_equal) stringHello world!)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_xml_with_layouts) ident(get) symbol(:builder_layout_test) ident(assert_equal) string)char(\\n)content()char(\\n)content(

    Hello

    )char(\\n)content(

    This is grand!

    )char(\\n)content()char(\\n)content()char(\\n)delimiter(")>operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) comment(# def test_partials_list) comment(# get :partials_list) comment(# assert_equal "goodbyeHello: davidHello: marygoodbye\\n", process_request.body) comment(# end) reserved(def) method(test_partial_only) ident(get) symbol(:partial_only) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_to_string) ident(get) symbol(:hello_in_a_string) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_render_to_string_resets_assigns) ident(get) symbol(:render_to_string_test) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_nested_rendering) instance_variable(@controller) operator(=) constant(Fun)operator(::)constant(GamesController)operator(.)ident(new) ident(get) symbol(:hello_world) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_accessing_params_in_template) ident(get) symbol(:accessing_params_in_template)operator(,) symbol(:name) operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_accessing_local_assigns_in_inline_template) ident(get) symbol(:accessing_local_assigns_in_inline_template)operator(,) symbol(:local_name) operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_accessing_local_assigns_in_inline_template_with_string_keys) ident(get) symbol(:accessing_local_assigns_in_inline_template_with_string_keys)operator(,) symbol(:local_name) operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(RequestTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) reserved(end) reserved(def) method(test_remote_ip) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(remote_addr) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(env)operator(.)ident(delete) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(remote_ip) instance_variable(@request)operator(.)ident(env)operator(.)ident(delete) string reserved(end) reserved(def) method(test_domains) instance_variable(@request)operator(.)ident(host) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(domain) instance_variable(@request)operator(.)ident(host) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(domain)operator(()integer(2)operator(\)) instance_variable(@request)operator(.)ident(host) operator(=) string ident(assert_nil) instance_variable(@request)operator(.)ident(domain) instance_variable(@request)operator(.)ident(host) operator(=) pre_constant(nil) ident(assert_nil) instance_variable(@request)operator(.)ident(domain) reserved(end) reserved(def) method(test_subdomains) instance_variable(@request)operator(.)ident(host) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(subdomains) instance_variable(@request)operator(.)ident(host) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(subdomains)operator(()integer(2)operator(\)) instance_variable(@request)operator(.)ident(host) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(subdomains)operator(()integer(2)operator(\)) instance_variable(@request)operator(.)ident(host) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(subdomains) instance_variable(@request)operator(.)ident(host) operator(=) pre_constant(nil) ident(assert_equal) operator([)operator(])operator(,) instance_variable(@request)operator(.)ident(subdomains) reserved(end) reserved(def) method(test_port_string) instance_variable(@request)operator(.)ident(port) operator(=) integer(80) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(port_string) instance_variable(@request)operator(.)ident(port) operator(=) integer(8080) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(port_string) reserved(end) reserved(def) method(test_relative_url_root) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(relative_url_root)operator(,) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) pre_constant(nil) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(relative_url_root) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(relative_url_root) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(relative_url_root) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(relative_url_root) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(relative_url_root) comment(# apache/scgi case) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(relative_url_root) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(relative_url_root) comment(# @env overrides path guess) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(relative_url_root) reserved(end) reserved(def) method(test_request_uri) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(set_REQUEST_URI) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(set_REQUEST_URI) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(set_REQUEST_URI) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(set_REQUEST_URI) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(set_REQUEST_URI) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(set_REQUEST_URI) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(set_REQUEST_URI) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(set_REQUEST_URI) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) comment(# The following tests are for when REQUEST_URI is not supplied (as in IIS\)) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(set_REQUEST_URI) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) pre_constant(nil) comment(#"/path/dispatch.rb") ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) pre_constant(nil) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) comment(# This test ensures that Rails uses REQUEST_URI over PATH_INFO) instance_variable(@request)operator(.)ident(relative_url_root) operator(=) pre_constant(nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(request_uri) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path) reserved(end) reserved(def) method(test_host_with_port) instance_variable(@request)operator(.)ident(host) operator(=) string instance_variable(@request)operator(.)ident(port) operator(=) integer(80) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(host_with_port) instance_variable(@request)operator(.)ident(host) operator(=) string instance_variable(@request)operator(.)ident(port) operator(=) integer(81) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(host_with_port) reserved(end) reserved(def) method(test_server_software) ident(assert_equal) pre_constant(nil)operator(,) instance_variable(@request)operator(.)ident(server_software) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(server_software) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(server_software) reserved(end) reserved(def) method(test_xml_http_request) ident(assert) operator(!)instance_variable(@request)operator(.)ident(xml_http_request?) ident(assert) operator(!)instance_variable(@request)operator(.)ident(xhr?) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert) operator(!)instance_variable(@request)operator(.)ident(xml_http_request?) ident(assert) operator(!)instance_variable(@request)operator(.)ident(xhr?) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert) instance_variable(@request)operator(.)ident(xml_http_request?) ident(assert) instance_variable(@request)operator(.)ident(xhr?) reserved(end) reserved(def) method(test_reports_ssl) ident(assert) operator(!)instance_variable(@request)operator(.)ident(ssl?) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert) instance_variable(@request)operator(.)ident(ssl?) reserved(end) reserved(def) method(test_reports_ssl_when_proxied_via_lighttpd) ident(assert) operator(!)instance_variable(@request)operator(.)ident(ssl?) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(assert) instance_variable(@request)operator(.)ident(ssl?) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string constant(RunTimeTests) operator(=) pre_constant(ARGV)operator(.)ident(include?) string reserved(module) class(ActionController::CodeGeneration) reserved(class) class(SourceTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(attr_accessor) symbol(:source) reserved(def) method(setup) instance_variable(@source) operator(=) constant(Source)operator(.)ident(new) reserved(end) reserved(def) method(test_initial_state) ident(assert_equal) operator([)operator(])operator(,) ident(source)operator(.)ident(lines) ident(assert_equal) integer(0)operator(,) ident(source)operator(.)ident(indentation_level) reserved(end) reserved(def) method(test_trivial_operations) ident(source) operator(<<) string ident(assert_equal) operator([)stringoperator(])operator(,) ident(source)operator(.)ident(lines) ident(assert_equal) stringoperator(,) ident(source)operator(.)ident(to_s) ident(source)operator(.)ident(line) string ident(assert_equal) operator([)stringoperator(,) stringoperator(])operator(,) ident(source)operator(.)ident(lines) ident(assert_equal) stringoperator(,) ident(source)operator(.)ident(to_s) reserved(end) reserved(def) method(test_indentation) ident(source) operator(<<) string ident(source) operator(<<) string ident(source)operator(.)ident(indent) operator({) ident(source) operator(<<) string operator(}) ident(source) operator(<<) string ident(source)operator(.)ident(indent) operator({) ident(source) operator(<<) string operator(}) ident(source) operator(<<) string ident(assert_equal) operator([)stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(])operator(,) ident(source)operator(.)ident(lines) ident(text) operator(=) string ident(assert_equal) ident(text)operator(,) ident(source)operator(.)ident(to_s) reserved(end) reserved(end) reserved(class) class(CodeGeneratorTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(attr_accessor) symbol(:generator) reserved(def) method(setup) instance_variable(@generator) operator(=) constant(CodeGenerator)operator(.)ident(new) reserved(end) reserved(def) method(test_initial_state) ident(assert_equal) operator([)operator(])operator(,) ident(generator)operator(.)ident(source)operator(.)ident(lines) ident(assert_equal) operator([)operator(])operator(,) ident(generator)operator(.)ident(locals) reserved(end) reserved(def) method(test_trivial_operations) operator([)stringoperator(,) stringoperator(])operator(.)ident(each) operator({)operator(|)ident(l)operator(|) ident(generator) operator(<<) ident(l)operator(}) ident(assert_equal) operator([)stringoperator(,) stringoperator(])operator(,) ident(generator)operator(.)ident(source)operator(.)ident(lines) ident(assert_equal) stringoperator(,) ident(generator)operator(.)ident(to_s) reserved(end) reserved(def) method(test_if) ident(generator) operator(<<) string ident(generator)operator(.)ident(if)operator(()stringoperator(\)) operator({) ident(generator) operator(<<) string operator(}) ident(assert_equal) stringoperator(,) ident(generator)operator(.)ident(to_s) reserved(end) reserved(def) method(test_else) ident(test_if) ident(generator)operator(.)ident(else) operator({) ident(generator) operator(<<) string operator(}) ident(assert_equal) stringoperator(,) ident(generator)operator(.)ident(to_s) reserved(end) reserved(def) method(test_dup) ident(generator) operator(<<) string ident(generator)operator(.)ident(locals) operator(<<) symbol(:x) ident(g) operator(=) ident(generator)operator(.)ident(dup) ident(assert_equal) ident(generator)operator(.)ident(source)operator(,) ident(g)operator(.)ident(source) ident(assert_equal) ident(generator)operator(.)ident(locals)operator(,) ident(g)operator(.)ident(locals) ident(g) operator(<<) string ident(g)operator(.)ident(locals) operator(<<) symbol(:y) ident(assert_equal) operator([)symbol(:x)operator(,) symbol(:y)operator(])operator(,) ident(g)operator(.)ident(locals) comment(# Make sure they don't share the same array.) ident(assert_equal) operator([)symbol(:x)operator(])operator(,) ident(generator)operator(.)ident(locals) reserved(end) reserved(end) reserved(class) class(RecognitionTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(attr_accessor) symbol(:generator) reserved(alias) symbol(:g) symbol(:generator) reserved(def) method(setup) instance_variable(@generator) operator(=) constant(RecognitionGenerator)operator(.)ident(new) reserved(end) reserved(def) method(go)operator(()ident(components)operator(\)) ident(g)operator(.)ident(current) operator(=) ident(components)operator(.)ident(first) ident(g)operator(.)ident(after) operator(=) ident(components)operator([)integer(1)operator(..)integer(-1)operator(]) operator(||) operator([)operator(]) ident(g)operator(.)ident(go) reserved(end) reserved(def) method(execute)operator(()ident(path)operator(,) ident(show) operator(=) pre_constant(false)operator(\)) ident(path) operator(=) ident(path)operator(.)ident(split)operator(()stringoperator(\)) reserved(if) ident(path)operator(.)ident(is_a?) constant(String) ident(source) operator(=) stringchar(\\n)inlinedelimiter(")> ident(puts) ident(source) reserved(if) ident(show) ident(r) operator(=) ident(eval) ident(source) ident(r) operator(?) ident(r)operator(.)ident(symbolize_keys) operator(:) pre_constant(nil) reserved(end) constant(Static) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(StaticComponent) constant(Dynamic) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(DynamicComponent) constant(Path) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(PathComponent) constant(Controller) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(ControllerComponent) reserved(def) method(test_all_static) ident(c) operator(=) stringoperator(.)ident(collect) operator({)operator(|)ident(str)operator(|) constant(Static)operator(.)ident(new)operator(()ident(str)operator(\))operator(}) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(g)operator(.)ident(constant_result) symbol(:action)operator(,) string ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_basic_dynamic) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(\))operator(]) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_basic_dynamic_backwards) ident(c) operator(=) operator([)constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(\))operator(,) constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(]) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_dynamic_with_default) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:default) operator(=)operator(>) stringoperator(\))operator(]) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_dynamic_with_string_condition) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:condition) operator(=)operator(>) stringoperator(\))operator(]) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_dynamic_with_string_condition_backwards) ident(c) operator(=) operator([)constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:condition) operator(=)operator(>) stringoperator(\))operator(,) constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(]) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_dynamic_with_regexp_condition) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:condition) operator(=)operator(>) regexpoperator(\))operator(]) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_dynamic_with_regexp_and_default) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:condition) operator(=)operator(>) regexpoperator(,) symbol(:default) operator(=)operator(>) stringoperator(\))operator(]) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_path) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Path)operator(.)ident(new)operator(()symbol(:file)operator(\))operator(]) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(g)operator(.)ident(constant_result) symbol(:action)operator(,) string ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) operator([)operator(])operator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) operator([)stringoperator(])operator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()stringoperator(\))operator([)symbol(:file)operator(])operator(.)ident(to_s) reserved(end) reserved(def) method(test_path_with_dynamic) ident(c) operator(=) operator([)constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(\))operator(,) constant(Path)operator(.)ident(new)operator(()symbol(:file)operator(\))operator(]) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) operator([)operator(])operator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) operator([)stringoperator(])operator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()stringoperator(\))operator([)symbol(:file)operator(])operator(.)ident(to_s) reserved(end) reserved(def) method(test_path_with_dynamic_and_default) ident(c) operator(=) operator([)constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:default) operator(=)operator(>) stringoperator(\))operator(,) constant(Path)operator(.)ident(new)operator(()symbol(:file)operator(\))operator(]) ident(go) ident(c) ident(assert_equal)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) operator([)operator(])operator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) operator([)operator(])operator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) operator([)operator(])operator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) operator([)stringoperator(])operator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:file) operator(=)operator(>) operator([)stringoperator(])operator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_controller) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Controller)operator(.)ident(new)operator(()symbol(:controller)operator(\))operator(]) ident(g)operator(.)ident(constant_result) symbol(:action)operator(,) string ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_controller_with_regexp) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Controller)operator(.)ident(new)operator(()symbol(:controller)operator(,) symbol(:condition) operator(=)operator(>) regexpoperator(\))operator(]) ident(g)operator(.)ident(constant_result) symbol(:action)operator(,) string ident(go) ident(c) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(NewsFeedController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_standard_route)operator(()ident(time) operator(=) operator(::)constant(RunTimeTests)operator(\)) ident(c) operator(=) operator([)constant(Controller)operator(.)ident(new)operator(()symbol(:controller)operator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:default) operator(=)operator(>) stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:id)operator(,) symbol(:default) operator(=)operator(>) pre_constant(nil)operator(\))operator(]) ident(go) ident(c) comment(# Make sure we get the right answers) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()stringoperator(\))operator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) reserved(if) ident(time) ident(source) operator(=) stringcontent( end)delimiter(")> ident(eval)operator(()ident(source)operator(\)) constant(GC)operator(.)ident(start) ident(n) operator(=) integer(1000) ident(time) operator(=) constant(Benchmark)operator(.)ident(realtime) reserved(do) ident(n)operator(.)ident(times) operator({) ident(execute)operator(()stringoperator(\)) ident(execute)operator(()stringoperator(\)) ident(execute)operator(()stringoperator(\)) ident(execute)operator(()stringoperator(\)) ident(execute)operator(()stringoperator(\)) ident(execute)operator(()stringoperator(\)) ident(execute)operator(()stringoperator(\)) ident(execute)operator(()stringoperator(\)) ident(execute)operator(()stringoperator(\)) ident(execute)operator(()stringoperator(\)) operator(}) reserved(end) ident(time) operator(-=) constant(Benchmark)operator(.)ident(realtime) reserved(do) ident(n)operator(.)ident(times) operator({) operator(}) reserved(end) ident(puts) string ident(per_url) operator(=) ident(time) operator(/) operator(()ident(n) operator(*) integer(10)operator(\)) ident(puts) stringcontent( ms/url)delimiter(")> ident(puts) stringcontent( urls/s)char(\\n)char(\\n)delimiter(")> reserved(end) reserved(end) reserved(def) method(test_default_route) ident(g)operator(.)ident(result) symbol(:controller)operator(,) stringoperator(,) pre_constant(true) ident(g)operator(.)ident(constant_result) symbol(:action)operator(,) string ident(go) operator([)operator(]) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_nil) ident(execute)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(execute)operator(()operator([)operator(])operator(\))operator(\)) reserved(end) reserved(end) reserved(class) class(GenerationTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(attr_accessor) symbol(:generator) reserved(alias) symbol(:g) symbol(:generator) reserved(def) method(setup) instance_variable(@generator) operator(=) constant(GenerationGenerator)operator(.)ident(new) comment(# ha!) reserved(end) reserved(def) method(go)operator(()ident(components)operator(\)) ident(g)operator(.)ident(current) operator(=) ident(components)operator(.)ident(first) ident(g)operator(.)ident(after) operator(=) ident(components)operator([)integer(1)operator(..)integer(-1)operator(]) operator(||) operator([)operator(]) ident(g)operator(.)ident(go) reserved(end) reserved(def) method(execute)operator(()ident(options)operator(,) ident(recall)operator(,) ident(show) operator(=) pre_constant(false)operator(\)) ident(source) operator(=) stringchar(\\n)char(\\n)delimiter(")> ident(puts) ident(source) reserved(if) ident(show) ident(eval)operator(()ident(source)operator(\)) reserved(end) constant(Static) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(StaticComponent) constant(Dynamic) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(DynamicComponent) constant(Path) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(PathComponent) constant(Controller) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(ControllerComponent) reserved(def) method(test_all_static_no_requirements) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(]) ident(go) ident(c) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)operator(})operator(,) operator({)operator(})operator(\)) reserved(end) reserved(def) method(test_basic_dynamic) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(\))operator(]) ident(go) ident(c) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)operator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)operator(})operator(,)operator({)operator(})operator(\)) reserved(end) reserved(def) method(test_dynamic_with_default) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:default) operator(=)operator(>) stringoperator(\))operator(]) ident(go) ident(c) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)operator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)operator(})operator(,) operator({)operator(})operator(\)) reserved(end) reserved(def) method(test_dynamic_with_regexp_condition) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:condition) operator(=)operator(>) regexpoperator(\))operator(]) ident(go) ident(c) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)operator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)operator(})operator(,) operator({)operator(})operator(\)) reserved(end) reserved(def) method(test_dynamic_with_default_and_regexp_condition) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:default) operator(=)operator(>) stringoperator(,) symbol(:condition) operator(=)operator(>) regexpoperator(\))operator(]) ident(go) ident(c) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)operator(})operator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)operator(})operator(,) operator({)operator(})operator(\)) reserved(end) reserved(def) method(test_path) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Path)operator(.)ident(new)operator(()symbol(:file)operator(\))operator(]) ident(go) ident(c) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:file) operator(=)operator(>) operator([)operator(])operator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:file) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:file) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:file) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:file) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:file) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) reserved(end) reserved(def) method(test_controller) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Controller)operator(.)ident(new)operator(()symbol(:controller)operator(\))operator(]) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()operator({)operator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(def) method(test_controller_with_regexp) ident(c) operator(=) operator([)constant(Static)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(Controller)operator(.)ident(new)operator(()symbol(:controller)operator(,) symbol(:condition) operator(=)operator(>) regexpoperator(\))operator(]) ident(go) ident(c) ident(assert_nil) ident(execute)operator(()operator({)operator(})operator(,) operator({)operator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(def) method(test_standard_route)operator(()ident(time) operator(=) operator(::)constant(RunTimeTests)operator(\)) ident(c) operator(=) operator([)constant(Controller)operator(.)ident(new)operator(()symbol(:controller)operator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:action)operator(,) symbol(:default) operator(=)operator(>) stringoperator(\))operator(,) constant(Dynamic)operator(.)ident(new)operator(()symbol(:id)operator(,) symbol(:default) operator(=)operator(>) pre_constant(nil)operator(\))operator(]) ident(go) ident(c) comment(# Make sure we get the right answers) ident(assert_equal)operator(()stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\))operator(\)) reserved(if) ident(time) constant(GC)operator(.)ident(start) ident(n) operator(=) integer(1000) ident(time) operator(=) constant(Benchmark)operator(.)ident(realtime) reserved(do) ident(n)operator(.)ident(times) operator({) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) operator(}) reserved(end) ident(time) operator(-=) constant(Benchmark)operator(.)ident(realtime) reserved(do) ident(n)operator(.)ident(times) operator({) operator(}) reserved(end) ident(puts) string ident(per_url) operator(=) ident(time) operator(/) operator(()ident(n) operator(*) integer(6)operator(\)) ident(puts) stringcontent( ms/url)delimiter(")> ident(puts) stringcontent( urls/s)char(\\n)char(\\n)delimiter(")> reserved(end) reserved(end) reserved(def) method(test_default_route) ident(g)operator(.)ident(if)operator(()ident(g)operator(.)ident(check_conditions)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\))operator(\)) operator({) ident(go) operator([)operator(]) operator(}) ident(assert_nil) ident(execute)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_nil) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(execute)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(end) reserved(class) class(RouteTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(route)operator(()operator(*)ident(args)operator(\)) instance_variable(@route) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(Route)operator(.)ident(new)operator(()operator(*)ident(args)operator(\)) reserved(unless) ident(args)operator(.)ident(empty?) reserved(return) instance_variable(@route) reserved(end) reserved(def) method(rec)operator(()ident(path)operator(,) ident(show) operator(=) pre_constant(false)operator(\)) ident(path) operator(=) ident(path)operator(.)ident(split)operator(()stringoperator(\)) reserved(if) ident(path)operator(.)ident(is_a?) constant(String) ident(index) operator(=) integer(0) ident(source) operator(=) ident(route)operator(.)ident(write_recognition)operator(.)ident(to_s) ident(puts) stringchar(\\n)char(\\n)delimiter(")> reserved(if) ident(show) ident(r) operator(=) ident(eval)operator(()ident(source)operator(\)) ident(r) operator(?) ident(r)operator(.)ident(symbolize_keys) operator(:) ident(r) reserved(end) reserved(def) method(gen)operator(()ident(options)operator(,) ident(recall) operator(=) pre_constant(nil)operator(,) ident(show) operator(=) pre_constant(false)operator(\)) ident(recall) operator(||=) ident(options)operator(.)ident(dup) ident(expire_on) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(.)ident(expiry_hash)operator(()ident(options)operator(,) ident(recall)operator(\)) ident(hash) operator(=) ident(merged) operator(=) ident(recall)operator(.)ident(merge)operator(()ident(options)operator(\)) ident(not_expired) operator(=) pre_constant(true) ident(source) operator(=) ident(route)operator(.)ident(write_generation)operator(.)ident(to_s) ident(puts) stringchar(\\n)char(\\n)delimiter(")> reserved(if) ident(show) ident(eval)operator(()ident(source)operator(\)) reserved(end) reserved(def) method(test_static) ident(route) stringoperator(,) symbol(:known) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(assert_nil) ident(rec)operator(()stringoperator(\)) ident(assert_nil) ident(rec)operator(()stringoperator(\)) ident(assert_equal)operator(() operator({)symbol(:known) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\)) operator(\)) ident(assert_nil) ident(gen)operator(()symbol(:known) operator(=)operator(>) stringoperator(\)) ident(assert_nil) ident(gen)operator(()operator({)operator(})operator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:known) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:known) operator(=)operator(>) stringoperator(,) symbol(:extra) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)symbol(:extra)operator(])operator(,) ident(route)operator(.)ident(extra_keys)operator(()symbol(:known) operator(=)operator(>) stringoperator(,) symbol(:extra) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_dynamic) ident(route) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(assert_nil) ident(rec)operator(()stringoperator(\)) ident(assert_nil) ident(rec)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\))operator(\)) ident(assert_nil) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_nil) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_nil) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_typical) ident(route) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) pre_constant(nil) ident(assert_nil) ident(rec)operator(()stringoperator(\)) ident(assert_nil) ident(rec)operator(()stringoperator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) ident(rec)operator(()stringoperator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringoperator(,) ident(gen)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) reserved(class) class(RouteSetTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(attr_reader) symbol(:rs) reserved(def) method(setup) instance_variable(@rs) operator(=) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(RouteSet)operator(.)ident(new) instance_variable(@rs)operator(.)ident(draw) operator({)operator(|)ident(m)operator(|) ident(m)operator(.)ident(connect) string operator(}) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(NamedRoutes)operator(.)ident(clear) reserved(end) reserved(def) method(test_default_setup) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(.)ident(stringify_keys)operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(.)ident(stringify_keys)operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(.)ident(stringify_keys)operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(.)ident(stringify_keys)operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(10)operator(})operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(def) method(test_ignores_leading_slash) instance_variable(@rs)operator(.)ident(draw) operator({)operator(|)ident(m)operator(|) ident(m)operator(.)ident(connect) stringoperator(}) ident(test_default_setup) reserved(end) reserved(def) method(test_time_recognition) ident(n) operator(=) integer(10000) reserved(if) constant(RunTimeTests) constant(GC)operator(.)ident(start) ident(rectime) operator(=) constant(Benchmark)operator(.)ident(realtime) reserved(do) ident(n)operator(.)ident(times) reserved(do) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\)) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\)) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\)) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\)) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\)) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\)) reserved(end) reserved(end) ident(puts) string ident(per_url) operator(=) ident(rectime) operator(/) operator(()ident(n) operator(*) integer(6)operator(\)) ident(puts) stringcontent( ms/url)delimiter(")> ident(puts) stringcontent( url/s)char(\\n)char(\\n)delimiter(")> reserved(end) reserved(end) reserved(def) method(test_time_generation) ident(n) operator(=) integer(5000) reserved(if) constant(RunTimeTests) constant(GC)operator(.)ident(start) ident(pairs) operator(=) operator([) operator([)operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(])operator(,) operator([)operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(])operator(,) operator([)operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(])operator(,) operator([)operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(])operator(,) operator([)operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(])operator(,) operator([)operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(])operator(,) operator([)operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(])operator(,) operator([)operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(])operator(,) operator(]) ident(p) operator(=) pre_constant(nil) ident(gentime) operator(=) constant(Benchmark)operator(.)ident(realtime) reserved(do) ident(n)operator(.)ident(times) reserved(do) ident(pairs)operator(.)ident(each) operator({)operator(|)operator(()ident(a)operator(,) ident(b)operator(\))operator(|) ident(rs)operator(.)ident(generate)operator(()ident(a)operator(,) ident(b)operator(\))operator(}) reserved(end) reserved(end) ident(puts) stringcontent( urls\))delimiter(")> ident(per_url) operator(=) ident(gentime) operator(/) operator(()ident(n) operator(*) integer(8)operator(\)) ident(puts) stringcontent( ms/url)delimiter(")> ident(puts) stringcontent( url/s)char(\\n)char(\\n)delimiter(")> reserved(end) reserved(end) reserved(def) method(test_route_with_colon_first) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(map)operator(.)ident(connect) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) pre_constant(nil) ident(map)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string reserved(end) reserved(end) reserved(def) method(test_route_generating_string_literal_in_comparison_warning) ident(old_stderr) operator(=) global_variable($stderr) global_variable($stderr) operator(=) constant(StringIO)operator(.)ident(new) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(map)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) string reserved(end) ident(assert_equal) stringoperator(,) global_variable($stderr)operator(.)ident(string) reserved(ensure) global_variable($stderr) operator(=) ident(old_stderr) reserved(end) reserved(def) method(test_route_with_regexp_for_controller) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(map)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) regexp ident(map)operator(.)ident(connect) string reserved(end) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(UserController)operator(,) symbol(:admintoken) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(.)ident(stringify_keys)operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) operator(::)constant(ContentController)operator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(.)ident(stringify_keys)operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:admintoken) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)stringoperator(,)operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_basic_named_route) ident(rs)operator(.)ident(home) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(x) operator(=) ident(setup_for_named_route) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(x)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:home_url)operator(\))operator(\)) reserved(end) reserved(def) method(test_named_route_with_option) ident(rs)operator(.)ident(page) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(x) operator(=) ident(setup_for_named_route) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:title) operator(=)operator(>) stringoperator(})operator(,) ident(x)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:page_url)operator(,) symbol(:title) operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_named_route_with_default) ident(rs)operator(.)ident(page) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:title) operator(=)operator(>) string ident(x) operator(=) ident(setup_for_named_route) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:title) operator(=)operator(>) stringoperator(})operator(,) ident(x)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:page_url)operator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:title) operator(=)operator(>) stringoperator(})operator(,) ident(x)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:page_url)operator(,) symbol(:title) operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) reserved(def) method(setup_for_named_route) ident(x) operator(=) constant(Class)operator(.)ident(new) ident(x)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:url_for)operator(\)) operator({)operator(|)ident(x)operator(|) ident(x)operator(}) ident(x)operator(.)ident(send) symbol(:include)operator(,) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(NamedRoutes) ident(x) reserved(end) reserved(def) method(test_named_route_without_hash) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(rs)operator(.)ident(normal) string reserved(end) reserved(end) reserved(def) method(test_named_route_with_regexps) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(rs)operator(.)ident(article) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:year) operator(=)operator(>) regexpoperator(,) symbol(:month) operator(=)operator(>) regexpoperator(,) symbol(:day) operator(=)operator(>) regexp ident(rs)operator(.)ident(connect) string reserved(end) ident(x) operator(=) ident(setup_for_named_route) ident(assert_equal)operator(() operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:title) operator(=)operator(>) stringoperator(})operator(,) ident(x)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:article_url)operator(,) symbol(:title) operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_equal)operator(() operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:title) operator(=)operator(>) stringoperator(,) symbol(:day) operator(=)operator(>) integer(10)operator(,) symbol(:year) operator(=)operator(>) integer(2005)operator(,) symbol(:month) operator(=)operator(>) integer(6)operator(})operator(,) ident(x)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:article_url)operator(,) symbol(:title) operator(=)operator(>) stringoperator(,) symbol(:day) operator(=)operator(>) integer(10)operator(,) symbol(:year) operator(=)operator(>) integer(2005)operator(,) symbol(:month) operator(=)operator(>) integer(6)operator(\)) operator(\)) reserved(end) reserved(def) method(test_changing_controller) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(() operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(10)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(}) operator(\)) reserved(end) reserved(def) method(test_paths_escaped) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(rs)operator(.)ident(path) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(rs)operator(.)ident(connect) string reserved(end) ident(results) operator(=) ident(rs)operator(.)ident(recognize_path) string ident(assert) ident(results)operator(,) string ident(assert_equal) operator([)stringoperator(,) stringoperator(])operator(,) ident(results)operator([)stringoperator(]) ident(results) operator(=) ident(rs)operator(.)ident(recognize_path) string ident(assert) ident(results)operator(,) string ident(assert_equal) operator([)operator(])operator(,) ident(results)operator([)stringoperator(]) reserved(end) reserved(def) method(test_non_controllers_cannot_be_matched) ident(rs)operator(.)ident(draw) reserved(do) ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_nil) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(,) string reserved(end) reserved(def) method(test_paths_do_not_accept_defaults) ident(assert_raises)operator(()constant(ActionController)operator(::)constant(RoutingError)operator(\)) reserved(do) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(rs)operator(.)ident(path) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:path) operator(=)operator(>) string ident(rs)operator(.)ident(connect) string reserved(end) reserved(end) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(rs)operator(.)ident(path) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:path) operator(=)operator(>) operator([)operator(]) ident(rs)operator(.)ident(connect) string reserved(end) reserved(end) reserved(def) method(test_backwards) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(rs)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:id) operator(=)operator(>) integer(20)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(20)operator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_route_with_fixnum_default) ident(rs)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(rs)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(1) ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(1)operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(10)operator(\)) ident(ctrl) operator(=) operator(::)constant(ContentController) ident(assert_equal)operator(()operator({)string operator(=)operator(>) ident(ctrl)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) integer(1)operator(})operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)string operator(=)operator(>) ident(ctrl)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)string operator(=)operator(>) ident(ctrl)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_action_expiry) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(def) method(test_recognition_with_uppercase_controller_name) ident(assert_equal)operator(()operator({)string operator(=)operator(>) operator(::)constant(ContentController)operator(,) string operator(=)operator(>) stringoperator(})operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)string operator(=)operator(>) operator(::)constant(ContentController)operator(,) string operator(=)operator(>) stringoperator(})operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)string operator(=)operator(>) operator(::)constant(ContentController)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)string operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(NewsFeedController)operator(,) string operator(=)operator(>) stringoperator(})operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)string operator(=)operator(>) operator(::)constant(Admin)operator(::)constant(NewsFeedController)operator(,) string operator(=)operator(>) stringoperator(})operator(,) ident(rs)operator(.)ident(recognize_path)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_both_requirement_and_optional) ident(rs)operator(.)ident(draw) reserved(do) ident(rs)operator(.)ident(blog)operator(()stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:defaults) operator(=)operator(>) operator({) symbol(:year) operator(=)operator(>) pre_constant(nil) operator(})operator(,) symbol(:requirements) operator(=)operator(>) operator({) symbol(:year) operator(=)operator(>) regexp operator(}) operator(\)) ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:year) operator(=)operator(>) pre_constant(nil)operator(\)) ident(x) operator(=) ident(setup_for_named_route) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(x)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:blog_url)operator(\))operator(\)) reserved(end) reserved(def) method(test_set_to_nil_forgets) ident(rs)operator(.)ident(draw) reserved(do) ident(rs)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:month) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:day) operator(=)operator(>) pre_constant(nil) ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:year) operator(=)operator(>) integer(2005)operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:year) operator(=)operator(>) integer(2005)operator(,) symbol(:month) operator(=)operator(>) integer(6)operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:year) operator(=)operator(>) integer(2005)operator(,) symbol(:month) operator(=)operator(>) integer(6)operator(,) symbol(:day) operator(=)operator(>) integer(12)operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:day) operator(=)operator(>) integer(4)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:year) operator(=)operator(>) stringoperator(,) symbol(:month) operator(=)operator(>) stringoperator(,) symbol(:day) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:day) operator(=)operator(>) pre_constant(nil)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:year) operator(=)operator(>) stringoperator(,) symbol(:month) operator(=)operator(>) stringoperator(,) symbol(:day) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:day) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:month) operator(=)operator(>) pre_constant(nil)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:year) operator(=)operator(>) stringoperator(,) symbol(:month) operator(=)operator(>) stringoperator(,) symbol(:day) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(def) method(test_url_with_no_action_specified) ident(rs)operator(.)ident(draw) reserved(do) ident(rs)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) string ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_named_url_with_no_action_specified) ident(rs)operator(.)ident(draw) reserved(do) ident(rs)operator(.)ident(root) stringoperator(,) symbol(:controller) operator(=)operator(>) string ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(\)) ident(x) operator(=) ident(setup_for_named_route) ident(assert_equal)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) ident(x)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:root_url)operator(\))operator(\)) reserved(end) reserved(def) method(test_url_generated_when_forgetting_action) operator([)operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(])operator(.)ident(each) reserved(do) operator(|)ident(hash)operator(|) ident(rs)operator(.)ident(draw) reserved(do) ident(rs)operator(.)ident(root) stringoperator(,) ident(hash) ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:action) operator(=)operator(>) pre_constant(nil)operator(})operator(,) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(end) reserved(def) method(test_named_route_method) ident(rs)operator(.)ident(draw) reserved(do) ident(assert_raises)operator(()constant(ArgumentError)operator(\)) operator({) ident(rs)operator(.)ident(categories) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string operator(}) ident(rs)operator(.)ident(named_route) symbol(:categories)operator(,) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(def) method(test_named_route_helper_array) ident(test_named_route_method) ident(assert_equal) operator([)symbol(:categories_url)operator(,) symbol(:hash_for_categories_url)operator(])operator(,) operator(::)constant(ActionController)operator(::)constant(Routing)operator(::)constant(NamedRoutes)operator(::)constant(Helpers) reserved(end) reserved(def) method(test_nil_defaults) ident(rs)operator(.)ident(draw) reserved(do) ident(rs)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:date) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:user_id) operator(=)operator(>) pre_constant(nil) ident(rs)operator(.)ident(connect) string reserved(end) ident(assert_equal) operator([)stringoperator(,) operator([)operator(])operator(])operator(,) ident(rs)operator(.)ident(generate)operator(()symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:date) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:user_id) operator(=)operator(>) pre_constant(nil)operator(\)) reserved(end) reserved(end) reserved(class) class(ControllerComponentTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_traverse_to_controller_should_not_load_arbitrary_files) ident(load_path) operator(=) global_variable($:)operator(.)ident(dup) ident(base) operator(=) constant(File)operator(.)ident(dirname)operator(()constant(File)operator(.)ident(dirname)operator(()constant(File)operator(.)ident(expand_path)operator(()pre_constant(__FILE__)operator(\))operator(\))operator(\)) global_variable($:) operator(<<) constant(File)operator(.)ident(join)operator(()ident(base)operator(,) stringoperator(\)) constant(Object)operator(.)ident(send) symbol(:const_set)operator(,) symbol(:RAILS_ROOT)operator(,) constant(File)operator(.)ident(join)operator(()ident(base)operator(,) stringoperator(\)) ident(assert_equal) pre_constant(nil)operator(,) constant(ActionController)operator(::)constant(Routing)operator(::)constant(ControllerComponent)operator(.)ident(traverse_to_controller)operator(()stringoperator(\)) reserved(ensure) global_variable($:)operator([)integer(0)operator(..)integer(-1)operator(]) operator(=) ident(load_path) constant(Object)operator(.)ident(send) symbol(:remove_const)operator(,) symbol(:RAILS_ROOT) reserved(end) reserved(def) method(test_traverse_should_not_trip_on_non_module_constants) ident(assert_equal) pre_constant(nil)operator(,) constant(ActionController)operator(::)constant(Routing)operator(::)constant(ControllerComponent)operator(.)ident(traverse_to_controller)operator(()stringoperator(\)) reserved(end) comment(# This is evil, but people do it.) reserved(def) method(test_traverse_to_controller_should_pass_thru_classes) ident(load_path) operator(=) global_variable($:)operator(.)ident(dup) ident(base) operator(=) constant(File)operator(.)ident(dirname)operator(()constant(File)operator(.)ident(dirname)operator(()constant(File)operator(.)ident(expand_path)operator(()pre_constant(__FILE__)operator(\))operator(\))operator(\)) global_variable($:) operator(<<) constant(File)operator(.)ident(join)operator(()ident(base)operator(,) stringoperator(\)) global_variable($:) operator(<<) constant(File)operator(.)ident(join)operator(()ident(base)operator(,) stringoperator(\)) global_variable($:) operator(<<) constant(File)operator(.)ident(join)operator(()ident(base)operator(,) stringoperator(\)) constant(Object)operator(.)ident(send) symbol(:const_set)operator(,) symbol(:RAILS_ROOT)operator(,) constant(File)operator(.)ident(join)operator(()ident(base)operator(,) stringoperator(\)) ident(pair) operator(=) constant(ActionController)operator(::)constant(Routing)operator(::)constant(ControllerComponent)operator(.)ident(traverse_to_controller)operator(()stringoperator(\)) comment(# Make sure the container class was loaded properly) ident(assert) reserved(defined?)operator(()constant(AClassThatContainsAController)operator(\)) ident(assert_kind_of) constant(Class)operator(,) constant(AClassThatContainsAController) ident(assert_equal) symbol(:you_know_it)operator(,) constant(AClassThatContainsAController)operator(.)ident(is_special?) comment(# Make sure the controller was too) ident(assert_kind_of) constant(Array)operator(,) ident(pair) ident(assert_equal) integer(2)operator(,) ident(pair)operator([)integer(1)operator(]) ident(klass) operator(=) ident(pair)operator(.)ident(first) ident(assert_kind_of) constant(Class)operator(,) ident(klass) ident(assert_equal) symbol(:decidedly_so)operator(,) ident(klass)operator(.)ident(is_evil?) ident(assert) ident(klass)operator(.)ident(ancestors)operator(.)ident(include?)operator(()constant(ActionController)operator(::)constant(Base)operator(\)) ident(assert) reserved(defined?)operator(()constant(AClassThatContainsAController)operator(::)constant(PoorlyPlacedController)operator(\)) ident(assert_equal) ident(klass)operator(,) constant(AClassThatContainsAController)operator(::)constant(PoorlyPlacedController) reserved(ensure) global_variable($:)operator([)integer(0)operator(..)integer(-1)operator(]) operator(=) ident(load_path) constant(Object)operator(.)ident(send) symbol(:remove_const)operator(,) symbol(:RAILS_ROOT) reserved(end) reserved(def) method(test_traverse_to_nested_controller) ident(load_path) operator(=) global_variable($:)operator(.)ident(dup) ident(base) operator(=) constant(File)operator(.)ident(dirname)operator(()constant(File)operator(.)ident(dirname)operator(()constant(File)operator(.)ident(expand_path)operator(()pre_constant(__FILE__)operator(\))operator(\))operator(\)) global_variable($:) operator(<<) constant(File)operator(.)ident(join)operator(()ident(base)operator(,) stringoperator(\)) global_variable($:) operator(<<) constant(File)operator(.)ident(join)operator(()ident(base)operator(,) stringoperator(\)) constant(Object)operator(.)ident(send) symbol(:const_set)operator(,) symbol(:RAILS_ROOT)operator(,) constant(File)operator(.)ident(join)operator(()ident(base)operator(,) stringoperator(\)) ident(pair) operator(=) constant(ActionController)operator(::)constant(Routing)operator(::)constant(ControllerComponent)operator(.)ident(traverse_to_controller)operator(()stringoperator(\)) ident(assert_not_equal) pre_constant(nil)operator(,) ident(pair) comment(# Make sure that we created a module for the dir) ident(assert) reserved(defined?)operator(()constant(ModuleThatHoldsControllers)operator(\)) ident(assert_kind_of) constant(Module)operator(,) constant(ModuleThatHoldsControllers) comment(# Make sure the controller is ok) ident(assert_kind_of) constant(Array)operator(,) ident(pair) ident(assert_equal) integer(2)operator(,) ident(pair)operator([)integer(1)operator(]) ident(klass) operator(=) ident(pair)operator(.)ident(first) ident(assert_kind_of) constant(Class)operator(,) ident(klass) ident(assert) ident(klass)operator(.)ident(ancestors)operator(.)ident(include?)operator(()constant(ActionController)operator(::)constant(Base)operator(\)) ident(assert) reserved(defined?)operator(()constant(ModuleThatHoldsControllers)operator(::)constant(NestedController)operator(\)) ident(assert_equal) ident(klass)operator(,) constant(ModuleThatHoldsControllers)operator(::)constant(NestedController) reserved(ensure) global_variable($:)operator([)integer(0)operator(..)integer(-1)operator(]) operator(=) ident(load_path) constant(Object)operator(.)ident(send) symbol(:remove_const)operator(,) symbol(:RAILS_ROOT) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(join)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(,) stringoperator(,) stringoperator(\)) reserved(module) class(TestFileUtils) reserved(def) method(file_name)operator(()operator(\)) constant(File)operator(.)ident(basename)operator(()pre_constant(__FILE__)operator(\)) reserved(end) reserved(def) method(file_path)operator(()operator(\)) constant(File)operator(.)ident(expand_path)operator(()pre_constant(__FILE__)operator(\)) reserved(end) reserved(def) method(file_data)operator(()operator(\)) constant(File)operator(.)ident(open)operator(()ident(file_path)operator(,) stringoperator(\)) operator({) operator(|)ident(f)operator(|) ident(f)operator(.)ident(read) operator(}) reserved(end) reserved(end) reserved(class) class(SendFileController) operator(<) constant(ActionController)operator(::)constant(Base) ident(include) constant(TestFileUtils) ident(layout) string comment(# to make sure layouts don't interfere) ident(attr_writer) symbol(:options) reserved(def) method(options)operator(()operator(\)) instance_variable(@options) operator(||=) operator({)operator(}) reserved(end) reserved(def) method(file)operator(()operator(\)) ident(send_file)operator(()ident(file_path)operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(data)operator(()operator(\)) ident(send_data)operator(()ident(file_data)operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) constant(SendFileController)operator(.)ident(template_root) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(SendFileTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(TestFileUtils) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(SendFileController)operator(.)ident(new) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) reserved(def) method(test_file_nostream) instance_variable(@controller)operator(.)ident(options) operator(=) operator({) symbol(:stream) operator(=)operator(>) pre_constant(false) operator(}) ident(response) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(response) operator(=) ident(process)operator(()stringoperator(\)) operator(}) ident(assert_not_nil) ident(response) ident(assert_kind_of) constant(String)operator(,) ident(response)operator(.)ident(body) ident(assert_equal) ident(file_data)operator(,) ident(response)operator(.)ident(body) reserved(end) reserved(def) method(test_file_stream) ident(response) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(response) operator(=) ident(process)operator(()stringoperator(\)) operator(}) ident(assert_not_nil) ident(response) ident(assert_kind_of) constant(Proc)operator(,) ident(response)operator(.)ident(body) ident(require) string ident(output) operator(=) constant(StringIO)operator(.)ident(new) ident(output)operator(.)ident(binmode) ident(assert_nothing_raised) operator({) ident(response)operator(.)ident(body)operator(.)ident(call)operator(()ident(response)operator(,) ident(output)operator(\)) operator(}) ident(assert_equal) ident(file_data)operator(,) ident(output)operator(.)ident(string) reserved(end) reserved(def) method(test_data) ident(response) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(response) operator(=) ident(process)operator(()stringoperator(\)) operator(}) ident(assert_not_nil) ident(response) ident(assert_kind_of) constant(String)operator(,) ident(response)operator(.)ident(body) ident(assert_equal) ident(file_data)operator(,) ident(response)operator(.)ident(body) reserved(end) comment(# Test that send_file_headers! is setting the correct HTTP headers.) reserved(def) method(test_send_file_headers!) ident(options) operator(=) operator({) symbol(:length) operator(=)operator(>) integer(1)operator(,) symbol(:type) operator(=)operator(>) stringoperator(,) symbol(:disposition) operator(=)operator(>) stringoperator(,) symbol(:filename) operator(=)operator(>) string operator(}) comment(# Do it a few times: the resulting headers should be identical) comment(# no matter how many times you send with the same options.) comment(# Test resolving Ticket #458.) instance_variable(@controller)operator(.)ident(headers) operator(=) operator({)operator(}) instance_variable(@controller)operator(.)ident(send)operator(()symbol(:send_file_headers!)operator(,) ident(options)operator(\)) instance_variable(@controller)operator(.)ident(send)operator(()symbol(:send_file_headers!)operator(,) ident(options)operator(\)) instance_variable(@controller)operator(.)ident(send)operator(()symbol(:send_file_headers!)operator(,) ident(options)operator(\)) ident(h) operator(=) instance_variable(@controller)operator(.)ident(headers) ident(assert_equal) integer(1)operator(,) ident(h)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(h)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(h)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(h)operator([)stringoperator(]) comment(# test overriding Cache-Control: no-cache header to fix IE open/save dialog) instance_variable(@controller)operator(.)ident(headers) operator(=) operator({) string operator(=)operator(>) string operator(}) instance_variable(@controller)operator(.)ident(send)operator(()symbol(:send_file_headers!)operator(,) ident(options)operator(\)) ident(h) operator(=) instance_variable(@controller)operator(.)ident(headers) ident(assert_equal) stringoperator(,) ident(h)operator([)stringoperator(]) reserved(end) stringoperator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(define_method) stringcontent(_status)delimiter(")> reserved(do) instance_variable(@controller)operator(.)ident(options) operator(=) operator({) symbol(:stream) operator(=)operator(>) pre_constant(false)operator(,) symbol(:status) operator(=)operator(>) integer(500) operator(}) ident(assert_nothing_raised) operator({) ident(assert_not_nil) ident(process)operator(()ident(method)operator(\)) operator(}) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(headers)operator([)stringoperator(]) reserved(end) ident(define_method) stringcontent(_status)delimiter(")> reserved(do) instance_variable(@controller)operator(.)ident(options) operator(=) operator({) symbol(:stream) operator(=)operator(>) pre_constant(false) operator(}) ident(assert_nothing_raised) operator({) ident(assert_not_nil) ident(process)operator(()ident(method)operator(\)) operator(}) ident(assert_equal) constant(ActionController)operator(::)constant(Base)operator(::)constant(DEFAULT_RENDER_STATUS_CODE)operator(,) instance_variable(@controller)operator(.)ident(headers)operator([)stringoperator(]) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(SessionManagementTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(class) class(SessionOffController) operator(<) constant(ActionController)operator(::)constant(Base) ident(session) symbol(:off) reserved(def) method(show) ident(render_text) string reserved(end) reserved(def) method(tell) ident(render_text) string reserved(end) reserved(end) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) ident(session) symbol(:off)operator(,) symbol(:only) operator(=)operator(>) symbol(:show) ident(session) symbol(:session_secure) operator(=)operator(>) pre_constant(true)operator(,) symbol(:except) operator(=)operator(>) symbol(:show) ident(session) symbol(:off)operator(,) symbol(:only) operator(=)operator(>) symbol(:conditional)operator(,) symbol(:if) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(r)operator(|) ident(r)operator(.)ident(parameters)operator([)symbol(:ws)operator(]) operator(}) reserved(def) method(show) ident(render_text) string reserved(end) reserved(def) method(tell) ident(render_text) string reserved(end) reserved(def) method(conditional) ident(render_text) string>>)inlinecontent(<<<)delimiter(")> reserved(end) reserved(end) reserved(class) class(SpecializedController) operator(<) constant(SessionOffController) ident(session) symbol(:disabled) operator(=)operator(>) pre_constant(false)operator(,) symbol(:only) operator(=)operator(>) symbol(:something) reserved(def) method(something) ident(render_text) string reserved(end) reserved(def) method(another) ident(render_text) string reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@request)operator(,) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new)operator(,) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) reserved(def) method(test_session_off_globally) instance_variable(@controller) operator(=) constant(SessionOffController)operator(.)ident(new) ident(get) symbol(:show) ident(assert_equal) pre_constant(false)operator(,) instance_variable(@request)operator(.)ident(session_options) ident(get) symbol(:tell) ident(assert_equal) pre_constant(false)operator(,) instance_variable(@request)operator(.)ident(session_options) reserved(end) reserved(def) method(test_session_off_conditionally) instance_variable(@controller) operator(=) constant(TestController)operator(.)ident(new) ident(get) symbol(:show) ident(assert_equal) pre_constant(false)operator(,) instance_variable(@request)operator(.)ident(session_options) ident(get) symbol(:tell) ident(assert_instance_of) constant(Hash)operator(,) instance_variable(@request)operator(.)ident(session_options) ident(assert) instance_variable(@request)operator(.)ident(session_options)operator([)symbol(:session_secure)operator(]) reserved(end) reserved(def) method(test_controller_specialization_overrides_settings) instance_variable(@controller) operator(=) constant(SpecializedController)operator(.)ident(new) ident(get) symbol(:something) ident(assert_instance_of) constant(Hash)operator(,) instance_variable(@request)operator(.)ident(session_options) ident(get) symbol(:another) ident(assert_equal) pre_constant(false)operator(,) instance_variable(@request)operator(.)ident(session_options) reserved(end) reserved(def) method(test_session_off_with_if) instance_variable(@controller) operator(=) constant(TestController)operator(.)ident(new) ident(get) symbol(:conditional) ident(assert_instance_of) constant(Hash)operator(,) instance_variable(@request)operator(.)ident(session_options) ident(get) symbol(:conditional)operator(,) symbol(:ws) operator(=)operator(>) string ident(assert_equal) pre_constant(false)operator(,) instance_variable(@request)operator(.)ident(session_options) reserved(end) reserved(def) method(test_session_store_setting) constant(ActionController)operator(::)constant(Base)operator(.)ident(session_store) operator(=) symbol(:drb_store) ident(assert_equal) constant(CGI)operator(::)constant(Session)operator(::)constant(DRbStore)operator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(session_store) reserved(if) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:ActiveRecord)operator(\)) constant(ActionController)operator(::)constant(Base)operator(.)ident(session_store) operator(=) symbol(:active_record_store) ident(assert_equal) constant(CGI)operator(::)constant(Session)operator(::)constant(ActiveRecordStore)operator(,) constant(ActionController)operator(::)constant(Base)operator(.)ident(session_store) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(TestTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(set_flash) ident(flash)operator([)stringoperator(]) operator(=) string)inlineoperator(])inline_delimiter(})>content(<)delimiter(")> ident(render) symbol(:text) operator(=)operator(>) string reserved(end) reserved(def) method(render_raw_post) ident(raise) constant(Test)operator(::)constant(Unit)operator(::)constant(AssertionFailedError)operator(,) string reserved(if) ident(request)operator(.)ident(raw_post)operator(.)ident(blank?) ident(render) symbol(:text) operator(=)operator(>) ident(request)operator(.)ident(raw_post) reserved(end) reserved(def) method(test_params) ident(render) symbol(:text) operator(=)operator(>) ident(params)operator(.)ident(inspect) reserved(end) reserved(def) method(test_uri) ident(render) symbol(:text) operator(=)operator(>) ident(request)operator(.)ident(request_uri) reserved(end) reserved(def) method(test_html_output) ident(render) symbol(:text) operator(=)operator(>) stringstring
    • hello
    • goodbye
    Name:
    )delimiter( HTML)> reserved(end) reserved(def) method(test_only_one_param) ident(render) symbol(:text) operator(=)operator(>) operator(()ident(params)operator([)symbol(:left)operator(]) operator(&&) ident(params)operator([)symbol(:right)operator(])operator(\)) operator(?) string operator(:) string reserved(end) reserved(def) method(test_remote_addr) ident(render) symbol(:text) operator(=)operator(>) operator(()ident(request)operator(.)ident(remote_addr) operator(||) stringoperator(\)) reserved(end) reserved(def) method(test_file_upload) ident(render) symbol(:text) operator(=)operator(>) ident(params)operator([)symbol(:file)operator(])operator(.)ident(size) reserved(end) reserved(def) method(redirect_to_symbol) ident(redirect_to) symbol(:generate_url)operator(,) symbol(:id) operator(=)operator(>) integer(5) reserved(end) ident(private) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) ident(e) reserved(end) reserved(def) method(generate_url)operator(()ident(opts)operator(\)) ident(url_for)operator(()ident(opts)operator(.)ident(merge)operator(()symbol(:action) operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(TestController)operator(.)ident(new) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(reload) reserved(end) reserved(def) method(teardown) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(reload) reserved(end) reserved(def) method(test_raw_post_handling) ident(params) operator(=) operator({)symbol(:page) operator(=)operator(>) operator({)symbol(:name) operator(=)operator(>) stringoperator(})operator(,) string operator(=)operator(>) integer(123)operator(}) ident(get) symbol(:render_raw_post)operator(,) ident(params)operator(.)ident(dup) ident(raw_post) operator(=) ident(params)operator(.)ident(map) operator({)operator(|)ident(k)operator(,)ident(v)operator(|) operator([)constant(CGI)operator(::)ident(escape)operator(()ident(k)operator(.)ident(to_s)operator(\))operator(,) constant(CGI)operator(::)ident(escape)operator(()ident(v)operator(.)ident(to_s)operator(\))operator(])operator(.)ident(join)operator(()stringoperator(\))operator(})operator(.)ident(sort)operator(.)ident(join)operator(()stringoperator(\)) ident(assert_equal) ident(raw_post)operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_process_without_flash) ident(process) symbol(:set_flash) ident(assert_equal) string<)delimiter(')>operator(,) ident(flash)operator([)stringoperator(]) reserved(end) reserved(def) method(test_process_with_flash) ident(process) symbol(:set_flash)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) operator({) string operator(=)operator(>) string operator(}) ident(assert_equal) stringvalue<)delimiter(')>operator(,) ident(flash)operator([)stringoperator(]) reserved(end) reserved(def) method(test_process_with_request_uri_with_no_params) ident(process) symbol(:test_uri) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_process_with_request_uri_with_params) ident(process) symbol(:test_uri)operator(,) symbol(:id) operator(=)operator(>) integer(7) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_process_with_request_uri_with_params_with_explicit_uri) instance_variable(@request)operator(.)ident(set_REQUEST_URI) string ident(process) symbol(:test_uri)operator(,) symbol(:id) operator(=)operator(>) integer(7) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_multiple_calls) ident(process) symbol(:test_only_one_param)operator(,) symbol(:left) operator(=)operator(>) pre_constant(true) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(process) symbol(:test_only_one_param)operator(,) symbol(:right) operator(=)operator(>) pre_constant(true) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_assert_tag_tag) ident(process) symbol(:test_html_output) comment(# there is a 'form' tag) ident(assert_tag) symbol(:tag) operator(=)operator(>) string comment(# there is not an 'hr' tag) ident(assert_no_tag) symbol(:tag) operator(=)operator(>) string reserved(end) reserved(def) method(test_assert_tag_attributes) ident(process) symbol(:test_html_output) comment(# there is a tag with an 'id' of 'bar') ident(assert_tag) symbol(:attributes) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(}) comment(# there is no tag with a 'name' of 'baz') ident(assert_no_tag) symbol(:attributes) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(}) reserved(end) reserved(def) method(test_assert_tag_parent) ident(process) symbol(:test_html_output) comment(# there is a tag with a parent 'form' tag) ident(assert_tag) symbol(:parent) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) comment(# there is no tag with a parent of 'input') ident(assert_no_tag) symbol(:parent) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) reserved(end) reserved(def) method(test_assert_tag_child) ident(process) symbol(:test_html_output) comment(# there is a tag with a child 'input' tag) ident(assert_tag) symbol(:child) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) comment(# there is no tag with a child 'strong' tag) ident(assert_no_tag) symbol(:child) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) reserved(end) reserved(def) method(test_assert_tag_ancestor) ident(process) symbol(:test_html_output) comment(# there is a 'li' tag with an ancestor having an id of 'foo') ident(assert_tag) symbol(:ancestor) operator(=)operator(>) operator({) symbol(:attributes) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(}) operator(})operator(,) symbol(:tag) operator(=)operator(>) string comment(# there is no tag of any kind with an ancestor having an href matching 'foo') ident(assert_no_tag) symbol(:ancestor) operator(=)operator(>) operator({) symbol(:attributes) operator(=)operator(>) operator({) symbol(:href) operator(=)operator(>) regexp operator(}) operator(}) reserved(end) reserved(def) method(test_assert_tag_descendant) ident(process) symbol(:test_html_output) comment(# there is a tag with a decendant 'li' tag) ident(assert_tag) symbol(:descendant) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) comment(# there is no tag with a descendant 'html' tag) ident(assert_no_tag) symbol(:descendant) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) reserved(end) reserved(def) method(test_assert_tag_sibling) ident(process) symbol(:test_html_output) comment(# there is a tag with a sibling of class 'item') ident(assert_tag) symbol(:sibling) operator(=)operator(>) operator({) symbol(:attributes) operator(=)operator(>) operator({) symbol(:class) operator(=)operator(>) string operator(}) operator(}) comment(# there is no tag with a sibling 'ul' tag) ident(assert_no_tag) symbol(:sibling) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) reserved(end) reserved(def) method(test_assert_tag_after) ident(process) symbol(:test_html_output) comment(# there is a tag following a sibling 'div' tag) ident(assert_tag) symbol(:after) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) comment(# there is no tag following a sibling tag with id 'bar') ident(assert_no_tag) symbol(:after) operator(=)operator(>) operator({) symbol(:attributes) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(}) operator(}) reserved(end) reserved(def) method(test_assert_tag_before) ident(process) symbol(:test_html_output) comment(# there is a tag preceeding a tag with id 'bar') ident(assert_tag) symbol(:before) operator(=)operator(>) operator({) symbol(:attributes) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(}) operator(}) comment(# there is no tag preceeding a 'form' tag) ident(assert_no_tag) symbol(:before) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) reserved(end) reserved(def) method(test_assert_tag_children_count) ident(process) symbol(:test_html_output) comment(# there is a tag with 2 children) ident(assert_tag) symbol(:children) operator(=)operator(>) operator({) symbol(:count) operator(=)operator(>) integer(2) operator(}) comment(# there is no tag with 4 children) ident(assert_no_tag) symbol(:children) operator(=)operator(>) operator({) symbol(:count) operator(=)operator(>) integer(4) operator(}) reserved(end) reserved(def) method(test_assert_tag_children_less_than) ident(process) symbol(:test_html_output) comment(# there is a tag with less than 5 children) ident(assert_tag) symbol(:children) operator(=)operator(>) operator({) symbol(:less_than) operator(=)operator(>) integer(5) operator(}) comment(# there is no 'ul' tag with less than 2 children) ident(assert_no_tag) symbol(:children) operator(=)operator(>) operator({) symbol(:less_than) operator(=)operator(>) integer(2) operator(})operator(,) symbol(:tag) operator(=)operator(>) string reserved(end) reserved(def) method(test_assert_tag_children_greater_than) ident(process) symbol(:test_html_output) comment(# there is a 'body' tag with more than 1 children) ident(assert_tag) symbol(:children) operator(=)operator(>) operator({) symbol(:greater_than) operator(=)operator(>) integer(1) operator(})operator(,) symbol(:tag) operator(=)operator(>) string comment(# there is no tag with more than 10 children) ident(assert_no_tag) symbol(:children) operator(=)operator(>) operator({) symbol(:greater_than) operator(=)operator(>) integer(10) operator(}) reserved(end) reserved(def) method(test_assert_tag_children_only) ident(process) symbol(:test_html_output) comment(# there is a tag containing only one child with an id of 'foo') ident(assert_tag) symbol(:children) operator(=)operator(>) operator({) symbol(:count) operator(=)operator(>) integer(1)operator(,) symbol(:only) operator(=)operator(>) operator({) symbol(:attributes) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(}) operator(}) operator(}) comment(# there is no tag containing only one 'li' child) ident(assert_no_tag) symbol(:children) operator(=)operator(>) operator({) symbol(:count) operator(=)operator(>) integer(1)operator(,) symbol(:only) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) operator(}) reserved(end) reserved(def) method(test_assert_tag_content) ident(process) symbol(:test_html_output) comment(# the output contains the string "Name") ident(assert_tag) symbol(:content) operator(=)operator(>) string comment(# the output does not contain the string "test") ident(assert_no_tag) symbol(:content) operator(=)operator(>) string reserved(end) reserved(def) method(test_assert_tag_multiple) ident(process) symbol(:test_html_output) comment(# there is a 'div', id='bar', with an immediate child whose 'action') comment(# attribute matches the regexp /somewhere/.) ident(assert_tag) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:attributes) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(})operator(,) symbol(:child) operator(=)operator(>) operator({) symbol(:attributes) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) regexp operator(}) operator(}) comment(# there is no 'div', id='foo', with a 'ul' child with more than) comment(# 2 "li" children.) ident(assert_no_tag) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:attributes) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(})operator(,) symbol(:child) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:children) operator(=)operator(>) operator({) symbol(:greater_than) operator(=)operator(>) integer(2)operator(,) symbol(:only) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) operator(}) operator(}) reserved(end) reserved(def) method(test_assert_tag_children_without_content) ident(process) symbol(:test_html_output) comment(# there is a form tag with an 'input' child which is a self closing tag) ident(assert_tag) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:children) operator(=)operator(>) operator({) symbol(:count) operator(=)operator(>) integer(1)operator(,) symbol(:only) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) operator(}) comment(# the body tag has an 'a' child which in turn has an 'img' child) ident(assert_tag) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:children) operator(=)operator(>) operator({) symbol(:count) operator(=)operator(>) integer(1)operator(,) symbol(:only) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:children) operator(=)operator(>) operator({) symbol(:count) operator(=)operator(>) integer(1)operator(,) symbol(:only) operator(=)operator(>) operator({) symbol(:tag) operator(=)operator(>) string operator(}) operator(}) operator(}) operator(}) reserved(end) reserved(def) method(test_assert_generates) ident(assert_generates) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) string reserved(end) reserved(def) method(test_assert_routing) ident(assert_routing) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_assert_routing_in_module) ident(assert_routing) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_params_passing) ident(get) symbol(:test_params)operator(,) symbol(:page) operator(=)operator(>) operator({)symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:month) operator(=)operator(>) stringoperator(,) symbol(:year) operator(=)operator(>) stringoperator(,) symbol(:day) operator(=)operator(>) stringoperator(}) ident(parsed_params) operator(=) ident(eval)operator(()instance_variable(@response)operator(.)ident(body)operator(\)) ident(assert_equal)operator(() operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(})operator(,) ident(parsed_params) operator(\)) reserved(end) reserved(def) method(test_id_converted_to_string) ident(get) symbol(:test_params)operator(,) symbol(:id) operator(=)operator(>) integer(20)operator(,) symbol(:foo) operator(=)operator(>) constant(Object)operator(.)ident(new) ident(assert_kind_of) constant(String)operator(,) instance_variable(@request)operator(.)ident(path_parameters)operator([)stringoperator(]) reserved(end) reserved(def) method(test_array_path_parameter_handled_properly) ident(with_routing) reserved(do) operator(|)ident(set)operator(|) ident(set)operator(.)ident(draw) reserved(do) ident(set)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) string ident(set)operator(.)ident(connect) string reserved(end) ident(get) symbol(:test_params)operator(,) symbol(:path) operator(=)operator(>) operator([)stringoperator(,) stringoperator(]) ident(assert_equal) operator([)stringoperator(,) stringoperator(])operator(,) instance_variable(@request)operator(.)ident(path_parameters)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) instance_variable(@request)operator(.)ident(path_parameters)operator([)stringoperator(])operator(.)ident(to_s) reserved(end) reserved(end) reserved(def) method(test_assert_realistic_path_parameters) ident(get) symbol(:test_params)operator(,) symbol(:id) operator(=)operator(>) integer(20)operator(,) symbol(:foo) operator(=)operator(>) constant(Object)operator(.)ident(new) comment(# All elements of path_parameters should use string keys) instance_variable(@request)operator(.)ident(path_parameters)operator(.)ident(keys)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(|) ident(assert_kind_of) constant(String)operator(,) ident(key) reserved(end) reserved(end) reserved(def) method(test_with_routing_places_routes_back) ident(assert) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes) ident(routes_id) operator(=) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(object_id) reserved(begin) ident(with_routing) operator({) ident(raise) string operator(}) ident(fail) string reserved(rescue) constant(RuntimeError) reserved(end) ident(assert) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes) ident(assert_equal) ident(routes_id)operator(,) constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(object_id) reserved(end) reserved(def) method(test_remote_addr) ident(get) symbol(:test_remote_addr) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) instance_variable(@request)operator(.)ident(remote_addr) operator(=) string ident(get) symbol(:test_remote_addr) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_header_properly_reset_after_remote_http_request) ident(xhr) symbol(:get)operator(,) symbol(:test_params) ident(assert_nil) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) reserved(end) reserved(def) method(test_header_properly_reset_after_get_request) ident(get) symbol(:test_params) instance_variable(@request)operator(.)ident(recycle!) ident(assert_nil) instance_variable(@request)operator(.)ident(instance_variable_get)operator(()stringoperator(\)) reserved(end) stringoperator(.)ident(each) reserved(do) operator(|)ident(variable)operator(|) stringoperator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(define_method)operator(()stringcontent(_missing_for_)inlinecontent(_raises_error)delimiter(")>operator(\)) reserved(do) ident(remove_instance_variable) stringdelimiter(")> reserved(begin) ident(send)operator(()ident(method)operator(,) symbol(:test_remote_addr)operator(\)) ident(assert) pre_constant(false)operator(,) string reserved(rescue) constant(RuntimeError) operator(=)operator(>) ident(error) ident(assert) pre_constant(true) ident(assert_match) regexpcontent( is nil)delimiter(})>operator(,) ident(error)operator(.)ident(message) reserved(rescue) operator(=)operator(>) ident(error) ident(assert) pre_constant(false)operator(,) stringdelimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) constant(FILES_DIR) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(def) method(test_test_uploaded_file) ident(filename) operator(=) string ident(path) operator(=) stringcontent(/)inlinedelimiter(")> ident(content_type) operator(=) string ident(file) operator(=) constant(ActionController)operator(::)constant(TestUploadedFile)operator(.)ident(new)operator(()ident(path)operator(,) ident(content_type)operator(\)) ident(assert_equal) ident(filename)operator(,) ident(file)operator(.)ident(original_filename) ident(assert_equal) ident(content_type)operator(,) ident(file)operator(.)ident(content_type) ident(assert_equal) ident(file)operator(.)ident(path)operator(,) ident(file)operator(.)ident(local_path) ident(assert_equal) constant(File)operator(.)ident(read)operator(()ident(path)operator(\))operator(,) ident(file)operator(.)ident(read) reserved(end) reserved(def) method(test_fixture_file_upload) ident(post) symbol(:test_file_upload)operator(,) symbol(:file) operator(=)operator(>) ident(fixture_file_upload)operator(()constant(FILES_DIR) operator(+) stringoperator(,) stringoperator(\)) ident(assert_equal) integer(159528)operator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_test_uploaded_file_exception_when_file_doesnt_exist) ident(assert_raise)operator(()constant(RuntimeError)operator(\)) operator({) constant(ActionController)operator(::)constant(TestUploadedFile)operator(.)ident(new)operator(()stringoperator(\)) operator(}) reserved(end) reserved(def) method(test_assert_redirected_to_symbol) ident(get) symbol(:redirect_to_symbol) ident(assert_redirected_to) symbol(:generate_url) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(UrlRewriterTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@params) operator(=) operator({)operator(}) instance_variable(@rewriter) operator(=) constant(ActionController)operator(::)constant(UrlRewriter)operator(.)ident(new)operator(()instance_variable(@request)operator(,) instance_variable(@params)operator(\)) reserved(end) reserved(def) method(test_simple_build_query_string) ident(assert_query_equal) stringoperator(,) instance_variable(@rewriter)operator(.)ident(send)operator(()symbol(:build_query_string)operator(,) symbol(:x) operator(=)operator(>) stringoperator(,) symbol(:y) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_convert_ints_build_query_string) ident(assert_query_equal) stringoperator(,) instance_variable(@rewriter)operator(.)ident(send)operator(()symbol(:build_query_string)operator(,) symbol(:x) operator(=)operator(>) integer(1)operator(,) symbol(:y) operator(=)operator(>) integer(2)operator(\)) reserved(end) reserved(def) method(test_escape_spaces_build_query_string) ident(assert_query_equal) stringoperator(,) instance_variable(@rewriter)operator(.)ident(send)operator(()symbol(:build_query_string)operator(,) symbol(:x) operator(=)operator(>) stringoperator(,) symbol(:y) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_expand_array_build_query_string) ident(assert_query_equal) stringoperator(,) instance_variable(@rewriter)operator(.)ident(send)operator(()symbol(:build_query_string)operator(,) symbol(:x) operator(=)operator(>) operator([)integer(1)operator(,) integer(2)operator(])operator(\)) reserved(end) reserved(def) method(test_escape_spaces_build_query_string_selected_keys) ident(assert_query_equal) stringoperator(,) instance_variable(@rewriter)operator(.)ident(send)operator(()symbol(:build_query_string)operator(,) operator({)symbol(:x) operator(=)operator(>) stringoperator(,) symbol(:y) operator(=)operator(>) stringoperator(})operator(,) operator([)symbol(:x)operator(])operator(\)) reserved(end) reserved(def) method(test_overwrite_params) instance_variable(@params)operator([)symbol(:controller)operator(]) operator(=) string instance_variable(@params)operator([)symbol(:action)operator(]) operator(=) string instance_variable(@params)operator([)symbol(:id)operator(]) operator(=) string ident(assert_equal) stringoperator(,) instance_variable(@rewriter)operator(.)ident(rewrite)operator(()symbol(:only_path) operator(=)operator(>) pre_constant(true)operator(,) symbol(:overwrite_params) operator(=)operator(>) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(u) operator(=) instance_variable(@rewriter)operator(.)ident(rewrite)operator(()symbol(:only_path) operator(=)operator(>) pre_constant(false)operator(,) symbol(:overwrite_params) operator(=)operator(>) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_match) regexpoperator(,) ident(u) reserved(end) ident(private) reserved(def) method(split_query_string)operator(()ident(str)operator(\)) operator([)ident(str)operator([)integer(0)operator(])operator(.)ident(chr)operator(]) operator(+) ident(str)operator([)integer(1)operator(..)integer(-1)operator(])operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(sort) reserved(end) reserved(def) method(assert_query_equal)operator(()ident(q1)operator(,) ident(q2)operator(\)) ident(assert_equal)operator(()ident(split_query_string)operator(()ident(q1)operator(\))operator(,) ident(split_query_string)operator(()ident(q2)operator(\))operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(VerificationTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) ident(verify) symbol(:only) operator(=)operator(>) symbol(:guarded_one)operator(,) symbol(:params) operator(=)operator(>) stringoperator(,) symbol(:redirect_to) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(}) ident(verify) symbol(:only) operator(=)operator(>) symbol(:guarded_two)operator(,) symbol(:params) operator(=)operator(>) stringoperator(,) symbol(:redirect_to) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(}) ident(verify) symbol(:only) operator(=)operator(>) symbol(:guarded_with_flash)operator(,) symbol(:params) operator(=)operator(>) stringoperator(,) symbol(:add_flash) operator(=)operator(>) operator({) string operator(=)operator(>) string operator(})operator(,) symbol(:redirect_to) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(}) ident(verify) symbol(:only) operator(=)operator(>) symbol(:guarded_in_session)operator(,) symbol(:session) operator(=)operator(>) stringoperator(,) symbol(:redirect_to) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(}) ident(verify) symbol(:only) operator(=)operator(>) operator([)symbol(:multi_one)operator(,) symbol(:multi_two)operator(])operator(,) symbol(:session) operator(=)operator(>) stringoperator(,) symbol(:redirect_to) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(}) ident(verify) symbol(:only) operator(=)operator(>) symbol(:guarded_by_method)operator(,) symbol(:method) operator(=)operator(>) symbol(:post)operator(,) symbol(:redirect_to) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(}) ident(verify) symbol(:only) operator(=)operator(>) symbol(:guarded_by_xhr)operator(,) symbol(:xhr) operator(=)operator(>) pre_constant(true)operator(,) symbol(:redirect_to) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(}) ident(verify) symbol(:only) operator(=)operator(>) symbol(:guarded_by_not_xhr)operator(,) symbol(:xhr) operator(=)operator(>) pre_constant(false)operator(,) symbol(:redirect_to) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(}) ident(before_filter) symbol(:unconditional_redirect)operator(,) symbol(:only) operator(=)operator(>) symbol(:two_redirects) ident(verify) symbol(:only) operator(=)operator(>) symbol(:two_redirects)operator(,) symbol(:method) operator(=)operator(>) symbol(:post)operator(,) symbol(:redirect_to) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(}) ident(verify) symbol(:only) operator(=)operator(>) symbol(:must_be_post)operator(,) symbol(:method) operator(=)operator(>) symbol(:post)operator(,) symbol(:render) operator(=)operator(>) operator({) symbol(:status) operator(=)operator(>) integer(500)operator(,) symbol(:text) operator(=)operator(>) stringoperator(}) reserved(def) method(guarded_one) ident(render) symbol(:text) operator(=)operator(>) stringoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(guarded_with_flash) ident(render) symbol(:text) operator(=)operator(>) stringoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(guarded_two) ident(render) symbol(:text) operator(=)operator(>) stringoperator(])inline_delimiter(})>content(:)inlineoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(guarded_in_session) ident(render) symbol(:text) operator(=)operator(>) stringoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(multi_one) ident(render) symbol(:text) operator(=)operator(>) stringoperator(])inline_delimiter(})>content(:)inlineoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(multi_two) ident(render) symbol(:text) operator(=)operator(>) stringoperator(])inline_delimiter(})>content(:)inlineoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(guarded_by_method) ident(render) symbol(:text) operator(=)operator(>) stringdelimiter(")> reserved(end) reserved(def) method(guarded_by_xhr) ident(render) symbol(:text) operator(=)operator(>) stringdelimiter(")> reserved(end) reserved(def) method(guarded_by_not_xhr) ident(render) symbol(:text) operator(=)operator(>) stringdelimiter(")> reserved(end) reserved(def) method(unguarded) ident(render) symbol(:text) operator(=)operator(>) stringoperator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(two_redirects) ident(render) symbol(:nothing) operator(=)operator(>) pre_constant(true) reserved(end) reserved(def) method(must_be_post) ident(render) symbol(:text) operator(=)operator(>) string reserved(end) ident(protected) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(def) method(unconditional_redirect) ident(redirect_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(TestController)operator(.)ident(new) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) reserved(def) method(test_guarded_one_with_prereqs) ident(get) symbol(:guarded_one)operator(,) symbol(:one) operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_guarded_one_without_prereqs) ident(get) symbol(:guarded_one) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_guarded_with_flash_with_prereqs) ident(get) symbol(:guarded_with_flash)operator(,) symbol(:one) operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) ident(assert_flash_empty) reserved(end) reserved(def) method(test_guarded_with_flash_without_prereqs) ident(get) symbol(:guarded_with_flash) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string ident(assert_flash_equal) stringoperator(,) string reserved(end) reserved(def) method(test_guarded_two_with_prereqs) ident(get) symbol(:guarded_two)operator(,) symbol(:one) operator(=)operator(>) stringoperator(,) symbol(:two) operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_guarded_two_without_prereqs_one) ident(get) symbol(:guarded_two)operator(,) symbol(:two) operator(=)operator(>) string ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_guarded_two_without_prereqs_two) ident(get) symbol(:guarded_two)operator(,) symbol(:one) operator(=)operator(>) string ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_guarded_two_without_prereqs_both) ident(get) symbol(:guarded_two) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_unguarded_with_params) ident(get) symbol(:unguarded)operator(,) symbol(:one) operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_unguarded_without_params) ident(get) symbol(:unguarded) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_guarded_in_session_with_prereqs) ident(get) symbol(:guarded_in_session)operator(,) operator({)operator(})operator(,) string operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_guarded_in_session_without_prereqs) ident(get) symbol(:guarded_in_session) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_multi_one_with_prereqs) ident(get) symbol(:multi_one)operator(,) operator({)operator(})operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_multi_one_without_prereqs) ident(get) symbol(:multi_one) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_multi_two_with_prereqs) ident(get) symbol(:multi_two)operator(,) operator({)operator(})operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_multi_two_without_prereqs) ident(get) symbol(:multi_two) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_guarded_by_method_with_prereqs) ident(post) symbol(:guarded_by_method) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_guarded_by_method_without_prereqs) ident(get) symbol(:guarded_by_method) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_guarded_by_xhr_with_prereqs) ident(xhr) symbol(:post)operator(,) symbol(:guarded_by_xhr) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_guarded_by_xhr_without_prereqs) ident(get) symbol(:guarded_by_xhr) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_guarded_by_not_xhr_with_prereqs) ident(get) symbol(:guarded_by_not_xhr) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_guarded_by_not_xhr_without_prereqs) ident(xhr) symbol(:post)operator(,) symbol(:guarded_by_not_xhr) ident(assert_redirected_to) symbol(:action) operator(=)operator(>) string reserved(end) reserved(def) method(test_guarded_post_and_calls_render_succeeds) ident(post) symbol(:must_be_post) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_guarded_post_and_calls_render_fails) ident(get) symbol(:must_be_post) ident(assert_response) integer(500) ident(assert_equal) stringoperator(,) instance_variable(@response)operator(.)ident(body) reserved(end) reserved(def) method(test_second_redirect) ident(assert_nothing_raised) operator({) ident(get) symbol(:two_redirects) operator(}) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string reserved(class) class(WebServiceTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(class) class(MockCGI) operator(<) constant(CGI) comment(#:nodoc:) ident(attr_accessor) symbol(:stdinput)operator(,) symbol(:stdoutput)operator(,) symbol(:env_table) reserved(def) method(initialize)operator(()ident(env)operator(,) ident(data) operator(=) stringoperator(\)) pre_constant(self)operator(.)ident(env_table) operator(=) ident(env) pre_constant(self)operator(.)ident(stdinput) operator(=) constant(StringIO)operator(.)ident(new)operator(()ident(data)operator(\)) pre_constant(self)operator(.)ident(stdoutput) operator(=) constant(StringIO)operator(.)ident(new) reserved(super)operator(()operator(\)) reserved(end) reserved(end) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) ident(session) symbol(:off) reserved(def) method(assign_parameters) reserved(if) ident(params)operator([)symbol(:full)operator(]) ident(render) symbol(:text) operator(=)operator(>) ident(dump_params_keys) reserved(else) ident(render) symbol(:text) operator(=)operator(>) operator(()ident(params)operator(.)ident(keys) operator(-) operator([)stringoperator(,) stringoperator(])operator(\))operator(.)ident(sort)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(dump_params_keys)operator(()ident(hash)operator(=)ident(params)operator(\)) ident(hash)operator(.)ident(keys)operator(.)ident(sort)operator(.)ident(inject)operator(()stringoperator(\)) reserved(do) operator(|)ident(s)operator(,) ident(k)operator(|) ident(value) operator(=) ident(hash)operator([)ident(k)operator(]) ident(value) operator(=) constant(Hash) operator(===) ident(value) operator(?) stringcontent(\))delimiter(")> operator(:) string ident(s) operator(<<) string reserved(unless) ident(s)operator(.)ident(empty?) ident(s) operator(<<) stringinlinedelimiter(")> reserved(end) reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(TestController)operator(.)ident(new) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator(.)ident(clear) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(XML)operator(]) operator(=) symbol(:xml_node) reserved(end) reserved(def) method(test_check_parameters) ident(process)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(response)operator(.)ident(body) reserved(end) reserved(def) method(test_post_xml) ident(process)operator(()stringoperator(,) stringoperator(,) stringcontent...)delimiter(')>operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(response)operator(.)ident(body) ident(assert) instance_variable(@controller)operator(.)ident(params)operator(.)ident(has_key?)operator(()symbol(:entry)operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)stringoperator(])operator(.)ident(summary)operator(.)ident(node_value) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)stringoperator(])operator([)stringoperator(]) reserved(end) reserved(def) method(test_put_xml) ident(process)operator(()stringoperator(,) stringoperator(,) stringcontent...)delimiter(')>operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(response)operator(.)ident(body) ident(assert) instance_variable(@controller)operator(.)ident(params)operator(.)ident(has_key?)operator(()symbol(:entry)operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)stringoperator(])operator(.)ident(summary)operator(.)ident(node_value) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)stringoperator(])operator([)stringoperator(]) reserved(end) reserved(def) method(test_register_and_use_yaml) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(YAML)operator(]) operator(=) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(d)operator(|) constant(YAML)operator(.)ident(load)operator(()ident(d)operator(\)) operator(}) ident(process)operator(()stringoperator(,) stringoperator(,) operator({)string operator(=)operator(>) stringoperator(})operator(.)ident(to_yaml)operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(response)operator(.)ident(body) ident(assert) instance_variable(@controller)operator(.)ident(params)operator(.)ident(has_key?)operator(()symbol(:entry)operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)stringoperator(]) reserved(end) reserved(def) method(test_register_and_use_yaml_as_symbol) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(YAML)operator(]) operator(=) symbol(:yaml) ident(process)operator(()stringoperator(,) stringoperator(,) operator({)string operator(=)operator(>) stringoperator(})operator(.)ident(to_yaml)operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(response)operator(.)ident(body) ident(assert) instance_variable(@controller)operator(.)ident(params)operator(.)ident(has_key?)operator(()symbol(:entry)operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)stringoperator(]) reserved(end) reserved(def) method(test_register_and_use_xml_simple) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(XML)operator(]) operator(=) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(data)operator(|) constant(XmlSimple)operator(.)ident(xml_in)operator(()ident(data)operator(,) string operator(=)operator(>) pre_constant(false)operator(\)) operator(}) ident(process)operator(()stringoperator(,) stringoperator(,) stringcontent...SimpleXml)delimiter(')> operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(response)operator(.)ident(body) ident(assert) instance_variable(@controller)operator(.)ident(params)operator(.)ident(has_key?)operator(()symbol(:summary)operator(\)) ident(assert) instance_variable(@controller)operator(.)ident(params)operator(.)ident(has_key?)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)stringoperator(]) reserved(end) reserved(def) method(test_use_xml_ximple_with_empty_request) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(XML)operator(]) operator(=) symbol(:xml_simple) ident(assert_nothing_raised) operator({) ident(process)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) operator(}) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(response)operator(.)ident(body) reserved(end) reserved(def) method(test_deprecated_request_methods) ident(process)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) constant(Mime)operator(::)constant(YAML)operator(,) instance_variable(@controller)operator(.)ident(request)operator(.)ident(content_type) ident(assert_equal) pre_constant(true)operator(,) instance_variable(@controller)operator(.)ident(request)operator(.)ident(post?) ident(assert_equal) symbol(:yaml)operator(,) instance_variable(@controller)operator(.)ident(request)operator(.)ident(post_format) ident(assert_equal) pre_constant(true)operator(,) instance_variable(@controller)operator(.)ident(request)operator(.)ident(yaml_post?) ident(assert_equal) pre_constant(false)operator(,) instance_variable(@controller)operator(.)ident(request)operator(.)ident(xml_post?) reserved(end) reserved(def) method(test_dasherized_keys_as_xml) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(XML)operator(]) operator(=) symbol(:xml_simple) ident(process)operator(()stringoperator(,) stringoperator(,) string)char(\\n)content(...)char(\\n)content()delimiter(")>operator(,) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(response)operator(.)ident(body) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)symbol(:first_key)operator(])operator([)symbol(:sub_key)operator(]) reserved(end) reserved(def) method(test_typecast_as_xml) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(XML)operator(]) operator(=) symbol(:xml_simple) ident(process)operator(()stringoperator(,) stringoperator(,) stringoperator(\))string 15 false true 2005-03-17 2005-03-17T21:41:07Z unparsed 1 hello 1974-07-25 )delimiter( XML)> ident(params) operator(=) instance_variable(@controller)operator(.)ident(params) ident(assert_equal) integer(15)operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:a)operator(]) ident(assert_equal) pre_constant(false)operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:b)operator(]) ident(assert_equal) pre_constant(true)operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:c)operator(]) ident(assert_equal) constant(Date)operator(.)ident(new)operator(()integer(2005)operator(,)integer(3)operator(,)integer(17)operator(\))operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:d)operator(]) ident(assert_equal) constant(Time)operator(.)ident(utc)operator(()integer(2005)operator(,)integer(3)operator(,)integer(17)operator(,)integer(21)operator(,)integer(41)operator(,)integer(7)operator(\))operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:e)operator(]) ident(assert_equal) stringoperator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:f)operator(]) ident(assert_equal) operator([)integer(1)operator(,) stringoperator(,) constant(Date)operator(.)ident(new)operator(()integer(1974)operator(,)integer(7)operator(,)integer(25)operator(\))operator(])operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:g)operator(]) reserved(end) reserved(def) method(test_entities_unescaped_as_xml_simple) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(XML)operator(]) operator(=) symbol(:xml_simple) ident(process)operator(()stringoperator(,) stringoperator(,) stringoperator(\))string<foo "bar's" & friends>)delimiter( XML)> ident(assert_equal) string)delimiter(\))>operator(,) instance_variable(@controller)operator(.)ident(params)operator([)symbol(:data)operator(]) reserved(end) reserved(def) method(test_dasherized_keys_as_yaml) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(YAML)operator(]) operator(=) symbol(:yaml) ident(process)operator(()stringoperator(,) stringoperator(,) stringoperator(,) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(response)operator(.)ident(body) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(params)operator([)symbol(:first_key)operator(])operator([)symbol(:sub_key)operator(]) reserved(end) reserved(def) method(test_typecast_as_yaml) constant(ActionController)operator(::)constant(Base)operator(.)ident(param_parsers)operator([)constant(Mime)operator(::)constant(YAML)operator(]) operator(=) symbol(:yaml) ident(process)operator(()stringoperator(,) stringoperator(,) stringoperator(\))string ident(params) operator(=) instance_variable(@controller)operator(.)ident(params) ident(assert_equal) integer(15)operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:a)operator(]) ident(assert_equal) pre_constant(false)operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:b)operator(]) ident(assert_equal) pre_constant(true)operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:c)operator(]) ident(assert_equal) constant(Date)operator(.)ident(new)operator(()integer(2005)operator(,)integer(3)operator(,)integer(17)operator(\))operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:d)operator(]) ident(assert_equal) constant(Time)operator(.)ident(utc)operator(()integer(2005)operator(,)integer(3)operator(,)integer(17)operator(,)integer(21)operator(,)integer(41)operator(,)integer(7)operator(\))operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:e)operator(]) ident(assert_equal) stringoperator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:f)operator(]) ident(assert_equal) operator([)integer(1)operator(,) stringoperator(,) constant(Date)operator(.)ident(new)operator(()integer(1974)operator(,)integer(7)operator(,)integer(25)operator(\))operator(])operator(,) ident(params)operator([)symbol(:data)operator(])operator([)symbol(:g)operator(]) reserved(end) ident(private) reserved(def) method(process)operator(()ident(verb)operator(,) ident(content_type) operator(=) stringoperator(,) ident(data) operator(=) stringoperator(,) ident(full)operator(=)pre_constant(false)operator(\)) ident(cgi) operator(=) constant(MockCGI)operator(.)ident(new)operator(()operator({) string operator(=)operator(>) ident(verb)operator(,) string operator(=)operator(>) ident(content_type)operator(,) string operator(=)operator(>) string reserved(if) ident(full)inline_delimiter(})>delimiter(")>operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(data)operator(.)ident(size)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) ident(data)operator(\)) instance_variable(@controller)operator(.)ident(send)operator(()symbol(:process)operator(,) constant(ActionController)operator(::)constant(CgiRequest)operator(.)ident(new)operator(()ident(cgi)operator(,) operator({)operator(})operator(\))operator(,) constant(ActionController)operator(::)constant(CgiResponse)operator(.)ident(new)operator(()ident(cgi)operator(\))operator(\)) reserved(end) reserved(end) reserved(class) class(XmlNodeTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_all) ident(xn) operator(=) constant(XmlNode)operator(.)ident(from_xml)operator(()string With O'Reilly and Adaptive Path Staying at the Savoy )delimiter(})> operator(\)) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(node)operator(.)ident(document)operator(.)ident(encoding) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(node)operator(.)ident(document)operator(.)ident(version) ident(assert_equal) stringoperator(,) ident(xn)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(node_name) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator(.)ident(description)operator(.)ident(node_value) ident(assert_equal) pre_constant(nil)operator(,) ident(xn)operator(.)ident(nonexistent) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator(.)ident(notes)operator(.)ident(note)operator(.)ident(node_value)operator(.)ident(strip) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator(.)ident(tags)operator(.)ident(tag)operator([)integer(0)operator(])operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator(.)ident(tags)operator(.)ident(tag)operator([)integer(1)operator(])operator([)symbol(:name)operator(]) ident(matches) operator(=) ident(xn)operator(.)ident(xpath)operator(()stringoperator(\))operator(.)ident(map)operator({) operator(|)ident(id)operator(|) ident(id)operator(.)ident(to_i) operator(}) ident(assert_equal) operator([)integer(4)operator(,) integer(5)operator(,) integer(1020)operator(,) integer(1133)operator(])operator(,) ident(matches)operator(.)ident(sort) ident(matches) operator(=) ident(xn)operator(.)ident(xpath)operator(()stringoperator(\))operator(.)ident(map)operator({) operator(|)ident(tag)operator(|) ident(tag)operator([)stringoperator(]) operator(}) ident(assert_equal) operator([)stringoperator(,) stringoperator(])operator(,) ident(matches)operator(.)ident(sort) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator([)stringoperator(]) ident(xn)operator(.)ident(page)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator(.)ident(notes)operator(.)ident(note)operator(.)ident(node_value)operator(.)ident(strip) ident(xn)operator(.)ident(page)operator(.)ident(notes)operator(.)ident(note)operator(.)ident(node_value) operator(=) string ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator(.)ident(notes)operator(.)ident(note)operator(.)ident(node_value)operator(.)ident(strip) ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator(.)ident(tags)operator(.)ident(tag)operator([)integer(1)operator(])operator([)symbol(:id)operator(]) ident(xn)operator(.)ident(page)operator(.)ident(tags)operator(.)ident(tag)operator([)integer(1)operator(])operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) ident(xn)operator(.)ident(page)operator(.)ident(tags)operator(.)ident(tag)operator([)integer(1)operator(])operator([)stringoperator(]) reserved(end) reserved(def) method(test_small_entry) ident(node) operator(=) constant(XmlNode)operator(.)ident(from_xml)operator(()stringhi)delimiter(')>operator(\)) ident(assert_equal) stringoperator(,) ident(node)operator(.)ident(node_value) reserved(end) reserved(end) reserved(class) class(AClassThatContainsAController::PoorlyPlacedController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) pre_constant(self)operator(.)method(is_evil?) symbol(:decidedly_so) reserved(end) ident(endclass) constant(ModuleThatHoldsControllers)operator(::)constant(NestedController) operator(<) constant(ActionController)operator(::)constant(Base) ident(endclass) constant(AClassThatContainsAController) comment(#often < ActiveRecord::Base) reserved(def) pre_constant(self)operator(.)method(is_special?) symbol(:you_know_it) reserved(end) ident(endclass) constant(Company) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(attr_protected) symbol(:rating) ident(set_sequence_name) symbol(:companies_nonstd_seq) ident(validates_presence_of) symbol(:name) reserved(def) method(validate) ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) reserved(if) ident(rating) operator(==) integer(2) reserved(end) ident(endclass) constant(Developer) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_and_belongs_to_many) symbol(:projects) reserved(end) reserved(class) class(DeVeLoPeR) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_table_name) string reserved(end) comment(# see routing/controller component tests) ident(raise) constant(Exception)operator(,) stringreserved(module) class(AbcHelper) reserved(def) method(bare_a)operator(()operator(\)) reserved(end) reserved(def) method(bare_b)operator(()operator(\)) reserved(end) reserved(def) method(bare_c)operator(()operator(\)) reserved(end) reserved(end) reserved(module) class(Fun::GamesHelper) reserved(def) method(stratego)operator(()operator(\)) string reserved(end) ident(endmodule) constant(Fun)operator(::)constant(PDFHelper) reserved(def) method(foobar)operator(()operator(\)) string reserved(end) reserved(end) reserved(class) class(Project) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_and_belongs_to_many) symbol(:developers)operator(,) symbol(:uniq) operator(=)operator(>) pre_constant(true) reserved(end) reserved(class) class(Reply) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:topic)operator(,) symbol(:include) operator(=)operator(>) operator([)symbol(:replies)operator(]) ident(validates_presence_of) symbol(:content) reserved(end) reserved(class) class(Topic) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_many) symbol(:replies)operator(,) symbol(:include) operator(=)operator(>) operator([)symbol(:user)operator(])operator(,) symbol(:dependent) operator(=)operator(>) pre_constant(true) ident(endrequire) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string comment(# require File.dirname(__FILE__\) + '/../../lib/action_view/helpers/active_record_helper') reserved(class) class(ActiveRecordHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(ActiveRecordHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TextHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormTagHelper) ident(silence_warnings) reserved(do) constant(Post) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:title)operator(,) symbol(:author_name)operator(,) symbol(:body)operator(,) symbol(:secret)operator(,) symbol(:written_on)operator(\)) constant(Post)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:title_before_type_cast)operator(,) symbol(:title) reserved(unless) ident(respond_to?)operator(()symbol(:title_before_type_cast)operator(\)) ident(alias_method) symbol(:body_before_type_cast)operator(,) symbol(:body) reserved(unless) ident(respond_to?)operator(()symbol(:body_before_type_cast)operator(\)) ident(alias_method) symbol(:author_name_before_type_cast)operator(,) symbol(:author_name) reserved(unless) ident(respond_to?)operator(()symbol(:author_name_before_type_cast)operator(\)) reserved(end) constant(Column) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:type)operator(,) symbol(:name)operator(,) symbol(:human_name)operator(\)) reserved(end) reserved(def) method(setup) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) reserved(def) instance_variable(@post)operator(.)method(errors) constant(Class)operator(.)ident(new) operator({) reserved(def) method(on)operator(()ident(field)operator(\)) ident(field) operator(==) string operator(||) ident(field) operator(==) string reserved(end) reserved(def) method(empty?)operator(()operator(\)) pre_constant(false) reserved(end) reserved(def) method(count)operator(()operator(\)) integer(1) reserved(end) reserved(def) method(full_messages)operator(()operator(\)) operator([) string operator(]) reserved(end) operator(})operator(.)ident(new) reserved(end) reserved(def) instance_variable(@post)operator(.)method(new_record?)operator(()operator(\)) pre_constant(true) reserved(end) reserved(def) instance_variable(@post)operator(.)method(to_param)operator(()operator(\)) pre_constant(nil) reserved(end) reserved(def) instance_variable(@post)operator(.)method(column_for_attribute)operator(()ident(attr_name)operator(\)) constant(Post)operator(.)ident(content_columns)operator(.)ident(select) operator({) operator(|)ident(column)operator(|) ident(column)operator(.)ident(name) operator(==) ident(attr_name) operator(})operator(.)ident(first) reserved(end) reserved(def) constant(Post)operator(.)method(content_columns)operator(()operator(\)) operator([) constant(Column)operator(.)ident(new)operator(()symbol(:string)operator(,) stringoperator(,) stringoperator(\))operator(,) constant(Column)operator(.)ident(new)operator(()symbol(:text)operator(,) stringoperator(,) stringoperator(\)) operator(]) reserved(end) instance_variable(@post)operator(.)ident(title) operator(=) string instance_variable(@post)operator(.)ident(author_name) operator(=) string instance_variable(@post)operator(.)ident(body) operator(=) string instance_variable(@post)operator(.)ident(secret) operator(=) integer(1) instance_variable(@post)operator(.)ident(written_on) operator(=) constant(Date)operator(.)ident(new)operator(()integer(2004)operator(,) integer(6)operator(,) integer(15)operator(\)) instance_variable(@controller) operator(=) constant(Object)operator(.)ident(new) reserved(def) instance_variable(@controller)operator(.)method(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) ident(options) operator(=) ident(options)operator(.)ident(symbolize_keys) operator([)ident(options)operator([)symbol(:action)operator(])operator(,) ident(options)operator([)symbol(:id)operator(])operator(.)ident(to_param)operator(])operator(.)ident(compact)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_generic_input_tag) ident(assert_dom_equal)operator(() string)delimiter(\))>operator(,) ident(input)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_text_area_with_errors) ident(assert_dom_equal)operator(() string)delimiter(\))>operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_text_field_with_errors) ident(assert_dom_equal)operator(() string)delimiter(\))>operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_form_with_string) ident(assert_dom_equal)operator(() string


    )char(\\n)content(


    )delimiter(\))>operator(,) ident(form)operator(()stringoperator(\)) operator(\)) reserved(class) operator(<<) instance_variable(@post) reserved(def) method(new_record?)operator(()operator(\)) pre_constant(false) reserved(end) reserved(def) method(to_param)operator(()operator(\)) ident(id) reserved(end) reserved(def) method(id)operator(()operator(\)) integer(1) reserved(end) reserved(end) ident(assert_dom_equal)operator(() string


    )char(\\n)content(


    )delimiter(\))>operator(,) ident(form)operator(()stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_form_with_date) reserved(def) constant(Post)operator(.)method(content_columns)operator(()operator(\)) operator([) constant(Column)operator(.)ident(new)operator(()symbol(:date)operator(,) stringoperator(,) stringoperator(\)) operator(]) reserved(end) ident(assert_dom_equal)operator(() string


    )char(\\n)content()char(\\n)content()char(\\n)content(

    )delimiter(\))>operator(,) ident(form)operator(()stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_form_with_datetime) reserved(def) constant(Post)operator(.)method(content_columns)operator(()operator(\)) operator([) constant(Column)operator(.)ident(new)operator(()symbol(:datetime)operator(,) stringoperator(,) stringoperator(\)) operator(]) reserved(end) instance_variable(@post)operator(.)ident(written_on) operator(=) constant(Time)operator(.)ident(gm)operator(()integer(2004)operator(,) integer(6)operator(,) integer(15)operator(,) integer(16)operator(,) integer(30)operator(\)) ident(assert_dom_equal)operator(() string


    )char(\\n)content()char(\\n)content()char(\\n)content( — )char(\\n)content( : )char(\\n)content(

    )delimiter(\))>operator(,) ident(form)operator(()stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_error_for_block) ident(assert_dom_equal) string

    1 error prohibited this post from being saved

    There were problems with the following fields:

    • Author name can't be empty
    )delimiter(\))>operator(,) ident(error_messages_for)operator(()stringoperator(\)) ident(assert_equal) string

    1 error prohibited this post from being saved

    There were problems with the following fields:

    • Author name can't be empty
    )delimiter(\))>operator(,) ident(error_messages_for)operator(()stringoperator(,) symbol(:class) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(,) symbol(:header_tag) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_error_messages_for_handles_nil) ident(assert_equal) stringoperator(,) ident(error_messages_for)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_form_with_string_multipart) ident(assert_dom_equal)operator(() string


    )char(\\n)content(


    )delimiter(\))>operator(,) ident(form)operator(()stringoperator(,) symbol(:multipart) operator(=)operator(>) pre_constant(true)operator(\)) operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(AssetTagHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(AssetTagHelper) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(Class)operator(.)ident(new) reserved(do) ident(attr_accessor) symbol(:request) reserved(def) method(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) string reserved(end) reserved(end)operator(.)ident(new) instance_variable(@request) operator(=) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(relative_url_root) string reserved(end) reserved(end)operator(.)ident(new) instance_variable(@controller)operator(.)ident(request) operator(=) instance_variable(@request) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(AssetTagHelper)operator(::)ident(reset_javascript_include_default) reserved(end) reserved(def) method(teardown) constant(Object)operator(.)ident(send)operator(()symbol(:remove_const)operator(,) symbol(:RAILS_ROOT)operator(\)) reserved(if) reserved(defined?)operator(()constant(RAILS_ROOT)operator(\)) pre_constant(ENV)operator([)stringoperator(]) operator(=) pre_constant(nil) reserved(end) constant(AutoDiscoveryToTag) operator(=) operator({) string operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)delimiter(\))>operator(,) string "feed")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)delimiter(\))>operator(,) string "feed"}, {:title => "My RSS"})nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string "My RSS"})nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string "text/html"})nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string "No stream.. really", :type => "text/html"})nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string "My RSS", :type => "text/html"})nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string "Not so alternate"})nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) operator(}) constant(JavascriptPathToTag) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) constant(JavascriptIncludeToTag) operator(=) operator({) string operator(=)operator(>) string)delimiter(\))>operator(,) string "vbscript")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)char(\\n)content()delimiter(\))>operator(,) string operator(=)operator(>) string)char(\\n)content()char(\\n)content()char(\\n)content()delimiter(\))>operator(,) string operator(=)operator(>) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()delimiter(\))>operator(,) string operator(=)operator(>) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()delimiter(\))> operator(}) constant(StylePathToTag) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) constant(StyleLinkToTag) operator(=) operator({) string operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)delimiter(\))>operator(,) string "all")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)char(\\n)content()delimiter(\))> operator(}) constant(ImagePathToTag) operator(=) operator({) string operator(=)operator(>) stringoperator(,) operator(}) constant(ImageLinkToTag) operator(=) operator({) string operator(=)operator(>) string)delimiter(\))>operator(,) string "rss syndication")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string "45x70")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string "45x70")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)delimiter(\))> operator(}) reserved(def) method(test_auto_discovery) constant(AutoDiscoveryToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_javascript_path) constant(JavascriptPathToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_javascript_include) constant(JavascriptIncludeToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_register_javascript_include_default) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(AssetTagHelper)operator(::)ident(register_javascript_include_default) string ident(assert_dom_equal) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()delimiter(\))>operator(,) ident(javascript_include_tag)operator(()symbol(:defaults)operator(\)) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(AssetTagHelper)operator(::)ident(register_javascript_include_default) stringoperator(,) string ident(assert_dom_equal) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()delimiter(\))>operator(,) ident(javascript_include_tag)operator(()symbol(:defaults)operator(\)) reserved(end) reserved(def) method(test_style_path) constant(StylePathToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_style_link) constant(StyleLinkToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_image_path) constant(ImagePathToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_image_tag) constant(ImageLinkToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_timebased_asset_id) constant(Object)operator(.)ident(send)operator(()symbol(:const_set)operator(,) symbol(:RAILS_ROOT)operator(,) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(expected_time) operator(=) constant(File)operator(.)ident(stat)operator(()constant(File)operator(.)ident(expand_path)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\))operator(\))operator(.)ident(mtime)operator(.)ident(to_i)operator(.)ident(to_s) ident(assert_equal) string)delimiter(\))>operator(,) ident(image_tag)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_skipping_asset_id_on_complete_url) constant(Object)operator(.)ident(send)operator(()symbol(:const_set)operator(,) symbol(:RAILS_ROOT)operator(,) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(assert_equal) string)delimiter(\))>operator(,) ident(image_tag)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_preset_asset_id) constant(Object)operator(.)ident(send)operator(()symbol(:const_set)operator(,) symbol(:RAILS_ROOT)operator(,) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) pre_constant(ENV)operator([)stringoperator(]) operator(=) string ident(assert_equal) string)delimiter(\))>operator(,) ident(image_tag)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(class) class(AssetTagHelperNonVhostTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(AssetTagHelper) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(Class)operator(.)ident(new) reserved(do) ident(attr_accessor) symbol(:request) reserved(def) method(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) string reserved(end) reserved(end)operator(.)ident(new) instance_variable(@request) operator(=) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(relative_url_root) string reserved(end) reserved(end)operator(.)ident(new) instance_variable(@controller)operator(.)ident(request) operator(=) instance_variable(@request) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(AssetTagHelper)operator(::)ident(reset_javascript_include_default) reserved(end) constant(AutoDiscoveryToTag) operator(=) operator({) string "feed")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)delimiter(\))>operator(,) operator(}) constant(JavascriptPathToTag) operator(=) operator({) string operator(=)operator(>) stringoperator(,) operator(}) constant(JavascriptIncludeToTag) operator(=) operator({) string operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)char(\\n)content()delimiter(\))>operator(,) string operator(=)operator(>) string)char(\\n)content()char(\\n)content()char(\\n)content()delimiter(\))> operator(}) constant(StylePathToTag) operator(=) operator({) string operator(=)operator(>) stringoperator(,) operator(}) constant(StyleLinkToTag) operator(=) operator({) string operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)char(\\n)content()delimiter(\))> operator(}) constant(ImagePathToTag) operator(=) operator({) string operator(=)operator(>) stringoperator(,) operator(}) constant(ImageLinkToTag) operator(=) operator({) string operator(=)operator(>) string)delimiter(\))>operator(,) string "rss syndication")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string "45x70")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))>operator(,) string operator(=)operator(>) string)delimiter(\))>operator(,) string "45x70")nesting_delimiter(\))delimiter(\))> operator(=)operator(>) string)delimiter(\))> operator(}) reserved(def) method(test_auto_discovery) constant(AutoDiscoveryToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_javascript_path) constant(JavascriptPathToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_javascript_include) constant(JavascriptIncludeToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_register_javascript_include_default) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(AssetTagHelper)operator(::)ident(register_javascript_include_default) string ident(assert_dom_equal) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()delimiter(\))>operator(,) ident(javascript_include_tag)operator(()symbol(:defaults)operator(\)) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(AssetTagHelper)operator(::)ident(register_javascript_include_default) stringoperator(,) string ident(assert_dom_equal) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()delimiter(\))>operator(,) ident(javascript_include_tag)operator(()symbol(:defaults)operator(\)) reserved(end) reserved(def) method(test_style_path) constant(StylePathToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_style_link) constant(StyleLinkToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_image_path) constant(ImagePathToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_image_tag) constant(ImageLinkToTag)operator(.)ident(each) operator({) operator(|)ident(method)operator(,) ident(tag)operator(|) ident(assert_dom_equal)operator(()ident(tag)operator(,) ident(eval)operator(()ident(method)operator(\))operator(\)) operator(}) comment(# Assigning a default alt tag should not cause an exception to be raised) ident(assert_nothing_raised) operator({) ident(image_tag)operator(()stringoperator(\)) operator(}) reserved(end) reserved(def) method(test_stylesheet_with_asset_host_already_encoded) constant(ActionController)operator(::)constant(Base)operator(.)ident(asset_host) operator(=) string ident(result) operator(=) ident(stylesheet_link_tag)operator(()stringoperator(\)) ident(assert_dom_equal)operator(() string)delimiter(\))>operator(,) ident(result)operator(\)) reserved(ensure) constant(ActionController)operator(::)constant(Base)operator(.)ident(asset_host) operator(=) string reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(BenchmarkHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(BenchmarkHelper) reserved(class) class(MockLogger) ident(attr_reader) symbol(:logged) reserved(def) method(initialize) instance_variable(@logged) operator(=) operator([)operator(]) reserved(end) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(args)operator(\)) instance_variable(@logged) operator(<<) operator([)ident(method)operator(,) ident(args)operator(]) reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@logger) operator(=) constant(MockLogger)operator(.)ident(new) reserved(end) reserved(def) method(test_without_logger_or_block) instance_variable(@logger) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(benchmark) operator(}) reserved(end) reserved(def) method(test_without_block) ident(assert_raise)operator(()constant(LocalJumpError)operator(\)) operator({) ident(benchmark) operator(}) ident(assert) instance_variable(@logger)operator(.)ident(logged)operator(.)ident(empty?) reserved(end) reserved(def) method(test_without_logger) instance_variable(@logger) operator(=) pre_constant(nil) ident(i_was_run) operator(=) pre_constant(false) ident(benchmark) operator({) ident(i_was_run) operator(=) pre_constant(true) operator(}) ident(assert) operator(!)ident(i_was_run) reserved(end) reserved(def) method(test_defaults) ident(i_was_run) operator(=) pre_constant(false) ident(benchmark) operator({) ident(i_was_run) operator(=) pre_constant(true) operator(}) ident(assert) ident(i_was_run) ident(assert) integer(1)operator(,) instance_variable(@logger)operator(.)ident(logged)operator(.)ident(size) ident(assert_last_logged) reserved(end) reserved(def) method(test_with_message) ident(i_was_run) operator(=) pre_constant(false) ident(benchmark)operator(()stringoperator(\)) operator({) ident(i_was_run) operator(=) pre_constant(true) operator(}) ident(assert) ident(i_was_run) ident(assert) integer(1)operator(,) instance_variable(@logger)operator(.)ident(logged)operator(.)ident(size) ident(assert_last_logged) string reserved(end) reserved(def) method(test_with_message_and_level) ident(i_was_run) operator(=) pre_constant(false) ident(benchmark)operator(()stringoperator(,) symbol(:debug)operator(\)) operator({) ident(i_was_run) operator(=) pre_constant(true) operator(}) ident(assert) ident(i_was_run) ident(assert) integer(1)operator(,) instance_variable(@logger)operator(.)ident(logged)operator(.)ident(size) ident(assert_last_logged) stringoperator(,) symbol(:debug) reserved(end) ident(private) reserved(def) method(assert_last_logged)operator(()ident(message) operator(=) stringoperator(,) ident(level) operator(=) symbol(:info)operator(\)) ident(last) operator(=) instance_variable(@logger)operator(.)ident(logged)operator(.)ident(last) ident(assert) integer(2)operator(,) ident(last)operator(.)ident(size) ident(assert_equal) ident(level)operator(,) ident(last)operator(.)ident(first) ident(assert) integer(1)operator(,) ident(last)operator([)integer(1)operator(])operator(.)ident(size) ident(assert) ident(last)operator([)integer(1)operator(])operator([)integer(0)operator(]) operator(=)operator(~) regexpcontent( )char(\\()content(.*)char(\\\))content($)delimiter(/)> reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(CompiledTemplateTests) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@ct) operator(=) constant(ActionView)operator(::)constant(CompiledTemplates)operator(.)ident(new) instance_variable(@v) operator(=) constant(Class)operator(.)ident(new) instance_variable(@v)operator(.)ident(send) symbol(:include)operator(,) instance_variable(@ct) instance_variable(@a) operator(=) string instance_variable(@b) operator(=) string instance_variable(@s) operator(=) string reserved(end) reserved(def) method(teardown) operator([)instance_variable(@a)operator(,) instance_variable(@b)operator(,) instance_variable(@s)operator(])operator(.)ident(each) reserved(do) operator(|)ident(f)operator(|) shelldelimiter(`)> reserved(if) constant(File)operator(.)ident(exist?)operator(()ident(f)operator(\)) operator(||) constant(File)operator(.)ident(symlink?)operator(()ident(f)operator(\)) reserved(end) reserved(end) ident(attr_reader) symbol(:ct)operator(,) symbol(:v) reserved(def) method(test_name_allocation) ident(hi_world) operator(=) ident(ct)operator(.)ident(method_names)operator([)stringoperator(]) ident(hi_sexy) operator(=) ident(ct)operator(.)ident(method_names)operator([)stringoperator(]) ident(wish_upon_a_star) operator(=) ident(ct)operator(.)ident(method_names)operator([)stringoperator(]) ident(assert_equal) ident(hi_world)operator(,) ident(ct)operator(.)ident(method_names)operator([)stringoperator(]) ident(assert_equal) ident(hi_sexy)operator(,) ident(ct)operator(.)ident(method_names)operator([)stringoperator(]) ident(assert_equal) ident(wish_upon_a_star)operator(,) ident(ct)operator(.)ident(method_names)operator([)stringoperator(]) ident(assert_equal) integer(3)operator(,) operator([)ident(hi_world)operator(,) ident(hi_sexy)operator(,) ident(wish_upon_a_star)operator(])operator(.)ident(uniq)operator(.)ident(length) reserved(end) reserved(def) method(test_wrap_source) ident(assert_equal)operator(() stringoperator(,) instance_variable(@ct)operator(.)ident(wrap_source)operator(()symbol(:aliased_assignment)operator(,) operator([)symbol(:value)operator(])operator(,) stringoperator(\)) operator(\)) ident(assert_equal)operator(() stringoperator(,) instance_variable(@ct)operator(.)ident(wrap_source)operator(()symbol(:simple)operator(,) operator([)operator(])operator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_compile_source_single_method) ident(selector) operator(=) ident(ct)operator(.)ident(compile_source)operator(()stringoperator(,) operator([)symbol(:a)operator(])operator(,) stringoperator(\)) ident(assert_equal) integer(2)operator(,) instance_variable(@v)operator(.)ident(new)operator(.)ident(send)operator(()ident(selector)operator(,) integer(1)operator(\)) ident(assert_equal) integer(4)operator(,) instance_variable(@v)operator(.)ident(new)operator(.)ident(send)operator(()ident(selector)operator(,) integer(2)operator(\)) ident(assert_equal) integer(-4)operator(,) instance_variable(@v)operator(.)ident(new)operator(.)ident(send)operator(()ident(selector)operator(,) integer(-2)operator(\)) ident(assert_equal) integer(0)operator(,) instance_variable(@v)operator(.)ident(new)operator(.)ident(send)operator(()ident(selector)operator(,) integer(0)operator(\)) ident(selector) reserved(end) reserved(def) method(test_compile_source_two_method) ident(sel1) operator(=) ident(test_compile_source_single_method) comment(# compile the method in the other test) ident(sel2) operator(=) ident(ct)operator(.)ident(compile_source)operator(()stringoperator(,) operator([)symbol(:a)operator(,) symbol(:b)operator(])operator(,) stringoperator(\)) ident(assert_not_equal) ident(sel1)operator(,) ident(sel2) ident(assert_equal) integer(2)operator(,) instance_variable(@v)operator(.)ident(new)operator(.)ident(send)operator(()ident(sel1)operator(,) integer(1)operator(\)) ident(assert_equal) integer(4)operator(,) instance_variable(@v)operator(.)ident(new)operator(.)ident(send)operator(()ident(sel1)operator(,) integer(2)operator(\)) ident(assert_equal) integer(6)operator(,) instance_variable(@v)operator(.)ident(new)operator(.)ident(send)operator(()ident(sel2)operator(,) integer(1)operator(,) integer(2)operator(\)) ident(assert_equal) integer(32)operator(,) instance_variable(@v)operator(.)ident(new)operator(.)ident(send)operator(()ident(sel2)operator(,) integer(15)operator(,) integer(1)operator(\)) reserved(end) reserved(def) method(test_mtime) ident(t1) operator(=) constant(Time)operator(.)ident(now) ident(test_compile_source_single_method) ident(assert) operator(()ident(t1)operator(..)constant(Time)operator(.)ident(now)operator(\))operator(.)ident(include?)operator(()ident(ct)operator(.)ident(mtime)operator(()stringoperator(,) operator([)symbol(:a)operator(])operator(\))operator(\)) reserved(end) reserved(def) method(test_compile_time) shellcontent(' > )inlinecontent(; echo ')inlinecontent(' > )inlinecontent(; ln -s )inlinecontent( )inlinedelimiter(`)> ident(v) operator(=) constant(ActionView)operator(::)constant(Base)operator(.)ident(new) ident(v)operator(.)ident(base_path) operator(=) string ident(v)operator(.)ident(cache_template_loading) operator(=) pre_constant(false)operator(;) ident(sleep) integer(1) ident(t) operator(=) constant(Time)operator(.)ident(now) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@a)operator(\)) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@b)operator(\)) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@s)operator(\)) ident(a_n) operator(=) ident(v)operator(.)ident(method_names)operator([)instance_variable(@a)operator(]) ident(b_n) operator(=) ident(v)operator(.)ident(method_names)operator([)instance_variable(@b)operator(]) ident(s_n) operator(=) ident(v)operator(.)ident(method_names)operator([)instance_variable(@s)operator(]) comment(# all of the files have changed since last compile) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(a_n)operator(]) operator(>) ident(t) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(b_n)operator(]) operator(>) ident(t) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(s_n)operator(]) operator(>) ident(t) ident(sleep) integer(1) ident(t) operator(=) constant(Time)operator(.)ident(now) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@a)operator(\)) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@b)operator(\)) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@s)operator(\)) comment(# none of the files have changed since last compile) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(a_n)operator(]) operator(<) ident(t) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(b_n)operator(]) operator(<) ident(t) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(s_n)operator(]) operator(<) ident(t) shellcontent(; ln -s )inlinecontent( )inlinedelimiter(`)> ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@a)operator(\)) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@b)operator(\)) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@s)operator(\)) comment(# the symlink has changed since last compile) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(a_n)operator(]) operator(<) ident(t) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(b_n)operator(]) operator(<) ident(t) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(s_n)operator(]) operator(>) ident(t) ident(sleep) integer(1) shelldelimiter(`)> ident(t) operator(=) constant(Time)operator(.)ident(now) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@a)operator(\)) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@b)operator(\)) ident(v)operator(.)ident(compile_and_render_template)operator(()symbol(:rhtml)operator(,) stringoperator(,) instance_variable(@s)operator(\)) comment(# the file at the end of the symlink has changed since last compile) comment(# both the symlink and the file at the end of it should be recompiled) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(a_n)operator(]) operator(<) ident(t) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(b_n)operator(]) operator(>) ident(t) ident(assert) ident(v)operator(.)ident(compile_time)operator([)ident(s_n)operator(]) operator(>) ident(t) reserved(end) reserved(end) reserved(module) class(ActionView) reserved(class) class(Base) reserved(def) method(compile_time) class_variable(@@compile_time) reserved(end) reserved(def) method(method_names) class_variable(@@method_names) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(DateHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(DateHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormHelper) ident(silence_warnings) reserved(do) constant(Post) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:written_on)operator(,) symbol(:updated_at)operator(\)) reserved(end) reserved(def) method(test_distance_in_words) ident(from) operator(=) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(41)operator(,) integer(18)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(41)operator(,) integer(25)operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(46)operator(,) integer(25)operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(22)operator(,) integer(47)operator(,) integer(25)operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(7)operator(,) integer(0)operator(,) integer(41)operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(7)operator(,) integer(1)operator(,) integer(20)operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(9)operator(,) integer(15)operator(,) integer(40)operator(\))operator(\)) comment(# include seconds ) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(41)operator(,) integer(19)operator(\))operator(,) pre_constant(false)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(41)operator(,) integer(19)operator(\))operator(,) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(41)operator(,) integer(28)operator(\))operator(,) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(41)operator(,) integer(38)operator(\))operator(,) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(41)operator(,) integer(48)operator(\))operator(,) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(42)operator(,) integer(17)operator(\))operator(,) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(42)operator(,) integer(18)operator(\))operator(,) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(42)operator(,) integer(28)operator(\))operator(,) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()ident(from)operator(,) constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(42)operator(,) integer(48)operator(\))operator(,) pre_constant(true)operator(\)) comment(# test to < from) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(7)operator(,) integer(1)operator(,) integer(20)operator(\))operator(,) ident(from)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2004)operator(,) integer(3)operator(,) integer(6)operator(,) integer(21)operator(,) integer(41)operator(,) integer(38)operator(\))operator(,) ident(from)operator(,) pre_constant(true)operator(\)) comment(# test with integers) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()integer(50)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()integer(60)operator(*)integer(60)operator(\)) comment(# more cumbersome test with integers) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()integer(0)operator(,) integer(50)operator(\)) ident(assert_equal) stringoperator(,) ident(distance_of_time_in_words)operator(()integer(60)operator(*)integer(60)operator(,) integer(0)operator(\)) reserved(end) reserved(def) method(test_distance_in_words_date) ident(start_date) operator(=) constant(Date)operator(.)ident(new) integer(1975)operator(,) integer(1)operator(,) integer(31) ident(end_date) operator(=) constant(Date)operator(.)ident(new) integer(1977)operator(,) integer(4)operator(,) integer(17) ident(assert_not_equal)operator(()stringoperator(,) ident(distance_of_time_in_words)operator(()ident(start_date)operator(,) ident(end_date)operator(\))operator(\)) reserved(end) reserved(def) method(test_select_day) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_day)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_day)operator(()integer(16)operator(\)) reserved(end) reserved(def) method(test_select_day_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_day)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_day)operator(()integer(16)operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_day_nil_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_day)operator(()pre_constant(nil)operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_month) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()integer(8)operator(\)) reserved(end) reserved(def) method(test_select_month_with_disabled) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()integer(8)operator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_month_with_field_name_override) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:field_name) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()integer(8)operator(,) symbol(:field_name) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_select_month_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()integer(8)operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_month_nil_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()pre_constant(nil)operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_month_with_numbers) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:use_month_numbers) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()integer(8)operator(,) symbol(:use_month_numbers) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_month_with_numbers_and_names) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1 - January)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:add_month_numbers) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()integer(8)operator(,) symbol(:add_month_numbers) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_month_with_numbers_and_names_with_abbv) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1 - Jan)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:add_month_numbers) operator(=)operator(>) pre_constant(true)operator(,) symbol(:use_short_month) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()integer(8)operator(,) symbol(:add_month_numbers) operator(=)operator(>) pre_constant(true)operator(,) symbol(:use_short_month) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_month_with_abbv) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJan)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:use_short_month) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_month)operator(()integer(8)operator(,) symbol(:use_short_month) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_year) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string2003)char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(()integer(2003)operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(\)) reserved(end) reserved(def) method(test_select_year_with_disabled) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string2003)char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(()integer(2003)operator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(\)) reserved(end) reserved(def) method(test_select_year_with_field_name_override) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string2003)char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(,) symbol(:field_name) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(()integer(2003)operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(,) symbol(:field_name) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_select_year_with_type_discarding) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string2003)char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(() constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(,) symbol(:discard_type) operator(=)operator(>) pre_constant(true)operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(() integer(2003)operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(,) symbol(:discard_type) operator(=)operator(>) pre_constant(true)operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(\)) reserved(end) reserved(def) method(test_select_year_descending) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string2005)char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2005)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:start_year) operator(=)operator(>) integer(2005)operator(,) symbol(:end_year) operator(=)operator(>) integer(2003)operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_year)operator(()integer(2005)operator(,) symbol(:start_year) operator(=)operator(>) integer(2005)operator(,) symbol(:end_year) operator(=)operator(>) integer(2003)operator(\)) reserved(end) reserved(def) method(test_select_hour) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_hour)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(\)) reserved(end) reserved(def) method(test_select_hour_with_disabled) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_hour)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_hour_with_field_name_override) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_hour)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:field_name) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_select_hour_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_hour)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_hour_nil_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_hour)operator(()pre_constant(nil)operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_minute) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_minute)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(\)) reserved(end) reserved(def) method(test_select_minute_with_disabled) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_minute)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_minute_with_field_name_override) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_minute)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:field_name) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_select_minute_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_minute)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_minute_with_blank_and_step) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_minute)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) operator({) symbol(:include_blank) operator(=)operator(>) pre_constant(true) operator(,) symbol(:minute_step) operator(=)operator(>) integer(15) operator(})operator(\)) reserved(end) reserved(def) method(test_select_minute_nil_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_minute)operator(()pre_constant(nil)operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_minute_nil_with_blank_and_step) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_minute)operator(()pre_constant(nil)operator(,) operator({) symbol(:include_blank) operator(=)operator(>) pre_constant(true) operator(,) symbol(:minute_step) operator(=)operator(>) integer(15) operator(})operator(\)) reserved(end) reserved(def) method(test_select_second) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_second)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(\)) reserved(end) reserved(def) method(test_select_second_with_disabled) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_second)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_second_with_field_name_override) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_second)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:field_name) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_select_second_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_second)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_second_nil_with_blank) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_second)operator(()pre_constant(nil)operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_date) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string2003)char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(() constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(,) symbol(:prefix) operator(=)operator(>) string operator(\)) reserved(end) reserved(def) method(test_select_date_with_disabled) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string2003)char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_date_with_no_start_year) ident(expected) operator(=) string)char(\\n)delimiter(\))> operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(-)integer(5)operator(\))operator(.)ident(upto)operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(+)integer(1)operator(\)) reserved(do) operator(|)ident(y)operator(|) reserved(if) ident(y) operator(==) constant(Date)operator(.)ident(today)operator(.)ident(year) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> reserved(else) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> reserved(end) reserved(end) ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(() constant(Time)operator(.)ident(mktime)operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:end_year) operator(=)operator(>) constant(Date)operator(.)ident(today)operator(.)ident(year)operator(+)integer(1)operator(,) symbol(:prefix) operator(=)operator(>) string operator(\)) reserved(end) reserved(def) method(test_select_date_with_no_end_year) ident(expected) operator(=) string)char(\\n)delimiter(\))> integer(2003)operator(.)ident(upto)operator(()integer(2008)operator(\)) reserved(do) operator(|)ident(y)operator(|) reserved(if) ident(y) operator(==) integer(2003) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> reserved(else) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> reserved(end) reserved(end) ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(() constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:prefix) operator(=)operator(>) string operator(\)) reserved(end) reserved(def) method(test_select_date_with_no_start_or_end_year) ident(expected) operator(=) string)char(\\n)delimiter(\))> operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(-)integer(5)operator(\))operator(.)ident(upto)operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(+)integer(5)operator(\)) reserved(do) operator(|)ident(y)operator(|) reserved(if) ident(y) operator(==) constant(Date)operator(.)ident(today)operator(.)ident(year) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> reserved(else) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> reserved(end) reserved(end) ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(() constant(Time)operator(.)ident(mktime)operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(,) integer(8)operator(,) integer(16)operator(\))operator(,) symbol(:prefix) operator(=)operator(>) string operator(\)) reserved(end) reserved(def) method(test_select_time_with_seconds) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_time)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:include_seconds) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_select_time_without_seconds) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_time)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(\)) ident(assert_equal) ident(expected)operator(,) ident(select_time)operator(()constant(Time)operator(.)ident(mktime)operator(()integer(2003)operator(,) integer(8)operator(,) integer(16)operator(,) integer(8)operator(,) integer(4)operator(,) integer(18)operator(\))operator(,) symbol(:include_seconds) operator(=)operator(>) pre_constant(false)operator(\)) reserved(end) reserved(def) method(test_date_select_with_zero_value) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string2003)char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(()integer(0)operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:end_year) operator(=)operator(>) integer(2005)operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_date_select_within_fields_for) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(written_on) operator(=) constant(Date)operator(.)ident(new)operator(()integer(2004)operator(,) integer(6)operator(,) integer(15)operator(\)) ident(_erbout) operator(=) string ident(fields_for) symbol(:post)operator(,) instance_variable(@post) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(date_select)operator(()symbol(:written_on)operator(\)) reserved(end) ident(expected) operator(=) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(")> operator(+) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(")> operator(+) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(")> ident(assert_dom_equal)operator(()ident(expected)operator(,) ident(_erbout)operator(\)) reserved(end) reserved(def) method(test_datetime_select_within_fields_for) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(updated_at) operator(=) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(6)operator(,) integer(15)operator(,) integer(16)operator(,) integer(35)operator(\)) ident(_erbout) operator(=) string ident(fields_for) symbol(:post)operator(,) instance_variable(@post) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(datetime_select)operator(()symbol(:updated_at)operator(\)) reserved(end) ident(expected) operator(=) string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content( — )char(\\n)content( : )char(\\n)delimiter(")> ident(assert_dom_equal)operator(()ident(expected)operator(,) ident(_erbout)operator(\)) reserved(end) reserved(def) method(test_date_select_with_zero_value_and_no_start_year) ident(expected) operator(=) string)char(\\n)delimiter(\))> operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(-)integer(5)operator(\))operator(.)ident(upto)operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(+)integer(1)operator(\)) operator({) operator(|)ident(y)operator(|) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> operator(}) ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(()integer(0)operator(,) symbol(:end_year) operator(=)operator(>) constant(Date)operator(.)ident(today)operator(.)ident(year)operator(+)integer(1)operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_date_select_with_zero_value_and_no_end_year) ident(expected) operator(=) string)char(\\n)delimiter(\))> ident(last_year) operator(=) constant(Time)operator(.)ident(now)operator(.)ident(year) operator(+) integer(5) integer(2003)operator(.)ident(upto)operator(()ident(last_year)operator(\)) operator({) operator(|)ident(y)operator(|) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> operator(}) ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(()integer(0)operator(,) symbol(:start_year) operator(=)operator(>) integer(2003)operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_date_select_with_zero_value_and_no_start_and_end_year) ident(expected) operator(=) string)char(\\n)delimiter(\))> operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(-)integer(5)operator(\))operator(.)ident(upto)operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(+)integer(5)operator(\)) operator({) operator(|)ident(y)operator(|) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> operator(}) ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(()integer(0)operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_date_select_with_nil_value_and_no_start_and_end_year) ident(expected) operator(=) string)char(\\n)delimiter(\))> operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(-)integer(5)operator(\))operator(.)ident(upto)operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(+)integer(5)operator(\)) operator({) operator(|)ident(y)operator(|) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> operator(}) ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_date)operator(()pre_constant(nil)operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_datetime_select_with_nil_value_and_no_start_and_end_year) ident(expected) operator(=) string)char(\\n)delimiter(\))> operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(-)integer(5)operator(\))operator(.)ident(upto)operator(()constant(Date)operator(.)ident(today)operator(.)ident(year)operator(+)integer(5)operator(\)) operator({) operator(|)ident(y)operator(|) ident(expected) operator(<<) string)inlinecontent()char(\\n)delimiter(\))> operator(}) ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) stringJanuary)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string1)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(expected) operator(<<) string)char(\\n)delimiter(\))> ident(expected) operator(<<) string00)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(\))> ident(expected) operator(<<) string)char(\\n)delimiter(")> ident(assert_equal) ident(expected)operator(,) ident(select_datetime)operator(()pre_constant(nil)operator(,) symbol(:prefix) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(FormHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormTagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TextHelper) ident(silence_warnings) reserved(do) constant(Post) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:title)operator(,) symbol(:author_name)operator(,) symbol(:body)operator(,) symbol(:secret)operator(,) symbol(:written_on)operator(,) symbol(:cost)operator(\)) constant(Post)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:title_before_type_cast)operator(,) symbol(:title) reserved(unless) ident(respond_to?)operator(()symbol(:title_before_type_cast)operator(\)) ident(alias_method) symbol(:body_before_type_cast)operator(,) symbol(:body) reserved(unless) ident(respond_to?)operator(()symbol(:body_before_type_cast)operator(\)) ident(alias_method) symbol(:author_name_before_type_cast)operator(,) symbol(:author_name) reserved(unless) ident(respond_to?)operator(()symbol(:author_name_before_type_cast)operator(\)) reserved(end) reserved(end) reserved(def) method(setup) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) reserved(def) instance_variable(@post)operator(.)method(errors)operator(()operator(\)) constant(Class)operator(.)ident(new)operator({) reserved(def) method(on)operator(()ident(field)operator(\)) ident(field) operator(==) string reserved(end) operator(})operator(.)ident(new) reserved(end) reserved(def) instance_variable(@post)operator(.)method(id)operator(;) integer(123)operator(;) reserved(end) reserved(def) instance_variable(@post)operator(.)method(id_before_type_cast)operator(;) integer(123)operator(;) reserved(end) instance_variable(@post)operator(.)ident(title) operator(=) string instance_variable(@post)operator(.)ident(author_name) operator(=) string instance_variable(@post)operator(.)ident(body) operator(=) string instance_variable(@post)operator(.)ident(secret) operator(=) integer(1) instance_variable(@post)operator(.)ident(written_on) operator(=) constant(Date)operator(.)ident(new)operator(()integer(2004)operator(,) integer(6)operator(,) integer(15)operator(\)) instance_variable(@controller) operator(=) constant(Class)operator(.)ident(new) reserved(do) ident(attr_reader) symbol(:url_for_options) reserved(def) method(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) instance_variable(@url_for_options) operator(=) ident(options) string reserved(end) reserved(end) instance_variable(@controller) operator(=) instance_variable(@controller)operator(.)ident(new) reserved(end) reserved(def) method(test_text_field) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(password_field)operator(()stringoperator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(password_field)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_text_field_with_escapes) instance_variable(@post)operator(.)ident(title) operator(=) stringHello World)delimiter(")> ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_text_field_with_options) ident(expected) operator(=) string)delimiter(')> ident(assert_dom_equal) ident(expected)operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) integer(35)operator(\)) ident(assert_dom_equal) ident(expected)operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(,) symbol(:size) operator(=)operator(>) integer(35)operator(\)) reserved(end) reserved(def) method(test_text_field_assuming_size) ident(expected) operator(=) string)delimiter(')> ident(assert_dom_equal) ident(expected)operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) integer(35)operator(\)) ident(assert_dom_equal) ident(expected)operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(,) symbol(:maxlength) operator(=)operator(>) integer(35)operator(\)) reserved(end) reserved(def) method(test_text_field_doesnt_change_param_values) ident(object_name) operator(=) string ident(expected) operator(=) string)delimiter(')> ident(assert_equal) ident(expected)operator(,) ident(text_field)operator(()ident(object_name)operator(,) stringoperator(\)) ident(assert_equal) ident(object_name)operator(,) string reserved(end) reserved(def) method(test_check_box) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(check_box)operator(()stringoperator(,) stringoperator(\)) operator(\)) instance_variable(@post)operator(.)ident(secret) operator(=) integer(0) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(check_box)operator(()stringoperator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(check_box)operator(()stringoperator(,) string operator(,)operator({)stringoperator(=)operator(>)stringoperator(})operator(\)) operator(\)) instance_variable(@post)operator(.)ident(secret) operator(=) pre_constant(true) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(check_box)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_check_box_with_explicit_checked_and_unchecked_values) instance_variable(@post)operator(.)ident(secret) operator(=) string ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(check_box)operator(()stringoperator(,) stringoperator(,) operator({)operator(})operator(,) stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_radio_button) ident(assert_dom_equal)operator(()string)delimiter(')>operator(,) ident(radio_button)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(()string)delimiter(')>operator(,) ident(radio_button)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_radio_button_is_checked_with_integers) ident(assert_dom_equal)operator(()string)delimiter(')>operator(,) ident(radio_button)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_text_area) ident(assert_dom_equal)operator(() stringBack to the hill and over it again!)delimiter(')>operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_text_area_with_escapes) instance_variable(@post)operator(.)ident(body) operator(=) stringthe hill and over it again!)delimiter(")> ident(assert_dom_equal)operator(() stringBack to <i>the</i> hill and over it again!)delimiter(')>operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_text_area_with_alternate_value) ident(assert_dom_equal)operator(() stringTesting alternate values.)delimiter(')>operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(,) symbol(:value) operator(=)operator(>) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_date_selects) ident(assert_dom_equal)operator(() stringBack to the hill and over it again!)delimiter(')>operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_explicit_name) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() stringBack to the hill and over it again!)delimiter(')>operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(check_box)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_dom_equal) ident(text_field)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) ident(text_area)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) ident(check_box)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(,) ident(check_box)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_explicit_id) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() stringBack to the hill and over it again!)delimiter(')>operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() string)delimiter(')>operator(,) ident(check_box)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_dom_equal) ident(text_field)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(,) ident(text_field)operator(()stringoperator(,) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) ident(text_area)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) ident(check_box)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(,) ident(check_box)operator(()stringoperator(,) stringoperator(,) symbol(:id) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_auto_index) ident(pid) operator(=) instance_variable(@post)operator(.)ident(id) ident(assert_dom_equal)operator(() stringcontent(_title)char(\\")content( name=)char(\\")content(post[)inlinecontent(][title])char(\\")content( size=)char(\\")content(30)char(\\")content( type=)char(\\")content(text)char(\\")content( value=)char(\\")content(Hello World)char(\\")content( />)delimiter(")>operator(,) ident(text_field)operator(()stringoperator(,)stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() stringcontent(_body)char(\\")content( name=)char(\\")content(post[)inlinecontent(][body])char(\\")content( rows=)char(\\")content(20)char(\\")content(>Back to the hill and over it again!)delimiter(")>operator(,) ident(text_area)operator(()stringoperator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() stringcontent(_secret)char(\\")content( name=)char(\\")content(post[)inlinecontent(][secret])char(\\")content( type=)char(\\")content(checkbox)char(\\")content( value=)char(\\")content(1)char(\\")content( />content(][secret])char(\\")content( type=)char(\\")content(hidden)char(\\")content( value=)char(\\")content(0)char(\\")content( />)delimiter(")>operator(,) ident(check_box)operator(()stringoperator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() stringcontent(_title_hello_world)char(\\")content( name=)char(\\")content(post[)inlinecontent(][title])char(\\")content( type=)char(\\")content(radio)char(\\")content( value=)char(\\")content(Hello World)char(\\")content( />)delimiter(")>operator(,) ident(radio_button)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(()stringcontent(_title_goodbye_world)char(\\")content( name=)char(\\")content(post[)inlinecontent(][title])char(\\")content( type=)char(\\")content(radio)char(\\")content( value=)char(\\")content(Goodbye World)char(\\")content( />)delimiter(")>operator(,) ident(radio_button)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_form_for) ident(_erbout) operator(=) string ident(form_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(,) symbol(:html) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(})operator(\)) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_field)operator(()symbol(:title)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_area)operator(()symbol(:body)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(check_box)operator(()symbol(:secret)operator(\)) reserved(end) ident(expected) operator(=) string)delimiter(")> operator(+) string)delimiter(")> operator(+) stringBack to the hill and over it again!)delimiter(")> operator(+) string)delimiter(")> operator(+) string)delimiter(")> operator(+) string)delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) reserved(def) method(test_form_for_without_object) ident(_erbout) operator(=) string ident(form_for)operator(()symbol(:post)operator(,) symbol(:html) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(})operator(\)) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_field)operator(()symbol(:title)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_area)operator(()symbol(:body)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(check_box)operator(()symbol(:secret)operator(\)) reserved(end) ident(expected) operator(=) string)delimiter(")> operator(+) string)delimiter(")> operator(+) stringBack to the hill and over it again!)delimiter(")> operator(+) string)delimiter(")> operator(+) string)delimiter(")> operator(+) string)delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) reserved(def) method(test_fields_for) ident(_erbout) operator(=) string ident(fields_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(\)) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_field)operator(()symbol(:title)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_area)operator(()symbol(:body)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(check_box)operator(()symbol(:secret)operator(\)) reserved(end) ident(expected) operator(=) string)delimiter(")> operator(+) stringBack to the hill and over it again!)delimiter(")> operator(+) string)delimiter(")> operator(+) string)delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) reserved(def) method(test_fields_for_without_object) ident(_erbout) operator(=) string ident(fields_for)operator(()symbol(:post)operator(\)) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_field)operator(()symbol(:title)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_area)operator(()symbol(:body)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(check_box)operator(()symbol(:secret)operator(\)) reserved(end) ident(expected) operator(=) string)delimiter(")> operator(+) stringBack to the hill and over it again!)delimiter(")> operator(+) string)delimiter(")> operator(+) string)delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) reserved(def) method(test_form_builder_does_not_have_form_for_method) ident(assert) operator(!) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormBuilder)operator(.)ident(instance_methods)operator(.)ident(include?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_form_for_and_fields_for) ident(_erbout) operator(=) string ident(form_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(,) symbol(:html) operator(=)operator(>) operator({) symbol(:id) operator(=)operator(>) string operator(})operator(\)) reserved(do) operator(|)ident(post_form)operator(|) ident(_erbout)operator(.)ident(concat) ident(post_form)operator(.)ident(text_field)operator(()symbol(:title)operator(\)) ident(_erbout)operator(.)ident(concat) ident(post_form)operator(.)ident(text_area)operator(()symbol(:body)operator(\)) ident(fields_for)operator(()symbol(:parent_post)operator(,) instance_variable(@post)operator(\)) reserved(do) operator(|)ident(parent_fields)operator(|) ident(_erbout)operator(.)ident(concat) ident(parent_fields)operator(.)ident(check_box)operator(()symbol(:secret)operator(\)) reserved(end) reserved(end) ident(expected) operator(=) string)delimiter(")> operator(+) string)delimiter(")> operator(+) stringBack to the hill and over it again!)delimiter(")> operator(+) string)delimiter(")> operator(+) string)delimiter(")> operator(+) string)delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) reserved(class) class(LabelledFormBuilder) operator(<) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormBuilder) operator(()ident(field_helpers) operator(-) stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(selector)operator(|) ident(src) operator(=) stringstringcontent((field, *args, &proc\) " " + super + "
    " end)delimiter( END_SRC)> ident(class_eval) ident(src)operator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__) reserved(end) reserved(end) reserved(def) method(test_form_for_with_labelled_builder) ident(_erbout) operator(=) string ident(form_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(,) symbol(:builder) operator(=)operator(>) constant(LabelledFormBuilder)operator(\)) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_field)operator(()symbol(:title)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_area)operator(()symbol(:body)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(check_box)operator(()symbol(:secret)operator(\)) reserved(end) ident(expected) operator(=) string)delimiter(")> operator(+) stringTitle:
    )delimiter(")> operator(+) stringBody:
    )delimiter(")> operator(+) stringSecret: )delimiter(")> operator(+) string
    )delimiter(")> operator(+) string)delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) comment(# Perhaps this test should be moved to prototype helper tests.) reserved(def) method(test_remote_form_for_with_labelled_builder) pre_constant(self)operator(.)ident(extend) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(PrototypeHelper) ident(_erbout) operator(=) string ident(remote_form_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(,) symbol(:builder) operator(=)operator(>) constant(LabelledFormBuilder)operator(\)) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_field)operator(()symbol(:title)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_area)operator(()symbol(:body)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(check_box)operator(()symbol(:secret)operator(\)) reserved(end) ident(expected) operator(=) string)delimiter(\))> operator(+) stringTitle:
    )delimiter(")> operator(+) stringBody:
    )delimiter(")> operator(+) stringSecret: )delimiter(")> operator(+) string
    )delimiter(")> operator(+) string)delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) reserved(def) method(test_fields_for_with_labelled_builder) ident(_erbout) operator(=) string ident(fields_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(,) symbol(:builder) operator(=)operator(>) constant(LabelledFormBuilder)operator(\)) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_field)operator(()symbol(:title)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(text_area)operator(()symbol(:body)operator(\)) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(check_box)operator(()symbol(:secret)operator(\)) reserved(end) ident(expected) operator(=) stringTitle:
    )delimiter(")> operator(+) stringBody:
    )delimiter(")> operator(+) stringSecret: )delimiter(")> operator(+) string
    )delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) reserved(def) method(test_form_for_with_html_options_adds_options_to_form_tag) ident(_erbout) operator(=) string ident(form_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(,) symbol(:html) operator(=)operator(>) operator({)symbol(:id) operator(=)operator(>) stringoperator(,) symbol(:class) operator(=)operator(>) stringoperator(})operator(\)) reserved(do) operator(|)ident(f)operator(|) reserved(end) ident(expected) operator(=) string)delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) reserved(def) method(test_form_for_with_string_url_option) ident(_erbout) operator(=) string ident(form_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(,) symbol(:url) operator(=)operator(>) stringoperator(\)) reserved(do) operator(|)ident(f)operator(|) reserved(end) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(url_for_options) reserved(end) reserved(def) method(test_form_for_with_hash_url_option) ident(_erbout) operator(=) string ident(form_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(,) symbol(:url) operator(=)operator(>) operator({)symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(})operator(\)) reserved(do) operator(|)ident(f)operator(|) reserved(end) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(url_for_options)operator([)symbol(:controller)operator(]) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(url_for_options)operator([)symbol(:action)operator(]) reserved(end) reserved(def) method(test_remote_form_for_with_html_options_adds_options_to_form_tag) pre_constant(self)operator(.)ident(extend) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(PrototypeHelper) ident(_erbout) operator(=) string ident(remote_form_for)operator(()symbol(:post)operator(,) instance_variable(@post)operator(,) symbol(:html) operator(=)operator(>) operator({)symbol(:id) operator(=)operator(>) stringoperator(,) symbol(:class) operator(=)operator(>) stringoperator(})operator(\)) reserved(do) operator(|)ident(f)operator(|) reserved(end) ident(expected) operator(=) string)delimiter(")> ident(assert_dom_equal) ident(expected)operator(,) ident(_erbout) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(MockTimeZone) ident(attr_reader) symbol(:name) reserved(def) method(initialize)operator(() ident(name) operator(\)) instance_variable(@name) operator(=) ident(name) reserved(end) reserved(def) pre_constant(self)operator(.)method(all) operator([) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(.)ident(map) operator({) operator(|)ident(s)operator(|) ident(new) ident(s) operator(}) reserved(end) reserved(def) method(==)operator(() ident(z) operator(\)) ident(z) operator(&&) instance_variable(@name) operator(==) ident(z)operator(.)ident(name) reserved(end) reserved(def) method(to_s) instance_variable(@name) reserved(end) reserved(end) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormOptionsHelper)operator(::)constant(TimeZone) operator(=) constant(MockTimeZone) reserved(class) class(FormOptionsHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormOptionsHelper) ident(silence_warnings) reserved(do) constant(Post) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:title)operator(,) symbol(:author_name)operator(,) symbol(:body)operator(,) symbol(:secret)operator(,) symbol(:written_on)operator(,) symbol(:category)operator(,) symbol(:origin)operator(\)) constant(Continent) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:continent_name)operator(,) symbol(:countries)operator(\)) constant(Country) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:country_id)operator(,) symbol(:country_name)operator(\)) constant(Firm) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:time_zone)operator(\)) reserved(end) reserved(def) method(test_collection_options) instance_variable(@posts) operator(=) operator([) constant(Post)operator(.)ident(new)operator(()string went home)delimiter(")>operator(,) string)delimiter(")>operator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(]) ident(assert_dom_equal)operator(() string<Abe> went home)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(options_from_collection_for_select)operator(()instance_variable(@posts)operator(,) stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_collection_options_with_preselected_value) instance_variable(@posts) operator(=) operator([) constant(Post)operator(.)ident(new)operator(()string went home)delimiter(")>operator(,) string)delimiter(")>operator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(]) ident(assert_dom_equal)operator(() string<Abe> went home)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(options_from_collection_for_select)operator(()instance_variable(@posts)operator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_collection_options_with_preselected_value_array) instance_variable(@posts) operator(=) operator([) constant(Post)operator(.)ident(new)operator(()string went home)delimiter(")>operator(,) string)delimiter(")>operator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(]) ident(assert_dom_equal)operator(() string<Abe> went home)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(options_from_collection_for_select)operator(()instance_variable(@posts)operator(,) stringoperator(,) stringoperator(,) operator([) stringoperator(,) string operator(])operator(\)) operator(\)) reserved(end) reserved(def) method(test_array_options_for_select) ident(assert_dom_equal)operator(() string<Denmark>)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator([) string)delimiter(")>operator(,) stringoperator(,) string operator(])operator(\)) operator(\)) reserved(end) reserved(def) method(test_array_options_for_select_with_selection) ident(assert_dom_equal)operator(() stringDenmark)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator([) stringoperator(,) string)delimiter(")>operator(,) string operator(])operator(,) string)delimiter(")>operator(\)) operator(\)) reserved(end) reserved(def) method(test_array_options_for_select_with_selection_array) ident(assert_dom_equal)operator(() stringDenmark)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator([) stringoperator(,) string)delimiter(")>operator(,) string operator(])operator(,) operator([) string)delimiter(")>operator(,) string operator(])operator(\)) operator(\)) reserved(end) reserved(def) method(test_array_options_for_string_include_in_other_string_bug_fix) ident(assert_dom_equal)operator(() stringruby)char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator([) stringoperator(,) string operator(])operator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() stringruby)char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator([) stringoperator(,) string operator(])operator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_hash_options_for_select) ident(assert_dom_equal)operator(() string<DKR>)char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator({) string operator(=)operator(>) stringoperator(,) string)delimiter(")> operator(=)operator(>) string)delimiter(")> operator(})operator(\)) operator(\)) ident(assert_dom_equal)operator(() string<DKR>)char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator({) string operator(=)operator(>) stringoperator(,) string)delimiter(")> operator(=)operator(>) string)delimiter(")> operator(})operator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() string<DKR>)char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator({) string operator(=)operator(>) stringoperator(,) string)delimiter(")> operator(=)operator(>) string)delimiter(")> operator(})operator(,) operator([) stringoperator(,) string)delimiter(")> operator(])operator(\)) operator(\)) reserved(end) reserved(def) method(test_ducktyped_options_for_select) ident(quack) operator(=) constant(Struct)operator(.)ident(new)operator(()symbol(:first)operator(,) symbol(:last)operator(\)) ident(assert_dom_equal)operator(() string<DKR>)char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator([)ident(quack)operator(.)ident(new)operator(()string)delimiter(")>operator(,) string)delimiter(")>operator(\))operator(,) ident(quack)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\))operator(])operator(\)) operator(\)) ident(assert_dom_equal)operator(() string<DKR>)char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator([)ident(quack)operator(.)ident(new)operator(()string)delimiter(")>operator(,) string)delimiter(")>operator(\))operator(,) ident(quack)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\))operator(])operator(,) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() string<DKR>)char(\\n)content()delimiter(")>operator(,) ident(options_for_select)operator(()operator([)ident(quack)operator(.)ident(new)operator(()string)delimiter(")>operator(,) string)delimiter(")>operator(\))operator(,) ident(quack)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\))operator(])operator(,) operator([)stringoperator(,) string)delimiter(")>operator(])operator(\)) operator(\)) reserved(end) reserved(def) method(test_html_option_groups_from_collection) instance_variable(@continents) operator(=) operator([) constant(Continent)operator(.)ident(new)operator(()string)delimiter(")>operator(,) operator([)constant(Country)operator(.)ident(new)operator(()string)delimiter(")>operator(,) string)delimiter(")>operator(\))operator(,) constant(Country)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\))operator(]) operator(\))operator(,) constant(Continent)operator(.)ident(new)operator(()stringoperator(,) operator([)constant(Country)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\))operator(,) constant(Country)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\))operator(]) operator(\)) operator(]) ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(option_groups_from_collection_for_select)operator(()instance_variable(@continents)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_time_zone_options_no_parms) ident(opts) operator(=) ident(time_zone_options_for_select) ident(assert_dom_equal) stringA)char(\\n)delimiter(")> operator(+) stringB)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)char(\\n)delimiter(")> operator(+) stringE)delimiter(")>operator(,) ident(opts) reserved(end) reserved(def) method(test_time_zone_options_with_selected) ident(opts) operator(=) ident(time_zone_options_for_select)operator(() string operator(\)) ident(assert_dom_equal) stringA)char(\\n)delimiter(")> operator(+) stringB)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)char(\\n)delimiter(")> operator(+) stringE)delimiter(")>operator(,) ident(opts) reserved(end) reserved(def) method(test_time_zone_options_with_unknown_selected) ident(opts) operator(=) ident(time_zone_options_for_select)operator(() string operator(\)) ident(assert_dom_equal) stringA)char(\\n)delimiter(")> operator(+) stringB)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)char(\\n)delimiter(")> operator(+) stringE)delimiter(")>operator(,) ident(opts) reserved(end) reserved(def) method(test_time_zone_options_with_priority_zones) ident(zones) operator(=) operator([) constant(TimeZone)operator(.)ident(new)operator(() string operator(\))operator(,) constant(TimeZone)operator(.)ident(new)operator(() string operator(\)) operator(]) ident(opts) operator(=) ident(time_zone_options_for_select)operator(() pre_constant(nil)operator(,) ident(zones) operator(\)) ident(assert_dom_equal) stringB)char(\\n)delimiter(")> operator(+) stringE)delimiter(")> operator(+) string-------------)char(\\n)delimiter(")> operator(+) stringA)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)delimiter(")>operator(,) ident(opts) reserved(end) reserved(def) method(test_time_zone_options_with_selected_priority_zones) ident(zones) operator(=) operator([) constant(TimeZone)operator(.)ident(new)operator(() string operator(\))operator(,) constant(TimeZone)operator(.)ident(new)operator(() string operator(\)) operator(]) ident(opts) operator(=) ident(time_zone_options_for_select)operator(() stringoperator(,) ident(zones) operator(\)) ident(assert_dom_equal) stringB)char(\\n)delimiter(")> operator(+) stringE)delimiter(")> operator(+) string-------------)char(\\n)delimiter(")> operator(+) stringA)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)delimiter(")>operator(,) ident(opts) reserved(end) reserved(def) method(test_time_zone_options_with_unselected_priority_zones) ident(zones) operator(=) operator([) constant(TimeZone)operator(.)ident(new)operator(() string operator(\))operator(,) constant(TimeZone)operator(.)ident(new)operator(() string operator(\)) operator(]) ident(opts) operator(=) ident(time_zone_options_for_select)operator(() stringoperator(,) ident(zones) operator(\)) ident(assert_dom_equal) stringB)char(\\n)delimiter(")> operator(+) stringE)delimiter(")> operator(+) string-------------)char(\\n)delimiter(")> operator(+) stringA)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)delimiter(")>operator(,) ident(opts) reserved(end) reserved(def) method(test_select) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(category) operator(=) string)delimiter(")> ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(select)operator(()stringoperator(,) stringoperator(,) string hest)delimiter(\))>operator(\)) operator(\)) reserved(end) reserved(def) method(test_select_under_fields_for) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(category) operator(=) string)delimiter(")> ident(_erbout) operator(=) string ident(fields_for) symbol(:post)operator(,) instance_variable(@post) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(select)operator(()symbol(:category)operator(,) string hest)delimiter(\))>operator(\)) reserved(end) ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(_erbout) operator(\)) reserved(end) reserved(def) method(test_select_with_blank) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(category) operator(=) string)delimiter(")> ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(select)operator(()stringoperator(,) stringoperator(,) string hest)delimiter(\))>operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) operator(\)) reserved(end) reserved(def) method(test_select_with_default_prompt) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(category) operator(=) string ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(select)operator(()stringoperator(,) stringoperator(,) string hest)delimiter(\))>operator(,) symbol(:prompt) operator(=)operator(>) pre_constant(true)operator(\)) operator(\)) reserved(end) reserved(def) method(test_select_no_prompt_when_select_has_value) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(category) operator(=) string)delimiter(")> ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(select)operator(()stringoperator(,) stringoperator(,) string hest)delimiter(\))>operator(,) symbol(:prompt) operator(=)operator(>) pre_constant(true)operator(\)) operator(\)) reserved(end) reserved(def) method(test_select_with_given_prompt) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(category) operator(=) string ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(select)operator(()stringoperator(,) stringoperator(,) string hest)delimiter(\))>operator(,) symbol(:prompt) operator(=)operator(>) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_select_with_prompt_and_blank) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(category) operator(=) string ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(select)operator(()stringoperator(,) stringoperator(,) string hest)delimiter(\))>operator(,) symbol(:prompt) operator(=)operator(>) pre_constant(true)operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) operator(\)) reserved(end) reserved(def) method(test_select_with_selected_value) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(category) operator(=) string)delimiter(")> ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(select)operator(()stringoperator(,) stringoperator(,) string hest )delimiter(\))>operator(,) symbol(:selected) operator(=)operator(>) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_select_with_selected_nil) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(category) operator(=) string)delimiter(")> ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(select)operator(()stringoperator(,) stringoperator(,) string hest )delimiter(\))>operator(,) symbol(:selected) operator(=)operator(>) pre_constant(nil)operator(\)) operator(\)) reserved(end) reserved(def) method(test_collection_select) instance_variable(@posts) operator(=) operator([) constant(Post)operator(.)ident(new)operator(()string went home)delimiter(")>operator(,) string)delimiter(")>operator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(]) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(author_name) operator(=) string ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(collection_select)operator(()stringoperator(,) stringoperator(,) instance_variable(@posts)operator(,) stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_collection_select_under_fields_for) instance_variable(@posts) operator(=) operator([) constant(Post)operator(.)ident(new)operator(()string went home)delimiter(")>operator(,) string)delimiter(")>operator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(]) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(author_name) operator(=) string ident(_erbout) operator(=) string ident(fields_for) symbol(:post)operator(,) instance_variable(@post) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(collection_select)operator(()symbol(:author_name)operator(,) instance_variable(@posts)operator(,) symbol(:author_name)operator(,) symbol(:author_name)operator(\)) reserved(end) ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(_erbout) operator(\)) reserved(end) reserved(def) method(test_collection_select_with_blank_and_style) instance_variable(@posts) operator(=) operator([) constant(Post)operator(.)ident(new)operator(()string went home)delimiter(")>operator(,) string)delimiter(")>operator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(Post)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(]) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(author_name) operator(=) string ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()char(\\n)content()delimiter(")>operator(,) ident(collection_select)operator(()stringoperator(,) stringoperator(,) instance_variable(@posts)operator(,) stringoperator(,) stringoperator(,) operator({) symbol(:include_blank) operator(=)operator(>) pre_constant(true) operator(})operator(,) string operator(=)operator(>) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_country_select) instance_variable(@post) operator(=) constant(Post)operator(.)ident(new) instance_variable(@post)operator(.)ident(origin) operator(=) string ident(assert_dom_equal)operator(() string)char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)content()char(\\n)delimiter(")> operator(+) stringB)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)char(\\n)delimiter(")> operator(+) stringE)delimiter(")> operator(+) string)delimiter(")>operator(,) ident(html) reserved(end) reserved(def) method(test_time_zone_select_under_fields_for) instance_variable(@firm) operator(=) constant(Firm)operator(.)ident(new)operator(()stringoperator(\)) ident(_erbout) operator(=) string ident(fields_for) symbol(:firm)operator(,) instance_variable(@firm) reserved(do) operator(|)ident(f)operator(|) ident(_erbout)operator(.)ident(concat) ident(f)operator(.)ident(time_zone_select)operator(()symbol(:time_zone)operator(\)) reserved(end) ident(assert_dom_equal)operator(() string)delimiter(")> operator(+) stringA)char(\\n)delimiter(")> operator(+) stringB)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)char(\\n)delimiter(")> operator(+) stringE)delimiter(")> operator(+) string)delimiter(")>operator(,) ident(_erbout) operator(\)) reserved(end) reserved(def) method(test_time_zone_select_with_blank) instance_variable(@firm) operator(=) constant(Firm)operator(.)ident(new)operator(()stringoperator(\)) ident(html) operator(=) ident(time_zone_select)operator(()stringoperator(,) stringoperator(,) pre_constant(nil)operator(,) symbol(:include_blank) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_dom_equal) string)delimiter(")> operator(+) string)char(\\n)delimiter(")> operator(+) stringA)char(\\n)delimiter(")> operator(+) stringB)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)char(\\n)delimiter(")> operator(+) stringE)delimiter(")> operator(+) string)delimiter(")>operator(,) ident(html) reserved(end) reserved(def) method(test_time_zone_select_with_style) instance_variable(@firm) operator(=) constant(Firm)operator(.)ident(new)operator(()stringoperator(\)) ident(html) operator(=) ident(time_zone_select)operator(()stringoperator(,) stringoperator(,) pre_constant(nil)operator(,) operator({)operator(})operator(,) string operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) string)delimiter(")> operator(+) stringA)char(\\n)delimiter(")> operator(+) stringB)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)char(\\n)delimiter(")> operator(+) stringE)delimiter(")> operator(+) string)delimiter(")>operator(,) ident(html) ident(assert_dom_equal) ident(html)operator(,) ident(time_zone_select)operator(()stringoperator(,) stringoperator(,) pre_constant(nil)operator(,) operator({)operator(})operator(,) symbol(:style) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_time_zone_select_with_blank_and_style) instance_variable(@firm) operator(=) constant(Firm)operator(.)ident(new)operator(()stringoperator(\)) ident(html) operator(=) ident(time_zone_select)operator(()stringoperator(,) stringoperator(,) pre_constant(nil)operator(,) operator({) symbol(:include_blank) operator(=)operator(>) pre_constant(true) operator(})operator(,) string operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) string)delimiter(")> operator(+) string)char(\\n)delimiter(")> operator(+) stringA)char(\\n)delimiter(")> operator(+) stringB)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringD)char(\\n)delimiter(")> operator(+) stringE)delimiter(")> operator(+) string)delimiter(")>operator(,) ident(html) ident(assert_dom_equal) ident(html)operator(,) ident(time_zone_select)operator(()stringoperator(,) stringoperator(,) pre_constant(nil)operator(,) operator({) symbol(:include_blank) operator(=)operator(>) pre_constant(true) operator(})operator(,) symbol(:style) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_time_zone_select_with_priority_zones) instance_variable(@firm) operator(=) constant(Firm)operator(.)ident(new)operator(()stringoperator(\)) ident(zones) operator(=) operator([) constant(TimeZone)operator(.)ident(new)operator(()stringoperator(\))operator(,) constant(TimeZone)operator(.)ident(new)operator(()stringoperator(\)) operator(]) ident(html) operator(=) ident(time_zone_select)operator(()stringoperator(,) stringoperator(,) ident(zones) operator(\)) ident(assert_dom_equal) string)delimiter(")> operator(+) stringA)char(\\n)delimiter(")> operator(+) stringD)delimiter(")> operator(+) string-------------)char(\\n)delimiter(")> operator(+) stringB)char(\\n)delimiter(")> operator(+) stringC)char(\\n)delimiter(")> operator(+) stringE)delimiter(")> operator(+) string)delimiter(")>operator(,) ident(html) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(FormTagHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormTagHelper) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) string reserved(end) reserved(end) instance_variable(@controller) operator(=) instance_variable(@controller)operator(.)ident(new) reserved(end) reserved(def) method(test_check_box_tag) ident(actual) operator(=) ident(check_box_tag) string ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_form_tag) ident(actual) operator(=) ident(form_tag) ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_form_tag_multipart) ident(actual) operator(=) ident(form_tag)operator(()operator({)operator(})operator(,) operator({) string operator(=)operator(>) pre_constant(true) operator(})operator(\)) ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_hidden_field_tag) ident(actual) operator(=) ident(hidden_field_tag) stringoperator(,) integer(3) ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_password_field_tag) ident(actual) operator(=) ident(password_field_tag) ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_radio_button_tag) ident(actual) operator(=) ident(radio_button_tag) stringoperator(,) string ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_select_tag) ident(actual) operator(=) ident(select_tag) stringoperator(,) stringdavid)delimiter(")> ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_text_area_tag_size_string) ident(actual) operator(=) ident(text_area_tag) stringoperator(,) stringoperator(,) string operator(=)operator(>) string ident(expected) operator(=) stringhello world)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_text_area_tag_size_symbol) ident(actual) operator(=) ident(text_area_tag) stringoperator(,) stringoperator(,) symbol(:size) operator(=)operator(>) string ident(expected) operator(=) stringhello world)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_text_field_tag) ident(actual) operator(=) ident(text_field_tag) stringoperator(,) string ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_text_field_tag_class_string) ident(actual) operator(=) ident(text_field_tag) stringoperator(,) stringoperator(,) string operator(=)operator(>) string ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_boolean_optios) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(check_box_tag)operator(()stringoperator(,) integer(1)operator(,) pre_constant(true)operator(,) string operator(=)operator(>) pre_constant(true)operator(,) symbol(:readonly) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(check_box_tag)operator(()stringoperator(,) integer(1)operator(,) pre_constant(true)operator(,) symbol(:disabled) operator(=)operator(>) pre_constant(false)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(nil)operator(\)) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(select_tag)operator(()stringoperator(,) stringdavid)delimiter(")>operator(,) symbol(:multiple) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(select_tag)operator(()stringoperator(,) stringdavid)delimiter(")>operator(,) symbol(:multiple) operator(=)operator(>) pre_constant(nil)operator(\)) reserved(end) reserved(def) method(test_stringify_symbol_keys) ident(actual) operator(=) ident(text_field_tag) stringoperator(,) stringoperator(,) symbol(:id) operator(=)operator(>) string ident(expected) operator(=) string)delimiter(\))> ident(assert_dom_equal) ident(expected)operator(,) ident(actual) reserved(end) reserved(def) method(test_submit_tag) ident(assert_dom_equal)operator(() string)delimiter(\))>operator(,) ident(submit_tag)operator(()stringoperator(,) symbol(:disable_with) operator(=)operator(>) stringoperator(,) symbol(:onclick) operator(=)operator(>) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_pass) ident(assert_equal) integer(1)operator(,) integer(1) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(JavaScriptMacrosHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(JavaScriptHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(JavaScriptMacrosHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TextHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(CaptureHelper) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) ident(url) operator(=) string ident(url) operator(<<) ident(options)operator([)symbol(:action)operator(])operator(.)ident(to_s) reserved(if) ident(options) reserved(and) ident(options)operator([)symbol(:action)operator(]) ident(url) reserved(end) reserved(end) instance_variable(@controller) operator(=) instance_variable(@controller)operator(.)ident(new) reserved(end) reserved(def) method(test_auto_complete_field) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(auto_complete_field)operator(()stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\))operator(;) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(auto_complete_field)operator(()stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(,) symbol(:tokens) operator(=)operator(>) stringoperator(\))operator(;) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(auto_complete_field)operator(()stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(,) symbol(:tokens) operator(=)operator(>) operator([)stringoperator(])operator(\))operator(;) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(auto_complete_field)operator(()stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(,) symbol(:min_chars) operator(=)operator(>) integer(3)operator(\))operator(;) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(auto_complete_field)operator(()stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(,) symbol(:on_hide) operator(=)operator(>) stringoperator(\))operator(;) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(auto_complete_field)operator(()stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(,) symbol(:frequency) operator(=)operator(>) integer(2)operator(\))operator(;) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(auto_complete_field)operator(()stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(,) symbol(:after_update_element) operator(=)operator(>) stringoperator(\))operator(;) reserved(end) reserved(def) method(test_auto_complete_result) ident(result) operator(=) operator([) operator({) symbol(:title) operator(=)operator(>) string operator(})operator(,) operator({) symbol(:title) operator(=)operator(>) string operator(}) operator(]) ident(assert_equal) string
  • test1
  • test2
)delimiter(\))>operator(,) ident(auto_complete_result)operator(()ident(result)operator(,) symbol(:title)operator(\)) ident(assert_equal) string
  • test1
  • test2
  • )delimiter(\))>operator(,) ident(auto_complete_result)operator(()ident(result)operator(,) symbol(:title)operator(,) stringoperator(\)) ident(resultuniq) operator(=) operator([) operator({) symbol(:title) operator(=)operator(>) string operator(})operator(,) operator({) symbol(:title) operator(=)operator(>) string operator(}) operator(]) ident(assert_equal) string
  • test1
  • )delimiter(\))>operator(,) ident(auto_complete_result)operator(()ident(resultuniq)operator(,) symbol(:title)operator(,) stringoperator(\)) reserved(end) reserved(def) method(test_text_field_with_auto_complete) ident(assert_match) string)delimiter(")>operator(,) ident(text_field_with_auto_complete)operator(()symbol(:message)operator(,) symbol(:recipient)operator(\)) ident(assert_dom_equal) string
    )delimiter(\))>operator(,) ident(text_field_with_auto_complete)operator(()symbol(:message)operator(,) symbol(:recipient)operator(,) operator({)operator(})operator(,) symbol(:skip_style) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_in_place_editor_external_control) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(in_place_editor)operator(()stringoperator(,) operator({)symbol(:url) operator(=)operator(>) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) symbol(:external_control) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(def) method(test_in_place_editor_size) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(in_place_editor)operator(()stringoperator(,) operator({)symbol(:url) operator(=)operator(>) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) symbol(:size) operator(=)operator(>) integer(4)operator(})operator(\)) reserved(end) reserved(def) method(test_in_place_editor_cols_no_rows) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(in_place_editor)operator(()stringoperator(,) operator({)symbol(:url) operator(=)operator(>) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) symbol(:cols) operator(=)operator(>) integer(4)operator(})operator(\)) reserved(end) reserved(def) method(test_in_place_editor_cols_with_rows) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(in_place_editor)operator(()stringoperator(,) operator({)symbol(:url) operator(=)operator(>) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) symbol(:rows) operator(=)operator(>) integer(5)operator(,) symbol(:cols) operator(=)operator(>) integer(40)operator(})operator(\)) reserved(end) reserved(def) method(test_inplace_editor_loading_text) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(in_place_editor)operator(()stringoperator(,) operator({)symbol(:url) operator(=)operator(>) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) symbol(:loading_text) operator(=)operator(>) stringoperator(})operator(\)) reserved(end) reserved(def) method(test_in_place_editor_url) ident(assert_match) stringoperator(,) ident(in_place_editor)operator(() stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(test_in_place_editor_load_text_url) ident(assert_match) stringoperator(,) ident(in_place_editor)operator(() stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(,) symbol(:load_text_url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(test_in_place_editor_eval_scripts) ident(assert_match) stringoperator(,) ident(in_place_editor)operator(() stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(,) symbol(:script) operator(=)operator(>) pre_constant(true) operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(JavaScriptHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(JavaScriptHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TextHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(CaptureHelper) reserved(def) method(test_define_javascript_functions) comment(# check if prototype.js is included first) ident(assert_not_nil) ident(define_javascript_functions)operator(.)ident(split)operator(()stringoperator(\))operator([)integer(1)operator(])operator(.)ident(match)operator(()regexpoperator(\)) comment(# check that scriptaculous.js is not in here, only needed if loaded remotely) ident(assert_nil) ident(define_javascript_functions)operator(.)ident(split)operator(()stringoperator(\))operator([)integer(1)operator(])operator(.)ident(match)operator(()regexpoperator(\)) reserved(end) reserved(def) method(test_escape_javascript) ident(assert_equal) stringoperator(,) ident(escape_javascript)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_link_to_function) ident(assert_dom_equal) stringGreeting)delimiter(\))>operator(,) ident(link_to_function)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_link_to_function_with_existing_onclick) ident(assert_dom_equal) stringGreeting)delimiter(\))>operator(,) ident(link_to_function)operator(()stringoperator(,) stringoperator(,) symbol(:onclick) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_button_to_function) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(button_to_function)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string comment(# for stringify_keys) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string comment(# for human_size) reserved(class) class(NumberHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(NumberHelper) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Hash) reserved(def) method(test_number_to_phone) ident(assert_equal)operator(()stringoperator(,) ident(number_to_phone)operator(()integer(1235551234)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_phone)operator(()integer(1235551234)operator(,) operator({)symbol(:area_code) operator(=)operator(>) pre_constant(true)operator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_phone)operator(()integer(1235551234)operator(,) operator({)symbol(:delimiter) operator(=)operator(>) stringoperator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_phone)operator(()integer(1235551234)operator(,) operator({)symbol(:area_code) operator(=)operator(>) pre_constant(true)operator(,) symbol(:extension) operator(=)operator(>) integer(555)operator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_phone)operator(()integer(1235551234)operator(,) symbol(:extension) operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_number_to_currency) ident(assert_equal)operator(()stringoperator(,) ident(number_to_currency)operator(()float(1234567890.50)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_currency)operator(()float(1234567890.506)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_currency)operator(()float(1234567890.50)operator(,) operator({)symbol(:precision) operator(=)operator(>) integer(0)operator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_currency)operator(()float(1234567890.50)operator(,) operator({)symbol(:precision) operator(=)operator(>) integer(1)operator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_currency)operator(()float(1234567890.50)operator(,) operator({)symbol(:unit) operator(=)operator(>) stringoperator(,) symbol(:separator) operator(=)operator(>) stringoperator(,) symbol(:delimiter) operator(=)operator(>) stringoperator(})operator(\))operator(\)) reserved(end) reserved(def) method(test_number_to_percentage) ident(assert_equal)operator(()stringoperator(,) ident(number_to_percentage)operator(()integer(100)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_percentage)operator(()integer(100)operator(,) operator({)symbol(:precision) operator(=)operator(>) integer(0)operator(})operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(number_to_percentage)operator(()float(302.0574)operator(,) operator({)symbol(:precision) operator(=)operator(>) integer(2)operator(})operator(\))operator(\)) reserved(end) reserved(def) method(test_number_with_delimiter) ident(assert_equal)operator(()stringoperator(,) ident(number_with_delimiter)operator(()integer(12345678)operator(\))operator(\)) reserved(end) reserved(def) method(test_number_to_human_size) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(0)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()float(3.14159265)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()float(123.0)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(123)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(1234)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(12345)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(1234567)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(1234567890)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(1234567890123)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(444)operator(.)ident(kilobytes)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(1023)operator(.)ident(megabytes)operator(\)) ident(assert_equal) stringoperator(,) ident(human_size)operator(()integer(3)operator(.)ident(terabytes)operator(\)) ident(assert_nil) ident(human_size)operator(()stringoperator(\)) ident(assert_nil) ident(human_size)operator(()pre_constant(nil)operator(\)) reserved(end) reserved(def) method(test_number_with_precision) ident(assert_equal)operator(()stringoperator(,) ident(number_with_precision)operator(()float(111.2346)operator(\))operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(BaseTest) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(JavaScriptHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(PrototypeHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(ScriptaculousHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TextHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(CaptureHelper) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) ident(url) operator(=) string ident(url) operator(<<) ident(options)operator([)symbol(:action)operator(])operator(.)ident(to_s) reserved(if) ident(options) reserved(and) ident(options)operator([)symbol(:action)operator(]) ident(url) operator(<<) stringdelimiter(")> reserved(if) ident(options) operator(&&) ident(options)operator([)symbol(:a)operator(]) ident(url) operator(<<) stringdelimiter(")> reserved(if) ident(options) operator(&&) ident(options)operator([)symbol(:a)operator(]) operator(&&) ident(options)operator([)symbol(:b)operator(]) ident(url) reserved(end) reserved(end)operator(.)ident(new) reserved(end) ident(protected) reserved(def) method(create_generator) ident(block) operator(=) constant(Proc)operator(.)ident(new) operator({) operator(|*)ident(args)operator(|) reserved(yield) operator(*)ident(args) reserved(if) ident(block_given?) operator(}) constant(JavaScriptGenerator)operator(.)ident(new) pre_constant(self)operator(,) operator(&)ident(block) reserved(end) reserved(end) reserved(class) class(PrototypeHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(BaseTest) reserved(def) method(test_link_to_remote) ident(assert_dom_equal) stringRemote outpost)delimiter(\))>operator(,) ident(link_to_remote)operator(()stringoperator(,) operator({) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(})operator(,) operator({) symbol(:class) operator(=)operator(>) string operator(})operator(\)) ident(assert_dom_equal) stringRemote outpost)delimiter(\))>operator(,) ident(link_to_remote)operator(()stringoperator(,) symbol(:complete) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) ident(assert_dom_equal) stringRemote outpost)delimiter(\))>operator(,) ident(link_to_remote)operator(()stringoperator(,) symbol(:success) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) ident(assert_dom_equal) stringRemote outpost)delimiter(\))>operator(,) ident(link_to_remote)operator(()stringoperator(,) symbol(:failure) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) ident(assert_dom_equal) stringRemote outpost)delimiter(\))>operator(,) ident(link_to_remote)operator(()stringoperator(,) symbol(:failure) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:a) operator(=)operator(>) stringoperator(,) symbol(:b) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(test_periodically_call_remote) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(periodically_call_remote)operator(()symbol(:update) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(test_form_remote_tag) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(\)) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) operator({) symbol(:success) operator(=)operator(>) string operator(})operator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(\)) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) operator({) symbol(:failure) operator(=)operator(>) string operator(})operator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(\)) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) operator({) symbol(:success) operator(=)operator(>) stringoperator(,) symbol(:failure) operator(=)operator(>) string operator(})operator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(\)) reserved(end) reserved(def) method(test_on_callbacks) ident(callbacks) operator(=) operator([)symbol(:uninitialized)operator(,) symbol(:loading)operator(,) symbol(:loaded)operator(,) symbol(:interactive)operator(,) symbol(:complete)operator(,) symbol(:success)operator(,) symbol(:failure)operator(]) ident(callbacks)operator(.)ident(each) reserved(do) operator(|)ident(callback)operator(|) ident(assert_dom_equal) stringcontent(:function)nesting_delimiter(()content(request)nesting_delimiter(\))content({monkeys)nesting_delimiter(()nesting_delimiter(\))content(;}, parameters:Form.serialize)nesting_delimiter(()content(this)nesting_delimiter(\))content(})nesting_delimiter(\))content(; return false;">)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(,) ident(callback)operator(=)operator(>)stringoperator(\)) ident(assert_dom_equal) stringcontent(:function)nesting_delimiter(()content(request)nesting_delimiter(\))content({monkeys)nesting_delimiter(()nesting_delimiter(\))content(;}, parameters:Form.serialize)nesting_delimiter(()content(this)nesting_delimiter(\))content(})nesting_delimiter(\))content(; return false;">)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) operator({) symbol(:success) operator(=)operator(>) string operator(})operator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(,) ident(callback)operator(=)operator(>)stringoperator(\)) ident(assert_dom_equal) stringcontent(:function)nesting_delimiter(()content(request)nesting_delimiter(\))content({monkeys)nesting_delimiter(()nesting_delimiter(\))content(;}, parameters:Form.serialize)nesting_delimiter(()content(this)nesting_delimiter(\))content(})nesting_delimiter(\))content(; return false;">)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) operator({) symbol(:failure) operator(=)operator(>) string operator(})operator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(,) ident(callback)operator(=)operator(>)stringoperator(\)) ident(assert_dom_equal) stringcontent(:function)nesting_delimiter(()content(request)nesting_delimiter(\))content({monkeys)nesting_delimiter(()nesting_delimiter(\))content(;}, parameters:Form.serialize)nesting_delimiter(()content(this)nesting_delimiter(\))content(})nesting_delimiter(\))content(; return false;">)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) operator({) symbol(:success) operator(=)operator(>) stringoperator(,) symbol(:failure) operator(=)operator(>) string operator(})operator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(,) ident(callback)operator(=)operator(>)stringoperator(\)) reserved(end) comment(#HTTP status codes 200 up to 599 have callbacks) comment(#these should work) integer(100)operator(.)ident(upto)operator(()integer(599)operator(\)) reserved(do) operator(|)ident(callback)operator(|) ident(assert_dom_equal) stringcontent(:function)nesting_delimiter(()content(request)nesting_delimiter(\))content({monkeys)nesting_delimiter(()nesting_delimiter(\))content(;}, parameters:Form.serialize)nesting_delimiter(()content(this)nesting_delimiter(\))content(})nesting_delimiter(\))content(; return false;">)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(,) ident(callback)operator(=)operator(>)stringoperator(\)) reserved(end) comment(#test 200 and 404) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(,) integer(200)operator(=)operator(>)stringoperator(,) integer(404)operator(=)operator(>)stringoperator(\)) comment(#these shouldn't) integer(1)operator(.)ident(upto)operator(()integer(99)operator(\)) reserved(do) operator(|)ident(callback)operator(|) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(,) ident(callback)operator(=)operator(>)stringoperator(\)) reserved(end) integer(600)operator(.)ident(upto)operator(()integer(999)operator(\)) reserved(do) operator(|)ident(callback)operator(|) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(,) ident(callback)operator(=)operator(>)stringoperator(\)) reserved(end) comment(#test ultimate combo) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(form_remote_tag)operator(()symbol(:update) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) symbol(:fast) operator(})operator(,) symbol(:loading) operator(=)operator(>) stringoperator(,) symbol(:success) operator(=)operator(>) stringoperator(,) symbol(:failure) operator(=)operator(>) stringoperator(,) symbol(:complete) operator(=)operator(>) stringoperator(,) integer(200)operator(=)operator(>)stringoperator(,) integer(404)operator(=)operator(>)stringoperator(\)) reserved(end) reserved(def) method(test_submit_to_remote) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(submit_to_remote)operator(()stringoperator(,) integer(1_000_000)operator(,) symbol(:update) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_observe_field) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(observe_field)operator(()stringoperator(,) symbol(:frequency) operator(=)operator(>) integer(5)operator(.)ident(minutes)operator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(test_observe_field_using_function_for_callback) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(observe_field)operator(()stringoperator(,) symbol(:frequency) operator(=)operator(>) integer(5)operator(.)ident(minutes)operator(,) symbol(:function) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_observe_form) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(observe_form)operator(()stringoperator(,) symbol(:frequency) operator(=)operator(>) integer(2)operator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(test_observe_form_using_function_for_callback) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(observe_form)operator(()stringoperator(,) symbol(:frequency) operator(=)operator(>) integer(2)operator(,) symbol(:function) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_update_element_function) ident(assert_equal) stringoperator(,) ident(update_element_function)operator(()stringoperator(,) symbol(:content) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(update_element_function)operator(()stringoperator(,) symbol(:action) operator(=)operator(>) symbol(:update)operator(,) symbol(:content) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(update_element_function)operator(()stringoperator(,) symbol(:action) operator(=)operator(>) symbol(:empty)operator(\)) ident(assert_equal) stringoperator(,) ident(update_element_function)operator(()stringoperator(,) symbol(:action) operator(=)operator(>) symbol(:remove)operator(\)) ident(assert_equal) stringoperator(,) ident(update_element_function)operator(()stringoperator(,) symbol(:position) operator(=)operator(>) stringoperator(,) symbol(:content) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(update_element_function)operator(()stringoperator(,) symbol(:action) operator(=)operator(>) symbol(:update)operator(,) symbol(:position) operator(=)operator(>) symbol(:bottom)operator(,) symbol(:content) operator(=)operator(>) stringoperator(\)) ident(_erbout) operator(=) string ident(assert_equal) stringoperator(,) ident(update_element_function)operator(()stringoperator(\)) operator({) ident(_erbout) operator(<<) string operator(}) ident(_erbout) operator(=) string ident(assert_equal) stringoperator(,) ident(update_element_function)operator(()stringoperator(,) symbol(:content) operator(=)operator(>) stringoperator(\)) operator({) ident(_erbout) operator(<<) string operator(}) reserved(end) reserved(def) method(test_update_page) ident(block) operator(=) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(page)operator(|) ident(page)operator(.)ident(replace_html)operator(()stringoperator(,) stringoperator(\)) operator(}) ident(assert_equal) ident(create_generator)operator(()operator(&)ident(block)operator(\))operator(.)ident(to_s)operator(,) ident(update_page)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(test_update_page_tag) ident(block) operator(=) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(page)operator(|) ident(page)operator(.)ident(replace_html)operator(()stringoperator(,) stringoperator(\)) operator(}) ident(assert_equal) ident(javascript_tag)operator(()ident(create_generator)operator(()operator(&)ident(block)operator(\))operator(.)ident(to_s)operator(\))operator(,) ident(update_page_tag)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(class) class(JavaScriptGeneratorTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(BaseTest) reserved(def) method(setup) reserved(super) instance_variable(@generator) operator(=) ident(create_generator) reserved(end) reserved(def) method(test_insert_html_with_string) ident(assert_equal) stringThis is a test

    "\);)delimiter(')>operator(,) instance_variable(@generator)operator(.)ident(insert_html)operator(()symbol(:top)operator(,) stringoperator(,) stringThis is a test

    )delimiter(')>operator(\)) ident(assert_equal) stringThis is a test

    "\);)delimiter(')>operator(,) instance_variable(@generator)operator(.)ident(insert_html)operator(()symbol(:bottom)operator(,) stringoperator(,) stringThis is a test

    )delimiter(')>operator(\)) ident(assert_equal) stringThis is a test

    "\);)delimiter(')>operator(,) instance_variable(@generator)operator(.)ident(insert_html)operator(()symbol(:before)operator(,) stringoperator(,) stringThis is a test

    )delimiter(')>operator(\)) ident(assert_equal) stringThis is a test

    "\);)delimiter(')>operator(,) instance_variable(@generator)operator(.)ident(insert_html)operator(()symbol(:after)operator(,) stringoperator(,) stringThis is a test

    )delimiter(')>operator(\)) reserved(end) reserved(def) method(test_replace_html_with_string) ident(assert_equal) stringThis is a test

    "\);)delimiter(')>operator(,) instance_variable(@generator)operator(.)ident(replace_html)operator(()stringoperator(,) stringThis is a test

    )delimiter(')>operator(\)) reserved(end) reserved(def) method(test_replace_element_with_string) ident(assert_equal) string

    This is a test

    "\);)delimiter(')>operator(,) instance_variable(@generator)operator(.)ident(replace)operator(()stringoperator(,) string

    This is a test

    )delimiter(')>operator(\)) reserved(end) reserved(def) method(test_remove) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(remove)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(remove)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_show) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(show)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(show)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_hide) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(hide)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(hide)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_alert) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(alert)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_redirect_to) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(redirect_to)operator(()symbol(:action) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_delay) instance_variable(@generator)operator(.)ident(delay)operator(()integer(20)operator(\)) reserved(do) instance_variable(@generator)operator(.)ident(hide)operator(()stringoperator(\)) reserved(end) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(to_s) reserved(end) reserved(def) method(test_to_s) instance_variable(@generator)operator(.)ident(insert_html)operator(()symbol(:top)operator(,) stringoperator(,) stringThis is a test

    )delimiter(')>operator(\)) instance_variable(@generator)operator(.)ident(insert_html)operator(()symbol(:bottom)operator(,) stringoperator(,) stringThis is a test

    )delimiter(')>operator(\)) instance_variable(@generator)operator(.)ident(remove)operator(()stringoperator(,) stringoperator(\)) instance_variable(@generator)operator(.)ident(replace_html)operator(()stringoperator(,) stringThis is a test

    )delimiter(')>operator(\)) ident(assert_equal) stringoperator(.)ident(chomp)operator(,) instance_variable(@generator)operator(.)ident(to_s)stringThis is a test

    "\); new Insertion.Bottom("element", "

    This is a test

    "\); ["foo", "bar"].each(Element.remove\); Element.update("baz", "

    This is a test

    "\);)delimiter( EOS)> reserved(end) reserved(def) method(test_element_access) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator([)stringoperator(]) reserved(end) reserved(def) method(test_element_proxy_one_deep) instance_variable(@generator)operator([)stringoperator(])operator(.)ident(hide) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(to_s) reserved(end) reserved(def) method(test_element_proxy_assignment) instance_variable(@generator)operator([)stringoperator(])operator(.)ident(width) operator(=) integer(400) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(to_s) reserved(end) reserved(def) method(test_element_proxy_two_deep) instance_variable(@generator)operator([)stringoperator(])operator(.)ident(hide)operator(()stringoperator(\))operator(.)ident(clean_whitespace) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(to_s) reserved(end) reserved(def) method(test_select_access) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_select_proxy_one_deep) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(first)operator(.)ident(hide) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(to_s) reserved(end) reserved(def) method(test_visual_effect) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(visual_effect)operator(()symbol(:puff)operator(,)stringoperator(\)) reserved(end) reserved(def) method(test_visual_effect_toggle) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(visual_effect)operator(()symbol(:toggle_appear)operator(,)stringoperator(\)) reserved(end) reserved(def) method(test_sortable) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(sortable)operator(()stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(test_draggable) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(draggable)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_drop_receiving) ident(assert_equal) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(test_collection_first_and_last) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(first)operator(.)ident(hide)operator(()operator(\)) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(last)operator(.)ident(show)operator(()operator(\)) ident(assert_equal) stringoperator(.)ident(strip)operator(,) instance_variable(@generator)operator(.)ident(to_s)string reserved(end) reserved(def) method(test_collection_proxy_with_each) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(value)operator(|) ident(value)operator(.)ident(remove_class_name) string reserved(end) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(value)operator(,) ident(index)operator(|) instance_variable(@generator)operator(.)ident(visual_effect) symbol(:highlight)operator(,) ident(value) reserved(end) ident(assert_equal) stringoperator(.)ident(strip)operator(,) instance_variable(@generator)operator(.)ident(to_s)string reserved(end) reserved(def) method(test_collection_proxy_on_collect) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(collect)operator(()stringoperator(\)) operator({) operator(|)ident(para)operator(|) ident(para)operator(.)ident(show) operator(}) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(collect) operator({) operator(|)ident(para)operator(|) ident(para)operator(.)ident(hide) operator(}) ident(assert_equal) stringoperator(.)ident(strip)operator(,) instance_variable(@generator)operator(.)ident(to_s)string instance_variable(@generator) operator(=) ident(create_generator) reserved(end) reserved(def) method(test_collection_proxy_with_grep) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(grep) stringoperator(,) regexp reserved(do) operator(|)ident(value)operator(|) instance_variable(@generator) operator(<<) string reserved(end) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(grep) stringoperator(,) regexp reserved(do) operator(|)ident(value)operator(,) ident(index)operator(|) instance_variable(@generator)operator(.)ident(call) stringoperator(,) ident(value) instance_variable(@generator) operator(<<) string reserved(end) ident(assert_equal) stringoperator(.)ident(strip)operator(,) instance_variable(@generator)operator(.)ident(to_s)string reserved(end) reserved(def) method(test_collection_proxy_with_inject) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(inject) stringoperator(,) operator([)operator(]) reserved(do) operator(|)ident(memo)operator(,) ident(value)operator(|) instance_variable(@generator) operator(<<) string reserved(end) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(inject) stringoperator(,) pre_constant(nil) reserved(do) operator(|)ident(memo)operator(,) ident(value)operator(,) ident(index)operator(|) instance_variable(@generator)operator(.)ident(call) stringoperator(,) ident(memo) instance_variable(@generator) operator(<<) string reserved(end) ident(assert_equal) stringoperator(.)ident(strip)operator(,) instance_variable(@generator)operator(.)ident(to_s)string reserved(end) reserved(def) method(test_collection_proxy_with_pluck) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(pluck)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(to_s) reserved(end) reserved(def) method(test_collection_proxy_with_zip) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(JavaScriptCollectionProxy)operator(.)ident(new)operator(()instance_variable(@generator)operator(,) stringoperator(\))operator(.)ident(zip)operator(()stringoperator(,) operator([)integer(4)operator(,) integer(5)operator(,) integer(6)operator(])operator(,) operator([)integer(7)operator(,) integer(8)operator(,) integer(9)operator(])operator(\)) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(JavaScriptCollectionProxy)operator(.)ident(new)operator(()instance_variable(@generator)operator(,) stringoperator(\))operator(.)ident(zip)operator(()stringoperator(,) operator([)integer(4)operator(,) integer(5)operator(,) integer(6)operator(])operator(,) operator([)integer(7)operator(,) integer(8)operator(,) integer(9)operator(])operator(\)) reserved(do) operator(|)ident(array)operator(|) instance_variable(@generator)operator(.)ident(call) string reserved(end) ident(assert_equal) stringoperator(.)ident(strip)operator(,) instance_variable(@generator)operator(.)ident(to_s)string reserved(end) reserved(def) method(test_collection_proxy_with_find_all) instance_variable(@generator)operator(.)ident(select)operator(()stringoperator(\))operator(.)ident(find_all) string reserved(do) operator(|)ident(value)operator(,) ident(index)operator(|) instance_variable(@generator) operator(<<) string reserved(end) ident(assert_equal) stringoperator(.)ident(strip)operator(,) instance_variable(@generator)operator(.)ident(to_s)string reserved(end) reserved(def) method(test_debug_rjs) constant(ActionView)operator(::)constant(Base)operator(.)ident(debug_rjs) operator(=) pre_constant(true) instance_variable(@generator)operator([)stringoperator(])operator(.)ident(replace_html) string ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(to_s) reserved(ensure) constant(ActionView)operator(::)constant(Base)operator(.)ident(debug_rjs) operator(=) pre_constant(false) reserved(end) reserved(def) method(test_class_proxy) instance_variable(@generator)operator(.)ident(form)operator(.)ident(focus)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) instance_variable(@generator)operator(.)ident(to_s) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(ScriptaculousHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(JavaScriptHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(PrototypeHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(ScriptaculousHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TextHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(FormHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(CaptureHelper) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(Class)operator(.)ident(new) reserved(do) reserved(def) method(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) ident(url) operator(=) string ident(url) operator(<<) ident(options)operator([)symbol(:action)operator(])operator(.)ident(to_s) reserved(if) ident(options) reserved(and) ident(options)operator([)symbol(:action)operator(]) ident(url) reserved(end) reserved(end)operator(.)ident(new) reserved(end) reserved(def) method(test_effect) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()symbol(:highlight)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()stringoperator(,) symbol(:posts)operator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()symbol(:highlight)operator(,) symbol(:posts)operator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()symbol(:fade)operator(,) stringoperator(,) symbol(:duration) operator(=)operator(>) float(4.0)operator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()symbol(:shake)operator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()symbol(:drop_out)operator(,) stringoperator(,) symbol(:queue) operator(=)operator(>) symbol(:end)operator(\)) comment(# chop the queue params into a comma separated list) ident(beginning)operator(,) ident(ending) operator(=) stringoperator(,) string ident(ve) operator(=) operator([) ident(visual_effect)operator(()symbol(:drop_out)operator(,) stringoperator(,) symbol(:queue) operator(=)operator(>) operator({)symbol(:position) operator(=)operator(>) stringoperator(,) symbol(:scope) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(})operator(\))operator(,) ident(visual_effect)operator(()symbol(:drop_out)operator(,) stringoperator(,) symbol(:queue) operator(=)operator(>) operator({)symbol(:scope) operator(=)operator(>) symbol(:list)operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(})operator(\))operator(,) ident(visual_effect)operator(()symbol(:drop_out)operator(,) stringoperator(,) symbol(:queue) operator(=)operator(>) operator({)symbol(:position) operator(=)operator(>) symbol(:end)operator(,) symbol(:scope) operator(=)operator(>) symbol(:test)operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(})operator(\)) operator(])operator(.)ident(collect) operator({) operator(|)ident(v)operator(|) ident(v)operator([)ident(beginning)operator(.)ident(length)operator(..)operator(-)ident(ending)operator(.)ident(length)operator(-)integer(1)operator(])operator(.)ident(split)operator(()stringoperator(\)) operator(}) ident(assert) ident(ve)operator([)integer(0)operator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(ve)operator([)integer(0)operator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(ve)operator([)integer(0)operator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(ve)operator([)integer(1)operator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(ve)operator([)integer(1)operator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(ve)operator([)integer(2)operator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(ve)operator([)integer(2)operator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(ve)operator([)integer(2)operator(])operator(.)ident(include?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_toggle_effects) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()symbol(:toggle_appear)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()symbol(:toggle_slide)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()symbol(:toggle_blind)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(visual_effect)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_sortable_element) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(sortable_element)operator(()stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) ident(assert_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(sortable_element)operator(()stringoperator(,) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:constraint) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(|)>operator(,) ident(sortable_element)operator(()stringoperator(,) symbol(:containment) operator(=)operator(>) operator([)stringoperator(,)stringoperator(])operator(,) symbol(:constraint) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(sortable_element)operator(()stringoperator(,) symbol(:containment) operator(=)operator(>) stringoperator(,) symbol(:constraint) operator(=)operator(>) stringoperator(,) symbol(:url) operator(=)operator(>) operator({) symbol(:action) operator(=)operator(>) string operator(})operator(\)) reserved(end) reserved(def) method(test_draggable_element) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(draggable_element)operator(()stringoperator(\)) ident(assert_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(draggable_element)operator(()stringoperator(,) symbol(:revert) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_drop_receiving_element) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(drop_receiving_element)operator(()stringoperator(\)) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(drop_receiving_element)operator(()stringoperator(,) symbol(:accept) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(drop_receiving_element)operator(()stringoperator(,) symbol(:accept) operator(=)operator(>) stringoperator(,) symbol(:update) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) string)char(\\n)content(//)char(\\n)content()delimiter(\))>operator(,) ident(drop_receiving_element)operator(()stringoperator(,) symbol(:accept) operator(=)operator(>) operator([)stringoperator(,)stringoperator(])operator(,) symbol(:update) operator(=)operator(>) stringoperator(\)) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(TagHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) reserved(def) method(test_tag) ident(assert_equal) string)delimiter(")>operator(,) ident(tag)operator(()stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(tag)operator(()stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(,) ident(tag)operator(()stringoperator(,) symbol(:class) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_tag_options) ident(assert_equal) string)delimiter(")>operator(,) ident(tag)operator(()stringoperator(,) string operator(=)operator(>) stringoperator(,) symbol(:class) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_tag_options_rejects_nil_option) ident(assert_equal) string)delimiter(")>operator(,) ident(tag)operator(()stringoperator(,) symbol(:ignored) operator(=)operator(>) pre_constant(nil)operator(\)) reserved(end) reserved(def) method(test_tag_options_accepts_blank_option) ident(assert_equal) string)delimiter(")>operator(,) ident(tag)operator(()stringoperator(,) symbol(:included) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_tag_options_converts_boolean_option) ident(assert_equal) string)delimiter(')>operator(,) ident(tag)operator(()stringoperator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(,) symbol(:multiple) operator(=)operator(>) pre_constant(true)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_content_tag) ident(assert_equal) stringCreate)delimiter(")>operator(,) ident(content_tag)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(content_tag)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(,) ident(content_tag)operator(()stringoperator(,) stringoperator(,) symbol(:href) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_cdata_section) ident(assert_equal) string]]>)delimiter(")>operator(,) ident(cdata_section)operator(()string)delimiter(")>operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) stringcontent(/../testing_sandbox)delimiter(")> reserved(class) class(TextHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TextHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) ident(include) constant(TestingSandbox) reserved(def) method(setup) comment(# This simulates the fact that instance variables are reset every time) comment(# a view is rendered. The cycle helper depends on this behavior.) instance_variable(@_cycles) operator(=) pre_constant(nil) reserved(if) operator(()reserved(defined?) instance_variable(@_cycles)operator(\)) reserved(end) reserved(def) method(test_simple_format) ident(assert_equal) stringcrazy)char(\\n)content(
    cross)char(\\n)content(
    platform linebreaks

    )delimiter(")>operator(,) ident(simple_format)operator(()stringoperator(\)) ident(assert_equal) stringA paragraph

    )char(\\n)char(\\n)content(

    and another one!

    )delimiter(")>operator(,) ident(simple_format)operator(()stringoperator(\)) ident(assert_equal) stringA paragraph)char(\\n)content(
    With a newline

    )delimiter(")>operator(,) ident(simple_format)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_truncate) ident(assert_equal) stringoperator(,) ident(truncate)operator(()stringoperator(,) integer(12)operator(\)) ident(assert_equal) stringoperator(,) ident(truncate)operator(()stringoperator(,) integer(12)operator(\)) reserved(end) reserved(def) method(test_truncate_multibyte_without_kcode) ident(result) operator(=) ident(execute_in_sandbox)operator(()stringoperator(\))string ident(assert_equal) stringoperator(,) ident(result) reserved(end) reserved(def) method(test_truncate_multibyte_with_kcode) ident(result) operator(=) ident(execute_in_sandbox)operator(()stringoperator(\))string ident(assert_equal) stringoperator(,) ident(result) reserved(end) reserved(def) method(test_strip_links) ident(assert_equal) stringoperator(,) ident(strip_links)operator(()stringon my mind)delimiter(")>operator(\)) reserved(end) reserved(def) method(test_highlighter) ident(assert_equal)operator(() stringbeautiful
    morning)delimiter(")>operator(,) ident(highlight)operator(()stringoperator(,) stringoperator(\)) operator(\)) ident(assert_equal)operator(() stringbeautiful
    morning, but also a beautiful day)delimiter(")>operator(,) ident(highlight)operator(()stringoperator(,) stringoperator(\)) operator(\)) ident(assert_equal)operator(() stringbeautiful morning, but also a beautiful day)delimiter(")>operator(,) ident(highlight)operator(()stringoperator(,) stringoperator(,) string)content(\\1)content()delimiter(')>operator(\)) operator(\)) ident(assert_equal)operator(() stringoperator(,) ident(highlight)operator(()stringoperator(,) pre_constant(nil)operator(\)) operator(\)) reserved(end) reserved(def) method(test_highlighter_with_regexp) ident(assert_equal)operator(() stringbeautiful! morning)delimiter(")>operator(,) ident(highlight)operator(()stringoperator(,) stringoperator(\)) operator(\)) ident(assert_equal)operator(() stringbeautiful! morning)delimiter(")>operator(,) ident(highlight)operator(()stringoperator(,) stringoperator(\)) operator(\)) ident(assert_equal)operator(() stringbeautiful? morning)delimiter(")>operator(,) ident(highlight)operator(()stringoperator(,) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_excerpt) ident(assert_equal)operator(()stringoperator(,) ident(excerpt)operator(()stringoperator(,) stringoperator(,) integer(5)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(excerpt)operator(()stringoperator(,) stringoperator(,) integer(5)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(excerpt)operator(()stringoperator(,) stringoperator(,) integer(5)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(excerpt)operator(()stringoperator(,) stringoperator(,) integer(5)operator(\))operator(\)) ident(assert_nil) ident(excerpt)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_excerpt_with_regex) ident(assert_equal)operator(()stringoperator(,) ident(excerpt)operator(()stringoperator(,) stringoperator(,) integer(5)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(excerpt)operator(()stringoperator(,) stringoperator(,) integer(5)operator(\))operator(\)) reserved(end) reserved(def) method(test_word_wrap) ident(assert_equal)operator(()stringoperator(,) ident(word_wrap)operator(()stringoperator(,) integer(15)operator(\))operator(\)) reserved(end) reserved(def) method(test_pluralization) ident(assert_equal)operator(()stringoperator(,) ident(pluralize)operator(()integer(1)operator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(pluralize)operator(()integer(2)operator(,) stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_auto_linking) ident(email_raw) operator(=) string ident(email_result) operator(=) string)inlinecontent()delimiter(})> ident(link_raw) operator(=) string ident(link_result) operator(=) string)inlinecontent()delimiter(})> ident(link_result_with_options) operator(=) string)inlinecontent()delimiter(})> ident(link2_raw) operator(=) string ident(link2_result) operator(=) string)inlinecontent()delimiter(})> ident(link3_raw) operator(=) string ident(link3_result) operator(=) string)inlinecontent()delimiter(})> ident(link4_raw) operator(=) string ident(link4_result) operator(=) string)inlinecontent()delimiter(})> ident(link5_raw) operator(=) string ident(link5_result) operator(=) string)inlinecontent()delimiter(})> ident(assert_equal) stringdelimiter(\))>operator(,) ident(auto_link)operator(()stringdelimiter(")>operator(,) symbol(:email_addresses)operator(\)) ident(assert_equal) stringdelimiter(\))>operator(,) ident(auto_link)operator(()stringdelimiter(")>operator(,) symbol(:urls)operator(\)) ident(assert_equal) stringdelimiter(\))>operator(,) ident(auto_link)operator(()stringdelimiter(")>operator(,) symbol(:email_addresses)operator(\)) ident(assert_equal) stringcontent( and say hello to )inlinedelimiter(\))>operator(,) ident(auto_link)operator(()stringcontent( and say hello to )inlinedelimiter(")>operator(\)) ident(assert_equal) stringLink )inlinecontent(

    )delimiter(\))>operator(,) ident(auto_link)operator(()stringLink )inlinecontent(

    )delimiter(")>operator(\)) ident(assert_equal) string)inlinecontent( Link

    )delimiter(\))>operator(,) ident(auto_link)operator(()string)inlinecontent( Link

    )delimiter(")>operator(\)) ident(assert_equal) stringLink )inlinecontent(

    )delimiter(\))>operator(,) ident(auto_link)operator(()stringLink )inlinecontent(

    )delimiter(")>operator(,) symbol(:all)operator(,) operator({)symbol(:target) operator(=)operator(>) stringoperator(})operator(\)) ident(assert_equal) stringcontent(.)delimiter(\))>operator(,) ident(auto_link)operator(()stringcontent(.)delimiter(\))>operator(\)) ident(assert_equal) stringGo to )inlinecontent(, then say hello to )inlinecontent(.

    )delimiter(\))>operator(,) ident(auto_link)operator(()stringGo to )inlinecontent(, then say hello to )inlinecontent(.

    )delimiter(\))>operator(\)) ident(assert_equal) stringdelimiter(\))>operator(,) ident(auto_link)operator(()stringdelimiter(")>operator(,) symbol(:urls)operator(\)) ident(assert_equal) stringdelimiter(\))>operator(,) ident(auto_link)operator(()stringdelimiter(")>operator(,) symbol(:email_addresses)operator(\)) ident(assert_equal) stringLink )inlinecontent(

    )delimiter(\))>operator(,) ident(auto_link)operator(()stringLink )inlinecontent(

    )delimiter(")>operator(\)) ident(assert_equal) string)inlinecontent( Link

    )delimiter(\))>operator(,) ident(auto_link)operator(()string)inlinecontent( Link

    )delimiter(")>operator(\)) ident(assert_equal) stringcontent(.)delimiter(\))>operator(,) ident(auto_link)operator(()stringcontent(.)delimiter(\))>operator(\)) ident(assert_equal) stringSay hello to )inlinecontent(, then go to )inlinecontent(.

    )delimiter(\))>operator(,) ident(auto_link)operator(()stringSay hello to )inlinecontent(, then go to )inlinecontent(.

    )delimiter(\))>operator(\)) ident(assert_equal) stringdelimiter(\))>operator(,) ident(auto_link)operator(()stringdelimiter(")>operator(,) symbol(:urls)operator(\)) ident(assert_equal) stringdelimiter(\))>operator(,) ident(auto_link)operator(()stringdelimiter(")>operator(,) symbol(:email_addresses)operator(\)) ident(assert_equal) stringLink )inlinecontent(

    )delimiter(\))>operator(,) ident(auto_link)operator(()stringLink )inlinecontent(

    )delimiter(")>operator(\)) ident(assert_equal) string)inlinecontent( Link

    )delimiter(\))>operator(,) ident(auto_link)operator(()string)inlinecontent( Link

    )delimiter(")>operator(\)) ident(assert_equal) stringcontent(.)delimiter(\))>operator(,) ident(auto_link)operator(()stringcontent(.)delimiter(\))>operator(\)) ident(assert_equal) stringGo to )inlinecontent(. seriously, )inlinecontent(? i think I'll say hello to )inlinecontent(. instead.

    )delimiter(\))>operator(,) ident(auto_link)operator(()stringGo to )inlinecontent(. seriously, )inlinecontent(? i think I'll say hello to )inlinecontent(. instead.

    )delimiter(\))>operator(\)) ident(assert_equal) stringLink )inlinecontent(

    )delimiter(\))>operator(,) ident(auto_link)operator(()stringLink )inlinecontent(

    )delimiter(")>operator(\)) ident(assert_equal) string)inlinecontent( Link

    )delimiter(\))>operator(,) ident(auto_link)operator(()string)inlinecontent( Link

    )delimiter(")>operator(\)) ident(assert_equal) string)inlinecontent( Link

    )delimiter(\))>operator(,) ident(auto_link)operator(()string)inlinecontent( Link

    )delimiter(")>operator(\)) ident(assert_equal) stringoperator(,) ident(auto_link)operator(()pre_constant(nil)operator(\)) ident(assert_equal) stringoperator(,) ident(auto_link)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_auto_link_at_eol) ident(url1) operator(=) string ident(url2) operator(=) string ident(assert_equal) string)inlinecontent(
    )inlinecontent(

    )delimiter(\))>operator(,) ident(auto_link)operator(()string)inlinecontent(
    )inlinecontent(

    )delimiter(")>operator(\)) reserved(end) reserved(def) method(test_auto_link_with_block) ident(url) operator(=) string ident(email) operator(=) string ident(assert_equal) string)inlinecontent(...
    )inlinecontent(...

    )delimiter(\))>operator(,) ident(auto_link)operator(()string)inlinecontent(
    )inlinecontent(

    )delimiter(")>operator(\)) operator({) operator(|)ident(url)operator(|) ident(truncate)operator(()ident(url)operator(,) integer(10)operator(\)) operator(}) reserved(end) reserved(def) method(test_sanitize_form) ident(raw) operator(=) string)delimiter(")> ident(result) operator(=) ident(sanitize)operator(()ident(raw)operator(\)) ident(assert_equal) string</form>)delimiter(")>operator(,) ident(result) reserved(end) reserved(def) method(test_sanitize_script) ident(raw) operator(=) stringblah blah blah)delimiter(")> ident(result) operator(=) ident(sanitize)operator(()ident(raw)operator(\)) ident(assert_equal) stringblah blah blah</script>)delimiter(")>operator(,) ident(result) reserved(end) reserved(def) method(test_sanitize_js_handlers) ident(raw) operator(=) stringhello)delimiter(})> ident(result) operator(=) ident(sanitize)operator(()ident(raw)operator(\)) ident(assert_equal) stringhello)delimiter(})>operator(,) ident(result) reserved(end) reserved(def) method(test_sanitize_javascript_href) ident(raw) operator(=) stringfoo, bar)delimiter(})> ident(result) operator(=) ident(sanitize)operator(()ident(raw)operator(\)) ident(assert_equal) stringfoo, bar)delimiter(})>operator(,) ident(result) reserved(end) reserved(def) method(test_cycle_class) ident(value) operator(=) constant(Cycle)operator(.)ident(new)operator(()stringoperator(,) integer(2)operator(,) stringoperator(\)) ident(assert_equal)operator(()stringoperator(,) ident(value)operator(.)ident(to_s)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(value)operator(.)ident(to_s)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(value)operator(.)ident(to_s)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(value)operator(.)ident(to_s)operator(\)) ident(value)operator(.)ident(reset) ident(assert_equal)operator(()stringoperator(,) ident(value)operator(.)ident(to_s)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(value)operator(.)ident(to_s)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(value)operator(.)ident(to_s)operator(\)) reserved(end) reserved(def) method(test_cycle_class_with_no_arguments) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) ident(value) operator(=) constant(Cycle)operator(.)ident(new)operator(()operator(\)) operator(}) reserved(end) reserved(def) method(test_cycle) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) integer(2)operator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) integer(2)operator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) integer(2)operator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) integer(2)operator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) integer(2)operator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) integer(2)operator(,) stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_cycle_with_no_arguments) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) ident(value) operator(=) ident(cycle)operator(()operator(\)) operator(}) reserved(end) reserved(def) method(test_cycle_resets_with_new_values) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(\)) reserved(end) reserved(def) method(test_named_cycles) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_default_named_cycle) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(\)) reserved(end) reserved(def) method(test_reset_cycle) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(\)) ident(reset_cycle) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(\)) reserved(end) reserved(def) method(test_reset_unknown_cycle) ident(reset_cycle)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_recet_named_cycle) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(reset_cycle)operator(()stringoperator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_cycle_no_instance_variable_clashes) instance_variable(@cycles) operator(=) string ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(cycle)operator(()stringoperator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) instance_variable(@cycles)operator(\)) reserved(end) reserved(def) method(test_strip_tags) ident(assert_equal)operator(()stringoperator(,) ident(strip_tags)operator(()stringThis is a test.

    )delimiter(")>operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(strip_tags)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(() stringoperator(,) ident(strip_tags)operator(() stringThis is a test.)char(\\n)char(\\n)content()char(\\n)char(\\n)content(

    It no longer contains any HTML.

    )char(\\n)delimiter(})>operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(strip_tags)operator(()string here.)delimiter(")>operator(\))operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string constant(RequestMock) operator(=) constant(Struct)operator(.)ident(new)operator(()stringoperator(,) symbol(:request_uri)operator(\)) reserved(class) class(UrlHelperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(AssetTagHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(UrlHelper) ident(include) constant(ActionView)operator(::)constant(Helpers)operator(::)constant(TagHelper) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(Class)operator(.)ident(new) reserved(do) ident(attr_accessor) symbol(:url) reserved(def) method(url_for)operator(()ident(options)operator(,) operator(*)ident(parameters_for_method_reference)operator(\)) ident(url) reserved(end) reserved(end) instance_variable(@controller) operator(=) instance_variable(@controller)operator(.)ident(new) instance_variable(@controller)operator(.)ident(url) operator(=) string reserved(end) reserved(def) method(test_url_for_escapes_urls) instance_variable(@controller)operator(.)ident(url) operator(=) string ident(assert_equal) stringoperator(,) ident(url_for)operator(()symbol(:a) operator(=)operator(>) stringoperator(,) symbol(:c) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(url_for)operator(()symbol(:a) operator(=)operator(>) stringoperator(,) symbol(:c) operator(=)operator(>) stringoperator(,) symbol(:escape) operator(=)operator(>) pre_constant(true)operator(\)) ident(assert_equal) stringoperator(,) ident(url_for)operator(()symbol(:a) operator(=)operator(>) stringoperator(,) symbol(:c) operator(=)operator(>) stringoperator(,) symbol(:escape) operator(=)operator(>) pre_constant(false)operator(\)) reserved(end) comment(# todo: missing test cases) reserved(def) method(test_button_to_with_straight_url) ident(assert_dom_equal) string
    )delimiter(")>operator(,) ident(button_to)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_button_to_with_query) ident(assert_dom_equal) string
    )delimiter(")>operator(,) ident(button_to)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_button_to_with_query_and_no_name) ident(assert_dom_equal) string
    )delimiter(")>operator(,) ident(button_to)operator(()pre_constant(nil)operator(,) stringoperator(\)) reserved(end) reserved(def) method(test_button_to_with_javascript_confirm) ident(assert_dom_equal)operator(() string
    )delimiter(")>operator(,) ident(button_to)operator(()stringoperator(,) stringoperator(,) symbol(:confirm) operator(=)operator(>) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_button_to_enabled_disabled) ident(assert_dom_equal)operator(() string
    )delimiter(")>operator(,) ident(button_to)operator(()stringoperator(,) stringoperator(,) symbol(:disabled) operator(=)operator(>) pre_constant(false)operator(\)) operator(\)) ident(assert_dom_equal)operator(() string
    )delimiter(")>operator(,) ident(button_to)operator(()stringoperator(,) stringoperator(,) symbol(:disabled) operator(=)operator(>) pre_constant(true)operator(\)) operator(\)) reserved(end) reserved(def) method(test_link_tag_with_straight_url) ident(assert_dom_equal) stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_link_tag_with_query) ident(assert_dom_equal) stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_link_tag_with_query_and_no_name) ident(assert_dom_equal) stringhttp://www.example.com?q1=v1&q2=v2)delimiter(")>operator(,) ident(link_to)operator(()pre_constant(nil)operator(,) stringoperator(\)) reserved(end) reserved(def) method(test_link_tag_with_img) ident(assert_dom_equal) string)delimiter(")>operator(,) ident(link_to)operator(()string)delimiter(")>operator(,) stringoperator(\)) reserved(end) reserved(def) method(test_link_with_nil_html_options) ident(assert_dom_equal) stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) operator({)symbol(:action) operator(=)operator(>) stringoperator(})operator(,) pre_constant(nil)operator(\)) reserved(end) reserved(def) method(test_link_tag_with_custom_onclick) ident(assert_dom_equal) stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:onclick) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_link_tag_with_javascript_confirm) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:confirm) operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:confirm) operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:confirm) operator(=)operator(>) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_link_tag_with_popup) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:popup) operator(=)operator(>) pre_constant(true)operator(\)) operator(\)) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:popup) operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:popup) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) operator(\)) reserved(end) reserved(def) method(test_link_tag_with_popup_and_javascript_confirm) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) operator({) symbol(:popup) operator(=)operator(>) pre_constant(true)operator(,) symbol(:confirm) operator(=)operator(>) string operator(})operator(\)) operator(\)) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) operator({) symbol(:popup) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(,) symbol(:confirm) operator(=)operator(>) string operator(})operator(\)) operator(\)) reserved(end) reserved(def) method(test_link_tag_using_post_javascript) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:post) operator(=)operator(>) pre_constant(true)operator(\)) operator(\)) reserved(end) reserved(def) method(test_link_tag_using_post_javascript_and_confirm) ident(assert_dom_equal)operator(() stringHello)delimiter(")>operator(,) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:post) operator(=)operator(>) pre_constant(true)operator(,) symbol(:confirm) operator(=)operator(>) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_link_tag_using_post_javascript_and_popup) ident(assert_raises)operator(()constant(ActionView)operator(::)constant(ActionViewError)operator(\)) operator({) ident(link_to)operator(()stringoperator(,) stringoperator(,) symbol(:popup) operator(=)operator(>) pre_constant(true)operator(,) symbol(:post) operator(=)operator(>) pre_constant(true)operator(,) symbol(:confirm) operator(=)operator(>) stringoperator(\)) operator(}) reserved(end) reserved(def) method(test_link_to_unless) ident(assert_equal) stringoperator(,) ident(link_to_unless)operator(()pre_constant(true)operator(,) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) stringListing)delimiter(")>operator(,) ident(link_to_unless)operator(()pre_constant(false)operator(,) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(link_to_unless)operator(()pre_constant(true)operator(,) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(1)operator(\)) ident(assert_equal) stringShowing)delimiter(")>operator(,) ident(link_to_unless)operator(()pre_constant(true)operator(,) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(1)operator(\)) operator({) operator(|)ident(name)operator(,) ident(options)operator(,) ident(html_options)operator(,) operator(*)ident(parameters_for_method_reference)operator(|) string)inlinecontent()delimiter(")> operator(}) ident(assert_equal) stringShowing)delimiter(")>operator(,) ident(link_to_unless)operator(()pre_constant(true)operator(,) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(1)operator(\)) operator({) operator(|)ident(name)operator(|) string)inlinecontent()delimiter(")> operator(}) ident(assert_equal) stringoperator(,) ident(link_to_unless)operator(()pre_constant(true)operator(,) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(1)operator(\)) operator({) string operator(}) reserved(end) reserved(def) method(test_link_to_if) ident(assert_equal) stringoperator(,) ident(link_to_if)operator(()pre_constant(false)operator(,) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) stringListing)delimiter(")>operator(,) ident(link_to_if)operator(()pre_constant(true)operator(,) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(link_to_if)operator(()pre_constant(false)operator(,) stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(1)operator(\)) reserved(end) reserved(def) method(xtest_link_unless_current) instance_variable(@request) operator(=) constant(RequestMock)operator(.)ident(new)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) ident(link_to_unless_current)operator(()stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(\)) instance_variable(@request) operator(=) constant(RequestMock)operator(.)ident(new)operator(()stringoperator(\)) ident(assert) stringListing)delimiter(")>operator(,) ident(link_to_unless_current)operator(()stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(\)) instance_variable(@request) operator(=) constant(RequestMock)operator(.)ident(new)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) ident(link_to_unless_current)operator(()stringoperator(,) symbol(:action) operator(=)operator(>) stringoperator(,) symbol(:controller) operator(=)operator(>) stringoperator(,) symbol(:id) operator(=)operator(>) integer(1)operator(\)) reserved(end) reserved(def) method(test_mail_to) ident(assert_dom_equal) stringdavid@loudthinking.com)delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(\)) ident(assert_dom_equal) stringDavid Heinemeier Hansson)delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(,) stringoperator(\)) ident(assert_dom_equal)operator(() stringDavid Heinemeier Hansson)delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator(\)) ident(assert_equal) ident(mail_to)operator(()stringoperator(,) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(,) ident(mail_to)operator(()stringoperator(,) stringoperator(,) symbol(:class) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_mail_to_with_javascript) ident(assert_dom_equal) stringeval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%22%3e%4d%79%20%65%6d%61%69%6c%3c%2f%61%3e%27%29%3b'\)\))delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(,) stringoperator(,) symbol(:encode) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_mail_with_options) ident(assert_dom_equal)operator(() stringMy email)delimiter(\))>operator(,) ident(mail_to)operator(()stringoperator(,) stringoperator(,) symbol(:cc) operator(=)operator(>) stringoperator(,) symbol(:bcc) operator(=)operator(>) stringoperator(,) symbol(:subject) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) stringoperator(\)) operator(\)) reserved(end) reserved(def) method(test_mail_to_with_img) ident(assert_dom_equal) string)delimiter(\))>operator(,) ident(mail_to)operator(()stringoperator(,) string)delimiter(')>operator(\)) reserved(end) reserved(def) method(test_mail_to_with_hex) ident(assert_dom_equal) stringMy email)delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(,) stringoperator(,) symbol(:encode) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_mail_to_with_replace_options) ident(assert_dom_equal) stringwolfgang(at\)stufenlos(dot\)net)delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(,) pre_constant(nil)operator(,) symbol(:replace_at) operator(=)operator(>) stringoperator(,) symbol(:replace_dot) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) stringme(at\)domain.com)delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(,) pre_constant(nil)operator(,) symbol(:encode) operator(=)operator(>) stringoperator(,) symbol(:replace_at) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) stringMy email)delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(,) stringoperator(,) symbol(:encode) operator(=)operator(>) stringoperator(,) symbol(:replace_at) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) stringme(at\)domain(dot\)com)delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(,) pre_constant(nil)operator(,) symbol(:encode) operator(=)operator(>) stringoperator(,) symbol(:replace_at) operator(=)operator(>) stringoperator(,) symbol(:replace_dot) operator(=)operator(>) stringoperator(\)) ident(assert_dom_equal) stringeval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%22%3e%4d%79%20%65%6d%61%69%6c%3c%2f%61%3e%27%29%3b'\)\))delimiter(")>operator(,) ident(mail_to)operator(()stringoperator(,) stringoperator(,) symbol(:encode) operator(=)operator(>) stringoperator(,) symbol(:replace_at) operator(=)operator(>) stringoperator(,) symbol(:replace_dot) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) reserved(module) class(TestingSandbox) comment(# This whole thing *could* be much simpler, but I don't think Tempfile,) comment(# popen and others exist on all platforms (like Windows\).) reserved(def) method(execute_in_sandbox)operator(()ident(code)operator(\)) ident(test_name) operator(=) stringcontent(/test.)inlinecontent(.rb)delimiter(")> ident(res_name) operator(=) stringcontent(/test.)inlinecontent(.out)delimiter(")> constant(File)operator(.)ident(open)operator(()ident(test_name)operator(,) stringoperator(\)) reserved(do) operator(|)ident(file)operator(|) ident(file)operator(.)ident(write)operator(()stringoperator(\))stringcontent( end print block.call)delimiter( CODE)> reserved(end) ident(system)operator(()stringcontent( > )inlinedelimiter(")>operator(\)) reserved(or) ident(raise) string constant(File)operator(.)ident(read)operator(()ident(res_name)operator(\)) reserved(ensure) constant(File)operator(.)ident(delete)operator(()ident(test_name)operator(\)) reserved(rescue) pre_constant(nil) constant(File)operator(.)ident(delete)operator(()ident(res_name)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(class) class(DirectoryCategory) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:fullViewableName)operator(,) symbol(:string) ident(member) symbol(:specialEncoding)operator(,) symbol(:string) reserved(end) reserved(class) class(ResultElement) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:summary)operator(,) symbol(:string) ident(member) symbol(:URL)operator(,) symbol(:string) ident(member) symbol(:snippet)operator(,) symbol(:string) ident(member) symbol(:title)operator(,) symbol(:string) ident(member) symbol(:cachedSize)operator(,) symbol(:string) ident(member) symbol(:relatedInformationPresent)operator(,) symbol(:bool) ident(member) symbol(:hostName)operator(,) symbol(:string) ident(member) symbol(:directoryCategory)operator(,) constant(DirectoryCategory) ident(member) symbol(:directoryTitle)operator(,) symbol(:string) reserved(end) reserved(class) class(GoogleSearchResult) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:documentFiltering)operator(,) symbol(:bool) ident(member) symbol(:searchComments)operator(,) symbol(:string) ident(member) symbol(:estimatedTotalResultsCount)operator(,) symbol(:int) ident(member) symbol(:estimateIsExact)operator(,) symbol(:bool) ident(member) symbol(:resultElements)operator(,) operator([)constant(ResultElement)operator(]) ident(member) symbol(:searchQuery)operator(,) symbol(:string) ident(member) symbol(:startIndex)operator(,) symbol(:int) ident(member) symbol(:endIndex)operator(,) symbol(:int) ident(member) symbol(:searchTips)operator(,) symbol(:string) ident(member) symbol(:directoryCategories)operator(,) operator([)constant(DirectoryCategory)operator(]) ident(member) symbol(:searchTime)operator(,) symbol(:float) reserved(end) reserved(class) class(GoogleSearchAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(inflect_names) pre_constant(false) ident(api_method) symbol(:doGetCachedPage)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:url)operator(=)operator(>)symbol(:string)operator(})operator(]) ident(api_method) symbol(:doGetSpellingSuggestion)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:phrase)operator(=)operator(>)symbol(:string)operator(})operator(]) ident(api_method) symbol(:doGoogleSearch)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(GoogleSearchResult)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:q)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:start)operator(=)operator(>)symbol(:int)operator(})operator(,) operator({)symbol(:maxResults)operator(=)operator(>)symbol(:int)operator(})operator(,) operator({)symbol(:filter)operator(=)operator(>)symbol(:bool)operator(})operator(,) operator({)symbol(:restrict)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:safeSearch)operator(=)operator(>)symbol(:bool)operator(})operator(,) operator({)symbol(:lr)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:ie)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:oe)operator(=)operator(>)symbol(:string)operator(}) operator(]) reserved(end) reserved(class) class(GoogleSearchController) operator(<) constant(ApplicationController) ident(wsdl_service_name) string reserved(def) method(doGetCachedPage) stringi am a cached page. my key was %s, url was %s)delimiter(")> operator(%) operator([)instance_variable(@params)operator([)stringoperator(])operator(,) instance_variable(@params)operator([)stringoperator(])operator(]) reserved(end) reserved(def) method(doSpellingSuggestion) string operator(%) operator([)instance_variable(@params)operator([)stringoperator(])operator(,) instance_variable(@params)operator([)stringoperator(])operator(]) reserved(end) reserved(def) method(doGoogleSearch) ident(resultElement) operator(=) constant(ResultElement)operator(.)ident(new) ident(resultElement)operator(.)ident(summary) operator(=) string ident(resultElement)operator(.)ident(URL) operator(=) string ident(resultElement)operator(.)ident(snippet) operator(=) string operator(+) string ident(resultElement)operator(.)ident(title) operator(=) string ident(resultElement)operator(.)ident(cachedSize) operator(=) string ident(resultElement)operator(.)ident(relatedInformationPresent) operator(=) pre_constant(true) ident(resultElement)operator(.)ident(hostName) operator(=) string ident(resultElement)operator(.)ident(directoryCategory) operator(=) ident(category)operator(()stringoperator(,) stringoperator(\)) ident(result) operator(=) constant(GoogleSearchResult)operator(.)ident(new) ident(result)operator(.)ident(documentFiltering) operator(=) instance_variable(@params)operator([)stringoperator(]) ident(result)operator(.)ident(searchComments) operator(=) string ident(result)operator(.)ident(estimatedTotalResultsCount) operator(=) integer(322000) ident(result)operator(.)ident(estimateIsExact) operator(=) pre_constant(false) ident(result)operator(.)ident(resultElements) operator(=) operator([)ident(resultElement)operator(]) ident(result)operator(.)ident(searchQuery) operator(=) string ident(result)operator(.)ident(startIndex) operator(=) instance_variable(@params)operator([)stringoperator(]) ident(result)operator(.)ident(endIndex) operator(=) instance_variable(@params)operator([)stringoperator(]) operator(+) instance_variable(@params)operator([)stringoperator(]) ident(result)operator(.)ident(searchTips) operator(=) string ident(result)operator(.)ident(searchTime) operator(=) float(0.000001) comment(# For Mono, we have to clone objects if they're referenced by more than one place, otherwise) comment(# the Ruby SOAP collapses them into one instance and uses references all over the) comment(# place, confusing Mono. ) comment(#) comment(# This has recently been fixed:) comment(# http://bugzilla.ximian.com/show_bug.cgi?id=72265) ident(result)operator(.)ident(directoryCategories) operator(=) operator([) ident(category)operator(()stringoperator(,) stringoperator(\))operator(,) ident(category)operator(()stringoperator(,) stringoperator(\))operator(,) operator(]) ident(result) reserved(end) ident(private) reserved(def) method(category)operator(()ident(name)operator(,) ident(encoding)operator(\)) ident(cat) operator(=) constant(DirectoryCategory)operator(.)ident(new) ident(cat)operator(.)ident(fullViewableName) operator(=) ident(name)operator(.)ident(dup) ident(cat)operator(.)ident(specialEncoding) operator(=) ident(encoding)operator(.)ident(dup) ident(cat) reserved(end) reserved(end) reserved(class) class(DirectoryCategory) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:fullViewableName)operator(,) symbol(:string) ident(member) symbol(:specialEncoding)operator(,) symbol(:string) reserved(end) reserved(class) class(ResultElement) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:summary)operator(,) symbol(:string) ident(member) symbol(:URL)operator(,) symbol(:string) ident(member) symbol(:snippet)operator(,) symbol(:string) ident(member) symbol(:title)operator(,) symbol(:string) ident(member) symbol(:cachedSize)operator(,) symbol(:string) ident(member) symbol(:relatedInformationPresent)operator(,) symbol(:bool) ident(member) symbol(:hostName)operator(,) symbol(:string) ident(member) symbol(:directoryCategory)operator(,) constant(DirectoryCategory) ident(member) symbol(:directoryTitle)operator(,) symbol(:string) reserved(end) reserved(class) class(GoogleSearchResult) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:documentFiltering)operator(,) symbol(:bool) ident(member) symbol(:searchComments)operator(,) symbol(:string) ident(member) symbol(:estimatedTotalResultsCount)operator(,) symbol(:int) ident(member) symbol(:estimateIsExact)operator(,) symbol(:bool) ident(member) symbol(:resultElements)operator(,) operator([)constant(ResultElement)operator(]) ident(member) symbol(:searchQuery)operator(,) symbol(:string) ident(member) symbol(:startIndex)operator(,) symbol(:int) ident(member) symbol(:endIndex)operator(,) symbol(:int) ident(member) symbol(:searchTips)operator(,) symbol(:string) ident(member) symbol(:directoryCategories)operator(,) operator([)constant(DirectoryCategory)operator(]) ident(member) symbol(:searchTime)operator(,) symbol(:float) reserved(end) reserved(class) class(GoogleSearchAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(inflect_names) pre_constant(false) ident(api_method) symbol(:doGetCachedPage)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:url)operator(=)operator(>)symbol(:string)operator(})operator(]) ident(api_method) symbol(:doGetSpellingSuggestion)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:phrase)operator(=)operator(>)symbol(:string)operator(})operator(]) ident(api_method) symbol(:doGoogleSearch)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(GoogleSearchResult)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:q)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:start)operator(=)operator(>)symbol(:int)operator(})operator(,) operator({)symbol(:maxResults)operator(=)operator(>)symbol(:int)operator(})operator(,) operator({)symbol(:filter)operator(=)operator(>)symbol(:bool)operator(})operator(,) operator({)symbol(:restrict)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:safeSearch)operator(=)operator(>)symbol(:bool)operator(})operator(,) operator({)symbol(:lr)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:ie)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:oe)operator(=)operator(>)symbol(:string)operator(}) operator(]) reserved(end) reserved(class) class(GoogleSearchService) operator(<) constant(ActionWebService)operator(::)constant(Base) ident(web_service_api) constant(GoogleSearchAPI) reserved(def) method(doGetCachedPage)operator(()ident(key)operator(,) ident(url)operator(\)) stringi am a cached page)delimiter(")> reserved(end) reserved(def) method(doSpellingSuggestion)operator(()ident(key)operator(,) ident(phrase)operator(\)) string reserved(end) reserved(def) method(doGoogleSearch)operator(()ident(key)operator(,) ident(q)operator(,) ident(start)operator(,) ident(maxResults)operator(,) ident(filter)operator(,) ident(restrict)operator(,) ident(safeSearch)operator(,) ident(lr)operator(,) ident(ie)operator(,) ident(oe)operator(\)) ident(resultElement) operator(=) constant(ResultElement)operator(.)ident(new) ident(resultElement)operator(.)ident(summary) operator(=) string ident(resultElement)operator(.)ident(URL) operator(=) string ident(resultElement)operator(.)ident(snippet) operator(=) string operator(+) string ident(resultElement)operator(.)ident(title) operator(=) string ident(resultElement)operator(.)ident(cachedSize) operator(=) string ident(resultElement)operator(.)ident(relatedInformationPresent) operator(=) pre_constant(true) ident(resultElement)operator(.)ident(hostName) operator(=) string ident(resultElement)operator(.)ident(directoryCategory) operator(=) ident(category)operator(()stringoperator(,) stringoperator(\)) ident(result) operator(=) constant(GoogleSearchResult)operator(.)ident(new) ident(result)operator(.)ident(documentFiltering) operator(=) ident(filter) ident(result)operator(.)ident(searchComments) operator(=) string ident(result)operator(.)ident(estimatedTotalResultsCount) operator(=) integer(322000) ident(result)operator(.)ident(estimateIsExact) operator(=) pre_constant(false) ident(result)operator(.)ident(resultElements) operator(=) operator([)ident(resultElement)operator(]) ident(result)operator(.)ident(searchQuery) operator(=) string ident(result)operator(.)ident(startIndex) operator(=) ident(start) ident(result)operator(.)ident(endIndex) operator(=) ident(start) operator(+) ident(maxResults) ident(result)operator(.)ident(searchTips) operator(=) string ident(result)operator(.)ident(searchTime) operator(=) float(0.000001) comment(# For Mono, we have to clone objects if they're referenced by more than one place, otherwise) comment(# the Ruby SOAP collapses them into one instance and uses references all over the) comment(# place, confusing Mono. ) comment(#) comment(# This has recently been fixed:) comment(# http://bugzilla.ximian.com/show_bug.cgi?id=72265) ident(result)operator(.)ident(directoryCategories) operator(=) operator([) ident(category)operator(()stringoperator(,) stringoperator(\))operator(,) ident(category)operator(()stringoperator(,) stringoperator(\))operator(,) operator(]) ident(result) reserved(end) ident(private) reserved(def) method(category)operator(()ident(name)operator(,) ident(encoding)operator(\)) ident(cat) operator(=) constant(DirectoryCategory)operator(.)ident(new) ident(cat)operator(.)ident(fullViewableName) operator(=) ident(name)operator(.)ident(dup) ident(cat)operator(.)ident(specialEncoding) operator(=) ident(encoding)operator(.)ident(dup) ident(cat) reserved(end) reserved(end) ident(require) string reserved(class) class(SearchController) operator(<) constant(ApplicationController) ident(wsdl_service_name) string ident(web_service_dispatching_mode) symbol(:delegated) ident(web_service) symbol(:beta3)operator(,) constant(GoogleSearchService)operator(.)ident(new) reserved(end) reserved(class) class(DirectoryCategory) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:fullViewableName)operator(,) symbol(:string) ident(member) symbol(:specialEncoding)operator(,) symbol(:string) reserved(end) reserved(class) class(ResultElement) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:summary)operator(,) symbol(:string) ident(member) symbol(:URL)operator(,) symbol(:string) ident(member) symbol(:snippet)operator(,) symbol(:string) ident(member) symbol(:title)operator(,) symbol(:string) ident(member) symbol(:cachedSize)operator(,) symbol(:string) ident(member) symbol(:relatedInformationPresent)operator(,) symbol(:bool) ident(member) symbol(:hostName)operator(,) symbol(:string) ident(member) symbol(:directoryCategory)operator(,) constant(DirectoryCategory) ident(member) symbol(:directoryTitle)operator(,) symbol(:string) reserved(end) reserved(class) class(GoogleSearchResult) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:documentFiltering)operator(,) symbol(:bool) ident(member) symbol(:searchComments)operator(,) symbol(:string) ident(member) symbol(:estimatedTotalResultsCount)operator(,) symbol(:int) ident(member) symbol(:estimateIsExact)operator(,) symbol(:bool) ident(member) symbol(:resultElements)operator(,) operator([)constant(ResultElement)operator(]) ident(member) symbol(:searchQuery)operator(,) symbol(:string) ident(member) symbol(:startIndex)operator(,) symbol(:int) ident(member) symbol(:endIndex)operator(,) symbol(:int) ident(member) symbol(:searchTips)operator(,) symbol(:string) ident(member) symbol(:directoryCategories)operator(,) operator([)constant(DirectoryCategory)operator(]) ident(member) symbol(:searchTime)operator(,) symbol(:float) reserved(end) reserved(class) class(GoogleSearchAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(inflect_names) pre_constant(false) ident(api_method) symbol(:doGetCachedPage)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:url)operator(=)operator(>)symbol(:string)operator(})operator(]) ident(api_method) symbol(:doGetSpellingSuggestion)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:phrase)operator(=)operator(>)symbol(:string)operator(})operator(]) ident(api_method) symbol(:doGoogleSearch)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(GoogleSearchResult)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:q)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:start)operator(=)operator(>)symbol(:int)operator(})operator(,) operator({)symbol(:maxResults)operator(=)operator(>)symbol(:int)operator(})operator(,) operator({)symbol(:filter)operator(=)operator(>)symbol(:bool)operator(})operator(,) operator({)symbol(:restrict)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:safeSearch)operator(=)operator(>)symbol(:bool)operator(})operator(,) operator({)symbol(:lr)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:ie)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:oe)operator(=)operator(>)symbol(:string)operator(}) operator(]) reserved(end) reserved(class) class(SearchController) operator(<) constant(ApplicationController) ident(web_service_api) symbol(:google_search) ident(wsdl_service_name) string reserved(def) method(doGetCachedPage) stringi am a cached page. my key was %s, url was %s)delimiter(")> operator(%) operator([)instance_variable(@params)operator([)stringoperator(])operator(,) instance_variable(@params)operator([)stringoperator(])operator(]) reserved(end) reserved(def) method(doSpellingSuggestion) string operator(%) operator([)instance_variable(@params)operator([)stringoperator(])operator(,) instance_variable(@params)operator([)stringoperator(])operator(]) reserved(end) reserved(def) method(doGoogleSearch) ident(resultElement) operator(=) constant(ResultElement)operator(.)ident(new) ident(resultElement)operator(.)ident(summary) operator(=) string ident(resultElement)operator(.)ident(URL) operator(=) string ident(resultElement)operator(.)ident(snippet) operator(=) string operator(+) string ident(resultElement)operator(.)ident(title) operator(=) string ident(resultElement)operator(.)ident(cachedSize) operator(=) string ident(resultElement)operator(.)ident(relatedInformationPresent) operator(=) pre_constant(true) ident(resultElement)operator(.)ident(hostName) operator(=) string ident(resultElement)operator(.)ident(directoryCategory) operator(=) ident(category)operator(()stringoperator(,) stringoperator(\)) ident(result) operator(=) constant(GoogleSearchResult)operator(.)ident(new) ident(result)operator(.)ident(documentFiltering) operator(=) instance_variable(@params)operator([)stringoperator(]) ident(result)operator(.)ident(searchComments) operator(=) string ident(result)operator(.)ident(estimatedTotalResultsCount) operator(=) integer(322000) ident(result)operator(.)ident(estimateIsExact) operator(=) pre_constant(false) ident(result)operator(.)ident(resultElements) operator(=) operator([)ident(resultElement)operator(]) ident(result)operator(.)ident(searchQuery) operator(=) string ident(result)operator(.)ident(startIndex) operator(=) instance_variable(@params)operator([)stringoperator(]) ident(result)operator(.)ident(endIndex) operator(=) instance_variable(@params)operator([)stringoperator(]) operator(+) instance_variable(@params)operator([)stringoperator(]) ident(result)operator(.)ident(searchTips) operator(=) string ident(result)operator(.)ident(searchTime) operator(=) float(0.000001) comment(# For Mono, we have to clone objects if they're referenced by more than one place, otherwise) comment(# the Ruby SOAP collapses them into one instance and uses references all over the) comment(# place, confusing Mono. ) comment(#) comment(# This has recently been fixed:) comment(# http://bugzilla.ximian.com/show_bug.cgi?id=72265) ident(result)operator(.)ident(directoryCategories) operator(=) operator([) ident(category)operator(()stringoperator(,) stringoperator(\))operator(,) ident(category)operator(()stringoperator(,) stringoperator(\))operator(,) operator(]) ident(result) reserved(end) ident(private) reserved(def) method(category)operator(()ident(name)operator(,) ident(encoding)operator(\)) ident(cat) operator(=) constant(DirectoryCategory)operator(.)ident(new) ident(cat)operator(.)ident(fullViewableName) operator(=) ident(name)operator(.)ident(dup) ident(cat)operator(.)ident(specialEncoding) operator(=) ident(encoding)operator(.)ident(dup) ident(cat) reserved(end) reserved(end) comment(#) comment(# see the blogger API spec at http://www.blogger.com/developers/api/1_docs/) comment(# note that the method signatures are subtly different to metaWeblog, they) comment(# are not identical. take care to ensure you handle the different semantics) comment(# properly if you want to support blogger API too, to get maximum compatibility.) comment(#) reserved(module) class(Blog) reserved(class) class(Blog) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:url)operator(,) symbol(:string) ident(member) symbol(:blogid)operator(,) symbol(:string) ident(member) symbol(:blogName)operator(,) symbol(:string) reserved(end) reserved(class) class(User) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:nickname)operator(,) symbol(:string) ident(member) symbol(:userid)operator(,) symbol(:string) ident(member) symbol(:url)operator(,) symbol(:string) ident(member) symbol(:email)operator(,) symbol(:string) ident(member) symbol(:lastname)operator(,) symbol(:string) ident(member) symbol(:firstname)operator(,) symbol(:string) reserved(end) reserved(end) comment(#) comment(# blogger) comment(#) reserved(class) class(BloggerAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(inflect_names) pre_constant(false) ident(api_method) symbol(:newPost)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:appkey)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:blogid)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:username)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:password)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:content)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:publish)operator(=)operator(>)symbol(:bool)operator(}) operator(]) ident(api_method) symbol(:editPost)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:bool)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:appkey)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:postid)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:username)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:password)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:content)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:publish)operator(=)operator(>)symbol(:bool)operator(}) operator(]) ident(api_method) symbol(:getUsersBlogs)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)constant(Blog)operator(::)constant(Blog)operator(])operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:appkey)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:username)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:password)operator(=)operator(>)symbol(:string)operator(}) operator(]) ident(api_method) symbol(:getUserInfo)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(Blog)operator(::)constant(User)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:appkey)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:username)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:password)operator(=)operator(>)symbol(:string)operator(}) operator(]) reserved(end) ident(require) string reserved(class) class(BloggerService) operator(<) constant(ActionWebService)operator(::)constant(Base) ident(web_service_api) constant(BloggerAPI) reserved(def) method(initialize) instance_variable(@postid) operator(=) integer(0) reserved(end) reserved(def) method(newPost)operator(()ident(key)operator(,) ident(id)operator(,) ident(user)operator(,) ident(pw)operator(,) ident(content)operator(,) ident(publish)operator(\)) global_variable($stderr)operator(.)ident(puts) stringcontent( user=)inlinecontent( pw=)inlinecontent(, content=)inlinecontent( [)inlinecontent(])delimiter(")> operator(()instance_variable(@postid) operator(+=) integer(1)operator(\))operator(.)ident(to_s) reserved(end) reserved(def) method(editPost)operator(()ident(key)operator(,) ident(post_id)operator(,) ident(user)operator(,) ident(pw)operator(,) ident(content)operator(,) ident(publish)operator(\)) global_variable($stderr)operator(.)ident(puts) stringcontent( user=)inlinecontent( pw=)inlinecontent( content=)inlinecontent( [)inlinecontent(])delimiter(")> pre_constant(true) reserved(end) reserved(def) method(getUsersBlogs)operator(()ident(key)operator(,) ident(user)operator(,) ident(pw)operator(\)) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> ident(blog) operator(=) constant(Blog)operator(::)constant(Blog)operator(.)ident(new)operator(() symbol(:url) operator(=)operator(>)stringoperator(,) symbol(:blogid) operator(=)operator(>) stringoperator(,) symbol(:blogName) operator(=)operator(>) string operator(\)) operator([)ident(blog)operator(]) reserved(end) reserved(def) method(getUserInfo)operator(()ident(key)operator(,) ident(user)operator(,) ident(pw)operator(\)) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> constant(Blog)operator(::)constant(User)operator(.)ident(new)operator(()symbol(:nickname) operator(=)operator(>) stringoperator(,) symbol(:email) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) comment(# ) comment(# here lie structures, cousins of those on http://www.xmlrpc.com/metaWeblog) comment(# but they don't necessarily the real world reflect) comment(# so if you do, find that your client complains:) comment(# please tell, of problems you suffered through) comment(#) reserved(module) class(Blog) reserved(class) class(Post) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:title)operator(,) symbol(:string) ident(member) symbol(:link)operator(,) symbol(:string) ident(member) symbol(:description)operator(,) symbol(:string) ident(member) symbol(:author)operator(,) symbol(:string) ident(member) symbol(:category)operator(,) symbol(:string) ident(member) symbol(:comments)operator(,) symbol(:string) ident(member) symbol(:guid)operator(,) symbol(:string) ident(member) symbol(:pubDate)operator(,) symbol(:string) reserved(end) reserved(class) class(Category) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:description)operator(,) symbol(:string) ident(member) symbol(:htmlUrl)operator(,) symbol(:string) ident(member) symbol(:rssUrl)operator(,) symbol(:string) reserved(end) reserved(end) comment(#) comment(# metaWeblog) comment(#) reserved(class) class(MetaWeblogAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(inflect_names) pre_constant(false) ident(api_method) symbol(:newPost)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:blogid)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:username)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:password)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:struct)operator(=)operator(>)constant(Blog)operator(::)constant(Post)operator(})operator(,) operator({)symbol(:publish)operator(=)operator(>)symbol(:bool)operator(}) operator(]) ident(api_method) symbol(:editPost)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:bool)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:postid)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:username)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:password)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:struct)operator(=)operator(>)constant(Blog)operator(::)constant(Post)operator(})operator(,) operator({)symbol(:publish)operator(=)operator(>)symbol(:bool)operator(})operator(,) operator(]) ident(api_method) symbol(:getPost)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(Blog)operator(::)constant(Post)operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:postid)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:username)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:password)operator(=)operator(>)symbol(:string)operator(})operator(,) operator(]) ident(api_method) symbol(:getCategories)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)constant(Blog)operator(::)constant(Category)operator(])operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:blogid)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:username)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:password)operator(=)operator(>)symbol(:string)operator(})operator(,) operator(]) ident(api_method) symbol(:getRecentPosts)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)constant(Blog)operator(::)constant(Post)operator(])operator(])operator(,) symbol(:expects) operator(=)operator(>) operator([) operator({)symbol(:blogid)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:username)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:password)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:numberOfPosts)operator(=)operator(>)symbol(:int)operator(})operator(,) operator(]) reserved(end) ident(require) string reserved(class) class(MetaWeblogService) operator(<) constant(ActionWebService)operator(::)constant(Base) ident(web_service_api) constant(MetaWeblogAPI) reserved(def) method(initialize) instance_variable(@postid) operator(=) integer(0) reserved(end) reserved(def) method(newPost)operator(()ident(id)operator(,) ident(user)operator(,) ident(pw)operator(,) ident(struct)operator(,) ident(publish)operator(\)) global_variable($stderr)operator(.)ident(puts) stringcontent( user=)inlinecontent( pw=)inlinecontent(, struct=)inlinecontent( [)inlinecontent(])delimiter(")> operator(()instance_variable(@postid) operator(+=) integer(1)operator(\))operator(.)ident(to_s) reserved(end) reserved(def) method(editPost)operator(()ident(post_id)operator(,) ident(user)operator(,) ident(pw)operator(,) ident(struct)operator(,) ident(publish)operator(\)) global_variable($stderr)operator(.)ident(puts) stringcontent( user=)inlinecontent( pw=)inlinecontent( struct=)inlinecontent( [)inlinecontent(])delimiter(")> pre_constant(true) reserved(end) reserved(def) method(getPost)operator(()ident(post_id)operator(,) ident(user)operator(,) ident(pw)operator(\)) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> constant(Blog)operator(::)constant(Post)operator(.)ident(new)operator(()symbol(:title) operator(=)operator(>) stringoperator(,) symbol(:description) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(getCategories)operator(()ident(id)operator(,) ident(user)operator(,) ident(pw)operator(\)) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> ident(cat) operator(=) constant(Blog)operator(::)constant(Category)operator(.)ident(new)operator(() symbol(:description) operator(=)operator(>) stringoperator(,) symbol(:htmlUrl) operator(=)operator(>) stringoperator(,) symbol(:rssUrl) operator(=)operator(>) stringoperator(\)) operator([)ident(cat)operator(]) reserved(end) reserved(def) method(getRecentPosts)operator(()ident(id)operator(,) ident(user)operator(,) ident(pw)operator(,) ident(num)operator(\)) global_variable($stderr)operator(.)ident(puts) stringcontent( posts for )inlinecontent( on blog )inlinedelimiter(")> ident(post1) operator(=) constant(Blog)operator(::)constant(Post)operator(.)ident(new)operator(() symbol(:title) operator(=)operator(>) stringoperator(,) symbol(:link) operator(=)operator(>) stringoperator(,) symbol(:description) operator(=)operator(>) string operator(\)) ident(post2) operator(=) constant(Blog)operator(::)constant(Post)operator(.)ident(new)operator(() symbol(:title) operator(=)operator(>) stringoperator(,) symbol(:link) operator(=)operator(>) stringoperator(,) symbol(:description) operator(=)operator(>) string operator(\)) operator([)ident(post1)operator(,) ident(post2)operator(]) reserved(end) reserved(end) comment(#) comment(# example controller implementing both blogger and metaWeblog APIs) comment(# in a way that should be compatible with clients supporting both/either.) comment(#) comment(# test by pointing your client at http://URL/xmlrpc/api) comment(# ) ident(require) string ident(require) string reserved(class) class(XmlrpcController) operator(<) constant(ApplicationController) ident(web_service_dispatching_mode) symbol(:layered) ident(web_service) symbol(:metaWeblog)operator(,) constant(MetaWeblogService)operator(.)ident(new) ident(web_service) symbol(:blogger)operator(,) constant(BloggerService)operator(.)ident(new) reserved(end) reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(API) comment(# :nodoc:) comment(# A web service API class specifies the methods that will be available for) comment(# invocation for an API. It also contains metadata such as the method type) comment(# signature hints.) comment(#) comment(# It is not intended to be instantiated.) comment(#) comment(# It is attached to web service implementation classes like) comment(# ActionWebService::Base and ActionController::Base derivatives by using) comment(# container.web_service_api, where container is an) comment(# ActionController::Base or a ActionWebService::Base.) comment(#) comment(# See ActionWebService::Container::Direct::ClassMethods for an example) comment(# of use.) reserved(class) class(Base) comment(# Action WebService API subclasses should be reloaded by the dispatcher in Rails) comment(# when Dependencies.mechanism = :load.) ident(include) constant(Reloadable)operator(::)constant(Subclasses) comment(# Whether to transform the public API method names into camel-cased names ) ident(class_inheritable_option) symbol(:inflect_names)operator(,) pre_constant(true) comment(# Whether to allow ActiveRecord::Base models in :expects.) comment(# The default is +false+; you should be aware of the security implications) comment(# of allowing this, and ensure that you don't allow remote callers to) comment(# easily overwrite data they should not have access to.) ident(class_inheritable_option) symbol(:allow_active_record_expects)operator(,) pre_constant(false) comment(# If present, the name of a method to call when the remote caller) comment(# tried to call a nonexistent method. Semantically equivalent to) comment(# +method_missing+.) ident(class_inheritable_option) symbol(:default_api_method) comment(# Disallow instantiation) ident(private_class_method) symbol(:new)operator(,) symbol(:allocate) reserved(class) operator(<<) class(self) ident(include) constant(ActionWebService)operator(::)constant(SignatureTypes) comment(# API methods have a +name+, which must be the Ruby method name to use when) comment(# performing the invocation on the web service object.) comment(#) comment(# The signatures for the method input parameters and return value can) comment(# by specified in +options+.) comment(#) comment(# A signature is an array of one or more parameter specifiers. ) comment(# A parameter specifier can be one of the following:) comment(#) comment(# * A symbol or string representing one of the Action Web Service base types.) comment(# See ActionWebService::SignatureTypes for a canonical list of the base types.) comment(# * The Class object of the parameter type) comment(# * A single-element Array containing one of the two preceding items. This) comment(# will cause Action Web Service to treat the parameter at that position) comment(# as an array containing only values of the given type.) comment(# * A Hash containing as key the name of the parameter, and as value) comment(# one of the three preceding items) comment(# ) comment(# If no method input parameter or method return value signatures are given,) comment(# the method is assumed to take no parameters and/or return no values of) comment(# interest, and any values that are received by the server will be) comment(# discarded and ignored.) comment(#) comment(# Valid options:) comment(# [:expects] Signature for the method input parameters) comment(# [:returns] Signature for the method return value) comment(# [:expects_and_returns] Signature for both input parameters and return value) reserved(def) method(api_method)operator(()ident(name)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) reserved(unless) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(raise)operator(()constant(ActionWebServiceError)operator(,) stringoperator(\)) reserved(end) ident(validate_options)operator(()operator([)symbol(:expects)operator(,) symbol(:returns)operator(,) symbol(:expects_and_returns)operator(])operator(,) ident(options)operator(.)ident(keys)operator(\)) reserved(if) ident(options)operator([)symbol(:expects_and_returns)operator(]) ident(expects) operator(=) ident(options)operator([)symbol(:expects_and_returns)operator(]) ident(returns) operator(=) ident(options)operator([)symbol(:expects_and_returns)operator(]) reserved(else) ident(expects) operator(=) ident(options)operator([)symbol(:expects)operator(]) ident(returns) operator(=) ident(options)operator([)symbol(:returns)operator(]) reserved(end) ident(expects) operator(=) ident(canonical_signature)operator(()ident(expects)operator(\)) ident(returns) operator(=) ident(canonical_signature)operator(()ident(returns)operator(\)) reserved(if) ident(expects) ident(expects)operator(.)ident(each) reserved(do) operator(|)ident(type)operator(|) ident(type) operator(=) ident(type)operator(.)ident(element_type) reserved(if) ident(type)operator(.)ident(is_a?)operator(()constant(ArrayType)operator(\)) reserved(if) ident(type)operator(.)ident(type_class)operator(.)ident(ancestors)operator(.)ident(include?)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(\)) operator(&&) operator(!)ident(allow_active_record_expects) ident(raise)operator(()constant(ActionWebServiceError)operator(,) stringoperator(\)) reserved(end) reserved(end) reserved(end) ident(name) operator(=) ident(name)operator(.)ident(to_sym) ident(public_name) operator(=) ident(public_api_method_name)operator(()ident(name)operator(\)) ident(method) operator(=) constant(Method)operator(.)ident(new)operator(()ident(name)operator(,) ident(public_name)operator(,) ident(expects)operator(,) ident(returns)operator(\)) ident(write_inheritable_hash)operator(()stringoperator(,) ident(name) operator(=)operator(>) ident(method)operator(\)) ident(write_inheritable_hash)operator(()stringoperator(,) ident(public_name) operator(=)operator(>) ident(name)operator(\)) reserved(end) comment(# Whether the given method name is a service method on this API) reserved(def) method(has_api_method?)operator(()ident(name)operator(\)) ident(api_methods)operator(.)ident(has_key?)operator(()ident(name)operator(\)) reserved(end) comment(# Whether the given public method name has a corresponding service method) comment(# on this API) reserved(def) method(has_public_api_method?)operator(()ident(public_name)operator(\)) ident(api_public_method_names)operator(.)ident(has_key?)operator(()ident(public_name)operator(\)) reserved(end) comment(# The corresponding public method name for the given service method name) reserved(def) method(public_api_method_name)operator(()ident(name)operator(\)) reserved(if) ident(inflect_names) ident(name)operator(.)ident(to_s)operator(.)ident(camelize) reserved(else) ident(name)operator(.)ident(to_s) reserved(end) reserved(end) comment(# The corresponding service method name for the given public method name) reserved(def) method(api_method_name)operator(()ident(public_name)operator(\)) ident(api_public_method_names)operator([)ident(public_name)operator(]) reserved(end) comment(# A Hash containing all service methods on this API, and their) comment(# associated metadata.) reserved(def) method(api_methods) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator({)operator(}) reserved(end) comment(# The Method instance for the given public API method name, if any) reserved(def) method(public_api_method_instance)operator(()ident(public_method_name)operator(\)) ident(api_method_instance)operator(()ident(api_method_name)operator(()ident(public_method_name)operator(\))operator(\)) reserved(end) comment(# The Method instance for the given API method name, if any) reserved(def) method(api_method_instance)operator(()ident(method_name)operator(\)) ident(api_methods)operator([)ident(method_name)operator(]) reserved(end) comment(# The Method instance for the default API method, if any) reserved(def) method(default_api_method_instance) reserved(return) pre_constant(nil) reserved(unless) ident(name) operator(=) ident(default_api_method) ident(instance) operator(=) ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(if) ident(instance) operator(&&) ident(instance)operator(.)ident(name) operator(==) ident(name) reserved(return) ident(instance) reserved(end) ident(instance) operator(=) constant(Method)operator(.)ident(new)operator(()ident(name)operator(,) ident(public_api_method_name)operator(()ident(name)operator(\))operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(\)) ident(write_inheritable_attribute)operator(()stringoperator(,) ident(instance)operator(\)) ident(instance) reserved(end) ident(private) reserved(def) method(api_public_method_names) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator({)operator(}) reserved(end) reserved(def) method(validate_options)operator(()ident(valid_option_keys)operator(,) ident(supplied_option_keys)operator(\)) ident(unknown_option_keys) operator(=) ident(supplied_option_keys) operator(-) ident(valid_option_keys) reserved(unless) ident(unknown_option_keys)operator(.)ident(empty?) ident(raise)operator(()constant(ActionWebServiceError)operator(,) stringdelimiter(")>operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Represents an API method and its associated metadata, and provides functionality) comment(# to assist in commonly performed API method tasks.) reserved(class) class(Method) ident(attr) symbol(:name) ident(attr) symbol(:public_name) ident(attr) symbol(:expects) ident(attr) symbol(:returns) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(public_name)operator(,) ident(expects)operator(,) ident(returns)operator(\)) instance_variable(@name) operator(=) ident(name) instance_variable(@public_name) operator(=) ident(public_name) instance_variable(@expects) operator(=) ident(expects) instance_variable(@returns) operator(=) ident(returns) instance_variable(@caster) operator(=) constant(ActionWebService)operator(::)constant(Casting)operator(::)constant(BaseCaster)operator(.)ident(new)operator(()pre_constant(self)operator(\)) reserved(end) comment(# The list of parameter names for this method) reserved(def) method(param_names) reserved(return) operator([)operator(]) reserved(unless) instance_variable(@expects) instance_variable(@expects)operator(.)ident(map)operator({) operator(|)ident(type)operator(|) ident(type)operator(.)ident(name) operator(}) reserved(end) comment(# Casts a set of Ruby values into the expected Ruby values) reserved(def) method(cast_expects)operator(()ident(params)operator(\)) instance_variable(@caster)operator(.)ident(cast_expects)operator(()ident(params)operator(\)) reserved(end) comment(# Cast a Ruby return value into the expected Ruby value) reserved(def) method(cast_returns)operator(()ident(return_value)operator(\)) instance_variable(@caster)operator(.)ident(cast_returns)operator(()ident(return_value)operator(\)) reserved(end) comment(# Returns the index of the first expected parameter) comment(# with the given name) reserved(def) method(expects_index_of)operator(()ident(param_name)operator(\)) reserved(return) integer(-1) reserved(if) instance_variable(@expects)operator(.)ident(nil?) operator(()integer(0)operator(..)operator(()instance_variable(@expects)operator(.)ident(length)operator(-)integer(1)operator(\))operator(\))operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) reserved(return) ident(i) reserved(if) instance_variable(@expects)operator([)ident(i)operator(])operator(.)ident(name)operator(.)ident(to_s) operator(==) ident(param_name)operator(.)ident(to_s) reserved(end) integer(-1) reserved(end) comment(# Returns a hash keyed by parameter name for the given) comment(# parameter list) reserved(def) method(expects_to_hash)operator(()ident(params)operator(\)) reserved(return) operator({)operator(}) reserved(if) instance_variable(@expects)operator(.)ident(nil?) ident(h) operator(=) operator({)operator(}) instance_variable(@expects)operator(.)ident(zip)operator(()ident(params)operator(\))operator({) operator(|)ident(type)operator(,) ident(param)operator(|) ident(h)operator([)ident(type)operator(.)ident(name)operator(]) operator(=) ident(param) operator(}) ident(h) reserved(end) comment(# Backwards compatibility with previous API) reserved(def) method([])operator(()ident(sig_type)operator(\)) reserved(case) ident(sig_type) reserved(when) symbol(:expects) instance_variable(@expects)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(compat_signature_entry)operator(()ident(x)operator(\))operator(}) reserved(when) symbol(:returns) instance_variable(@returns)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(compat_signature_entry)operator(()ident(x)operator(\))operator(}) reserved(end) reserved(end) comment(# String representation of this method) reserved(def) method(to_s) ident(fqn) operator(=) string ident(fqn) operator(<<) operator(()instance_variable(@returns) operator(?) operator(()instance_variable(@returns)operator([)integer(0)operator(])operator(.)ident(human_name)operator(()pre_constant(false)operator(\)) operator(+) stringoperator(\)) operator(:) stringoperator(\)) ident(fqn) operator(<<) stringcontent(()delimiter(")> ident(fqn) operator(<<) instance_variable(@expects)operator(.)ident(map)operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(human_name) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(if) instance_variable(@expects) ident(fqn) operator(<<) string ident(fqn) reserved(end) ident(private) reserved(def) method(compat_signature_entry)operator(()ident(entry)operator(\)) reserved(if) ident(entry)operator(.)ident(array?) operator([)ident(compat_signature_entry)operator(()ident(entry)operator(.)ident(element_type)operator(\))operator(]) reserved(else) reserved(if) ident(entry)operator(.)ident(spec)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator({)ident(entry)operator(.)ident(spec)operator(.)ident(keys)operator(.)ident(first) operator(=)operator(>) ident(entry)operator(.)ident(type_class)operator(}) reserved(else) ident(entry)operator(.)ident(type_class) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(class) class(ActionWebServiceError) operator(<) constant(StandardError) comment(# :nodoc:) reserved(end) comment(# An Action Web Service object implements a specified API.) comment(#) comment(# Used by controllers operating in _Delegated_ dispatching mode.) comment(#) comment(# ==== Example) comment(# ) comment(# class PersonService < ActionWebService::Base) comment(# web_service_api PersonAPI) comment(#) comment(# def find_person(criteria\)) comment(# Person.find_all [...]) comment(# end) comment(#) comment(# def delete_person(id\)) comment(# Person.find_by_id(id\).destroy) comment(# end) comment(# end) comment(#) comment(# class PersonAPI < ActionWebService::API::Base) comment(# api_method :find_person, :expects => [SearchCriteria], :returns => [[Person]]) comment(# api_method :delete_person, :expects => [:int]) comment(# end) comment(#) comment(# class SearchCriteria < ActionWebService::Struct) comment(# member :firstname, :string) comment(# member :lastname, :string) comment(# member :email, :string) comment(# end) reserved(class) class(Base) comment(# Action WebService subclasses should be reloaded by the dispatcher in Rails) comment(# when Dependencies.mechanism = :load.) ident(include) constant(Reloadable)operator(::)constant(Subclasses) comment(# Whether to report exceptions back to the caller in the protocol's exception) comment(# format) ident(class_inheritable_option) symbol(:web_service_exception_reporting)operator(,) pre_constant(true) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Casting) comment(# :nodoc:) reserved(class) class(CastingError) operator(<) constant(ActionWebServiceError) comment(# :nodoc:) reserved(end) comment(# Performs casting of arbitrary values into the correct types for the signature) reserved(class) class(BaseCaster) comment(# :nodoc:) reserved(def) method(initialize)operator(()ident(api_method)operator(\)) instance_variable(@api_method) operator(=) ident(api_method) reserved(end) comment(# Coerces the parameters in +params+ (an Enumerable\) into the types) comment(# this method expects) reserved(def) method(cast_expects)operator(()ident(params)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(cast_expects)operator(()instance_variable(@api_method)operator(,) ident(params)operator(\)) reserved(end) comment(# Coerces the given +return_value+ into the type returned by this) comment(# method) reserved(def) method(cast_returns)operator(()ident(return_value)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(cast_returns)operator(()instance_variable(@api_method)operator(,) ident(return_value)operator(\)) reserved(end) reserved(class) operator(<<) class(self) ident(include) constant(ActionWebService)operator(::)constant(SignatureTypes) reserved(def) method(cast_expects)operator(()ident(api_method)operator(,) ident(params)operator(\)) comment(# :nodoc:) reserved(return) operator([)operator(]) reserved(if) ident(api_method)operator(.)ident(expects)operator(.)ident(nil?) ident(api_method)operator(.)ident(expects)operator(.)ident(zip)operator(()ident(params)operator(\))operator(.)ident(map)operator({) operator(|)ident(type)operator(,) ident(param)operator(|) ident(cast)operator(()ident(param)operator(,) ident(type)operator(\)) operator(}) reserved(end) reserved(def) method(cast_returns)operator(()ident(api_method)operator(,) ident(return_value)operator(\)) comment(# :nodoc:) reserved(return) pre_constant(nil) reserved(if) ident(api_method)operator(.)ident(returns)operator(.)ident(nil?) ident(cast)operator(()ident(return_value)operator(,) ident(api_method)operator(.)ident(returns)operator([)integer(0)operator(])operator(\)) reserved(end) reserved(def) method(cast)operator(()ident(value)operator(,) ident(signature_type)operator(\)) comment(# :nodoc:) reserved(return) ident(value) reserved(if) ident(signature_type)operator(.)ident(nil?) comment(# signature.length != params.length) reserved(return) pre_constant(nil) reserved(if) ident(value)operator(.)ident(nil?) comment(# XMLRPC protocol doesn't support nil values. It uses false instead.) comment(# It should never happen for SOAP.) reserved(if) ident(signature_type)operator(.)ident(structured?) operator(&&) ident(value)operator(.)ident(equal?)operator(()pre_constant(false)operator(\)) reserved(return) pre_constant(nil) reserved(end) reserved(unless) ident(signature_type)operator(.)ident(array?) operator(||) ident(signature_type)operator(.)ident(structured?) reserved(return) ident(value) reserved(if) ident(canonical_type)operator(()ident(value)operator(.)ident(class)operator(\)) operator(==) ident(signature_type)operator(.)ident(type) reserved(end) reserved(if) ident(signature_type)operator(.)ident(array?) reserved(unless) ident(value)operator(.)ident(respond_to?)operator(()symbol(:entries)operator(\)) operator(&&) operator(!)ident(value)operator(.)ident(is_a?)operator(()constant(String)operator(\)) ident(raise) constant(CastingError)operator(,) stringcontent( into )inlinedelimiter(")> reserved(end) ident(value)operator(.)ident(entries)operator(.)ident(map) reserved(do) operator(|)ident(entry)operator(|) ident(cast)operator(()ident(entry)operator(,) ident(signature_type)operator(.)ident(element_type)operator(\)) reserved(end) reserved(elsif) ident(signature_type)operator(.)ident(structured?) ident(cast_to_structured_type)operator(()ident(value)operator(,) ident(signature_type)operator(\)) reserved(elsif) operator(!)ident(signature_type)operator(.)ident(custom?) ident(cast_base_type)operator(()ident(value)operator(,) ident(signature_type)operator(\)) reserved(end) reserved(end) reserved(def) method(cast_base_type)operator(()ident(value)operator(,) ident(signature_type)operator(\)) comment(# :nodoc:) comment(# This is a work-around for the fact that XML-RPC special-cases DateTime values into its own DateTime type) comment(# in order to support iso8601 dates. This doesn't work too well for us, so we'll convert it into a Time,) comment(# with the caveat that we won't be able to handle pre-1970 dates that are sent to us.) comment(# ) comment(# See http://dev.rubyonrails.com/ticket/2516) ident(value) operator(=) ident(value)operator(.)ident(to_time) reserved(if) ident(value)operator(.)ident(is_a?)operator(()constant(XMLRPC)operator(::)constant(DateTime)operator(\)) reserved(case) ident(signature_type)operator(.)ident(type) reserved(when) symbol(:int) ident(Integer)operator(()ident(value)operator(\)) reserved(when) symbol(:string) ident(value)operator(.)ident(to_s) reserved(when) symbol(:base64) reserved(if) ident(value)operator(.)ident(is_a?)operator(()constant(ActionWebService)operator(::)constant(Base64)operator(\)) ident(value) reserved(else) constant(ActionWebService)operator(::)constant(Base64)operator(.)ident(new)operator(()ident(value)operator(.)ident(to_s)operator(\)) reserved(end) reserved(when) symbol(:bool) reserved(return) pre_constant(false) reserved(if) ident(value)operator(.)ident(nil?) reserved(return) ident(value) reserved(if) ident(value) operator(==) pre_constant(true) operator(||) ident(value) operator(==) pre_constant(false) reserved(case) ident(value)operator(.)ident(to_s)operator(.)ident(downcase) reserved(when) stringoperator(,) stringoperator(,) stringoperator(,) string pre_constant(true) reserved(when) stringoperator(,) stringoperator(,) stringoperator(,) string pre_constant(false) reserved(else) ident(raise) constant(CastingError)operator(,) stringcontent( into Boolean)delimiter(")> reserved(end) reserved(when) symbol(:float) ident(Float)operator(()ident(value)operator(\)) reserved(when) symbol(:time) ident(value) operator(=) stringoperator(])inline_delimiter(})>content(/)inlineoperator(])inline_delimiter(})>content(/)inlineoperator(])inline_delimiter(})>content( )inlineoperator(])inline_delimiter(})>content(:)inlineoperator(])inline_delimiter(})>content(:)inlineoperator(])inline_delimiter(})>delimiter(")> reserved(if) ident(value)operator(.)ident(kind_of?)operator(()constant(Hash)operator(\)) constant(Time)operator(.)ident(parse)operator(()ident(value)operator(.)ident(to_s)operator(\)) reserved(when) symbol(:date) ident(value) operator(=) stringoperator(])inline_delimiter(})>content(/)inlineoperator(])inline_delimiter(})>content(/)inlineoperator(])inline_delimiter(})>delimiter(")> reserved(if) ident(value)operator(.)ident(kind_of?)operator(()constant(Hash)operator(\)) constant(Date)operator(.)ident(parse)operator(()ident(value)operator(.)ident(to_s)operator(\)) reserved(when) symbol(:datetime) ident(value) operator(=) stringoperator(])inline_delimiter(})>content(/)inlineoperator(])inline_delimiter(})>content(/)inlineoperator(])inline_delimiter(})>content( )inlineoperator(])inline_delimiter(})>content(:)inlineoperator(])inline_delimiter(})>content(:)inlineoperator(])inline_delimiter(})>delimiter(")> reserved(if) ident(value)operator(.)ident(kind_of?)operator(()constant(Hash)operator(\)) constant(DateTime)operator(.)ident(parse)operator(()ident(value)operator(.)ident(to_s)operator(\)) reserved(end) reserved(end) reserved(def) method(cast_to_structured_type)operator(()ident(value)operator(,) ident(signature_type)operator(\)) comment(# :nodoc:) ident(obj) operator(=) pre_constant(nil) ident(obj) operator(=) ident(value) reserved(if) ident(canonical_type)operator(()ident(value)operator(.)ident(class)operator(\)) operator(==) ident(canonical_type)operator(()ident(signature_type)operator(.)ident(type)operator(\)) ident(obj) operator(||=) ident(signature_type)operator(.)ident(type_class)operator(.)ident(new) reserved(if) ident(value)operator(.)ident(respond_to?)operator(()symbol(:each_pair)operator(\)) ident(klass) operator(=) ident(signature_type)operator(.)ident(type_class) ident(value)operator(.)ident(each_pair) reserved(do) operator(|)ident(name)operator(,) ident(val)operator(|) ident(type) operator(=) ident(klass)operator(.)ident(respond_to?)operator(()symbol(:member_type)operator(\)) operator(?) ident(klass)operator(.)ident(member_type)operator(()ident(name)operator(\)) operator(:) pre_constant(nil) ident(val) operator(=) ident(cast)operator(()ident(val)operator(,) ident(type)operator(\)) reserved(if) ident(type) comment(# See http://dev.rubyonrails.com/ticket/3567) ident(val) operator(=) ident(val)operator(.)ident(to_time) reserved(if) ident(val)operator(.)ident(is_a?)operator(()constant(XMLRPC)operator(::)constant(DateTime)operator(\)) ident(obj)operator(.)ident(__send__)operator(()stringcontent(=)delimiter(")>operator(,) ident(val)operator(\)) reserved(if) ident(obj)operator(.)ident(respond_to?)operator(()ident(name)operator(\)) reserved(end) reserved(elsif) ident(value)operator(.)ident(respond_to?)operator(()symbol(:attributes)operator(\)) ident(signature_type)operator(.)ident(each_member) reserved(do) operator(|)ident(name)operator(,) ident(type)operator(|) ident(val) operator(=) ident(value)operator(.)ident(__send__)operator(()ident(name)operator(\)) ident(obj)operator(.)ident(__send__)operator(()stringcontent(=)delimiter(")>operator(,) ident(cast)operator(()ident(val)operator(,) ident(type)operator(\))operator(\)) reserved(if) ident(obj)operator(.)ident(respond_to?)operator(()ident(name)operator(\)) reserved(end) reserved(else) ident(raise) constant(CastingError)operator(,) stringcontent( to )inlinedelimiter(")> reserved(end) ident(obj) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Client) comment(# :nodoc:) reserved(class) class(ClientError) operator(<) constant(StandardError) comment(# :nodoc:) reserved(end) reserved(class) class(Base) comment(# :nodoc:) reserved(def) method(initialize)operator(()ident(api)operator(,) ident(endpoint_uri)operator(\)) instance_variable(@api) operator(=) ident(api) instance_variable(@endpoint_uri) operator(=) ident(endpoint_uri) reserved(end) reserved(def) method(method_missing)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) comment(# :nodoc:) ident(call_name) operator(=) ident(method_name)operator(()ident(name)operator(\)) reserved(return) reserved(super)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) reserved(if) ident(call_name)operator(.)ident(nil?) pre_constant(self)operator(.)ident(perform_invocation)operator(()ident(call_name)operator(,) ident(args)operator(\)) reserved(end) ident(private) reserved(def) method(method_name)operator(()ident(name)operator(\)) reserved(if) instance_variable(@api)operator(.)ident(has_api_method?)operator(()ident(name)operator(.)ident(to_sym)operator(\)) ident(name)operator(.)ident(to_s) reserved(elsif) instance_variable(@api)operator(.)ident(has_public_api_method?)operator(()ident(name)operator(.)ident(to_s)operator(\)) instance_variable(@api)operator(.)ident(api_method_name)operator(()ident(name)operator(.)ident(to_s)operator(\))operator(.)ident(to_s) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Client) comment(# :nodoc:) comment(# Implements SOAP client support (using RPC encoding for the messages\).) comment(#) comment(# ==== Example Usage) comment(#) comment(# class PersonAPI < ActionWebService::API::Base) comment(# api_method :find_all, :returns => [[Person]]) comment(# end) comment(#) comment(# soap_client = ActionWebService::Client::Soap.new(PersonAPI, "http://..."\)) comment(# persons = soap_client.find_all) comment(#) reserved(class) class(Soap) operator(<) constant(Base) comment(# Creates a new web service client using the SOAP RPC protocol.) comment(#) comment(# +api+ must be an ActionWebService::API::Base derivative, and) comment(# +endpoint_uri+ must point at the relevant URL to which protocol requests) comment(# will be sent with HTTP POST.) comment(#) comment(# Valid options:) comment(# [:namespace] If the remote server has used a custom namespace to) comment(# declare its custom types, you can specify it here. This would) comment(# be the namespace declared with a [WebService(Namespace = "http://namespace"\)] attribute) comment(# in .NET, for example.) comment(# [:driver_options] If you want to supply any custom SOAP RPC driver) comment(# options, you can provide them as a Hash here) comment(#) comment(# The :driver_options option can be used to configure the backend SOAP) comment(# RPC driver. An example of configuring the SOAP backend to do) comment(# client-certificate authenticated SSL connections to the server:) comment(#) comment(# opts = {}) comment(# opts['protocol.http.ssl_config.verify_mode'] = 'OpenSSL::SSL::VERIFY_PEER') comment(# opts['protocol.http.ssl_config.client_cert'] = client_cert_file_path) comment(# opts['protocol.http.ssl_config.client_key'] = client_key_file_path) comment(# opts['protocol.http.ssl_config.ca_file'] = ca_cert_file_path) comment(# client = ActionWebService::Client::Soap.new(api, 'https://some/service', :driver_options => opts\)) reserved(def) method(initialize)operator(()ident(api)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) reserved(super)operator(()ident(api)operator(,) ident(endpoint_uri)operator(\)) instance_variable(@namespace) operator(=) ident(options)operator([)symbol(:namespace)operator(]) operator(||) string instance_variable(@driver_options) operator(=) ident(options)operator([)symbol(:driver_options)operator(]) operator(||) operator({)operator(}) instance_variable(@protocol) operator(=) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Soap)operator(::)constant(SoapProtocol)operator(.)ident(new) instance_variable(@namespace) instance_variable(@soap_action_base) operator(=) ident(options)operator([)symbol(:soap_action_base)operator(]) instance_variable(@soap_action_base) operator(||=) constant(URI)operator(.)ident(parse)operator(()ident(endpoint_uri)operator(\))operator(.)ident(path) instance_variable(@driver) operator(=) ident(create_soap_rpc_driver)operator(()ident(api)operator(,) ident(endpoint_uri)operator(\)) instance_variable(@driver_options)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(value)operator(|) instance_variable(@driver)operator(.)ident(options)operator([)ident(name)operator(.)ident(to_s)operator(]) operator(=) ident(value) reserved(end) reserved(end) ident(protected) reserved(def) method(perform_invocation)operator(()ident(method_name)operator(,) ident(args)operator(\)) ident(method) operator(=) instance_variable(@api)operator(.)ident(api_methods)operator([)ident(method_name)operator(.)ident(to_sym)operator(]) ident(args) operator(=) ident(method)operator(.)ident(cast_expects)operator(()ident(args)operator(.)ident(dup)operator(\)) reserved(rescue) ident(args) ident(return_value) operator(=) instance_variable(@driver)operator(.)ident(send)operator(()ident(method_name)operator(,) operator(*)ident(args)operator(\)) ident(method)operator(.)ident(cast_returns)operator(()ident(return_value)operator(.)ident(dup)operator(\)) reserved(rescue) ident(return_value) reserved(end) reserved(def) method(soap_action)operator(()ident(method_name)operator(\)) stringcontent(/)inlinedelimiter(")> reserved(end) ident(private) reserved(def) method(create_soap_rpc_driver)operator(()ident(api)operator(,) ident(endpoint_uri)operator(\)) instance_variable(@protocol)operator(.)ident(register_api)operator(()ident(api)operator(\)) ident(driver) operator(=) constant(SoapDriver)operator(.)ident(new)operator(()ident(endpoint_uri)operator(,) pre_constant(nil)operator(\)) ident(driver)operator(.)ident(mapping_registry) operator(=) instance_variable(@protocol)operator(.)ident(marshaler)operator(.)ident(registry) ident(api)operator(.)ident(api_methods)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(method)operator(|) ident(qname) operator(=) constant(XSD)operator(::)constant(QName)operator(.)ident(new)operator(()instance_variable(@namespace)operator(,) ident(method)operator(.)ident(public_name)operator(\)) ident(action) operator(=) ident(soap_action)operator(()ident(method)operator(.)ident(public_name)operator(\)) ident(expects) operator(=) ident(method)operator(.)ident(expects) ident(returns) operator(=) ident(method)operator(.)ident(returns) ident(param_def) operator(=) operator([)operator(]) reserved(if) ident(expects) ident(expects)operator(.)ident(each) reserved(do) operator(|)ident(type)operator(|) ident(type_binding) operator(=) instance_variable(@protocol)operator(.)ident(marshaler)operator(.)ident(lookup_type)operator(()ident(type)operator(\)) reserved(if) constant(SOAP)operator(::)constant(Version) operator(>)operator(=) string ident(param_def) operator(<<) operator([)stringoperator(,) ident(type)operator(.)ident(name)operator(.)ident(to_s)operator(,) operator([)ident(type_binding)operator(.)ident(type)operator(.)ident(type_class)operator(.)ident(to_s)operator(])operator(]) reserved(else) ident(param_def) operator(<<) operator([)stringoperator(,) ident(type)operator(.)ident(name)operator(,) ident(type_binding)operator(.)ident(mapping)operator(]) reserved(end) reserved(end) reserved(end) reserved(if) ident(returns) ident(type_binding) operator(=) instance_variable(@protocol)operator(.)ident(marshaler)operator(.)ident(lookup_type)operator(()ident(returns)operator([)integer(0)operator(])operator(\)) reserved(if) constant(SOAP)operator(::)constant(Version) operator(>)operator(=) string ident(param_def) operator(<<) operator([)stringoperator(,) stringoperator(,) operator([)ident(type_binding)operator(.)ident(type)operator(.)ident(type_class)operator(.)ident(to_s)operator(])operator(]) reserved(else) ident(param_def) operator(<<) operator([)stringoperator(,) stringoperator(,) ident(type_binding)operator(.)ident(mapping)operator(]) reserved(end) reserved(end) ident(driver)operator(.)ident(add_method)operator(()ident(qname)operator(,) ident(action)operator(,) ident(method)operator(.)ident(name)operator(.)ident(to_s)operator(,) ident(param_def)operator(\)) reserved(end) ident(driver) reserved(end) reserved(class) class(SoapDriver) operator(<) constant(SOAP)operator(::)constant(RPC)operator(::)constant(Driver) comment(# :nodoc:) reserved(def) method(add_method)operator(()ident(qname)operator(,) ident(soapaction)operator(,) ident(name)operator(,) ident(param_def)operator(\)) instance_variable(@proxy)operator(.)ident(add_rpc_method)operator(()ident(qname)operator(,) ident(soapaction)operator(,) ident(name)operator(,) ident(param_def)operator(\)) ident(add_rpc_method_interface)operator(()ident(name)operator(,) ident(param_def)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Client) comment(# :nodoc:) comment(# Implements XML-RPC client support) comment(#) comment(# ==== Example Usage) comment(#) comment(# class BloggerAPI < ActionWebService::API::Base) comment(# inflect_names false) comment(# api_method :getRecentPosts, :returns => [[Blog::Post]]) comment(# end) comment(#) comment(# blog = ActionWebService::Client::XmlRpc.new(BloggerAPI, "http://.../RPC", :handler_name => "blogger"\)) comment(# posts = blog.getRecentPosts) reserved(class) class(XmlRpc) operator(<) constant(Base) comment(# Creates a new web service client using the XML-RPC protocol.) comment(#) comment(# +api+ must be an ActionWebService::API::Base derivative, and) comment(# +endpoint_uri+ must point at the relevant URL to which protocol requests) comment(# will be sent with HTTP POST.) comment(#) comment(# Valid options:) comment(# [:handler_name] If the remote server defines its services inside special) comment(# handler (the Blogger API uses a "blogger" handler name for example\),) comment(# provide it here, or your method calls will fail) reserved(def) method(initialize)operator(()ident(api)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) instance_variable(@api) operator(=) ident(api) instance_variable(@handler_name) operator(=) ident(options)operator([)symbol(:handler_name)operator(]) instance_variable(@protocol) operator(=) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol)operator(.)ident(new) instance_variable(@client) operator(=) constant(XMLRPC)operator(::)constant(Client)operator(.)ident(new2)operator(()ident(endpoint_uri)operator(,) ident(options)operator([)symbol(:proxy)operator(])operator(,) ident(options)operator([)symbol(:timeout)operator(])operator(\)) reserved(end) ident(protected) reserved(def) method(perform_invocation)operator(()ident(method_name)operator(,) ident(args)operator(\)) ident(method) operator(=) instance_variable(@api)operator(.)ident(api_methods)operator([)ident(method_name)operator(.)ident(to_sym)operator(]) reserved(if) ident(method)operator(.)ident(expects) operator(&&) ident(method)operator(.)ident(expects)operator(.)ident(length) operator(!=) ident(args)operator(.)ident(length) ident(raise)operator(()constant(ArgumentError)operator(,) stringcontent(: wrong number of arguments ()inlinecontent( for )inlinecontent(\))delimiter(")>operator(\)) reserved(end) ident(args) operator(=) ident(method)operator(.)ident(cast_expects)operator(()ident(args)operator(.)ident(dup)operator(\)) reserved(rescue) ident(args) reserved(if) ident(method)operator(.)ident(expects) ident(method)operator(.)ident(expects)operator(.)ident(each_with_index)operator({) operator(|)ident(type)operator(,) ident(i)operator(|) ident(args)operator([)ident(i)operator(]) operator(=) instance_variable(@protocol)operator(.)ident(value_to_xmlrpc_wire_format)operator(()ident(args)operator([)ident(i)operator(])operator(,) ident(type)operator(\)) operator(}) reserved(end) ident(ok)operator(,) ident(return_value) operator(=) instance_variable(@client)operator(.)ident(call2)operator(()ident(public_name)operator(()ident(method_name)operator(\))operator(,) operator(*)ident(args)operator(\)) reserved(return) operator(()ident(method)operator(.)ident(cast_returns)operator(()ident(return_value)operator(.)ident(dup)operator(\)) reserved(rescue) ident(return_value)operator(\)) reserved(if) ident(ok) ident(raise)operator(()constant(ClientError)operator(,) stringcontent(: )inlinedelimiter(")>operator(\)) reserved(end) reserved(def) method(public_name)operator(()ident(method_name)operator(\)) ident(public_name) operator(=) instance_variable(@api)operator(.)ident(public_api_method_name)operator(()ident(method_name)operator(\)) instance_variable(@handler_name) operator(?) stringcontent(.)inlinedelimiter(")> operator(:) ident(public_name) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Container) comment(# :nodoc:) reserved(module) class(ActionController) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(# :nodoc:) reserved(class) operator(<<) class(base) ident(include) constant(ClassMethods) ident(alias_method) symbol(:inherited_without_api)operator(,) symbol(:inherited) ident(alias_method) symbol(:inherited)operator(,) symbol(:inherited_with_api) ident(alias_method) symbol(:web_service_api_without_require)operator(,) symbol(:web_service_api) ident(alias_method) symbol(:web_service_api)operator(,) symbol(:web_service_api_with_require) reserved(end) reserved(end) reserved(module) class(ClassMethods) comment(# Creates a client for accessing remote web services, using the) comment(# given +protocol+ to communicate with the +endpoint_uri+.) comment(#) comment(# ==== Example) comment(#) comment(# class MyController < ActionController::Base) comment(# web_client_api :blogger, :xmlrpc, "http://blogger.com/myblog/api/RPC2", :handler_name => 'blogger') comment(# end) comment(#) comment(# In this example, a protected method named blogger will) comment(# now exist on the controller, and calling it will return the) comment(# XML-RPC client object for working with that remote service.) comment(#) comment(# +options+ is the set of protocol client specific options (see) comment(# a protocol client class for details\).) comment(#) comment(# If your API definition does not exist on the load path with the) comment(# correct rules for it to be found using +name+, you can pass in) comment(# the API definition class via +options+, using a key of :api) reserved(def) method(web_client_api)operator(()ident(name)operator(,) ident(protocol)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) reserved(unless) ident(method_defined?)operator(()ident(name)operator(\)) ident(api_klass) operator(=) ident(options)operator(.)ident(delete)operator(()symbol(:api)operator(\)) operator(||) ident(require_web_service_api)operator(()ident(name)operator(\)) ident(class_eval) reserved(do) ident(define_method)operator(()ident(name)operator(\)) reserved(do) ident(create_web_service_client)operator(()ident(api_klass)operator(,) ident(protocol)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(\)) reserved(end) ident(protected) ident(name) reserved(end) reserved(end) reserved(end) reserved(def) method(web_service_api_with_require)operator(()ident(definition)operator(=)pre_constant(nil)operator(\)) comment(# :nodoc:) reserved(return) ident(web_service_api_without_require) reserved(if) ident(definition)operator(.)ident(nil?) reserved(case) ident(definition) reserved(when) constant(String)operator(,) constant(Symbol) ident(klass) operator(=) ident(require_web_service_api)operator(()ident(definition)operator(\)) reserved(else) ident(klass) operator(=) ident(definition) reserved(end) ident(web_service_api_without_require)operator(()ident(klass)operator(\)) reserved(end) reserved(def) method(require_web_service_api)operator(()ident(name)operator(\)) comment(# :nodoc:) reserved(case) ident(name) reserved(when) constant(String)operator(,) constant(Symbol) ident(file_name) operator(=) ident(name)operator(.)ident(to_s)operator(.)ident(underscore) operator(+) string ident(class_name) operator(=) ident(file_name)operator(.)ident(camelize) ident(class_names) operator(=) operator([)ident(class_name)operator(,) ident(class_name)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\))operator(]) reserved(begin) ident(require_dependency)operator(()ident(file_name)operator(\)) reserved(rescue) constant(LoadError) operator(=)operator(>) ident(load_error) ident(requiree) operator(=) regexpoperator(.)ident(match)operator(()ident(load_error)operator(\))operator(.)ident(to_a)operator([)integer(1)operator(]) ident(msg) operator(=) ident(requiree) operator(==) ident(file_name) operator(?) stringcontent(.rb)delimiter(")> operator(:) stringdelimiter(")> ident(raise) constant(LoadError)operator(.)ident(new)operator(()ident(msg)operator(\))operator(.)ident(copy_blame!)operator(()ident(load_error)operator(\)) reserved(end) ident(klass) operator(=) pre_constant(nil) ident(class_names)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(klass) operator(=) ident(name)operator(.)ident(constantize) reserved(rescue) pre_constant(nil) reserved(break) reserved(unless) ident(klass)operator(.)ident(nil?) reserved(end) reserved(unless) ident(klass) ident(raise)operator(()constant(NameError)operator(,) stringcontent( or )inlinecontent( found)delimiter(")>operator(\)) reserved(end) ident(klass) reserved(else) ident(raise)operator(()constant(ArgumentError)operator(,) stringoperator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(inherited_with_api)operator(()ident(child)operator(\)) ident(inherited_without_api)operator(()ident(child)operator(\)) reserved(begin) ident(child)operator(.)ident(web_service_api)operator(()ident(child)operator(.)ident(controller_path)operator(\)) reserved(rescue) constant(MissingSourceFile) operator(=)operator(>) ident(e) ident(raise) reserved(unless) ident(e)operator(.)ident(is_missing?)operator(()stringcontent(_api)delimiter(")>operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Container) comment(# :nodoc:) reserved(module) class(Delegated) comment(# :nodoc:) reserved(class) class(ContainerError) operator(<) constant(ActionWebServiceError) comment(# :nodoc:) reserved(end) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(# :nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ActionWebService)operator(::)constant(Container)operator(::)constant(Delegated)operator(::)constant(InstanceMethods)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(# Declares a web service that will provide access to the API of the given) comment(# +object+. +object+ must be an ActionWebService::Base derivative.) comment(#) comment(# Web service object creation can either be _immediate_, where the object) comment(# instance is given at class definition time, or _deferred_, where) comment(# object instantiation is delayed until request time.) comment(#) comment(# ==== Immediate web service object example) comment(#) comment(# class ApiController < ApplicationController) comment(# web_service_dispatching_mode :delegated) comment(#) comment(# web_service :person, PersonService.new) comment(# end) comment(#) comment(# For deferred instantiation, a block should be given instead of an) comment(# object instance. This block will be executed in controller instance) comment(# context, so it can rely on controller instance variables being present.) comment(#) comment(# ==== Deferred web service object example) comment(#) comment(# class ApiController < ApplicationController) comment(# web_service_dispatching_mode :delegated) comment(#) comment(# web_service(:person\) { PersonService.new(request.env\) }) comment(# end) reserved(def) method(web_service)operator(()ident(name)operator(,) ident(object)operator(=)pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) reserved(if) operator(()ident(object) operator(&&) ident(block_given?)operator(\)) operator(||) operator(()ident(object)operator(.)ident(nil?) operator(&&) ident(block)operator(.)ident(nil?)operator(\)) ident(raise)operator(()constant(ContainerError)operator(,) stringoperator(\)) reserved(end) ident(name) operator(=) ident(name)operator(.)ident(to_sym) reserved(if) ident(block_given?) ident(info) operator(=) operator({) ident(name) operator(=)operator(>) operator({) symbol(:block) operator(=)operator(>) ident(block) operator(}) operator(}) reserved(else) ident(info) operator(=) operator({) ident(name) operator(=)operator(>) operator({) symbol(:object) operator(=)operator(>) ident(object) operator(}) operator(}) reserved(end) ident(write_inheritable_hash)operator(()stringoperator(,) ident(info)operator(\)) ident(call_web_service_definition_callbacks)operator(()pre_constant(self)operator(,) ident(name)operator(,) ident(info)operator(\)) reserved(end) comment(# Whether this service contains a service with the given +name+) reserved(def) method(has_web_service?)operator(()ident(name)operator(\)) ident(web_services)operator(.)ident(has_key?)operator(()ident(name)operator(.)ident(to_sym)operator(\)) reserved(end) reserved(def) method(web_services) comment(# :nodoc:) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator({)operator(}) reserved(end) reserved(def) method(add_web_service_definition_callback)operator(()operator(&)ident(block)operator(\)) comment(# :nodoc:) ident(write_inheritable_array)operator(()stringoperator(,) operator([)ident(block)operator(])operator(\)) reserved(end) ident(private) reserved(def) method(call_web_service_definition_callbacks)operator(()ident(container_class)operator(,) ident(web_service_name)operator(,) ident(service_info)operator(\)) operator(()ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator([)operator(])operator(\))operator(.)ident(each) reserved(do) operator(|)ident(block)operator(|) ident(block)operator(.)ident(call)operator(()ident(container_class)operator(,) ident(web_service_name)operator(,) ident(service_info)operator(\)) reserved(end) reserved(end) reserved(end) reserved(module) class(InstanceMethods) comment(# :nodoc:) reserved(def) method(web_service_object)operator(()ident(web_service_name)operator(\)) ident(info) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(web_services)operator([)ident(web_service_name)operator(.)ident(to_sym)operator(]) reserved(unless) ident(info) ident(raise)operator(()constant(ContainerError)operator(,) stringcontent(')delimiter(")>operator(\)) reserved(end) ident(service) operator(=) ident(info)operator([)symbol(:block)operator(]) ident(service) operator(?) pre_constant(self)operator(.)ident(instance_eval)operator(()operator(&)ident(service)operator(\)) operator(:) ident(info)operator([)symbol(:object)operator(]) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Container) comment(# :nodoc:) reserved(module) class(Direct) comment(# :nodoc:) reserved(class) class(ContainerError) operator(<) constant(ActionWebServiceError) comment(# :nodoc:) reserved(end) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(# :nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(# Attaches ActionWebService API +definition+ to the calling class.) comment(#) comment(# Action Controllers can have a default associated API, removing the need) comment(# to call this method if you follow the Action Web Service naming conventions.) comment(#) comment(# A controller with a class name of GoogleSearchController will) comment(# implicitly load app/apis/google_search_api.rb, and expect the) comment(# API definition class to be named GoogleSearchAPI or) comment(# GoogleSearchApi.) comment(#) comment(# ==== Service class example) comment(#) comment(# class MyService < ActionWebService::Base) comment(# web_service_api MyAPI) comment(# end) comment(#) comment(# class MyAPI < ActionWebService::API::Base) comment(# ...) comment(# end) comment(#) comment(# ==== Controller class example) comment(#) comment(# class MyController < ActionController::Base) comment(# web_service_api MyAPI) comment(# end) comment(#) comment(# class MyAPI < ActionWebService::API::Base) comment(# ...) comment(# end) reserved(def) method(web_service_api)operator(()ident(definition)operator(=)pre_constant(nil)operator(\)) reserved(if) ident(definition)operator(.)ident(nil?) ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(else) reserved(if) ident(definition)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) ident(raise)operator(()constant(ContainerError)operator(,) stringoperator(\)) reserved(end) reserved(unless) ident(definition)operator(.)ident(respond_to?)operator(()symbol(:ancestors)operator(\)) operator(&&) ident(definition)operator(.)ident(ancestors)operator(.)ident(include?)operator(()constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base)operator(\)) ident(raise)operator(()constant(ContainerError)operator(,) stringcontent( is not a valid API definition)delimiter(")>operator(\)) reserved(end) ident(write_inheritable_attribute)operator(()stringoperator(,) ident(definition)operator(\)) ident(call_web_service_api_callbacks)operator(()pre_constant(self)operator(,) ident(definition)operator(\)) reserved(end) reserved(end) reserved(def) method(add_web_service_api_callback)operator(()operator(&)ident(block)operator(\)) comment(# :nodoc:) ident(write_inheritable_array)operator(()stringoperator(,) operator([)ident(block)operator(])operator(\)) reserved(end) ident(private) reserved(def) method(call_web_service_api_callbacks)operator(()ident(container_class)operator(,) ident(definition)operator(\)) operator(()ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator([)operator(])operator(\))operator(.)ident(each) reserved(do) operator(|)ident(block)operator(|) ident(block)operator(.)ident(call)operator(()ident(container_class)operator(,) ident(definition)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Dispatcher) comment(# :nodoc:) reserved(class) class(DispatcherError) operator(<) constant(ActionWebService)operator(::)constant(ActionWebServiceError) comment(# :nodoc:) reserved(end) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(# :nodoc:) reserved(super) ident(base)operator(.)ident(class_inheritable_option)operator(()symbol(:web_service_dispatching_mode)operator(,) symbol(:direct)operator(\)) ident(base)operator(.)ident(class_inheritable_option)operator(()symbol(:web_service_exception_reporting)operator(,) pre_constant(true)operator(\)) ident(base)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ActionWebService)operator(::)constant(Dispatcher)operator(::)constant(InstanceMethods)operator(\)) reserved(end) reserved(module) class(InstanceMethods) comment(# :nodoc:) ident(private) reserved(def) method(invoke_web_service_request)operator(()ident(protocol_request)operator(\)) ident(invocation) operator(=) ident(web_service_invocation)operator(()ident(protocol_request)operator(\)) reserved(if) ident(invocation)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) operator(&&) ident(protocol_request)operator(.)ident(protocol)operator(.)ident(is_a?)operator(()constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol)operator(\)) ident(xmlrpc_multicall_invoke)operator(()ident(invocation)operator(\)) reserved(else) ident(web_service_invoke)operator(()ident(invocation)operator(\)) reserved(end) reserved(end) reserved(def) method(web_service_direct_invoke)operator(()ident(invocation)operator(\)) instance_variable(@method_params) operator(=) ident(invocation)operator(.)ident(method_ordered_params) ident(arity) operator(=) ident(method)operator(()ident(invocation)operator(.)ident(api_method)operator(.)ident(name)operator(\))operator(.)ident(arity) reserved(rescue) integer(0) reserved(if) ident(arity) operator(<) integer(0) operator(||) ident(arity) operator(>) integer(0) ident(params) operator(=) instance_variable(@method_params) reserved(else) ident(params) operator(=) operator([)operator(]) reserved(end) ident(web_service_filtered_invoke)operator(()ident(invocation)operator(,) ident(params)operator(\)) reserved(end) reserved(def) method(web_service_delegated_invoke)operator(()ident(invocation)operator(\)) ident(web_service_filtered_invoke)operator(()ident(invocation)operator(,) ident(invocation)operator(.)ident(method_ordered_params)operator(\)) reserved(end) reserved(def) method(web_service_filtered_invoke)operator(()ident(invocation)operator(,) ident(params)operator(\)) ident(cancellation_reason) operator(=) pre_constant(nil) ident(return_value) operator(=) ident(invocation)operator(.)ident(service)operator(.)ident(perform_invocation)operator(()ident(invocation)operator(.)ident(api_method)operator(.)ident(name)operator(,) ident(params)operator(\)) reserved(do) operator(|)ident(x)operator(|) ident(cancellation_reason) operator(=) ident(x) reserved(end) reserved(if) ident(cancellation_reason) ident(raise)operator(()constant(DispatcherError)operator(,) stringdelimiter(")>operator(\)) reserved(end) ident(return_value) reserved(end) reserved(def) method(web_service_invoke)operator(()ident(invocation)operator(\)) reserved(case) ident(web_service_dispatching_mode) reserved(when) symbol(:direct) ident(return_value) operator(=) ident(web_service_direct_invoke)operator(()ident(invocation)operator(\)) reserved(when) symbol(:delegated)operator(,) symbol(:layered) ident(return_value) operator(=) ident(web_service_delegated_invoke)operator(()ident(invocation)operator(\)) reserved(end) ident(web_service_create_response)operator(()ident(invocation)operator(.)ident(protocol)operator(,) ident(invocation)operator(.)ident(protocol_options)operator(,) ident(invocation)operator(.)ident(api)operator(,) ident(invocation)operator(.)ident(api_method)operator(,) ident(return_value)operator(\)) reserved(end) reserved(def) method(xmlrpc_multicall_invoke)operator(()ident(invocations)operator(\)) ident(responses) operator(=) operator([)operator(]) ident(invocations)operator(.)ident(each) reserved(do) operator(|)ident(invocation)operator(|) reserved(if) ident(invocation)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(responses) operator(<<) ident(invocation) reserved(next) reserved(end) reserved(begin) reserved(case) ident(web_service_dispatching_mode) reserved(when) symbol(:direct) ident(return_value) operator(=) ident(web_service_direct_invoke)operator(()ident(invocation)operator(\)) reserved(when) symbol(:delegated)operator(,) symbol(:layered) ident(return_value) operator(=) ident(web_service_delegated_invoke)operator(()ident(invocation)operator(\)) reserved(end) ident(api_method) operator(=) ident(invocation)operator(.)ident(api_method) reserved(if) ident(invocation)operator(.)ident(api)operator(.)ident(has_api_method?)operator(()ident(api_method)operator(.)ident(name)operator(\)) ident(return_value) operator(=) ident(api_method)operator(.)ident(cast_returns)operator(()ident(return_value)operator(\)) reserved(end) ident(responses) operator(<<) operator([)ident(return_value)operator(]) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(responses) operator(<<) operator({) string operator(=)operator(>) integer(3)operator(,) string operator(=)operator(>) ident(e)operator(.)ident(message) operator(}) reserved(end) reserved(end) ident(invocation) operator(=) ident(invocations)operator([)integer(0)operator(]) ident(invocation)operator(.)ident(protocol)operator(.)ident(encode_response)operator(()stringoperator(,) ident(responses)operator(,) pre_constant(nil)operator(,) ident(invocation)operator(.)ident(protocol_options)operator(\)) reserved(end) reserved(def) method(web_service_invocation)operator(()ident(request)operator(,) ident(level) operator(=) integer(0)operator(\)) ident(public_method_name) operator(=) ident(request)operator(.)ident(method_name) ident(invocation) operator(=) constant(Invocation)operator(.)ident(new) ident(invocation)operator(.)ident(protocol) operator(=) ident(request)operator(.)ident(protocol) ident(invocation)operator(.)ident(protocol_options) operator(=) ident(request)operator(.)ident(protocol_options) ident(invocation)operator(.)ident(service_name) operator(=) ident(request)operator(.)ident(service_name) reserved(if) ident(web_service_dispatching_mode) operator(==) symbol(:layered) reserved(case) ident(invocation)operator(.)ident(protocol) reserved(when) constant(Protocol)operator(::)constant(Soap)operator(::)constant(SoapProtocol) ident(soap_action) operator(=) ident(request)operator(.)ident(protocol_options)operator([)symbol(:soap_action)operator(]) reserved(if) ident(soap_action) operator(&&) ident(soap_action) operator(=)operator(~) regexp ident(invocation)operator(.)ident(service_name) operator(=) global_variable($1) reserved(end) reserved(when) constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol) reserved(if) ident(request)operator(.)ident(method_name) operator(=)operator(~) regexp ident(public_method_name) operator(=) global_variable($2) ident(invocation)operator(.)ident(service_name) operator(=) global_variable($1) reserved(end) reserved(end) reserved(end) reserved(if) ident(invocation)operator(.)ident(protocol)operator(.)ident(is_a?) constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol) reserved(if) ident(public_method_name) operator(==) string operator(&&) ident(invocation)operator(.)ident(service_name) operator(==) string reserved(if) ident(level) operator(>) integer(0) ident(raise)operator(()constant(DispatcherError)operator(,) stringoperator(\)) reserved(end) ident(multicall) operator(=) ident(request)operator(.)ident(method_params)operator(.)ident(dup) reserved(unless) ident(multicall)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) operator(&&) ident(multicall)operator([)integer(0)operator(])operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(raise)operator(()constant(DispatcherError)operator(,) stringoperator(\)) reserved(end) ident(multicall) operator(=) ident(multicall)operator([)integer(0)operator(]) reserved(return) ident(multicall)operator(.)ident(map) reserved(do) operator(|)ident(item)operator(|) ident(raise)operator(()constant(DispatcherError)operator(,) stringoperator(\)) reserved(unless) ident(item)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(raise)operator(()constant(DispatcherError)operator(,) stringoperator(\)) reserved(unless) ident(item)operator(.)ident(has_key?)operator(()stringoperator(\)) ident(method_name) operator(=) ident(item)operator([)stringoperator(]) ident(params) operator(=) ident(item)operator(.)ident(has_key?)operator(()stringoperator(\)) operator(?) ident(item)operator([)stringoperator(]) operator(:) operator([)operator(]) ident(multicall_request) operator(=) ident(request)operator(.)ident(dup) ident(multicall_request)operator(.)ident(method_name) operator(=) ident(method_name) ident(multicall_request)operator(.)ident(method_params) operator(=) ident(params) reserved(begin) ident(web_service_invocation)operator(()ident(multicall_request)operator(,) ident(level) operator(+) integer(1)operator(\)) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) operator({)string operator(=)operator(>) integer(4)operator(,) string operator(=)operator(>) ident(e)operator(.)ident(message)operator(}) reserved(end) reserved(end) reserved(end) reserved(end) reserved(case) ident(web_service_dispatching_mode) reserved(when) symbol(:direct) ident(invocation)operator(.)ident(api) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(web_service_api) ident(invocation)operator(.)ident(service) operator(=) pre_constant(self) reserved(when) symbol(:delegated)operator(,) symbol(:layered) ident(invocation)operator(.)ident(service) operator(=) ident(web_service_object)operator(()ident(invocation)operator(.)ident(service_name)operator(\)) ident(invocation)operator(.)ident(api) operator(=) ident(invocation)operator(.)ident(service)operator(.)ident(class)operator(.)ident(web_service_api) reserved(end) reserved(if) ident(invocation)operator(.)ident(api)operator(.)ident(nil?) ident(raise)operator(()constant(DispatcherError)operator(,) stringdelimiter(")>operator(\)) reserved(end) ident(invocation)operator(.)ident(protocol)operator(.)ident(register_api)operator(()ident(invocation)operator(.)ident(api)operator(\)) ident(request)operator(.)ident(api) operator(=) ident(invocation)operator(.)ident(api) reserved(if) ident(invocation)operator(.)ident(api)operator(.)ident(has_public_api_method?)operator(()ident(public_method_name)operator(\)) ident(invocation)operator(.)ident(api_method) operator(=) ident(invocation)operator(.)ident(api)operator(.)ident(public_api_method_instance)operator(()ident(public_method_name)operator(\)) reserved(else) reserved(if) ident(invocation)operator(.)ident(api)operator(.)ident(default_api_method)operator(.)ident(nil?) ident(raise)operator(()constant(DispatcherError)operator(,) stringcontent(' on API )inlinedelimiter(")>operator(\)) reserved(else) ident(invocation)operator(.)ident(api_method) operator(=) ident(invocation)operator(.)ident(api)operator(.)ident(default_api_method_instance) reserved(end) reserved(end) reserved(if) ident(invocation)operator(.)ident(service)operator(.)ident(nil?) ident(raise)operator(()constant(DispatcherError)operator(,) stringdelimiter(")>operator(\)) reserved(end) reserved(unless) ident(invocation)operator(.)ident(service)operator(.)ident(respond_to?)operator(()ident(invocation)operator(.)ident(api_method)operator(.)ident(name)operator(\)) ident(raise)operator(()constant(DispatcherError)operator(,) stringcontent(' on API )inlinecontent( ()inlinecontent(\))delimiter(")>operator(\)) reserved(end) ident(request)operator(.)ident(api_method) operator(=) ident(invocation)operator(.)ident(api_method) reserved(begin) ident(invocation)operator(.)ident(method_ordered_params) operator(=) ident(invocation)operator(.)ident(api_method)operator(.)ident(cast_expects)operator(()ident(request)operator(.)ident(method_params)operator(.)ident(dup)operator(\)) reserved(rescue) ident(logger)operator(.)ident(warn) string reserved(unless) ident(logger)operator(.)ident(nil?) ident(invocation)operator(.)ident(method_ordered_params) operator(=) ident(request)operator(.)ident(method_params) reserved(end) ident(request)operator(.)ident(method_params) operator(=) ident(invocation)operator(.)ident(method_ordered_params) ident(invocation)operator(.)ident(method_named_params) operator(=) operator({)operator(}) ident(invocation)operator(.)ident(api_method)operator(.)ident(param_names)operator(.)ident(inject)operator(()integer(0)operator(\)) reserved(do) operator(|)ident(m)operator(,) ident(n)operator(|) ident(invocation)operator(.)ident(method_named_params)operator([)ident(n)operator(]) operator(=) ident(invocation)operator(.)ident(method_ordered_params)operator([)ident(m)operator(]) ident(m) operator(+) integer(1) reserved(end) ident(invocation) reserved(end) reserved(def) method(web_service_create_response)operator(()ident(protocol)operator(,) ident(protocol_options)operator(,) ident(api)operator(,) ident(api_method)operator(,) ident(return_value)operator(\)) reserved(if) ident(api)operator(.)ident(has_api_method?)operator(()ident(api_method)operator(.)ident(name)operator(\)) ident(return_type) operator(=) ident(api_method)operator(.)ident(returns) operator(?) ident(api_method)operator(.)ident(returns)operator([)integer(0)operator(]) operator(:) pre_constant(nil) ident(return_value) operator(=) ident(api_method)operator(.)ident(cast_returns)operator(()ident(return_value)operator(\)) reserved(else) ident(return_type) operator(=) constant(ActionWebService)operator(::)constant(SignatureTypes)operator(.)ident(canonical_signature_entry)operator(()ident(return_value)operator(.)ident(class)operator(,) integer(0)operator(\)) reserved(end) ident(protocol)operator(.)ident(encode_response)operator(()ident(api_method)operator(.)ident(public_name) operator(+) stringoperator(,) ident(return_value)operator(,) ident(return_type)operator(,) ident(protocol_options)operator(\)) reserved(end) reserved(class) class(Invocation) comment(# :nodoc:) ident(attr_accessor) symbol(:protocol) ident(attr_accessor) symbol(:protocol_options) ident(attr_accessor) symbol(:service_name) ident(attr_accessor) symbol(:api) ident(attr_accessor) symbol(:api_method) ident(attr_accessor) symbol(:method_ordered_params) ident(attr_accessor) symbol(:method_named_params) ident(attr_accessor) symbol(:service) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Dispatcher) comment(# :nodoc:) reserved(module) class(ActionController) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(# :nodoc:) reserved(super) reserved(class) operator(<<) class(base) ident(include) constant(ClassMethods) ident(alias_method) symbol(:inherited_without_action_controller)operator(,) symbol(:inherited) ident(alias_method) symbol(:inherited)operator(,) symbol(:inherited_with_action_controller) reserved(end) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:web_service_direct_invoke_without_controller)operator(,) symbol(:web_service_direct_invoke) reserved(end) ident(base)operator(.)ident(add_web_service_api_callback) reserved(do) operator(|)ident(klass)operator(,) ident(api)operator(|) reserved(if) ident(klass)operator(.)ident(web_service_dispatching_mode) operator(==) symbol(:direct) ident(klass)operator(.)ident(class_eval) string reserved(end) reserved(end) ident(base)operator(.)ident(add_web_service_definition_callback) reserved(do) operator(|)ident(klass)operator(,) ident(name)operator(,) ident(info)operator(|) reserved(if) ident(klass)operator(.)ident(web_service_dispatching_mode) operator(==) symbol(:delegated) ident(klass)operator(.)ident(class_eval) stringcontent(; dispatch_web_service_request; end)delimiter(")> reserved(elsif) ident(klass)operator(.)ident(web_service_dispatching_mode) operator(==) symbol(:layered) ident(klass)operator(.)ident(class_eval) string reserved(end) reserved(end) ident(base)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ActionWebService)operator(::)constant(Dispatcher)operator(::)constant(ActionController)operator(::)constant(InstanceMethods)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(# :nodoc:) reserved(def) method(inherited_with_action_controller)operator(()ident(child)operator(\)) ident(inherited_without_action_controller)operator(()ident(child)operator(\)) ident(child)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ActionWebService)operator(::)constant(Dispatcher)operator(::)constant(ActionController)operator(::)constant(WsdlAction)operator(\)) reserved(end) reserved(end) reserved(module) class(InstanceMethods) comment(# :nodoc:) ident(private) reserved(def) method(dispatch_web_service_request) ident(exception) operator(=) pre_constant(nil) reserved(begin) ident(ws_request) operator(=) ident(discover_web_service_request)operator(()ident(request)operator(\)) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(exception) operator(=) ident(e) reserved(end) reserved(if) ident(ws_request) ident(ws_response) operator(=) pre_constant(nil) ident(exception) operator(=) pre_constant(nil) ident(bm) operator(=) constant(Benchmark)operator(.)ident(measure) reserved(do) reserved(begin) ident(ws_response) operator(=) ident(invoke_web_service_request)operator(()ident(ws_request)operator(\)) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(exception) operator(=) ident(e) reserved(end) reserved(end) ident(log_request)operator(()ident(ws_request)operator(,) ident(request)operator(.)ident(raw_post)operator(\)) reserved(if) ident(exception) ident(log_error)operator(()ident(exception)operator(\)) reserved(unless) ident(logger)operator(.)ident(nil?) ident(send_web_service_error_response)operator(()ident(ws_request)operator(,) ident(exception)operator(\)) reserved(else) ident(send_web_service_response)operator(()ident(ws_response)operator(,) ident(bm)operator(.)ident(real)operator(\)) reserved(end) reserved(else) ident(exception) operator(||=) constant(DispatcherError)operator(.)ident(new)operator(()stringoperator(\)) ident(log_error)operator(()ident(exception)operator(\)) reserved(unless) ident(logger)operator(.)ident(nil?) ident(send_web_service_error_response)operator(()ident(ws_request)operator(,) ident(exception)operator(\)) reserved(end) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(log_error)operator(()ident(e)operator(\)) reserved(unless) ident(logger)operator(.)ident(nil?) ident(send_web_service_error_response)operator(()ident(ws_request)operator(,) ident(e)operator(\)) reserved(end) reserved(def) method(send_web_service_response)operator(()ident(ws_response)operator(,) ident(elapsed)operator(=)pre_constant(nil)operator(\)) ident(log_response)operator(()ident(ws_response)operator(,) ident(elapsed)operator(\)) ident(options) operator(=) operator({) symbol(:type) operator(=)operator(>) ident(ws_response)operator(.)ident(content_type)operator(,) symbol(:disposition) operator(=)operator(>) string operator(}) ident(send_data)operator(()ident(ws_response)operator(.)ident(body)operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(send_web_service_error_response)operator(()ident(ws_request)operator(,) ident(exception)operator(\)) reserved(if) ident(ws_request) reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(web_service_exception_reporting) ident(exception) operator(=) constant(DispatcherError)operator(.)ident(new)operator(()stringoperator(\)) reserved(end) ident(api_method) operator(=) ident(ws_request)operator(.)ident(api_method) ident(public_method_name) operator(=) ident(api_method) operator(?) ident(api_method)operator(.)ident(public_name) operator(:) ident(ws_request)operator(.)ident(method_name) ident(return_type) operator(=) constant(ActionWebService)operator(::)constant(SignatureTypes)operator(.)ident(canonical_signature_entry)operator(()constant(Exception)operator(,) integer(0)operator(\)) ident(ws_response) operator(=) ident(ws_request)operator(.)ident(protocol)operator(.)ident(encode_response)operator(()ident(public_method_name) operator(+) stringoperator(,) ident(exception)operator(,) ident(return_type)operator(,) ident(ws_request)operator(.)ident(protocol_options)operator(\)) ident(send_web_service_response)operator(()ident(ws_response)operator(\)) reserved(else) reserved(if) pre_constant(self)operator(.)ident(class)operator(.)ident(web_service_exception_reporting) ident(message) operator(=) ident(exception)operator(.)ident(message) ident(backtrace) operator(=) stringoperator(\))inline_delimiter(})>delimiter(")> reserved(else) ident(message) operator(=) string ident(backtrace) operator(=) string reserved(end) ident(render_text)operator(()stringinlinedelimiter(")>operator(,) stringoperator(\)) reserved(end) reserved(end) reserved(def) method(web_service_direct_invoke)operator(()ident(invocation)operator(\)) ident(invocation)operator(.)ident(method_named_params)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(value)operator(|) ident(params)operator([)ident(name)operator(]) operator(=) ident(value) reserved(end) ident(params)operator([)stringoperator(]) operator(=) ident(invocation)operator(.)ident(api_method)operator(.)ident(name)operator(.)ident(to_s) reserved(if) ident(before_action) operator(==) pre_constant(false) ident(raise)operator(()constant(DispatcherError)operator(,) stringoperator(\)) reserved(end) ident(return_value) operator(=) ident(web_service_direct_invoke_without_controller)operator(()ident(invocation)operator(\)) ident(after_action) ident(return_value) reserved(end) reserved(def) method(log_request)operator(()ident(ws_request)operator(,) ident(body)operator(\)) reserved(unless) ident(logger)operator(.)ident(nil?) ident(name) operator(=) ident(ws_request)operator(.)ident(method_name) ident(api_method) operator(=) ident(ws_request)operator(.)ident(api_method) ident(params) operator(=) ident(ws_request)operator(.)ident(method_params) reserved(if) ident(api_method) operator(&&) ident(api_method)operator(.)ident(expects) ident(params) operator(=) ident(api_method)operator(.)ident(expects)operator(.)ident(zip)operator(()ident(params)operator(\))operator(.)ident(map)operator({) operator(|)ident(type)operator(,) ident(param)operator(|) stringcontent(=>)inlinedelimiter(")> operator(}) reserved(else) ident(params) operator(=) ident(params)operator(.)ident(map)operator({) operator(|)ident(param)operator(|) ident(param)operator(.)ident(inspect) operator(}) reserved(end) ident(service) operator(=) ident(ws_request)operator(.)ident(service_name) ident(logger)operator(.)ident(debug)operator(()stringcontent(()inlineoperator(\))inline_delimiter(})>content(\) Entrypoint: )inlinedelimiter(")>operator(\)) ident(logger)operator(.)ident(debug)operator(()ident(indent)operator(()ident(body)operator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(log_response)operator(()ident(ws_response)operator(,) ident(elapsed)operator(=)pre_constant(nil)operator(\)) reserved(unless) ident(logger)operator(.)ident(nil?) ident(elapsed) operator(=) operator(()ident(elapsed) operator(?) string operator(%) ident(elapsed) operator(:) stringoperator(\)) ident(logger)operator(.)ident(debug)operator(()string operator(+) ident(elapsed) operator(+) string )inlinedelimiter(")>operator(\)) ident(logger)operator(.)ident(debug)operator(()ident(indent)operator(()ident(ws_response)operator(.)ident(body)operator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(indent)operator(()ident(body)operator(\)) ident(body)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(map)operator({)operator(|)ident(x)operator(|) stringdelimiter(")>operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(module) class(WsdlAction) comment(# :nodoc:) constant(XsdNs) operator(=) string constant(WsdlNs) operator(=) string constant(SoapNs) operator(=) string constant(SoapEncodingNs) operator(=) string constant(SoapHttpTransport) operator(=) string reserved(def) method(wsdl) reserved(case) ident(request)operator(.)ident(method) reserved(when) symbol(:get) reserved(begin) ident(options) operator(=) operator({) symbol(:type) operator(=)operator(>) stringoperator(,) symbol(:disposition) operator(=)operator(>) string operator(}) ident(send_data)operator(()ident(to_wsdl)operator(,) ident(options)operator(\)) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(log_error)operator(()ident(e)operator(\)) reserved(unless) ident(logger)operator(.)ident(nil?) reserved(end) reserved(when) symbol(:post) ident(render_text)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(base_uri) ident(host) operator(=) ident(request)operator(.)ident(env)operator([)stringoperator(]) operator(||) ident(request)operator(.)ident(env)operator([)stringoperator(]) operator(||) string ident(relative_url_root) operator(=) ident(request)operator(.)ident(relative_url_root) ident(scheme) operator(=) ident(request)operator(.)ident(ssl?) operator(?) string operator(:) string string operator(%) operator([)ident(scheme)operator(,) ident(host)operator(,) ident(relative_url_root)operator(,) pre_constant(self)operator(.)ident(class)operator(.)ident(controller_path)operator(]) reserved(end) reserved(def) method(to_wsdl) ident(xml) operator(=) string ident(dispatching_mode) operator(=) ident(web_service_dispatching_mode) ident(global_service_name) operator(=) ident(wsdl_service_name) ident(namespace) operator(=) ident(wsdl_namespace) operator(||) string ident(soap_action_base) operator(=) stringdelimiter(")> ident(marshaler) operator(=) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Soap)operator(::)constant(SoapMarshaler)operator(.)ident(new)operator(()ident(namespace)operator(\)) ident(apis) operator(=) operator({)operator(}) reserved(case) ident(dispatching_mode) reserved(when) symbol(:direct) ident(api) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(web_service_api) ident(web_service_name) operator(=) ident(controller_class_name)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(underscore) ident(apis)operator([)ident(web_service_name)operator(]) operator(=) operator([)ident(api)operator(,) ident(register_api)operator(()ident(api)operator(,) ident(marshaler)operator(\))operator(]) reserved(when) symbol(:delegated)operator(,) symbol(:layered) pre_constant(self)operator(.)ident(class)operator(.)ident(web_services)operator(.)ident(each) reserved(do) operator(|)ident(web_service_name)operator(,) ident(info)operator(|) ident(service) operator(=) ident(web_service_object)operator(()ident(web_service_name)operator(\)) ident(api) operator(=) ident(service)operator(.)ident(class)operator(.)ident(web_service_api) ident(apis)operator([)ident(web_service_name)operator(]) operator(=) operator([)ident(api)operator(,) ident(register_api)operator(()ident(api)operator(,) ident(marshaler)operator(\))operator(]) reserved(end) reserved(end) ident(custom_types) operator(=) operator([)operator(]) ident(apis)operator(.)ident(values)operator(.)ident(each) reserved(do) operator(|)ident(api)operator(,) ident(bindings)operator(|) ident(bindings)operator(.)ident(each) reserved(do) operator(|)ident(b)operator(|) ident(custom_types) operator(<<) ident(b) reserved(unless) ident(custom_types)operator(.)ident(include?)operator(()ident(b)operator(\)) reserved(end) reserved(end) ident(xm) operator(=) constant(Builder)operator(::)constant(XmlMarkup)operator(.)ident(new)operator(()symbol(:target) operator(=)operator(>) ident(xml)operator(,) symbol(:indent) operator(=)operator(>) integer(2)operator(\)) ident(xm)operator(.)ident(instruct!) ident(xm)operator(.)ident(definitions)operator(()string operator(=)operator(>) ident(wsdl_service_name)operator(,) string operator(=)operator(>) ident(namespace)operator(,) string operator(=)operator(>) ident(namespace)operator(,) string operator(=)operator(>) constant(XsdNs)operator(,) string operator(=)operator(>) constant(SoapNs)operator(,) string operator(=)operator(>) constant(SoapEncodingNs)operator(,) string operator(=)operator(>) constant(WsdlNs)operator(,) string operator(=)operator(>) constant(WsdlNs)operator(\)) reserved(do) comment(# Generate XSD) reserved(if) ident(custom_types)operator(.)ident(size) operator(>) integer(0) ident(xm)operator(.)ident(types) reserved(do) ident(xm)operator(.)ident(xsd)operator(()symbol(:schema)operator(,) string operator(=)operator(>) constant(XsdNs)operator(,) string operator(=)operator(>) ident(namespace)operator(\)) reserved(do) ident(custom_types)operator(.)ident(each) reserved(do) operator(|)ident(binding)operator(|) reserved(case) reserved(when) ident(binding)operator(.)ident(type)operator(.)ident(array?) ident(xm)operator(.)ident(xsd)operator(()symbol(:complexType)operator(,) string operator(=)operator(>) ident(binding)operator(.)ident(type_name)operator(\)) reserved(do) ident(xm)operator(.)ident(xsd)operator(()symbol(:complexContent)operator(\)) reserved(do) ident(xm)operator(.)ident(xsd)operator(()symbol(:restriction)operator(,) string operator(=)operator(>) stringoperator(\)) reserved(do) ident(xm)operator(.)ident(xsd)operator(()symbol(:attribute)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(binding)operator(.)ident(element_binding)operator(.)ident(qualified_type_name)operator(()stringoperator(\)) operator(+) stringoperator(\)) reserved(end) reserved(end) reserved(end) reserved(when) ident(binding)operator(.)ident(type)operator(.)ident(structured?) ident(xm)operator(.)ident(xsd)operator(()symbol(:complexType)operator(,) string operator(=)operator(>) ident(binding)operator(.)ident(type_name)operator(\)) reserved(do) ident(xm)operator(.)ident(xsd)operator(()symbol(:all)operator(\)) reserved(do) ident(binding)operator(.)ident(type)operator(.)ident(each_member) reserved(do) operator(|)ident(name)operator(,) ident(type)operator(|) ident(b) operator(=) ident(marshaler)operator(.)ident(register_type)operator(()ident(type)operator(\)) ident(xm)operator(.)ident(xsd)operator(()symbol(:element)operator(,) string operator(=)operator(>) ident(name)operator(,) string operator(=)operator(>) ident(b)operator(.)ident(qualified_type_name)operator(()stringoperator(\))operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) comment(# APIs) ident(apis)operator(.)ident(each) reserved(do) operator(|)ident(api_name)operator(,) ident(values)operator(|) ident(api) operator(=) ident(values)operator([)integer(0)operator(]) ident(api)operator(.)ident(api_methods)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(method)operator(|) ident(gen) operator(=) ident(lambda) reserved(do) operator(|)ident(msg_name)operator(,) ident(direction)operator(|) ident(xm)operator(.)ident(message)operator(()string operator(=)operator(>) ident(message_name_for)operator(()ident(api_name)operator(,) ident(msg_name)operator(\))operator(\)) reserved(do) ident(sym) operator(=) pre_constant(nil) reserved(if) ident(direction) operator(==) symbol(:out) ident(returns) operator(=) ident(method)operator(.)ident(returns) reserved(if) ident(returns) ident(binding) operator(=) ident(marshaler)operator(.)ident(register_type)operator(()ident(returns)operator([)integer(0)operator(])operator(\)) ident(xm)operator(.)ident(part)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(binding)operator(.)ident(qualified_type_name)operator(()stringoperator(\))operator(\)) reserved(end) reserved(else) ident(expects) operator(=) ident(method)operator(.)ident(expects) ident(expects)operator(.)ident(each) reserved(do) operator(|)ident(type)operator(|) ident(binding) operator(=) ident(marshaler)operator(.)ident(register_type)operator(()ident(type)operator(\)) ident(xm)operator(.)ident(part)operator(()string operator(=)operator(>) ident(type)operator(.)ident(name)operator(,) string operator(=)operator(>) ident(binding)operator(.)ident(qualified_type_name)operator(()stringoperator(\))operator(\)) reserved(end) reserved(if) ident(expects) reserved(end) reserved(end) reserved(end) ident(public_name) operator(=) ident(method)operator(.)ident(public_name) ident(gen)operator(.)ident(call)operator(()ident(public_name)operator(,) symbol(:in)operator(\)) ident(gen)operator(.)ident(call)operator(()stringcontent(Response)delimiter(")>operator(,) symbol(:out)operator(\)) reserved(end) comment(# Port) ident(port_name) operator(=) ident(port_name_for)operator(()ident(global_service_name)operator(,) ident(api_name)operator(\)) ident(xm)operator(.)ident(portType)operator(()string operator(=)operator(>) ident(port_name)operator(\)) reserved(do) ident(api)operator(.)ident(api_methods)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(method)operator(|) ident(xm)operator(.)ident(operation)operator(()string operator(=)operator(>) ident(method)operator(.)ident(public_name)operator(\)) reserved(do) ident(xm)operator(.)ident(input)operator(()string operator(=)operator(>) string operator(+) ident(message_name_for)operator(()ident(api_name)operator(,) ident(method)operator(.)ident(public_name)operator(\))operator(\)) ident(xm)operator(.)ident(output)operator(()string operator(=)operator(>) string operator(+) ident(message_name_for)operator(()ident(api_name)operator(,) stringcontent(Response)delimiter(")>operator(\))operator(\)) reserved(end) reserved(end) reserved(end) comment(# Bind it) ident(binding_name) operator(=) ident(binding_name_for)operator(()ident(global_service_name)operator(,) ident(api_name)operator(\)) ident(xm)operator(.)ident(binding)operator(()string operator(=)operator(>) ident(binding_name)operator(,) string operator(=)operator(>) stringdelimiter(")>operator(\)) reserved(do) ident(xm)operator(.)ident(soap)operator(()symbol(:binding)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(SoapHttpTransport)operator(\)) ident(api)operator(.)ident(api_methods)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(method)operator(|) ident(xm)operator(.)ident(operation)operator(()string operator(=)operator(>) ident(method)operator(.)ident(public_name)operator(\)) reserved(do) reserved(case) ident(web_service_dispatching_mode) reserved(when) symbol(:direct) ident(soap_action) operator(=) ident(soap_action_base) operator(+) string operator(+) ident(method)operator(.)ident(public_name) reserved(when) symbol(:delegated)operator(,) symbol(:layered) ident(soap_action) operator(=) ident(soap_action_base) \ operator(+) string operator(+) ident(api_name)operator(.)ident(to_s) \ operator(+) string operator(+) ident(method)operator(.)ident(public_name) reserved(end) ident(xm)operator(.)ident(soap)operator(()symbol(:operation)operator(,) string operator(=)operator(>) ident(soap_action)operator(\)) ident(xm)operator(.)ident(input) reserved(do) ident(xm)operator(.)ident(soap)operator(()symbol(:body)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(namespace)operator(,) string operator(=)operator(>) constant(SoapEncodingNs)operator(\)) reserved(end) ident(xm)operator(.)ident(output) reserved(do) ident(xm)operator(.)ident(soap)operator(()symbol(:body)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(namespace)operator(,) string operator(=)operator(>) constant(SoapEncodingNs)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Define it) ident(xm)operator(.)ident(service)operator(()string operator(=)operator(>) stringcontent(Service)delimiter(")>operator(\)) reserved(do) ident(apis)operator(.)ident(each) reserved(do) operator(|)ident(api_name)operator(,) ident(values)operator(|) ident(port_name) operator(=) ident(port_name_for)operator(()ident(global_service_name)operator(,) ident(api_name)operator(\)) ident(binding_name) operator(=) ident(binding_name_for)operator(()ident(global_service_name)operator(,) ident(api_name)operator(\)) reserved(case) ident(web_service_dispatching_mode) reserved(when) symbol(:direct)operator(,) symbol(:layered) ident(binding_target) operator(=) string reserved(when) symbol(:delegated) ident(binding_target) operator(=) ident(api_name)operator(.)ident(to_s) reserved(end) ident(xm)operator(.)ident(port)operator(()string operator(=)operator(>) ident(port_name)operator(,) string operator(=)operator(>) stringdelimiter(")>operator(\)) reserved(do) ident(xm)operator(.)ident(soap)operator(()symbol(:address)operator(,) string operator(=)operator(>) stringinlinedelimiter(")>operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) method(port_name_for)operator(()ident(global_service)operator(,) ident(service)operator(\)) stringinlinecontent(Port)delimiter(")> reserved(end) reserved(def) method(binding_name_for)operator(()ident(global_service)operator(,) ident(service)operator(\)) stringinlinecontent(Binding)delimiter(")> reserved(end) reserved(def) method(message_name_for)operator(()ident(api_name)operator(,) ident(message_name)operator(\)) ident(mode) operator(=) ident(web_service_dispatching_mode) reserved(if) ident(mode) operator(==) symbol(:layered) operator(||) ident(mode) operator(==) symbol(:delegated) ident(api_name)operator(.)ident(to_s) operator(+) string operator(+) ident(message_name) reserved(else) ident(message_name) reserved(end) reserved(end) reserved(def) method(register_api)operator(()ident(api)operator(,) ident(marshaler)operator(\)) ident(bindings) operator(=) operator({)operator(}) ident(traverse_custom_types)operator(()ident(api)operator(,) ident(marshaler)operator(,) ident(bindings)operator(\)) reserved(do) operator(|)ident(binding)operator(|) ident(bindings)operator([)ident(binding)operator(]) operator(=) pre_constant(nil) reserved(unless) ident(bindings)operator(.)ident(has_key?)operator(()ident(binding)operator(\)) ident(element_binding) operator(=) ident(binding)operator(.)ident(element_binding) ident(bindings)operator([)ident(element_binding)operator(]) operator(=) pre_constant(nil) reserved(if) ident(element_binding) operator(&&) operator(!)ident(bindings)operator(.)ident(has_key?)operator(()ident(element_binding)operator(\)) reserved(end) ident(bindings)operator(.)ident(keys) reserved(end) reserved(def) method(traverse_custom_types)operator(()ident(api)operator(,) ident(marshaler)operator(,) ident(bindings)operator(,) operator(&)ident(block)operator(\)) ident(api)operator(.)ident(api_methods)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(method)operator(|) ident(expects)operator(,) ident(returns) operator(=) ident(method)operator(.)ident(expects)operator(,) ident(method)operator(.)ident(returns) ident(expects)operator(.)ident(each)operator({) operator(|)ident(type)operator(|) ident(traverse_type)operator(()ident(marshaler)operator(,) ident(type)operator(,) ident(bindings)operator(,) operator(&)ident(block)operator(\)) reserved(if) ident(type)operator(.)ident(custom?) operator(}) reserved(if) ident(expects) ident(returns)operator(.)ident(each)operator({) operator(|)ident(type)operator(|) ident(traverse_type)operator(()ident(marshaler)operator(,) ident(type)operator(,) ident(bindings)operator(,) operator(&)ident(block)operator(\)) reserved(if) ident(type)operator(.)ident(custom?) operator(}) reserved(if) ident(returns) reserved(end) reserved(end) reserved(def) method(traverse_type)operator(()ident(marshaler)operator(,) ident(type)operator(,) ident(bindings)operator(,) operator(&)ident(block)operator(\)) ident(binding) operator(=) ident(marshaler)operator(.)ident(register_type)operator(()ident(type)operator(\)) reserved(return) reserved(if) ident(bindings)operator(.)ident(has_key?)operator(()ident(binding)operator(\)) ident(bindings)operator([)ident(binding)operator(]) operator(=) pre_constant(nil) reserved(yield) ident(binding) reserved(if) ident(type)operator(.)ident(array?) reserved(yield) ident(marshaler)operator(.)ident(register_type)operator(()ident(type)operator(.)ident(element_type)operator(\)) ident(type) operator(=) ident(type)operator(.)ident(element_type) reserved(end) ident(type)operator(.)ident(each_member)operator({) operator(|)ident(name)operator(,) ident(type)operator(|) ident(traverse_type)operator(()ident(marshaler)operator(,) ident(type)operator(,) ident(bindings)operator(,) operator(&)ident(block)operator(\)) operator(}) reserved(if) ident(type)operator(.)ident(structured?) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Invocation) comment(# :nodoc:) reserved(class) class(InvocationError) operator(<) constant(ActionWebService)operator(::)constant(ActionWebServiceError) comment(# :nodoc:) reserved(end) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(# :nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ActionWebService)operator(::)constant(Invocation)operator(::)constant(InstanceMethods)operator(\)) reserved(end) comment(# Invocation interceptors provide a means to execute custom code before) comment(# and after method invocations on ActionWebService::Base objects.) comment(#) comment(# When running in _Direct_ dispatching mode, ActionController filters) comment(# should be used for this functionality instead.) comment(#) comment(# The semantics of invocation interceptors are the same as ActionController) comment(# filters, and accept the same parameters and options.) comment(#) comment(# A _before_ interceptor can also cancel execution by returning +false+,) comment(# or returning a [false, "cancel reason"] array if it wishes to supply) comment(# a reason for canceling the request.) comment(#) comment(# === Example) comment(#) comment(# class CustomService < ActionWebService::Base) comment(# before_invocation :intercept_add, :only => [:add]) comment(#) comment(# def add(a, b\)) comment(# a + b) comment(# end) comment(#) comment(# private) comment(# def intercept_add) comment(# return [false, "permission denied"] # cancel it) comment(# end) comment(# end) comment(#) comment(# Options:) comment(# [:except] A list of methods for which the interceptor will NOT be called) comment(# [:only] A list of methods for which the interceptor WILL be called) reserved(module) class(ClassMethods) comment(# Appends the given +interceptors+ to be called) comment(# _before_ method invocation.) reserved(def) method(append_before_invocation)operator(()operator(*)ident(interceptors)operator(,) operator(&)ident(block)operator(\)) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(interceptors)operator(\)) ident(interceptors) operator(<<) ident(block) reserved(if) ident(block_given?) ident(add_interception_conditions)operator(()ident(interceptors)operator(,) ident(conditions)operator(\)) ident(append_interceptors_to_chain)operator(()stringoperator(,) ident(interceptors)operator(\)) reserved(end) comment(# Prepends the given +interceptors+ to be called) comment(# _before_ method invocation.) reserved(def) method(prepend_before_invocation)operator(()operator(*)ident(interceptors)operator(,) operator(&)ident(block)operator(\)) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(interceptors)operator(\)) ident(interceptors) operator(<<) ident(block) reserved(if) ident(block_given?) ident(add_interception_conditions)operator(()ident(interceptors)operator(,) ident(conditions)operator(\)) ident(prepend_interceptors_to_chain)operator(()stringoperator(,) ident(interceptors)operator(\)) reserved(end) reserved(alias) symbol(:before_invocation) symbol(:append_before_invocation) comment(# Appends the given +interceptors+ to be called) comment(# _after_ method invocation.) reserved(def) method(append_after_invocation)operator(()operator(*)ident(interceptors)operator(,) operator(&)ident(block)operator(\)) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(interceptors)operator(\)) ident(interceptors) operator(<<) ident(block) reserved(if) ident(block_given?) ident(add_interception_conditions)operator(()ident(interceptors)operator(,) ident(conditions)operator(\)) ident(append_interceptors_to_chain)operator(()stringoperator(,) ident(interceptors)operator(\)) reserved(end) comment(# Prepends the given +interceptors+ to be called) comment(# _after_ method invocation.) reserved(def) method(prepend_after_invocation)operator(()operator(*)ident(interceptors)operator(,) operator(&)ident(block)operator(\)) ident(conditions) operator(=) ident(extract_conditions!)operator(()ident(interceptors)operator(\)) ident(interceptors) operator(<<) ident(block) reserved(if) ident(block_given?) ident(add_interception_conditions)operator(()ident(interceptors)operator(,) ident(conditions)operator(\)) ident(prepend_interceptors_to_chain)operator(()stringoperator(,) ident(interceptors)operator(\)) reserved(end) reserved(alias) symbol(:after_invocation) symbol(:append_after_invocation) reserved(def) method(before_invocation_interceptors) comment(# :nodoc:) ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(end) reserved(def) method(after_invocation_interceptors) comment(# :nodoc:) ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(end) reserved(def) method(included_intercepted_methods) comment(# :nodoc:) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator({)operator(}) reserved(end) reserved(def) method(excluded_intercepted_methods) comment(# :nodoc:) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator({)operator(}) reserved(end) ident(private) reserved(def) method(append_interceptors_to_chain)operator(()ident(condition)operator(,) ident(interceptors)operator(\)) ident(write_inheritable_array)operator(()stringcontent(_invocation_interceptors)delimiter(")>operator(,) ident(interceptors)operator(\)) reserved(end) reserved(def) method(prepend_interceptors_to_chain)operator(()ident(condition)operator(,) ident(interceptors)operator(\)) ident(interceptors) operator(=) ident(interceptors) operator(+) ident(read_inheritable_attribute)operator(()stringcontent(_invocation_interceptors)delimiter(")>operator(\)) ident(write_inheritable_attribute)operator(()stringcontent(_invocation_interceptors)delimiter(")>operator(,) ident(interceptors)operator(\)) reserved(end) reserved(def) method(extract_conditions!)operator(()ident(interceptors)operator(\)) reserved(return) pre_constant(nil) reserved(unless) ident(interceptors)operator(.)ident(last)operator(.)ident(is_a?) constant(Hash) ident(interceptors)operator(.)ident(pop) reserved(end) reserved(def) method(add_interception_conditions)operator(()ident(interceptors)operator(,) ident(conditions)operator(\)) reserved(return) reserved(unless) ident(conditions) ident(included)operator(,) ident(excluded) operator(=) ident(conditions)operator([)symbol(:only)operator(])operator(,) ident(conditions)operator([)symbol(:except)operator(]) ident(write_inheritable_hash)operator(()stringoperator(,) ident(condition_hash)operator(()ident(interceptors)operator(,) ident(included)operator(\))operator(\)) operator(&&) reserved(return) reserved(if) ident(included) ident(write_inheritable_hash)operator(()stringoperator(,) ident(condition_hash)operator(()ident(interceptors)operator(,) ident(excluded)operator(\))operator(\)) reserved(if) ident(excluded) reserved(end) reserved(def) method(condition_hash)operator(()ident(interceptors)operator(,) operator(*)ident(methods)operator(\)) ident(interceptors)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({)operator(|)ident(hash)operator(,) ident(interceptor)operator(|) ident(hash)operator(.)ident(merge)operator(()ident(interceptor) operator(=)operator(>) ident(methods)operator(.)ident(flatten)operator(.)ident(map) operator({)operator(|)ident(method)operator(|) ident(method)operator(.)ident(to_s)operator(})operator(\))operator(}) reserved(end) reserved(end) reserved(module) class(InstanceMethods) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:perform_invocation_without_interception)operator(,) symbol(:perform_invocation) ident(alias_method) symbol(:perform_invocation)operator(,) symbol(:perform_invocation_with_interception) reserved(end) reserved(end) reserved(def) method(perform_invocation_with_interception)operator(()ident(method_name)operator(,) ident(params)operator(,) operator(&)ident(block)operator(\)) reserved(return) reserved(if) ident(before_invocation)operator(()ident(method_name)operator(,) ident(params)operator(,) operator(&)ident(block)operator(\)) operator(==) pre_constant(false) ident(return_value) operator(=) ident(perform_invocation_without_interception)operator(()ident(method_name)operator(,) ident(params)operator(\)) ident(after_invocation)operator(()ident(method_name)operator(,) ident(params)operator(,) ident(return_value)operator(\)) ident(return_value) reserved(end) reserved(def) method(perform_invocation)operator(()ident(method_name)operator(,) ident(params)operator(\)) ident(send)operator(()ident(method_name)operator(,) operator(*)ident(params)operator(\)) reserved(end) reserved(def) method(before_invocation)operator(()ident(name)operator(,) ident(args)operator(,) operator(&)ident(block)operator(\)) ident(call_interceptors)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(before_invocation_interceptors)operator(,) operator([)ident(name)operator(,) ident(args)operator(])operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(after_invocation)operator(()ident(name)operator(,) ident(args)operator(,) ident(result)operator(\)) ident(call_interceptors)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(after_invocation_interceptors)operator(,) operator([)ident(name)operator(,) ident(args)operator(,) ident(result)operator(])operator(\)) reserved(end) ident(private) reserved(def) method(call_interceptors)operator(()ident(interceptors)operator(,) ident(interceptor_args)operator(,) operator(&)ident(block)operator(\)) reserved(if) ident(interceptors) reserved(and) reserved(not) ident(interceptors)operator(.)ident(empty?) ident(interceptors)operator(.)ident(each) reserved(do) operator(|)ident(interceptor)operator(|) reserved(next) reserved(if) ident(method_exempted?)operator(()ident(interceptor)operator(,) ident(interceptor_args)operator([)integer(0)operator(])operator(.)ident(to_s)operator(\)) ident(result) operator(=) reserved(case) reserved(when) ident(interceptor)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) pre_constant(self)operator(.)ident(send)operator(()ident(interceptor)operator(,) operator(*)ident(interceptor_args)operator(\)) reserved(when) ident(interceptor_block?)operator(()ident(interceptor)operator(\)) ident(interceptor)operator(.)ident(call)operator(()pre_constant(self)operator(,) operator(*)ident(interceptor_args)operator(\)) reserved(when) ident(interceptor_class?)operator(()ident(interceptor)operator(\)) ident(interceptor)operator(.)ident(intercept)operator(()pre_constant(self)operator(,) operator(*)ident(interceptor_args)operator(\)) reserved(else) ident(raise)operator(() constant(InvocationError)operator(,) string operator(\)) reserved(end) ident(reason) operator(=) pre_constant(nil) reserved(if) ident(result)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(reason) operator(=) ident(result)operator([)integer(1)operator(]) reserved(if) ident(result)operator([)integer(1)operator(]) ident(result) operator(=) ident(result)operator([)integer(0)operator(]) reserved(end) reserved(if) ident(result) operator(==) pre_constant(false) ident(block)operator(.)ident(call)operator(()ident(reason)operator(\)) reserved(if) ident(block) operator(&&) ident(reason) reserved(return) pre_constant(false) reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) method(interceptor_block?)operator(()ident(interceptor)operator(\)) ident(interceptor)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(&&) operator(()ident(interceptor)operator(.)ident(arity) operator(==) integer(3) operator(||) ident(interceptor)operator(.)ident(arity) operator(==) integer(-1)operator(\)) reserved(end) reserved(def) method(interceptor_class?)operator(()ident(interceptor)operator(\)) ident(interceptor)operator(.)ident(respond_to?)operator(()stringoperator(\)) reserved(end) reserved(def) method(method_exempted?)operator(()ident(interceptor)operator(,) ident(method_name)operator(\)) reserved(case) reserved(when) pre_constant(self)operator(.)ident(class)operator(.)ident(included_intercepted_methods)operator([)ident(interceptor)operator(]) operator(!)pre_constant(self)operator(.)ident(class)operator(.)ident(included_intercepted_methods)operator([)ident(interceptor)operator(])operator(.)ident(include?)operator(()ident(method_name)operator(\)) reserved(when) pre_constant(self)operator(.)ident(class)operator(.)ident(excluded_intercepted_methods)operator([)ident(interceptor)operator(]) pre_constant(self)operator(.)ident(class)operator(.)ident(excluded_intercepted_methods)operator([)ident(interceptor)operator(])operator(.)ident(include?)operator(()ident(method_name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Protocol) comment(# :nodoc:) reserved(class) class(ProtocolError) operator(<) constant(ActionWebServiceError) comment(# :nodoc:) reserved(end) reserved(class) class(AbstractProtocol) comment(# :nodoc:) reserved(def) method(setup)operator(()ident(controller)operator(\)) reserved(end) reserved(def) method(decode_action_pack_request)operator(()ident(action_pack_request)operator(\)) reserved(end) reserved(def) method(encode_action_pack_request)operator(()ident(service_name)operator(,) ident(public_method_name)operator(,) ident(raw_body)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) ident(klass) operator(=) ident(options)operator([)symbol(:request_class)operator(]) operator(||) constant(SimpleActionPackRequest) ident(request) operator(=) ident(klass)operator(.)ident(new) ident(request)operator(.)ident(request_parameters)operator([)stringoperator(]) operator(=) ident(service_name)operator(.)ident(to_s) ident(request)operator(.)ident(env)operator([)stringoperator(]) operator(=) ident(raw_body) ident(request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(request) reserved(end) reserved(def) method(decode_request)operator(()ident(raw_request)operator(,) ident(service_name)operator(,) ident(protocol_options)operator(=)operator({)operator(})operator(\)) reserved(end) reserved(def) method(encode_request)operator(()ident(method_name)operator(,) ident(params)operator(,) ident(param_types)operator(\)) reserved(end) reserved(def) method(decode_response)operator(()ident(raw_response)operator(\)) reserved(end) reserved(def) method(encode_response)operator(()ident(method_name)operator(,) ident(return_value)operator(,) ident(return_type)operator(,) ident(protocol_options)operator(=)operator({)operator(})operator(\)) reserved(end) reserved(def) method(protocol_client)operator(()ident(api)operator(,) ident(protocol_name)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(register_api)operator(()ident(api)operator(\)) reserved(end) reserved(end) reserved(class) class(Request) comment(# :nodoc:) ident(attr) symbol(:protocol) ident(attr_accessor) symbol(:method_name) ident(attr_accessor) symbol(:method_params) ident(attr) symbol(:service_name) ident(attr_accessor) symbol(:api) ident(attr_accessor) symbol(:api_method) ident(attr) symbol(:protocol_options) reserved(def) method(initialize)operator(()ident(protocol)operator(,) ident(method_name)operator(,) ident(method_params)operator(,) ident(service_name)operator(,) ident(api)operator(=)pre_constant(nil)operator(,) ident(api_method)operator(=)pre_constant(nil)operator(,) ident(protocol_options)operator(=)pre_constant(nil)operator(\)) instance_variable(@protocol) operator(=) ident(protocol) instance_variable(@method_name) operator(=) ident(method_name) instance_variable(@method_params) operator(=) ident(method_params) instance_variable(@service_name) operator(=) ident(service_name) instance_variable(@api) operator(=) ident(api) instance_variable(@api_method) operator(=) ident(api_method) instance_variable(@protocol_options) operator(=) ident(protocol_options) operator(||) operator({)operator(}) reserved(end) reserved(end) reserved(class) class(Response) comment(# :nodoc:) ident(attr) symbol(:body) ident(attr) symbol(:content_type) ident(attr) symbol(:return_value) reserved(def) method(initialize)operator(()ident(body)operator(,) ident(content_type)operator(,) ident(return_value)operator(\)) instance_variable(@body) operator(=) ident(body) instance_variable(@content_type) operator(=) ident(content_type) instance_variable(@return_value) operator(=) ident(return_value) reserved(end) reserved(end) reserved(class) class(SimpleActionPackRequest) operator(<) constant(ActionController)operator(::)constant(AbstractRequest) comment(# :nodoc:) reserved(def) method(initialize) instance_variable(@env) operator(=) operator({)operator(}) instance_variable(@qparams) operator(=) operator({)operator(}) instance_variable(@rparams) operator(=) operator({)operator(}) instance_variable(@cookies) operator(=) operator({)operator(}) ident(reset_session) reserved(end) reserved(def) method(query_parameters) instance_variable(@qparams) reserved(end) reserved(def) method(request_parameters) instance_variable(@rparams) reserved(end) reserved(def) method(env) instance_variable(@env) reserved(end) reserved(def) method(host) string reserved(end) reserved(def) method(cookies) instance_variable(@cookies) reserved(end) reserved(def) method(session) instance_variable(@session) reserved(end) reserved(def) method(reset_session) instance_variable(@session) operator(=) operator({)operator(}) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(Protocol) comment(# :nodoc:) reserved(module) class(Discovery) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(send)operator(()symbol(:include)operator(,) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Discovery)operator(::)constant(InstanceMethods)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(# :nodoc:) reserved(def) method(register_protocol)operator(()ident(klass)operator(\)) ident(write_inheritable_array)operator(()stringoperator(,) operator([)ident(klass)operator(])operator(\)) reserved(end) reserved(end) reserved(module) class(InstanceMethods) comment(# :nodoc:) ident(private) reserved(def) method(discover_web_service_request)operator(()ident(action_pack_request)operator(\)) operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator([)operator(])operator(\))operator(.)ident(each) reserved(do) operator(|)ident(protocol)operator(|) ident(protocol) operator(=) ident(protocol)operator(.)ident(create)operator(()pre_constant(self)operator(\)) ident(request) operator(=) ident(protocol)operator(.)ident(decode_action_pack_request)operator(()ident(action_pack_request)operator(\)) reserved(return) ident(request) reserved(unless) ident(request)operator(.)ident(nil?) reserved(end) pre_constant(nil) reserved(end) reserved(def) method(create_web_service_client)operator(()ident(api)operator(,) ident(protocol_name)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(\)) operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator([)operator(])operator(\))operator(.)ident(each) reserved(do) operator(|)ident(protocol)operator(|) ident(protocol) operator(=) ident(protocol)operator(.)ident(create)operator(()pre_constant(self)operator(\)) ident(client) operator(=) ident(protocol)operator(.)ident(protocol_client)operator(()ident(api)operator(,) ident(protocol_name)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(\)) reserved(return) ident(client) reserved(unless) ident(client)operator(.)ident(nil?) reserved(end) pre_constant(nil) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActionWebService) reserved(module) class(Protocol) reserved(module) class(Soap) comment(# Workaround for SOAP4R return values changing) reserved(class) class(Registry) operator(<) constant(SOAP)operator(::)constant(Mapping)operator(::)constant(Registry) reserved(if) constant(SOAP)operator(::)constant(Version) operator(>)operator(=) string reserved(def) method(find_mapped_soap_class)operator(()ident(obj_class)operator(\)) reserved(return) instance_variable(@map)operator(.)ident(instance_eval) operator({) instance_variable(@obj2soap)operator([)ident(obj_class)operator(])operator([)integer(0)operator(]) operator(}) reserved(end) reserved(def) method(find_mapped_obj_class)operator(()ident(soap_class)operator(\)) reserved(return) instance_variable(@map)operator(.)ident(instance_eval) operator({) instance_variable(@soap2obj)operator([)ident(soap_class)operator(])operator([)integer(0)operator(]) operator(}) reserved(end) reserved(end) reserved(end) reserved(class) class(SoapMarshaler) ident(attr) symbol(:namespace) ident(attr) symbol(:registry) reserved(def) method(initialize)operator(()ident(namespace)operator(=)pre_constant(nil)operator(\)) instance_variable(@namespace) operator(=) ident(namespace) operator(||) string instance_variable(@registry) operator(=) constant(Registry)operator(.)ident(new) instance_variable(@type2binding) operator(=) operator({)operator(}) ident(register_static_factories) reserved(end) reserved(def) method(soap_to_ruby)operator(()ident(obj)operator(\)) constant(SOAP)operator(::)constant(Mapping)operator(.)ident(soap2obj)operator(()ident(obj)operator(,) instance_variable(@registry)operator(\)) reserved(end) reserved(def) method(ruby_to_soap)operator(()ident(obj)operator(\)) ident(soap) operator(=) constant(SOAP)operator(::)constant(Mapping)operator(.)ident(obj2soap)operator(()ident(obj)operator(,) instance_variable(@registry)operator(\)) ident(soap)operator(.)ident(elename) operator(=) constant(XSD)operator(::)constant(QName)operator(.)ident(new) reserved(if) constant(SOAP)operator(::)constant(Version) operator(>)operator(=) string operator(&&) ident(soap)operator(.)ident(elename) operator(==) constant(XSD)operator(::)constant(QName)operator(::)constant(EMPTY) ident(soap) reserved(end) reserved(def) method(register_type)operator(()ident(type)operator(\)) reserved(return) instance_variable(@type2binding)operator([)ident(type)operator(]) reserved(if) instance_variable(@type2binding)operator(.)ident(has_key?)operator(()ident(type)operator(\)) reserved(if) ident(type)operator(.)ident(array?) ident(array_mapping) operator(=) instance_variable(@registry)operator(.)ident(find_mapped_soap_class)operator(()constant(Array)operator(\)) ident(qname) operator(=) constant(XSD)operator(::)constant(QName)operator(.)ident(new)operator(()instance_variable(@namespace)operator(,) ident(soap_type_name)operator(()ident(type)operator(.)ident(element_type)operator(.)ident(type_class)operator(.)ident(name)operator(\)) operator(+) stringoperator(\)) ident(element_type_binding) operator(=) ident(register_type)operator(()ident(type)operator(.)ident(element_type)operator(\)) instance_variable(@type2binding)operator([)ident(type)operator(]) operator(=) constant(SoapBinding)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(qname)operator(,) ident(type)operator(,) ident(array_mapping)operator(,) ident(element_type_binding)operator(\)) reserved(elsif) operator(()ident(mapping) operator(=) instance_variable(@registry)operator(.)ident(find_mapped_soap_class)operator(()ident(type)operator(.)ident(type_class)operator(\)) reserved(rescue) pre_constant(nil)operator(\)) ident(qname) operator(=) ident(mapping)operator([)integer(2)operator(]) operator(?) ident(mapping)operator([)integer(2)operator(])operator([)symbol(:type)operator(]) operator(:) pre_constant(nil) ident(qname) operator(||=) ident(soap_base_type_name)operator(()ident(mapping)operator([)integer(0)operator(])operator(\)) instance_variable(@type2binding)operator([)ident(type)operator(]) operator(=) constant(SoapBinding)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(qname)operator(,) ident(type)operator(,) ident(mapping)operator(\)) reserved(else) ident(qname) operator(=) constant(XSD)operator(::)constant(QName)operator(.)ident(new)operator(()instance_variable(@namespace)operator(,) ident(soap_type_name)operator(()ident(type)operator(.)ident(type_class)operator(.)ident(name)operator(\))operator(\)) instance_variable(@registry)operator(.)ident(add)operator(()ident(type)operator(.)ident(type_class)operator(,) constant(SOAP)operator(::)constant(SOAPStruct)operator(,) ident(typed_struct_factory)operator(()ident(type)operator(.)ident(type_class)operator(\))operator(,) operator({) symbol(:type) operator(=)operator(>) ident(qname) operator(})operator(\)) ident(mapping) operator(=) instance_variable(@registry)operator(.)ident(find_mapped_soap_class)operator(()ident(type)operator(.)ident(type_class)operator(\)) instance_variable(@type2binding)operator([)ident(type)operator(]) operator(=) constant(SoapBinding)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(qname)operator(,) ident(type)operator(,) ident(mapping)operator(\)) reserved(end) reserved(if) ident(type)operator(.)ident(structured?) ident(type)operator(.)ident(each_member) reserved(do) operator(|)ident(m_name)operator(,) ident(m_type)operator(|) ident(register_type)operator(()ident(m_type)operator(\)) reserved(end) reserved(end) instance_variable(@type2binding)operator([)ident(type)operator(]) reserved(end) reserved(alias) symbol(:lookup_type) symbol(:register_type) reserved(def) method(annotate_arrays)operator(()ident(binding)operator(,) ident(value)operator(\)) reserved(if) ident(value)operator(.)ident(nil?) reserved(return) reserved(elsif) ident(binding)operator(.)ident(type)operator(.)ident(array?) ident(mark_typed_array)operator(()ident(value)operator(,) ident(binding)operator(.)ident(element_binding)operator(.)ident(qname)operator(\)) reserved(if) ident(binding)operator(.)ident(element_binding)operator(.)ident(type)operator(.)ident(custom?) ident(value)operator(.)ident(each) reserved(do) operator(|)ident(element)operator(|) ident(annotate_arrays)operator(()ident(binding)operator(.)ident(element_binding)operator(,) ident(element)operator(\)) reserved(end) reserved(end) reserved(elsif) ident(binding)operator(.)ident(type)operator(.)ident(structured?) ident(binding)operator(.)ident(type)operator(.)ident(each_member) reserved(do) operator(|)ident(name)operator(,) ident(type)operator(|) ident(member_binding) operator(=) ident(register_type)operator(()ident(type)operator(\)) ident(member_value) operator(=) ident(value)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(?) ident(value)operator([)ident(name)operator(]) operator(:) ident(value)operator(.)ident(send)operator(()ident(name)operator(\)) ident(annotate_arrays)operator(()ident(member_binding)operator(,) ident(member_value)operator(\)) reserved(if) ident(type)operator(.)ident(custom?) reserved(end) reserved(end) reserved(end) ident(private) reserved(def) method(typed_struct_factory)operator(()ident(type_class)operator(\)) reserved(if) constant(Object)operator(.)ident(const_defined?)operator(()stringoperator(\)) reserved(if) ident(type_class)operator(.)ident(ancestors)operator(.)ident(include?)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(\)) ident(qname) operator(=) constant(XSD)operator(::)constant(QName)operator(.)ident(new)operator(()instance_variable(@namespace)operator(,) ident(soap_type_name)operator(()ident(type_class)operator(.)ident(name)operator(\))operator(\)) ident(type_class)operator(.)ident(instance_variable_set)operator(()stringoperator(,) ident(qname)operator(\)) reserved(return) constant(SoapActiveRecordStructFactory)operator(.)ident(new) reserved(end) reserved(end) constant(SOAP)operator(::)constant(Mapping)operator(::)constant(Registry)operator(::)constant(TypedStructFactory) reserved(end) reserved(def) method(mark_typed_array)operator(()ident(array)operator(,) ident(qname)operator(\)) operator(()reserved(class) operator(<<) class(array)operator(;) pre_constant(self)operator(;) reserved(end)operator(\))operator(.)ident(class_eval) reserved(do) ident(define_method)operator(()symbol(:arytype)operator(\)) reserved(do) ident(qname) reserved(end) reserved(end) reserved(end) reserved(def) method(soap_base_type_name)operator(()ident(type)operator(\)) ident(xsd_type) operator(=) ident(type)operator(.)ident(ancestors)operator(.)ident(find)operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(const_defined?) string operator(}) ident(xsd_type) operator(?) ident(xsd_type)operator(.)ident(const_get)operator(()stringoperator(\)) operator(:) constant(XSD)operator(::)constant(XSDAnySimpleType)operator(::)constant(Type) reserved(end) reserved(def) method(soap_type_name)operator(()ident(type_name)operator(\)) ident(type_name)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) method(register_static_factories) instance_variable(@registry)operator(.)ident(add)operator(()constant(ActionWebService)operator(::)constant(Base64)operator(,) constant(SOAP)operator(::)constant(SOAPBase64)operator(,) constant(SoapBase64Factory)operator(.)ident(new)operator(,) pre_constant(nil)operator(\)) ident(mapping) operator(=) instance_variable(@registry)operator(.)ident(find_mapped_soap_class)operator(()constant(ActionWebService)operator(::)constant(Base64)operator(\)) instance_variable(@type2binding)operator([)constant(ActionWebService)operator(::)constant(Base64)operator(]) operator(=) constant(SoapBinding)operator(.)ident(new)operator(()pre_constant(self)operator(,) constant(SOAP)operator(::)constant(SOAPBase64)operator(::)constant(Type)operator(,) constant(ActionWebService)operator(::)constant(Base64)operator(,) ident(mapping)operator(\)) instance_variable(@registry)operator(.)ident(add)operator(()constant(Array)operator(,) constant(SOAP)operator(::)constant(SOAPArray)operator(,) constant(SoapTypedArrayFactory)operator(.)ident(new)operator(,) pre_constant(nil)operator(\)) reserved(end) reserved(end) reserved(class) class(SoapBinding) ident(attr) symbol(:qname) ident(attr) symbol(:type) ident(attr) symbol(:mapping) ident(attr) symbol(:element_binding) reserved(def) method(initialize)operator(()ident(marshaler)operator(,) ident(qname)operator(,) ident(type)operator(,) ident(mapping)operator(,) ident(element_binding)operator(=)pre_constant(nil)operator(\)) instance_variable(@marshaler) operator(=) ident(marshaler) instance_variable(@qname) operator(=) ident(qname) instance_variable(@type) operator(=) ident(type) instance_variable(@mapping) operator(=) ident(mapping) instance_variable(@element_binding) operator(=) ident(element_binding) reserved(end) reserved(def) method(type_name) instance_variable(@type)operator(.)ident(custom?) operator(?) instance_variable(@qname)operator(.)ident(name) operator(:) pre_constant(nil) reserved(end) reserved(def) method(qualified_type_name)operator(()ident(ns)operator(=)pre_constant(nil)operator(\)) reserved(if) instance_variable(@type)operator(.)ident(custom?) stringcontent(:)inlinedelimiter(")> reserved(else) ident(ns) operator(=) constant(XSD)operator(::)constant(NS)operator(.)ident(new) ident(ns)operator(.)ident(assign)operator(()constant(XSD)operator(::)constant(Namespace)operator(,) constant(SOAP)operator(::)constant(XSDNamespaceTag)operator(\)) ident(ns)operator(.)ident(assign)operator(()constant(SOAP)operator(::)constant(EncodingNamespace)operator(,) stringoperator(\)) ident(xsd_klass) operator(=) ident(mapping)operator([)integer(0)operator(])operator(.)ident(ancestors)operator(.)ident(find)operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(const_defined?)operator(()stringoperator(\))operator(}) reserved(return) ident(ns)operator(.)ident(name)operator(()constant(XSD)operator(::)constant(AnyTypeName)operator(\)) reserved(unless) ident(xsd_klass) ident(ns)operator(.)ident(name)operator(()ident(xsd_klass)operator(.)ident(const_get)operator(()stringoperator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(eql?)operator(()ident(other)operator(\)) instance_variable(@qname) operator(==) ident(other)operator(.)ident(qname) reserved(end) reserved(alias) symbol(:==) symbol(:eql?) reserved(def) method(hash) instance_variable(@qname)operator(.)ident(hash) reserved(end) reserved(end) reserved(class) class(SoapActiveRecordStructFactory) operator(<) constant(SOAP)operator(::)constant(Mapping)operator(::)constant(Factory) reserved(def) method(obj2soap)operator(()ident(soap_class)operator(,) ident(obj)operator(,) ident(info)operator(,) ident(map)operator(\)) reserved(unless) ident(obj)operator(.)ident(is_a?)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(\)) reserved(return) pre_constant(nil) reserved(end) ident(soap_obj) operator(=) ident(soap_class)operator(.)ident(new)operator(()ident(obj)operator(.)ident(class)operator(.)ident(instance_variable_get)operator(()stringoperator(\))operator(\)) ident(obj)operator(.)ident(class)operator(.)ident(columns)operator(.)ident(each) reserved(do) operator(|)ident(column)operator(|) ident(key) operator(=) ident(column)operator(.)ident(name)operator(.)ident(to_s) ident(value) operator(=) ident(obj)operator(.)ident(send)operator(()ident(key)operator(\)) ident(soap_obj)operator([)ident(key)operator(]) operator(=) constant(SOAP)operator(::)constant(Mapping)operator(.)ident(_obj2soap)operator(()ident(value)operator(,) ident(map)operator(\)) reserved(end) ident(soap_obj) reserved(end) reserved(def) method(soap2obj)operator(()ident(obj_class)operator(,) ident(node)operator(,) ident(info)operator(,) ident(map)operator(\)) reserved(unless) ident(node)operator(.)ident(type) operator(==) ident(obj_class)operator(.)ident(instance_variable_get)operator(()stringoperator(\)) reserved(return) pre_constant(false) reserved(end) ident(obj) operator(=) ident(obj_class)operator(.)ident(new) ident(node)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) ident(obj)operator([)ident(key)operator(]) operator(=) ident(value)operator(.)ident(data) reserved(end) ident(obj)operator(.)ident(instance_variable_set)operator(()stringoperator(,) pre_constant(false)operator(\)) reserved(return) pre_constant(true)operator(,) ident(obj) reserved(end) reserved(end) reserved(class) class(SoapTypedArrayFactory) operator(<) constant(SOAP)operator(::)constant(Mapping)operator(::)constant(Factory) reserved(def) method(obj2soap)operator(()ident(soap_class)operator(,) ident(obj)operator(,) ident(info)operator(,) ident(map)operator(\)) reserved(unless) ident(obj)operator(.)ident(respond_to?)operator(()symbol(:arytype)operator(\)) reserved(return) pre_constant(nil) reserved(end) ident(soap_obj) operator(=) ident(soap_class)operator(.)ident(new)operator(()constant(SOAP)operator(::)constant(ValueArrayName)operator(,) integer(1)operator(,) ident(obj)operator(.)ident(arytype)operator(\)) ident(mark_marshalled_obj)operator(()ident(obj)operator(,) ident(soap_obj)operator(\)) ident(obj)operator(.)ident(each) reserved(do) operator(|)ident(item)operator(|) ident(child) operator(=) constant(SOAP)operator(::)constant(Mapping)operator(.)ident(_obj2soap)operator(()ident(item)operator(,) ident(map)operator(\)) ident(soap_obj)operator(.)ident(add)operator(()ident(child)operator(\)) reserved(end) ident(soap_obj) reserved(end) reserved(def) method(soap2obj)operator(()ident(obj_class)operator(,) ident(node)operator(,) ident(info)operator(,) ident(map)operator(\)) reserved(return) pre_constant(false) reserved(end) reserved(end) reserved(class) class(SoapBase64Factory) operator(<) constant(SOAP)operator(::)constant(Mapping)operator(::)constant(Factory) reserved(def) method(obj2soap)operator(()ident(soap_class)operator(,) ident(obj)operator(,) ident(info)operator(,) ident(map)operator(\)) reserved(unless) ident(obj)operator(.)ident(is_a?)operator(()constant(ActionWebService)operator(::)constant(Base64)operator(\)) reserved(return) pre_constant(nil) reserved(end) reserved(return) ident(soap_class)operator(.)ident(new)operator(()ident(obj)operator(\)) reserved(end) reserved(def) method(soap2obj)operator(()ident(obj_class)operator(,) ident(node)operator(,) ident(info)operator(,) ident(map)operator(\)) reserved(unless) ident(node)operator(.)ident(type) operator(==) constant(SOAP)operator(::)constant(SOAPBase64)operator(::)constant(Type) reserved(return) pre_constant(false) reserved(end) reserved(return) pre_constant(true)operator(,) ident(obj_class)operator(.)ident(new)operator(()ident(node)operator(.)ident(string)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(API) comment(# :nodoc:) reserved(class) class(Base) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(soap_client)operator(()ident(endpoint_uri)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) constant(ActionWebService)operator(::)constant(Client)operator(::)constant(Soap)operator(.)ident(new) pre_constant(self)operator(,) ident(endpoint_uri)operator(,) ident(options) reserved(end) reserved(end) reserved(end) reserved(module) class(Protocol) comment(# :nodoc:) reserved(module) class(Soap) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(register_protocol)operator(()constant(SoapProtocol)operator(\)) ident(base)operator(.)ident(class_inheritable_option)operator(()symbol(:wsdl_service_name)operator(\)) ident(base)operator(.)ident(class_inheritable_option)operator(()symbol(:wsdl_namespace)operator(\)) reserved(end) reserved(class) class(SoapProtocol) operator(<) constant(AbstractProtocol) comment(# :nodoc:) constant(AWSEncoding) operator(=) string constant(XSDEncoding) operator(=) string ident(attr) symbol(:marshaler) reserved(def) method(initialize)operator(()ident(namespace)operator(=)pre_constant(nil)operator(\)) ident(namespace) operator(||=) string instance_variable(@marshaler) operator(=) constant(SoapMarshaler)operator(.)ident(new) ident(namespace) reserved(end) reserved(def) pre_constant(self)operator(.)method(create)operator(()ident(controller)operator(\)) constant(SoapProtocol)operator(.)ident(new)operator(()ident(controller)operator(.)ident(wsdl_namespace)operator(\)) reserved(end) reserved(def) method(decode_action_pack_request)operator(()ident(action_pack_request)operator(\)) reserved(return) pre_constant(nil) reserved(unless) ident(soap_action) operator(=) ident(has_valid_soap_action?)operator(()ident(action_pack_request)operator(\)) ident(service_name) operator(=) ident(action_pack_request)operator(.)ident(parameters)operator([)stringoperator(]) ident(input_encoding) operator(=) ident(parse_charset)operator(()ident(action_pack_request)operator(.)ident(env)operator([)stringoperator(])operator(\)) ident(protocol_options) operator(=) operator({) symbol(:soap_action) operator(=)operator(>) ident(soap_action)operator(,) symbol(:charset) operator(=)operator(>) ident(input_encoding) operator(}) ident(decode_request)operator(()ident(action_pack_request)operator(.)ident(raw_post)operator(,) ident(service_name)operator(,) ident(protocol_options)operator(\)) reserved(end) reserved(def) method(encode_action_pack_request)operator(()ident(service_name)operator(,) ident(public_method_name)operator(,) ident(raw_body)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) ident(request) operator(=) reserved(super) ident(request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string operator(%) operator([)ident(service_name)operator(,) ident(public_method_name)operator(]) ident(request) reserved(end) reserved(def) method(decode_request)operator(()ident(raw_request)operator(,) ident(service_name)operator(,) ident(protocol_options)operator(=)operator({)operator(})operator(\)) ident(envelope) operator(=) constant(SOAP)operator(::)constant(Processor)operator(.)ident(unmarshal)operator(()ident(raw_request)operator(,) symbol(:charset) operator(=)operator(>) ident(protocol_options)operator([)symbol(:charset)operator(])operator(\)) reserved(unless) ident(envelope) ident(raise) constant(ProtocolError)operator(,) string reserved(end) ident(request) operator(=) ident(envelope)operator(.)ident(body)operator(.)ident(request) ident(method_name) operator(=) ident(request)operator(.)ident(elename)operator(.)ident(name) ident(params) operator(=) ident(request)operator(.)ident(collect)operator({) operator(|)ident(k)operator(,) ident(v)operator(|) ident(marshaler)operator(.)ident(soap_to_ruby)operator(()ident(request)operator([)ident(k)operator(])operator(\)) operator(}) constant(Request)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(method_name)operator(,) ident(params)operator(,) ident(service_name)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(,) ident(protocol_options)operator(\)) reserved(end) reserved(def) method(encode_request)operator(()ident(method_name)operator(,) ident(params)operator(,) ident(param_types)operator(\)) ident(param_types)operator(.)ident(each)operator({) operator(|)ident(type)operator(|) ident(marshaler)operator(.)ident(register_type)operator(()ident(type)operator(\)) operator(}) reserved(if) ident(param_types) ident(qname) operator(=) constant(XSD)operator(::)constant(QName)operator(.)ident(new)operator(()ident(marshaler)operator(.)ident(namespace)operator(,) ident(method_name)operator(\)) ident(param_def) operator(=) operator([)operator(]) reserved(if) ident(param_types) ident(params) operator(=) ident(param_types)operator(.)ident(zip)operator(()ident(params)operator(\))operator(.)ident(map) reserved(do) operator(|)ident(type)operator(,) ident(param)operator(|) ident(param_def) operator(<<) operator([)stringoperator(,) ident(type)operator(.)ident(name)operator(,) ident(marshaler)operator(.)ident(lookup_type)operator(()ident(type)operator(\))operator(.)ident(mapping)operator(]) operator([)ident(type)operator(.)ident(name)operator(,) ident(marshaler)operator(.)ident(ruby_to_soap)operator(()ident(param)operator(\))operator(]) reserved(end) reserved(else) ident(params) operator(=) operator([)operator(]) reserved(end) ident(request) operator(=) constant(SOAP)operator(::)constant(RPC)operator(::)constant(SOAPMethodRequest)operator(.)ident(new)operator(()ident(qname)operator(,) ident(param_def)operator(\)) ident(request)operator(.)ident(set_param)operator(()ident(params)operator(\)) ident(envelope) operator(=) ident(create_soap_envelope)operator(()ident(request)operator(\)) constant(SOAP)operator(::)constant(Processor)operator(.)ident(marshal)operator(()ident(envelope)operator(\)) reserved(end) reserved(def) method(decode_response)operator(()ident(raw_response)operator(\)) ident(envelope) operator(=) constant(SOAP)operator(::)constant(Processor)operator(.)ident(unmarshal)operator(()ident(raw_response)operator(\)) reserved(unless) ident(envelope) ident(raise) constant(ProtocolError)operator(,) string reserved(end) ident(method_name) operator(=) ident(envelope)operator(.)ident(body)operator(.)ident(request)operator(.)ident(elename)operator(.)ident(name) ident(return_value) operator(=) ident(envelope)operator(.)ident(body)operator(.)ident(response) ident(return_value) operator(=) ident(marshaler)operator(.)ident(soap_to_ruby)operator(()ident(return_value)operator(\)) reserved(unless) ident(return_value)operator(.)ident(nil?) operator([)ident(method_name)operator(,) ident(return_value)operator(]) reserved(end) reserved(def) method(encode_response)operator(()ident(method_name)operator(,) ident(return_value)operator(,) ident(return_type)operator(,) ident(protocol_options)operator(=)operator({)operator(})operator(\)) reserved(if) ident(return_type) ident(return_binding) operator(=) ident(marshaler)operator(.)ident(register_type)operator(()ident(return_type)operator(\)) ident(marshaler)operator(.)ident(annotate_arrays)operator(()ident(return_binding)operator(,) ident(return_value)operator(\)) reserved(end) ident(qname) operator(=) constant(XSD)operator(::)constant(QName)operator(.)ident(new)operator(()ident(marshaler)operator(.)ident(namespace)operator(,) ident(method_name)operator(\)) reserved(if) ident(return_value)operator(.)ident(nil?) ident(response) operator(=) constant(SOAP)operator(::)constant(RPC)operator(::)constant(SOAPMethodResponse)operator(.)ident(new)operator(()ident(qname)operator(,) pre_constant(nil)operator(\)) reserved(else) reserved(if) ident(return_value)operator(.)ident(is_a?)operator(()constant(Exception)operator(\)) ident(detail) operator(=) constant(SOAP)operator(::)constant(Mapping)operator(::)constant(SOAPException)operator(.)ident(new)operator(()ident(return_value)operator(\)) ident(response) operator(=) constant(SOAP)operator(::)constant(SOAPFault)operator(.)ident(new)operator(() constant(SOAP)operator(::)constant(SOAPQName)operator(.)ident(new)operator(()string operator(%) operator([)constant(SOAP)operator(::)constant(SOAPNamespaceTag)operator(,) stringoperator(])operator(\))operator(,) constant(SOAP)operator(::)constant(SOAPString)operator(.)ident(new)operator(()ident(return_value)operator(.)ident(to_s)operator(\))operator(,) constant(SOAP)operator(::)constant(SOAPString)operator(.)ident(new)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(name)operator(\))operator(,) ident(marshaler)operator(.)ident(ruby_to_soap)operator(()ident(detail)operator(\))operator(\)) reserved(else) reserved(if) ident(return_type) ident(param_def) operator(=) operator([)operator([)stringoperator(,) stringoperator(,) ident(marshaler)operator(.)ident(lookup_type)operator(()ident(return_type)operator(\))operator(.)ident(mapping)operator(])operator(]) ident(response) operator(=) constant(SOAP)operator(::)constant(RPC)operator(::)constant(SOAPMethodResponse)operator(.)ident(new)operator(()ident(qname)operator(,) ident(param_def)operator(\)) ident(response)operator(.)ident(retval) operator(=) ident(marshaler)operator(.)ident(ruby_to_soap)operator(()ident(return_value)operator(\)) reserved(else) ident(response) operator(=) constant(SOAP)operator(::)constant(RPC)operator(::)constant(SOAPMethodResponse)operator(.)ident(new)operator(()ident(qname)operator(,) pre_constant(nil)operator(\)) reserved(end) reserved(end) reserved(end) ident(envelope) operator(=) ident(create_soap_envelope)operator(()ident(response)operator(\)) comment(# FIXME: This is not thread-safe, but StringFactory_ in SOAP4R only) comment(# reads target encoding from the XSD::Charset.encoding variable.) comment(# This is required to ensure $KCODE strings are converted) comment(# correctly to UTF-8 for any values of $KCODE.) ident(previous_encoding) operator(=) constant(XSD)operator(::)constant(Charset)operator(.)ident(encoding) constant(XSD)operator(::)constant(Charset)operator(.)ident(encoding) operator(=) constant(XSDEncoding) ident(response_body) operator(=) constant(SOAP)operator(::)constant(Processor)operator(.)ident(marshal)operator(()ident(envelope)operator(,) symbol(:charset) operator(=)operator(>) constant(AWSEncoding)operator(\)) constant(XSD)operator(::)constant(Charset)operator(.)ident(encoding) operator(=) ident(previous_encoding) constant(Response)operator(.)ident(new)operator(()ident(response_body)operator(,) stringdelimiter(")>operator(,) ident(return_value)operator(\)) reserved(end) reserved(def) method(protocol_client)operator(()ident(api)operator(,) ident(protocol_name)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) reserved(return) pre_constant(nil) reserved(unless) ident(protocol_name) operator(==) symbol(:soap) constant(ActionWebService)operator(::)constant(Client)operator(::)constant(Soap)operator(.)ident(new)operator(()ident(api)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(register_api)operator(()ident(api)operator(\)) ident(api)operator(.)ident(api_methods)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(method)operator(|) ident(method)operator(.)ident(expects)operator(.)ident(each)operator({) operator(|)ident(type)operator(|) ident(marshaler)operator(.)ident(register_type)operator(()ident(type)operator(\)) operator(}) reserved(if) ident(method)operator(.)ident(expects) ident(method)operator(.)ident(returns)operator(.)ident(each)operator({) operator(|)ident(type)operator(|) ident(marshaler)operator(.)ident(register_type)operator(()ident(type)operator(\)) operator(}) reserved(if) ident(method)operator(.)ident(returns) reserved(end) reserved(end) ident(private) reserved(def) method(has_valid_soap_action?)operator(()ident(request)operator(\)) reserved(return) pre_constant(nil) reserved(unless) ident(request)operator(.)ident(method) operator(==) symbol(:post) ident(soap_action) operator(=) ident(request)operator(.)ident(env)operator([)stringoperator(]) reserved(return) pre_constant(nil) reserved(unless) ident(soap_action) ident(soap_action) operator(=) ident(soap_action)operator(.)ident(dup) ident(soap_action)operator(.)ident(gsub!)operator(()regexpoperator(,) stringoperator(\)) ident(soap_action)operator(.)ident(gsub!)operator(()regexpoperator(,) stringoperator(\)) ident(soap_action)operator(.)ident(strip!) reserved(return) pre_constant(nil) reserved(if) ident(soap_action)operator(.)ident(empty?) ident(soap_action) reserved(end) reserved(def) method(create_soap_envelope)operator(()ident(body)operator(\)) ident(header) operator(=) constant(SOAP)operator(::)constant(SOAPHeader)operator(.)ident(new) ident(body) operator(=) constant(SOAP)operator(::)constant(SOAPBody)operator(.)ident(new)operator(()ident(body)operator(\)) constant(SOAP)operator(::)constant(SOAPEnvelope)operator(.)ident(new)operator(()ident(header)operator(,) ident(body)operator(\)) reserved(end) reserved(def) method(parse_charset)operator(()ident(content_type)operator(\)) reserved(return) constant(AWSEncoding) reserved(if) ident(content_type)operator(.)ident(nil?) reserved(if) regexp operator(=)operator(~) ident(content_type) global_variable($1) reserved(else) constant(AWSEncoding) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string reserved(module) class(XMLRPC) comment(# :nodoc:) reserved(class) class(FaultException) comment(# :nodoc:) reserved(alias) symbol(:message) symbol(:faultString) reserved(end) reserved(end) reserved(module) class(ActionWebService) comment(# :nodoc:) reserved(module) class(API) comment(# :nodoc: ) reserved(class) class(Base) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(xmlrpc_client)operator(()ident(endpoint_uri)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) constant(ActionWebService)operator(::)constant(Client)operator(::)constant(XmlRpc)operator(.)ident(new) pre_constant(self)operator(,) ident(endpoint_uri)operator(,) ident(options) reserved(end) reserved(end) reserved(end) reserved(module) class(Protocol) comment(# :nodoc:) reserved(module) class(XmlRpc) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(register_protocol)operator(()constant(XmlRpcProtocol)operator(\)) reserved(end) reserved(class) class(XmlRpcProtocol) operator(<) constant(AbstractProtocol) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(create)operator(()ident(controller)operator(\)) constant(XmlRpcProtocol)operator(.)ident(new) reserved(end) reserved(def) method(decode_action_pack_request)operator(()ident(action_pack_request)operator(\)) ident(service_name) operator(=) ident(action_pack_request)operator(.)ident(parameters)operator([)stringoperator(]) ident(decode_request)operator(()ident(action_pack_request)operator(.)ident(raw_post)operator(,) ident(service_name)operator(\)) reserved(end) reserved(def) method(decode_request)operator(()ident(raw_request)operator(,) ident(service_name)operator(\)) ident(method_name)operator(,) ident(params) operator(=) constant(XMLRPC)operator(::)constant(Marshal)operator(.)ident(load_call)operator(()ident(raw_request)operator(\)) constant(Request)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(method_name)operator(,) ident(params)operator(,) ident(service_name)operator(\)) reserved(end) reserved(def) method(encode_request)operator(()ident(method_name)operator(,) ident(params)operator(,) ident(param_types)operator(\)) reserved(if) ident(param_types) ident(params) operator(=) ident(params)operator(.)ident(dup) ident(param_types)operator(.)ident(each_with_index)operator({) operator(|)ident(type)operator(,) ident(i)operator(|) ident(params)operator([)ident(i)operator(]) operator(=) ident(value_to_xmlrpc_wire_format)operator(()ident(params)operator([)ident(i)operator(])operator(,) ident(type)operator(\)) operator(}) reserved(end) constant(XMLRPC)operator(::)constant(Marshal)operator(.)ident(dump_call)operator(()ident(method_name)operator(,) operator(*)ident(params)operator(\)) reserved(end) reserved(def) method(decode_response)operator(()ident(raw_response)operator(\)) operator([)pre_constant(nil)operator(,) constant(XMLRPC)operator(::)constant(Marshal)operator(.)ident(load_response)operator(()ident(raw_response)operator(\))operator(]) reserved(end) reserved(def) method(encode_response)operator(()ident(method_name)operator(,) ident(return_value)operator(,) ident(return_type)operator(,) ident(protocol_options)operator(=)operator({)operator(})operator(\)) reserved(if) ident(return_value) operator(&&) ident(return_type) ident(return_value) operator(=) ident(value_to_xmlrpc_wire_format)operator(()ident(return_value)operator(,) ident(return_type)operator(\)) reserved(end) ident(return_value) operator(=) pre_constant(false) reserved(if) ident(return_value)operator(.)ident(nil?) ident(raw_response) operator(=) constant(XMLRPC)operator(::)constant(Marshal)operator(.)ident(dump_response)operator(()ident(return_value)operator(\)) constant(Response)operator(.)ident(new)operator(()ident(raw_response)operator(,) stringoperator(,) ident(return_value)operator(\)) reserved(end) reserved(def) method(protocol_client)operator(()ident(api)operator(,) ident(protocol_name)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) reserved(return) pre_constant(nil) reserved(unless) ident(protocol_name) operator(==) symbol(:xmlrpc) constant(ActionWebService)operator(::)constant(Client)operator(::)constant(XmlRpc)operator(.)ident(new)operator(()ident(api)operator(,) ident(endpoint_uri)operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(value_to_xmlrpc_wire_format)operator(()ident(value)operator(,) ident(value_type)operator(\)) reserved(if) ident(value_type)operator(.)ident(array?) ident(value)operator(.)ident(map)operator({) operator(|)ident(val)operator(|) ident(value_to_xmlrpc_wire_format)operator(()ident(val)operator(,) ident(value_type)operator(.)ident(element_type)operator(\)) operator(}) reserved(else) reserved(if) ident(value)operator(.)ident(is_a?)operator(()constant(ActionWebService)operator(::)constant(Struct)operator(\)) ident(struct) operator(=) operator({)operator(}) ident(value)operator(.)ident(class)operator(.)ident(members)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(type)operator(|) ident(member_value) operator(=) ident(value)operator([)ident(name)operator(]) reserved(next) reserved(if) ident(member_value)operator(.)ident(nil?) ident(struct)operator([)ident(name)operator(.)ident(to_s)operator(]) operator(=) ident(value_to_xmlrpc_wire_format)operator(()ident(member_value)operator(,) ident(type)operator(\)) reserved(end) ident(struct) reserved(elsif) ident(value)operator(.)ident(is_a?)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(\)) ident(struct) operator(=) operator({)operator(}) ident(value)operator(.)ident(attributes)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(,) ident(member_value)operator(|) reserved(next) reserved(if) ident(member_value)operator(.)ident(nil?) ident(struct)operator([)ident(key)operator(.)ident(to_s)operator(]) operator(=) ident(member_value) reserved(end) ident(struct) reserved(elsif) ident(value)operator(.)ident(is_a?)operator(()constant(ActionWebService)operator(::)constant(Base64)operator(\)) constant(XMLRPC)operator(::)constant(Base64)operator(.)ident(new)operator(()ident(value)operator(\)) reserved(elsif) ident(value)operator(.)ident(is_a?)operator(()constant(Exception)operator(\)) operator(&&) operator(!)ident(value)operator(.)ident(is_a?)operator(()constant(XMLRPC)operator(::)constant(FaultException)operator(\)) constant(XMLRPC)operator(::)constant(FaultException)operator(.)ident(new)operator(()integer(2)operator(,) ident(value)operator(.)ident(message)operator(\)) reserved(else) ident(value) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(module) class(ActionWebService) reserved(module) class(Scaffolding) comment(# :nodoc:) reserved(class) class(ScaffoldingError) operator(<) constant(ActionWebServiceError) comment(# :nodoc:) reserved(end) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# Web service invocation scaffolding provides a way to quickly invoke web service methods in a controller. The) comment(# generated scaffold actions have default views to let you enter the method parameters and view the) comment(# results.) comment(#) comment(# Example:) comment(#) comment(# class ApiController < ActionController) comment(# web_service_scaffold :invoke) comment(# end) comment(#) comment(# This example generates an +invoke+ action in the +ApiController+ that you can navigate to from) comment(# your browser, select the API method, enter its parameters, and perform the invocation.) comment(#) comment(# If you want to customize the default views, create the following views in "app/views":) comment(#) comment(# * action_name/methods.rhtml) comment(# * action_name/parameters.rhtml) comment(# * action_name/result.rhtml) comment(# * action_name/layout.rhtml) comment(#) comment(# Where action_name is the name of the action you gave to ClassMethods#web_service_scaffold.) comment(#) comment(# You can use the default views in RAILS_DIR/lib/action_web_service/templates/scaffolds as) comment(# a guide.) reserved(module) class(ClassMethods) comment(# Generates web service invocation scaffolding for the current controller. The given action name) comment(# can then be used as the entry point for invoking API methods from a web browser.) reserved(def) method(web_service_scaffold)operator(()ident(action_name)operator(\)) ident(add_template_helper)operator(()constant(Helpers)operator(\)) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent( if request.method == :get setup_invocation_assigns render_invocation_scaffold 'methods' end end def )inlinecontent(_method_params if request.method == :get setup_invocation_assigns render_invocation_scaffold 'parameters' end end def )inlinecontent(_submit if request.method == :post setup_invocation_assigns protocol_name = params['protocol'] ? params['protocol'].to_sym : :soap case protocol_name when :soap @protocol = Protocol::Soap::SoapProtocol.create(self\) when :xmlrpc @protocol = Protocol::XmlRpc::XmlRpcProtocol.create(self\) end bm = Benchmark.measure do @protocol.register_api(@scaffold_service.api\) post_params = params['method_params'] ? params['method_params'].dup : nil params = [] @scaffold_method.expects.each_with_index do |spec, i| params << post_params[i.to_s] end if @scaffold_method.expects params = @scaffold_method.cast_expects(params\) method_name = public_method_name(@scaffold_service.name, @scaffold_method.public_name\) @method_request_xml = @protocol.encode_request(method_name, params, @scaffold_method.expects\) new_request = @protocol.encode_action_pack_request(@scaffold_service.name, @scaffold_method.public_name, @method_request_xml\) prepare_request(new_request, @scaffold_service.name, @scaffold_method.public_name\) @request = new_request if @scaffold_container.dispatching_mode != :direct request.parameters['action'] = @scaffold_service.name end dispatch_web_service_request @method_response_xml = @response.body method_name, obj = @protocol.decode_response(@method_response_xml\) return if handle_invocation_exception(obj\) @method_return_value = @scaffold_method.cast_returns(obj\) end @method_elapsed = bm.real add_instance_variables_to_assigns reset_invocation_response render_invocation_scaffold 'result' end end private def setup_invocation_assigns @scaffold_class = self.class @scaffold_action_name = ")inlinecontent(" @scaffold_container = WebServiceModel::Container.new(self\) if params['service'] && params['method'] @scaffold_service = @scaffold_container.services.find{ |x| x.name == params['service'] } @scaffold_method = @scaffold_service.api_methods[params['method']] end add_instance_variables_to_assigns end def render_invocation_scaffold(action\) customized_template = ")char(\\#)content({self.class.controller_path}/)inlinecontent(/)char(\\#)content({action}" default_template = scaffold_path(action\) if template_exists?(customized_template\) content = @template.render_file(customized_template\) else content = @template.render_file(default_template, false\) end @template.instance_variable_set("@content_for_layout", content\) if self.active_layout.nil? render_file(scaffold_path("layout"\)\) else render_file(self.active_layout, "200 OK", true\) end end def scaffold_path(template_name\) File.dirname(__FILE__\) + "/templates/scaffolds/" + template_name + ".rhtml" end def reset_invocation_response erase_render_results @response.headers = ::ActionController::AbstractResponse::DEFAULT_HEADERS.merge("cookie" => []\) end def public_method_name(service_name, method_name\) if web_service_dispatching_mode == :layered && @protocol.is_a?(ActionWebService::Protocol::XmlRpc::XmlRpcProtocol\) service_name + '.' + method_name else method_name end end def prepare_request(new_request, service_name, method_name\) new_request.parameters.update(request.parameters\) request.env.each{ |k, v| new_request.env[k] = v unless new_request.env.has_key?(k\) } if web_service_dispatching_mode == :layered && @protocol.is_a?(ActionWebService::Protocol::Soap::SoapProtocol\) new_request.env['HTTP_SOAPACTION'] = "/)char(\\#)content({controller_name(\)}/)char(\\#)content({service_name}/)char(\\#)content({method_name}" end end def handle_invocation_exception(obj\) exception = nil if obj.respond_to?(:detail\) && obj.detail.respond_to?(:cause\) && obj.detail.cause.is_a?(Exception\) exception = obj.detail.cause elsif obj.is_a?(XMLRPC::FaultException\) exception = obj end return unless exception reset_invocation_response rescue_action(exception\) true end)delimiter( end_eval)> reserved(end) reserved(end) reserved(module) class(Helpers) comment(# :nodoc:) reserved(def) method(method_parameter_input_fields)operator(()ident(method)operator(,) ident(type)operator(,) ident(field_name_base)operator(,) ident(idx)operator(,) ident(was_structured)operator(=)pre_constant(false)operator(\)) reserved(if) ident(type)operator(.)ident(array?) reserved(return) ident(content_tag)operator(()stringoperator(,) stringcontent(\))delimiter(")>operator(\)) reserved(end) reserved(if) ident(type)operator(.)ident(structured?) reserved(return) ident(content_tag)operator(()stringoperator(,) stringcontent(\))delimiter(")>operator(\)) reserved(if) ident(was_structured) ident(parameters) operator(=) string ident(type)operator(.)ident(each_member) reserved(do) operator(|)ident(member_name)operator(,) ident(member_type)operator(|) ident(label) operator(=) ident(method_parameter_label)operator(()ident(member_name)operator(,) ident(member_type)operator(\)) ident(nested_content) operator(=) ident(method_parameter_input_fields)operator(() ident(method)operator(,) ident(member_type)operator(,) stringcontent([)inlinecontent(][)inlinecontent(])delimiter(")>operator(,) ident(idx)operator(,) pre_constant(true)operator(\)) reserved(if) ident(member_type)operator(.)ident(custom?) ident(parameters) operator(<<) ident(content_tag)operator(()stringoperator(,) ident(label)operator(\)) ident(parameters) operator(<<) ident(content_tag)operator(()stringoperator(,) ident(nested_content)operator(\)) reserved(else) ident(parameters) operator(<<) ident(content_tag)operator(()stringoperator(,) ident(label) operator(+) string operator(+) ident(nested_content)operator(\)) reserved(end) reserved(end) ident(content_tag)operator(()stringoperator(,) ident(parameters)operator(\)) reserved(else) comment(# If the data source was structured previously we already have the index set ) ident(field_name_base) operator(=) stringcontent([)inlinecontent(])delimiter(")> reserved(unless) ident(was_structured) reserved(case) ident(type)operator(.)ident(type) reserved(when) symbol(:int) ident(text_field_tag) stringdelimiter(")> reserved(when) symbol(:string) ident(text_field_tag) stringdelimiter(")> reserved(when) symbol(:base64) ident(text_area_tag) stringdelimiter(")>operator(,) pre_constant(nil)operator(,) symbol(:size) operator(=)operator(>) string reserved(when) symbol(:bool) ident(radio_button_tag)operator(()stringdelimiter(")>operator(,) stringoperator(\)) operator(+) string operator(+) ident(radio_button_tag)operator(()stringdelimiter(")>operator(,) stringoperator(\)) operator(+) string reserved(when) symbol(:float) ident(text_field_tag) stringdelimiter(")> reserved(when) symbol(:time)operator(,) symbol(:datetime) ident(time) operator(=) constant(Time)operator(.)ident(now) ident(i) operator(=) integer(0) stringoperator(.)ident(map) reserved(do) operator(|)ident(name)operator(|) ident(i) operator(+=) integer(1) ident(send)operator(()stringdelimiter(")>operator(,) ident(time)operator(,) symbol(:prefix) operator(=)operator(>) stringcontent([)inlinecontent(])delimiter(")>operator(,) symbol(:discard_type) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end)operator(.)ident(join) reserved(when) symbol(:date) ident(date) operator(=) constant(Date)operator(.)ident(today) ident(i) operator(=) integer(0) stringoperator(.)ident(map) reserved(do) operator(|)ident(name)operator(|) ident(i) operator(+=) integer(1) ident(send)operator(()stringdelimiter(")>operator(,) ident(date)operator(,) symbol(:prefix) operator(=)operator(>) stringcontent([)inlinecontent(])delimiter(")>operator(,) symbol(:discard_type) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end)operator(.)ident(join) reserved(end) reserved(end) reserved(end) reserved(def) method(method_parameter_label)operator(()ident(name)operator(,) ident(type)operator(\)) ident(name)operator(.)ident(to_s)operator(.)ident(capitalize) operator(+) string operator(+) ident(type)operator(.)ident(human_name)operator(()pre_constant(false)operator(\)) operator(+) string reserved(end) reserved(def) method(service_method_list)operator(()ident(service)operator(\)) ident(action) operator(=) instance_variable(@scaffold_action_name) operator(+) string ident(methods) operator(=) ident(service)operator(.)ident(api_methods_full)operator(.)ident(map) reserved(do) operator(|)ident(desc)operator(,) ident(name)operator(|) ident(content_tag)operator(()stringoperator(,) ident(link_to)operator(()ident(desc)operator(,) symbol(:action) operator(=)operator(>) ident(action)operator(,) symbol(:service) operator(=)operator(>) ident(service)operator(.)ident(name)operator(,) symbol(:method) operator(=)operator(>) ident(name)operator(\))operator(\)) reserved(end) ident(content_tag)operator(()stringoperator(,) ident(methods)operator(.)ident(join)operator(()stringoperator(\))operator(\)) reserved(end) reserved(end) reserved(module) class(WebServiceModel) comment(# :nodoc:) reserved(class) class(Container) comment(# :nodoc:) ident(attr) symbol(:services) ident(attr) symbol(:dispatching_mode) reserved(def) method(initialize)operator(()ident(real_container)operator(\)) instance_variable(@real_container) operator(=) ident(real_container) instance_variable(@dispatching_mode) operator(=) instance_variable(@real_container)operator(.)ident(class)operator(.)ident(web_service_dispatching_mode) instance_variable(@services) operator(=) operator([)operator(]) reserved(if) instance_variable(@dispatching_mode) operator(==) symbol(:direct) instance_variable(@services) operator(<<) constant(Service)operator(.)ident(new)operator(()instance_variable(@real_container)operator(.)ident(controller_name)operator(,) instance_variable(@real_container)operator(\)) reserved(else) instance_variable(@real_container)operator(.)ident(class)operator(.)ident(web_services)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(obj)operator(|) instance_variable(@services) operator(<<) constant(Service)operator(.)ident(new)operator(()ident(name)operator(,) instance_variable(@real_container)operator(.)ident(instance_eval)operator({) ident(web_service_object)operator(()ident(name)operator(\)) operator(})operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(Service) comment(# :nodoc:) ident(attr) symbol(:name) ident(attr) symbol(:object) ident(attr) symbol(:api) ident(attr) symbol(:api_methods) ident(attr) symbol(:api_methods_full) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(real_service)operator(\)) instance_variable(@name) operator(=) ident(name)operator(.)ident(to_s) instance_variable(@object) operator(=) ident(real_service) instance_variable(@api) operator(=) instance_variable(@object)operator(.)ident(class)operator(.)ident(web_service_api) reserved(if) instance_variable(@api)operator(.)ident(nil?) ident(raise) constant(ScaffoldingError)operator(,) stringdelimiter(")> reserved(end) instance_variable(@api_methods) operator(=) operator({)operator(}) instance_variable(@api_methods_full) operator(=) operator([)operator(]) instance_variable(@api)operator(.)ident(api_methods)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(method)operator(|) instance_variable(@api_methods)operator([)ident(method)operator(.)ident(public_name)operator(.)ident(to_s)operator(]) operator(=) ident(method) instance_variable(@api_methods_full) operator(<<) operator([)ident(method)operator(.)ident(to_s)operator(,) ident(method)operator(.)ident(public_name)operator(.)ident(to_s)operator(]) reserved(end) reserved(end) reserved(def) method(to_s) pre_constant(self)operator(.)ident(name)operator(.)ident(camelize) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionWebService) comment(# To send structured types across the wire, derive from ActionWebService::Struct,) comment(# and use +member+ to declare structure members.) comment(#) comment(# ActionWebService::Struct should be used in method signatures when you want to accept or return) comment(# structured types that have no Active Record model class representations, or you don't) comment(# want to expose your entire Active Record model to remote callers.) comment(#) comment(# === Example) comment(#) comment(# class Person < ActionWebService::Struct) comment(# member :id, :int) comment(# member :firstnames, [:string]) comment(# member :lastname, :string) comment(# member :email, :string) comment(# end) comment(# person = Person.new(:id => 5, :firstname => 'john', :lastname => 'doe'\)) comment(#) comment(# Active Record model classes are already implicitly supported in method) comment(# signatures.) reserved(class) class(Struct) comment(# Action WebService Struct subclasses should be reloaded by the dispatcher in Rails) comment(# when Dependencies.mechanism = :load.) ident(include) constant(Reloadable)operator(::)constant(Subclasses) comment(# If a Hash is given as argument to an ActionWebService::Struct constructor,) comment(# it can contain initial values for the structure member.) reserved(def) method(initialize)operator(()ident(values)operator(=)operator({)operator(})operator(\)) reserved(if) ident(values)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(values)operator(.)ident(map)operator({)operator(|)ident(k)operator(,)ident(v)operator(|) ident(__send__)operator(()string operator(%) ident(k)operator(.)ident(to_s)operator(,) ident(v)operator(\))operator(}) reserved(end) reserved(end) comment(# The member with the given name) reserved(def) method([])operator(()ident(name)operator(\)) ident(send)operator(()ident(name)operator(.)ident(to_s)operator(\)) reserved(end) comment(# Iterates through each member) reserved(def) method(each_pair)operator(()operator(&)ident(block)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(members)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(type)operator(|) reserved(yield) ident(name)operator(,) pre_constant(self)operator(.)ident(__send__)operator(()ident(name)operator(\)) reserved(end) reserved(end) reserved(class) operator(<<) class(self) comment(# Creates a structure member with the specified +name+ and +type+. Generates) comment(# accessor methods for reading and writing the member value.) reserved(def) method(member)operator(()ident(name)operator(,) ident(type)operator(\)) ident(name) operator(=) ident(name)operator(.)ident(to_sym) ident(type) operator(=) constant(ActionWebService)operator(::)constant(SignatureTypes)operator(.)ident(canonical_signature_entry)operator(()operator({) ident(name) operator(=)operator(>) ident(type) operator(})operator(,) integer(0)operator(\)) ident(write_inheritable_hash)operator(()stringoperator(,) ident(name) operator(=)operator(>) ident(type)operator(\)) ident(class_eval) stringstringcontent(; @)inlinecontent(; end def )inlinecontent(=(value\); @)inlinecontent( = value; end)delimiter( END)> reserved(end) reserved(def) method(members) comment(# :nodoc:) ident(read_inheritable_attribute)operator(()stringoperator(\)) operator(||) operator({)operator(}) reserved(end) reserved(def) method(member_type)operator(()ident(name)operator(\)) comment(# :nodoc:) ident(members)operator([)ident(name)operator(.)ident(to_sym)operator(]) reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(Class) comment(# :nodoc:) reserved(def) method(class_inheritable_option)operator(()ident(sym)operator(,) ident(default_value)operator(=)pre_constant(nil)operator(\)) ident(write_inheritable_attribute) ident(sym)operator(,) ident(default_value) ident(class_eval) stringstringcontent((value=nil\) if !value.nil? write_inheritable_attribute(:)inlinecontent(, value\) else read_inheritable_attribute(:)inlinecontent(\) end end def self.)inlinecontent(=(value\) write_inheritable_attribute(:)inlinecontent(, value\) end def )inlinecontent( self.class.)inlinecontent( end def )inlinecontent(=(value\) self.class.)inlinecontent( = value end)delimiter( EOS)> reserved(end) reserved(end) reserved(module) class(ActionWebService) comment(# :nodoc:) comment(# Action Web Service supports the following base types in a signature:) comment(#) comment(# [:int] Represents an integer value, will be cast to an integer using Integer(value\)) comment(# [:string] Represents a string value, will be cast to an string using the to_s method on an object) comment(# [:base64] Represents a Base 64 value, will contain the binary bytes of a Base 64 value sent by the caller) comment(# [:bool] Represents a boolean value, whatever is passed will be cast to boolean (true, '1', 'true', 'y', 'yes' are taken to represent true; false, '0', 'false', 'n', 'no' and nil represent false\)) comment(# [:float] Represents a floating point value, will be cast to a float using Float(value\)) comment(# [:time] Represents a timestamp, will be cast to a Time object) comment(# [:datetime] Represents a timestamp, will be cast to a DateTime object) comment(# [:date] Represents a date, will be cast to a Date object) comment(#) comment(# For structured types, you'll need to pass in the Class objects of) comment(# ActionWebService::Struct and ActiveRecord::Base derivatives.) reserved(module) class(SignatureTypes) reserved(def) method(canonical_signature)operator(()ident(signature)operator(\)) comment(# :nodoc:) reserved(return) pre_constant(nil) reserved(if) ident(signature)operator(.)ident(nil?) reserved(unless) ident(signature)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(raise)operator(()constant(ActionWebServiceError)operator(,) stringoperator(\)) reserved(end) ident(i) operator(=) integer(-1) ident(signature)operator(.)ident(map)operator({) operator(|)ident(spec)operator(|) ident(canonical_signature_entry)operator(()ident(spec)operator(,) ident(i) operator(+=) integer(1)operator(\)) operator(}) reserved(end) reserved(def) method(canonical_signature_entry)operator(()ident(spec)operator(,) ident(i)operator(\)) comment(# :nodoc:) ident(orig_spec) operator(=) ident(spec) ident(name) operator(=) stringdelimiter(")> reserved(if) ident(spec)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(name)operator(,) ident(spec) operator(=) ident(spec)operator(.)ident(keys)operator(.)ident(first)operator(,) ident(spec)operator(.)ident(values)operator(.)ident(first) reserved(end) ident(type) operator(=) ident(spec) reserved(if) ident(spec)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) constant(ArrayType)operator(.)ident(new)operator(()ident(orig_spec)operator(,) ident(canonical_signature_entry)operator(()ident(spec)operator([)integer(0)operator(])operator(,) integer(0)operator(\))operator(,) ident(name)operator(\)) reserved(else) ident(type) operator(=) ident(canonical_type)operator(()ident(type)operator(\)) reserved(if) ident(type)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) constant(BaseType)operator(.)ident(new)operator(()ident(orig_spec)operator(,) ident(type)operator(,) ident(name)operator(\)) reserved(else) constant(StructuredType)operator(.)ident(new)operator(()ident(orig_spec)operator(,) ident(type)operator(,) ident(name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(canonical_type)operator(()ident(type)operator(\)) comment(# :nodoc:) ident(type_name) operator(=) ident(symbol_name)operator(()ident(type)operator(\)) operator(||) ident(class_to_type_name)operator(()ident(type)operator(\)) ident(type) operator(=) ident(type_name) operator(||) ident(type) reserved(return) ident(canonical_type_name)operator(()ident(type)operator(\)) reserved(if) ident(type)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) ident(type) reserved(end) reserved(def) method(canonical_type_name)operator(()ident(name)operator(\)) comment(# :nodoc:) ident(name) operator(=) ident(name)operator(.)ident(to_sym) reserved(case) ident(name) reserved(when) symbol(:int)operator(,) symbol(:integer)operator(,) symbol(:fixnum)operator(,) symbol(:bignum) symbol(:int) reserved(when) symbol(:string)operator(,) symbol(:text) symbol(:string) reserved(when) symbol(:base64)operator(,) symbol(:binary) symbol(:base64) reserved(when) symbol(:bool)operator(,) symbol(:boolean) symbol(:bool) reserved(when) symbol(:float)operator(,) symbol(:double) symbol(:float) reserved(when) symbol(:time)operator(,) symbol(:timestamp) symbol(:time) reserved(when) symbol(:datetime) symbol(:datetime) reserved(when) symbol(:date) symbol(:date) reserved(else) ident(raise)operator(()constant(TypeError)operator(,) stringcontent( is not a valid base type)delimiter(")>operator(\)) reserved(end) reserved(end) reserved(def) method(canonical_type_class)operator(()ident(type)operator(\)) comment(# :nodoc:) ident(type) operator(=) ident(canonical_type)operator(()ident(type)operator(\)) ident(type)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) operator(?) ident(type_name_to_class)operator(()ident(type)operator(\)) operator(:) ident(type) reserved(end) reserved(def) method(symbol_name)operator(()ident(name)operator(\)) comment(# :nodoc:) reserved(return) ident(name)operator(.)ident(to_sym) reserved(if) ident(name)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) operator(||) ident(name)operator(.)ident(is_a?)operator(()constant(String)operator(\)) pre_constant(nil) reserved(end) reserved(def) method(class_to_type_name)operator(()ident(klass)operator(\)) comment(# :nodoc:) ident(klass) operator(=) ident(klass)operator(.)ident(class) reserved(unless) ident(klass)operator(.)ident(is_a?)operator(()constant(Class)operator(\)) reserved(if) ident(derived_from?)operator(()constant(Integer)operator(,) ident(klass)operator(\)) operator(||) ident(derived_from?)operator(()constant(Fixnum)operator(,) ident(klass)operator(\)) operator(||) ident(derived_from?)operator(()constant(Bignum)operator(,) ident(klass)operator(\)) symbol(:int) reserved(elsif) ident(klass) operator(==) constant(String) symbol(:string) reserved(elsif) ident(klass) operator(==) constant(Base64) symbol(:base64) reserved(elsif) ident(klass) operator(==) constant(TrueClass) operator(||) ident(klass) operator(==) constant(FalseClass) symbol(:bool) reserved(elsif) ident(derived_from?)operator(()constant(Float)operator(,) ident(klass)operator(\)) operator(||) ident(derived_from?)operator(()constant(Precision)operator(,) ident(klass)operator(\)) operator(||) ident(derived_from?)operator(()constant(Numeric)operator(,) ident(klass)operator(\)) symbol(:float) reserved(elsif) ident(klass) operator(==) constant(Time) symbol(:time) reserved(elsif) ident(klass) operator(==) constant(DateTime) symbol(:datetime) reserved(elsif) ident(klass) operator(==) constant(Date) symbol(:date) reserved(else) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(type_name_to_class)operator(()ident(name)operator(\)) comment(# :nodoc:) reserved(case) ident(canonical_type_name)operator(()ident(name)operator(\)) reserved(when) symbol(:int) constant(Integer) reserved(when) symbol(:string) constant(String) reserved(when) symbol(:base64) constant(Base64) reserved(when) symbol(:bool) constant(TrueClass) reserved(when) symbol(:float) constant(Float) reserved(when) symbol(:time) constant(Time) reserved(when) symbol(:date) constant(Date) reserved(when) symbol(:datetime) constant(DateTime) reserved(else) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(derived_from?)operator(()ident(ancestor)operator(,) ident(child)operator(\)) comment(# :nodoc:) ident(child)operator(.)ident(ancestors)operator(.)ident(include?)operator(()ident(ancestor)operator(\)) reserved(end) ident(module_function) symbol(:type_name_to_class) ident(module_function) symbol(:class_to_type_name) ident(module_function) symbol(:symbol_name) ident(module_function) symbol(:canonical_type_class) ident(module_function) symbol(:canonical_type_name) ident(module_function) symbol(:canonical_type) ident(module_function) symbol(:canonical_signature_entry) ident(module_function) symbol(:canonical_signature) ident(module_function) symbol(:derived_from?) reserved(end) reserved(class) class(BaseType) comment(# :nodoc:) ident(include) constant(SignatureTypes) ident(attr) symbol(:spec) ident(attr) symbol(:type) ident(attr) symbol(:type_class) ident(attr) symbol(:name) reserved(def) method(initialize)operator(()ident(spec)operator(,) ident(type)operator(,) ident(name)operator(\)) instance_variable(@spec) operator(=) ident(spec) instance_variable(@type) operator(=) ident(canonical_type)operator(()ident(type)operator(\)) instance_variable(@type_class) operator(=) ident(canonical_type_class)operator(()instance_variable(@type)operator(\)) instance_variable(@name) operator(=) ident(name) reserved(end) reserved(def) method(custom?) pre_constant(false) reserved(end) reserved(def) method(array?) pre_constant(false) reserved(end) reserved(def) method(structured?) pre_constant(false) reserved(end) reserved(def) method(human_name)operator(()ident(show_name)operator(=)pre_constant(true)operator(\)) ident(type_type) operator(=) ident(array?) operator(?) ident(element_type)operator(.)ident(type)operator(.)ident(to_s) operator(:) pre_constant(self)operator(.)ident(type)operator(.)ident(to_s) ident(str) operator(=) ident(array?) operator(?) operator(()ident(type_type) operator(+) stringoperator(\)) operator(:) ident(type_type) ident(show_name) operator(?) operator(()ident(str) operator(+) string operator(+) ident(name)operator(.)ident(to_s)operator(\)) operator(:) ident(str) reserved(end) reserved(end) reserved(class) class(ArrayType) operator(<) constant(BaseType) comment(# :nodoc:) ident(attr) symbol(:element_type) reserved(def) method(initialize)operator(()ident(spec)operator(,) ident(element_type)operator(,) ident(name)operator(\)) reserved(super)operator(()ident(spec)operator(,) constant(Array)operator(,) ident(name)operator(\)) instance_variable(@element_type) operator(=) ident(element_type) reserved(end) reserved(def) method(custom?) pre_constant(true) reserved(end) reserved(def) method(array?) pre_constant(true) reserved(end) reserved(end) reserved(class) class(StructuredType) operator(<) constant(BaseType) comment(# :nodoc:) reserved(def) method(each_member) reserved(if) instance_variable(@type_class)operator(.)ident(respond_to?)operator(()symbol(:members)operator(\)) instance_variable(@type_class)operator(.)ident(members)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(type)operator(|) reserved(yield) ident(name)operator(,) ident(type) reserved(end) reserved(elsif) instance_variable(@type_class)operator(.)ident(respond_to?)operator(()symbol(:columns)operator(\)) ident(i) operator(=) integer(-1) instance_variable(@type_class)operator(.)ident(columns)operator(.)ident(each) reserved(do) operator(|)ident(column)operator(|) reserved(yield) ident(column)operator(.)ident(name)operator(,) ident(canonical_signature_entry)operator(()ident(column)operator(.)ident(type)operator(,) ident(i) operator(+=) integer(1)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(custom?) pre_constant(true) reserved(end) reserved(def) method(structured?) pre_constant(true) reserved(end) reserved(end) reserved(class) class(Base64) operator(<) constant(String) comment(# :nodoc:) reserved(end) reserved(end) ident(require) string reserved(module) class(Test) comment(# :nodoc:) reserved(module) class(Unit) comment(# :nodoc:) reserved(class) class(TestCase) comment(# :nodoc:) ident(private) comment(# invoke the specified API method) reserved(def) method(invoke_direct)operator(()ident(method_name)operator(,) operator(*)ident(args)operator(\)) ident(prepare_request)operator(()stringoperator(,) stringoperator(,) ident(method_name)operator(,) operator(*)ident(args)operator(\)) instance_variable(@controller)operator(.)ident(process)operator(()instance_variable(@request)operator(,) instance_variable(@response)operator(\)) ident(decode_rpc_response) reserved(end) ident(alias_method) symbol(:invoke)operator(,) symbol(:invoke_direct) comment(# invoke the specified API method on the specified service) reserved(def) method(invoke_delegated)operator(()ident(service_name)operator(,) ident(method_name)operator(,) operator(*)ident(args)operator(\)) ident(prepare_request)operator(()ident(service_name)operator(.)ident(to_s)operator(,) ident(service_name)operator(,) ident(method_name)operator(,) operator(*)ident(args)operator(\)) instance_variable(@controller)operator(.)ident(process)operator(()instance_variable(@request)operator(,) instance_variable(@response)operator(\)) ident(decode_rpc_response) reserved(end) comment(# invoke the specified layered API method on the correct service) reserved(def) method(invoke_layered)operator(()ident(service_name)operator(,) ident(method_name)operator(,) operator(*)ident(args)operator(\)) ident(prepare_request)operator(()stringoperator(,) ident(service_name)operator(,) ident(method_name)operator(,) operator(*)ident(args)operator(\)) instance_variable(@controller)operator(.)ident(process)operator(()instance_variable(@request)operator(,) instance_variable(@response)operator(\)) ident(decode_rpc_response) reserved(end) comment(# ---------------------- internal ---------------------------) reserved(def) method(prepare_request)operator(()ident(action)operator(,) ident(service_name)operator(,) ident(api_method_name)operator(,) operator(*)ident(args)operator(\)) instance_variable(@request)operator(.)ident(recycle!) instance_variable(@request)operator(.)ident(request_parameters)operator([)stringoperator(]) operator(=) ident(action) instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) ident(encode_rpc_call)operator(()ident(service_name)operator(,) ident(api_method_name)operator(,) operator(*)ident(args)operator(\)) reserved(case) ident(protocol) reserved(when) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Soap)operator(::)constant(SoapProtocol) ident(soap_action) operator(=) stringcontent(/)inlinecontent(/)inlinedelimiter(")> instance_variable(@request)operator(.)ident(env)operator([)stringoperator(]) operator(=) ident(soap_action) reserved(when) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol) instance_variable(@request)operator(.)ident(env)operator(.)ident(delete)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(encode_rpc_call)operator(()ident(service_name)operator(,) ident(api_method_name)operator(,) operator(*)ident(args)operator(\)) reserved(case) instance_variable(@controller)operator(.)ident(web_service_dispatching_mode) reserved(when) symbol(:direct) ident(api) operator(=) instance_variable(@controller)operator(.)ident(class)operator(.)ident(web_service_api) reserved(when) symbol(:delegated)operator(,) symbol(:layered) ident(api) operator(=) instance_variable(@controller)operator(.)ident(web_service_object)operator(()ident(service_name)operator(.)ident(to_sym)operator(\))operator(.)ident(class)operator(.)ident(web_service_api) reserved(end) ident(protocol)operator(.)ident(register_api)operator(()ident(api)operator(\)) ident(method) operator(=) ident(api)operator(.)ident(api_methods)operator([)ident(api_method_name)operator(.)ident(to_sym)operator(]) ident(raise) constant(ArgumentError)operator(,) stringcontent( for )inlinecontent(\))delimiter(")> reserved(unless) ident(args)operator(.)ident(length) operator(==) ident(method)operator(.)ident(expects)operator(.)ident(length) ident(protocol)operator(.)ident(encode_request)operator(()ident(public_method_name)operator(()ident(service_name)operator(,) ident(api_method_name)operator(\))operator(,) ident(args)operator(.)ident(dup)operator(,) ident(method)operator(.)ident(expects)operator(\)) reserved(end) reserved(def) method(decode_rpc_response) ident(public_method_name)operator(,) ident(return_value) operator(=) ident(protocol)operator(.)ident(decode_response)operator(()instance_variable(@response)operator(.)ident(body)operator(\)) ident(exception) operator(=) ident(is_exception?)operator(()ident(return_value)operator(\)) ident(raise) ident(exception) reserved(if) ident(exception) ident(return_value) reserved(end) reserved(def) method(public_method_name)operator(()ident(service_name)operator(,) ident(api_method_name)operator(\)) ident(public_name) operator(=) ident(service_api)operator(()ident(service_name)operator(\))operator(.)ident(public_api_method_name)operator(()ident(api_method_name)operator(\)) reserved(if) instance_variable(@controller)operator(.)ident(web_service_dispatching_mode) operator(==) symbol(:layered) operator(&&) ident(protocol)operator(.)ident(is_a?)operator(()constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol)operator(\)) string operator(%) operator([)ident(service_name)operator(.)ident(to_s)operator(,) ident(public_name)operator(]) reserved(else) ident(public_name) reserved(end) reserved(end) reserved(def) method(service_api)operator(()ident(service_name)operator(\)) reserved(case) instance_variable(@controller)operator(.)ident(web_service_dispatching_mode) reserved(when) symbol(:direct) instance_variable(@controller)operator(.)ident(class)operator(.)ident(web_service_api) reserved(when) symbol(:delegated)operator(,) symbol(:layered) instance_variable(@controller)operator(.)ident(web_service_object)operator(()ident(service_name)operator(.)ident(to_sym)operator(\))operator(.)ident(class)operator(.)ident(web_service_api) reserved(end) reserved(end) reserved(def) method(protocol) reserved(if) instance_variable(@protocol)operator(.)ident(nil?) instance_variable(@protocol) operator(||=) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Soap)operator(::)constant(SoapProtocol)operator(.)ident(create)operator(()instance_variable(@controller)operator(\)) reserved(else) reserved(case) instance_variable(@protocol) reserved(when) symbol(:xmlrpc) instance_variable(@protocol) operator(=) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol)operator(.)ident(create)operator(()instance_variable(@controller)operator(\)) reserved(when) symbol(:soap) instance_variable(@protocol) operator(=) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Soap)operator(::)constant(SoapProtocol)operator(.)ident(create)operator(()instance_variable(@controller)operator(\)) reserved(else) instance_variable(@protocol) reserved(end) reserved(end) reserved(end) reserved(def) method(is_exception?)operator(()ident(obj)operator(\)) reserved(case) ident(protocol) reserved(when) symbol(:soap)operator(,) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Soap)operator(::)constant(SoapProtocol) operator(()ident(obj)operator(.)ident(respond_to?)operator(()symbol(:detail)operator(\)) operator(&&) ident(obj)operator(.)ident(detail)operator(.)ident(respond_to?)operator(()symbol(:cause)operator(\)) operator(&&) \ ident(obj)operator(.)ident(detail)operator(.)ident(cause)operator(.)ident(is_a?)operator(()constant(Exception)operator(\))operator(\)) operator(?) ident(obj)operator(.)ident(detail)operator(.)ident(cause) operator(:) pre_constant(nil) reserved(when) symbol(:xmlrpc)operator(,) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol) ident(obj)operator(.)ident(is_a?)operator(()constant(XMLRPC)operator(::)constant(FaultException)operator(\)) operator(?) ident(obj) operator(:) pre_constant(nil) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActionWebService) reserved(module) class(VERSION) comment(#:nodoc:) constant(MAJOR) operator(=) integer(1) constant(MINOR) operator(=) integer(1) constant(TINY) operator(=) integer(6) constant(STRING) operator(=) operator([)constant(MAJOR)operator(,) constant(MINOR)operator(,) constant(TINY)operator(])operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) comment(#--) comment(# Copyright (C\) 2005 Leon Breedt) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#++) reserved(begin) ident(require) string ident(require) string ident(require) string reserved(rescue) constant(LoadError) ident(require) string ident(require_gem) stringoperator(,) string= 1.0.2)delimiter(')> ident(require_gem) stringoperator(,) string= 1.6.0)delimiter(')> ident(require_gem) stringoperator(,) string= 1.9.0)delimiter(')> reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string constant(ActionWebService)operator(::)constant(Base)operator(.)ident(class_eval) reserved(do) ident(include) constant(ActionWebService)operator(::)constant(Container)operator(::)constant(Direct) ident(include) constant(ActionWebService)operator(::)constant(Invocation) reserved(end) constant(ActionController)operator(::)constant(Base)operator(.)ident(class_eval) reserved(do) ident(include) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Discovery) ident(include) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Soap) ident(include) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(XmlRpc) ident(include) constant(ActionWebService)operator(::)constant(Container)operator(::)constant(Direct) ident(include) constant(ActionWebService)operator(::)constant(Container)operator(::)constant(Delegated) ident(include) constant(ActionWebService)operator(::)constant(Container)operator(::)constant(ActionController) ident(include) constant(ActionWebService)operator(::)constant(Invocation) ident(include) constant(ActionWebService)operator(::)constant(Dispatcher) ident(include) constant(ActionWebService)operator(::)constant(Dispatcher)operator(::)constant(ActionController) ident(include) constant(ActionWebService)operator(::)constant(Scaffolding) reserved(end) comment(#) comment(# setup.rb) comment(#) comment(# Copyright (c\) 2000-2004 Minero Aoki) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#) comment(# Note: Originally licensed under LGPL v2+. Using MIT license for Rails) comment(# with permission of Minero Aoki.) comment(#) reserved(unless) constant(Enumerable)operator(.)ident(method_defined?)operator(()symbol(:map)operator(\)) comment(# Ruby 1.4.6) reserved(module) class(Enumerable) reserved(alias) method(map) method(collect) reserved(end) reserved(end) reserved(unless) constant(File)operator(.)ident(respond_to?)operator(()symbol(:read)operator(\)) comment(# Ruby 1.6) reserved(def) constant(File)operator(.)method(read)operator(()ident(fname)operator(\)) ident(open)operator(()ident(fname)operator(\)) operator({)operator(|)ident(f)operator(|) reserved(return) ident(f)operator(.)ident(read) operator(}) reserved(end) reserved(end) reserved(def) constant(File)operator(.)method(binread)operator(()ident(fname)operator(\)) ident(open)operator(()ident(fname)operator(,) stringoperator(\)) operator({)operator(|)ident(f)operator(|) reserved(return) ident(f)operator(.)ident(read) operator(}) reserved(end) comment(# for corrupted windows stat(2\)) reserved(def) constant(File)operator(.)method(dir?)operator(()ident(path)operator(\)) constant(File)operator(.)ident(directory?)operator(()operator(()ident(path)operator([)integer(-1)operator(,)integer(1)operator(]) operator(==) stringoperator(\)) operator(?) ident(path) operator(:) ident(path) operator(+) stringoperator(\)) reserved(end) reserved(class) class(SetupError) operator(<) constant(StandardError)operator(;) reserved(end) reserved(def) method(setup_rb_error)operator(()ident(msg)operator(\)) ident(raise) constant(SetupError)operator(,) ident(msg) reserved(end) comment(#) comment(# Config) comment(#) reserved(if) ident(arg) operator(=) pre_constant(ARGV)operator(.)ident(detect) operator({)operator(|)ident(arg)operator(|) regexp operator(=)operator(~) ident(arg) operator(}) pre_constant(ARGV)operator(.)ident(delete)operator(()ident(arg)operator(\)) ident(require) ident(arg)operator(.)ident(split)operator(()regexpoperator(,) integer(2)operator(\))operator([)integer(1)operator(]) global_variable($")operator(.)ident(push) string reserved(else) ident(require) string reserved(end) reserved(def) method(multipackage_install?) constant(FileTest)operator(.)ident(directory?)operator(()constant(File)operator(.)ident(dirname)operator(()global_variable($0)operator(\)) operator(+) stringoperator(\)) reserved(end) reserved(class) class(ConfigItem) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(template)operator(,) ident(default)operator(,) ident(desc)operator(\)) instance_variable(@name) operator(=) ident(name)operator(.)ident(freeze) instance_variable(@template) operator(=) ident(template) instance_variable(@value) operator(=) ident(default) instance_variable(@default) operator(=) ident(default)operator(.)ident(dup)operator(.)ident(freeze) instance_variable(@description) operator(=) ident(desc) reserved(end) ident(attr_reader) symbol(:name) ident(attr_reader) symbol(:description) ident(attr_accessor) symbol(:default) reserved(alias) method(help_default) method(default) reserved(def) method(help_opt) stringcontent(=)inlinedelimiter(")> reserved(end) reserved(def) method(value) instance_variable(@value) reserved(end) reserved(def) method(eval)operator(()ident(table)operator(\)) instance_variable(@value)operator(.)ident(gsub)operator(()regexp)>operator(\)) operator({) ident(table)operator([)global_variable($1)operator(]) operator(}) reserved(end) reserved(def) method(set)operator(()ident(val)operator(\)) instance_variable(@value) operator(=) ident(check)operator(()ident(val)operator(\)) reserved(end) ident(private) reserved(def) method(check)operator(()ident(val)operator(\)) ident(setup_rb_error) stringcontent( requires argument)delimiter(")> reserved(unless) ident(val) ident(val) reserved(end) reserved(end) reserved(class) class(BoolItem) operator(<) constant(ConfigItem) reserved(def) method(config_type) string reserved(end) reserved(def) method(help_opt) stringdelimiter(")> reserved(end) ident(private) reserved(def) method(check)operator(()ident(val)operator(\)) reserved(return) string reserved(unless) ident(val) reserved(unless) regexp operator(=)operator(~) ident(val) ident(setup_rb_error) stringcontent( accepts only yes/no for argument)delimiter(")> reserved(end) operator(()regexp operator(=)operator(~) ident(value)operator(\)) operator(?) string operator(:) string reserved(end) reserved(end) reserved(class) class(PathItem) operator(<) constant(ConfigItem) reserved(def) method(config_type) string reserved(end) ident(private) reserved(def) method(check)operator(()ident(path)operator(\)) ident(setup_rb_error) stringcontent( requires argument)delimiter(")> reserved(unless) ident(path) ident(path)operator([)integer(0)operator(,)integer(1)operator(]) operator(==) string operator(?) ident(path) operator(:) constant(File)operator(.)ident(expand_path)operator(()ident(path)operator(\)) reserved(end) reserved(end) reserved(class) class(ProgramItem) operator(<) constant(ConfigItem) reserved(def) method(config_type) string reserved(end) reserved(end) reserved(class) class(SelectItem) operator(<) constant(ConfigItem) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(template)operator(,) ident(default)operator(,) ident(desc)operator(\)) reserved(super) instance_variable(@ok) operator(=) ident(template)operator(.)ident(split)operator(()stringoperator(\)) reserved(end) reserved(def) method(config_type) string reserved(end) ident(private) reserved(def) method(check)operator(()ident(val)operator(\)) reserved(unless) instance_variable(@ok)operator(.)ident(include?)operator(()ident(val)operator(.)ident(strip)operator(\)) ident(setup_rb_error) stringcontent(=)inlinecontent( ()inlinecontent(\))delimiter(")> reserved(end) ident(val)operator(.)ident(strip) reserved(end) reserved(end) reserved(class) class(PackageSelectionItem) operator(<) constant(ConfigItem) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(template)operator(,) ident(default)operator(,) ident(help_default)operator(,) ident(desc)operator(\)) reserved(super) ident(name)operator(,) ident(template)operator(,) ident(default)operator(,) ident(desc) instance_variable(@help_default) operator(=) ident(help_default) reserved(end) ident(attr_reader) symbol(:help_default) reserved(def) method(config_type) string reserved(end) ident(private) reserved(def) method(check)operator(()ident(val)operator(\)) reserved(unless) constant(File)operator(.)ident(dir?)operator(()stringdelimiter(")>operator(\)) ident(setup_rb_error) stringdelimiter(")> reserved(end) ident(val) reserved(end) reserved(end) reserved(class) class(ConfigTable_class) reserved(def) method(initialize)operator(()ident(items)operator(\)) instance_variable(@items) operator(=) ident(items) instance_variable(@table) operator(=) operator({)operator(}) ident(items)operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) instance_variable(@table)operator([)ident(i)operator(.)ident(name)operator(]) operator(=) ident(i) reserved(end) constant(ALIASES)operator(.)ident(each) reserved(do) operator(|)ident(ali)operator(,) ident(name)operator(|) instance_variable(@table)operator([)ident(ali)operator(]) operator(=) instance_variable(@table)operator([)ident(name)operator(]) reserved(end) reserved(end) ident(include) constant(Enumerable) reserved(def) method(each)operator(()operator(&)ident(block)operator(\)) instance_variable(@items)operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(key?)operator(()ident(name)operator(\)) instance_variable(@table)operator(.)ident(key?)operator(()ident(name)operator(\)) reserved(end) reserved(def) method(lookup)operator(()ident(name)operator(\)) instance_variable(@table)operator([)ident(name)operator(]) reserved(or) ident(raise) constant(ArgumentError)operator(,) stringdelimiter(")> reserved(end) reserved(def) method(add)operator(()ident(item)operator(\)) instance_variable(@items)operator(.)ident(push) ident(item) instance_variable(@table)operator([)ident(item)operator(.)ident(name)operator(]) operator(=) ident(item) reserved(end) reserved(def) method(remove)operator(()ident(name)operator(\)) ident(item) operator(=) ident(lookup)operator(()ident(name)operator(\)) instance_variable(@items)operator(.)ident(delete_if) operator({)operator(|)ident(i)operator(|) ident(i)operator(.)ident(name) operator(==) ident(name) operator(}) instance_variable(@table)operator(.)ident(delete_if) operator({)operator(|)ident(name)operator(,) ident(i)operator(|) ident(i)operator(.)ident(name) operator(==) ident(name) operator(}) ident(item) reserved(end) reserved(def) method(new) ident(dup)operator(()operator(\)) reserved(end) reserved(def) method(savefile) string reserved(end) reserved(def) method(load) reserved(begin) ident(t) operator(=) ident(dup)operator(()operator(\)) constant(File)operator(.)ident(foreach)operator(()ident(savefile)operator(()operator(\))operator(\)) reserved(do) operator(|)ident(line)operator(|) ident(k)operator(,) ident(v) operator(=) operator(*)ident(line)operator(.)ident(split)operator(()regexpoperator(,) integer(2)operator(\)) ident(t)operator([)ident(k)operator(]) operator(=) ident(v)operator(.)ident(strip) reserved(end) ident(t) reserved(rescue) constant(Errno)operator(::)constant(ENOENT) ident(setup_rb_error) global_variable($!)operator(.)ident(message) operator(+) stringcontent( config first)delimiter(")> reserved(end) reserved(end) reserved(def) method(save) instance_variable(@items)operator(.)ident(each) operator({)operator(|)ident(i)operator(|) ident(i)operator(.)ident(value) operator(}) constant(File)operator(.)ident(open)operator(()ident(savefile)operator(()operator(\))operator(,) stringoperator(\)) operator({)operator(|)ident(f)operator(|) instance_variable(@items)operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) ident(f)operator(.)ident(printf) stringoperator(,) ident(i)operator(.)ident(name)operator(,) ident(i)operator(.)ident(value) reserved(if) ident(i)operator(.)ident(value) reserved(end) operator(}) reserved(end) reserved(def) method([])operator(()ident(key)operator(\)) ident(lookup)operator(()ident(key)operator(\))operator(.)ident(eval)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method([]=)operator(()ident(key)operator(,) ident(val)operator(\)) ident(lookup)operator(()ident(key)operator(\))operator(.)ident(set) ident(val) reserved(end) reserved(end) ident(c) operator(=) operator(::)constant(Config)operator(::)constant(CONFIG) ident(rubypath) operator(=) ident(c)operator([)stringoperator(]) operator(+) string operator(+) ident(c)operator([)stringoperator(]) ident(major) operator(=) ident(c)operator([)stringoperator(])operator(.)ident(to_i) ident(minor) operator(=) ident(c)operator([)stringoperator(])operator(.)ident(to_i) ident(teeny) operator(=) ident(c)operator([)stringoperator(])operator(.)ident(to_i) ident(version) operator(=) stringcontent(.)inlinedelimiter(")> comment(# ruby ver. >= 1.4.4?) ident(newpath_p) operator(=) operator(()operator(()ident(major) operator(>)operator(=) integer(2)operator(\)) reserved(or) operator(()operator(()ident(major) operator(==) integer(1)operator(\)) reserved(and) operator(()operator(()ident(minor) operator(>)operator(=) integer(5)operator(\)) reserved(or) operator(()operator(()ident(minor) operator(==) integer(4)operator(\)) reserved(and) operator(()ident(teeny) operator(>)operator(=) integer(4)operator(\))operator(\))operator(\))operator(\))operator(\)) reserved(if) ident(c)operator([)stringoperator(]) comment(# V < 1.6.3) ident(_stdruby) operator(=) ident(c)operator([)stringoperator(]) ident(_siteruby) operator(=) ident(c)operator([)stringoperator(]) ident(_siterubyver) operator(=) ident(c)operator([)stringoperator(]) ident(_siterubyverarch) operator(=) ident(c)operator([)stringoperator(]) reserved(elsif) ident(newpath_p) comment(# 1.4.4 <= V <= 1.6.3) ident(_stdruby) operator(=) stringdelimiter(")> ident(_siteruby) operator(=) ident(c)operator([)stringoperator(]) ident(_siterubyver) operator(=) stringdelimiter(")> ident(_siterubyverarch) operator(=) stringoperator(])inline_delimiter(})>delimiter(")> reserved(else) comment(# V < 1.4.4) ident(_stdruby) operator(=) stringdelimiter(")> ident(_siteruby) operator(=) stringcontent(/site_ruby)delimiter(")> ident(_siterubyver) operator(=) ident(_siteruby) ident(_siterubyverarch) operator(=) stringoperator(])inline_delimiter(})>delimiter(")> reserved(end) ident(libdir) operator(=) string ident(stdruby) operator(=) string ident(siteruby) operator(=) string ident(siterubyver) operator(=) string ident(parameterize) operator(=) ident(lambda) operator({)operator(|)ident(path)operator(|) ident(path)operator(.)ident(sub)operator(()regexpoperator(])operator(\))inline_delimiter(})>delimiter(/)>operator(,) stringoperator(\))\ operator(.)ident(sub)operator(()regexpdelimiter(/)>operator(,) stringoperator(\))\ operator(.)ident(sub)operator(()regexpdelimiter(/)>operator(,) stringoperator(\))\ operator(.)ident(sub)operator(()regexpdelimiter(/)>operator(,) stringoperator(\))\ operator(.)ident(sub)operator(()regexpdelimiter(/)>operator(,) stringoperator(\)) operator(}) ident(libdir) operator(=) ident(parameterize)operator(.)ident(call)operator(()ident(c)operator([)stringoperator(])operator(\)) ident(stdruby) operator(=) ident(parameterize)operator(.)ident(call)operator(()ident(_stdruby)operator(\)) ident(siteruby) operator(=) ident(parameterize)operator(.)ident(call)operator(()ident(_siteruby)operator(\)) ident(siterubyver) operator(=) ident(parameterize)operator(.)ident(call)operator(()ident(_siterubyver)operator(\)) ident(siterubyverarch) operator(=) ident(parameterize)operator(.)ident(call)operator(()ident(_siterubyverarch)operator(\)) reserved(if) ident(arg) operator(=) ident(c)operator([)stringoperator(])operator(.)ident(split)operator(.)ident(detect) operator({)operator(|)ident(arg)operator(|) regexp operator(=)operator(~) ident(arg) operator(}) ident(makeprog) operator(=) ident(arg)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(split)operator(()regexpoperator(,) integer(2)operator(\))operator([)integer(1)operator(]) reserved(else) ident(makeprog) operator(=) string reserved(end) ident(common_conf) operator(=) operator([) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(c)operator([)stringoperator(])operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(parameterize)operator(.)ident(call)operator(()ident(c)operator([)stringoperator(])operator(\))operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(libdir)operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(parameterize)operator(.)ident(call)operator(()ident(c)operator([)stringoperator(])operator(\))operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(parameterize)operator(.)ident(call)operator(()ident(c)operator([)stringoperator(])operator(\))operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(parameterize)operator(.)ident(call)operator(()ident(c)operator([)stringoperator(])operator(\))operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(stdruby)operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(siteruby)operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(siterubyver)operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(siterubyverarch)operator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(PathItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(rubypath)operator(,) stringoperator(\))operator(,) constant(ProgramItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(rubypath)operator(,) stringoperator(\))operator(,) constant(ProgramItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) ident(makeprog)operator(,) stringoperator(\))operator(,) constant(SelectItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(BoolItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(]) reserved(class) class(ConfigTable_class) comment(# open again) constant(ALIASES) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) comment(# For backward compatibility) string operator(=)operator(>) stringoperator(,) comment(# For backward compatibility) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) reserved(end) ident(multipackage_conf) operator(=) operator([) constant(PackageSelectionItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\))operator(,) constant(PackageSelectionItem)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(\)) operator(]) reserved(if) ident(multipackage_install?) constant(ConfigTable) operator(=) constant(ConfigTable_class)operator(.)ident(new)operator(()ident(common_conf) operator(+) ident(multipackage_conf)operator(\)) reserved(else) constant(ConfigTable) operator(=) constant(ConfigTable_class)operator(.)ident(new)operator(()ident(common_conf)operator(\)) reserved(end) reserved(module) class(MetaConfigAPI) reserved(def) method(eval_file_ifexist)operator(()ident(fname)operator(\)) ident(instance_eval) constant(File)operator(.)ident(read)operator(()ident(fname)operator(\))operator(,) ident(fname)operator(,) integer(1) reserved(if) constant(File)operator(.)ident(file?)operator(()ident(fname)operator(\)) reserved(end) reserved(def) method(config_names) constant(ConfigTable)operator(.)ident(map) operator({)operator(|)ident(i)operator(|) ident(i)operator(.)ident(name) operator(}) reserved(end) reserved(def) method(config?)operator(()ident(name)operator(\)) constant(ConfigTable)operator(.)ident(key?)operator(()ident(name)operator(\)) reserved(end) reserved(def) method(bool_config?)operator(()ident(name)operator(\)) constant(ConfigTable)operator(.)ident(lookup)operator(()ident(name)operator(\))operator(.)ident(config_type) operator(==) string reserved(end) reserved(def) method(path_config?)operator(()ident(name)operator(\)) constant(ConfigTable)operator(.)ident(lookup)operator(()ident(name)operator(\))operator(.)ident(config_type) operator(==) string reserved(end) reserved(def) method(value_config?)operator(()ident(name)operator(\)) reserved(case) constant(ConfigTable)operator(.)ident(lookup)operator(()ident(name)operator(\))operator(.)ident(config_type) reserved(when) stringoperator(,) string pre_constant(true) reserved(else) pre_constant(false) reserved(end) reserved(end) reserved(def) method(add_config)operator(()ident(item)operator(\)) constant(ConfigTable)operator(.)ident(add) ident(item) reserved(end) reserved(def) method(add_bool_config)operator(()ident(name)operator(,) ident(default)operator(,) ident(desc)operator(\)) constant(ConfigTable)operator(.)ident(add) constant(BoolItem)operator(.)ident(new)operator(()ident(name)operator(,) stringoperator(,) ident(default) operator(?) string operator(:) stringoperator(,) ident(desc)operator(\)) reserved(end) reserved(def) method(add_path_config)operator(()ident(name)operator(,) ident(default)operator(,) ident(desc)operator(\)) constant(ConfigTable)operator(.)ident(add) constant(PathItem)operator(.)ident(new)operator(()ident(name)operator(,) stringoperator(,) ident(default)operator(,) ident(desc)operator(\)) reserved(end) reserved(def) method(set_config_default)operator(()ident(name)operator(,) ident(default)operator(\)) constant(ConfigTable)operator(.)ident(lookup)operator(()ident(name)operator(\))operator(.)ident(default) operator(=) ident(default) reserved(end) reserved(def) method(remove_config)operator(()ident(name)operator(\)) constant(ConfigTable)operator(.)ident(remove)operator(()ident(name)operator(\)) reserved(end) reserved(end) comment(#) comment(# File Operations) comment(#) reserved(module) class(FileOperations) reserved(def) method(mkdir_p)operator(()ident(dirname)operator(,) ident(prefix) operator(=) pre_constant(nil)operator(\)) ident(dirname) operator(=) ident(prefix) operator(+) constant(File)operator(.)ident(expand_path)operator(()ident(dirname)operator(\)) reserved(if) ident(prefix) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> reserved(if) ident(verbose?) reserved(return) reserved(if) ident(no_harm?) comment(# does not check '/'... it's too abnormal case) ident(dirs) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(dirname)operator(\))operator(.)ident(split)operator(()regexp)>operator(\)) reserved(if) regexp operator(=)operator(~) ident(dirs)operator([)integer(0)operator(]) ident(disk) operator(=) ident(dirs)operator(.)ident(shift) ident(dirs)operator([)integer(0)operator(]) operator(=) ident(disk) operator(+) ident(dirs)operator([)integer(0)operator(]) reserved(end) ident(dirs)operator(.)ident(each_index) reserved(do) operator(|)ident(idx)operator(|) ident(path) operator(=) ident(dirs)operator([)integer(0)operator(..)ident(idx)operator(])operator(.)ident(join)operator(()stringoperator(\)) constant(Dir)operator(.)ident(mkdir) ident(path) reserved(unless) constant(File)operator(.)ident(dir?)operator(()ident(path)operator(\)) reserved(end) reserved(end) reserved(def) method(rm_f)operator(()ident(fname)operator(\)) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> reserved(if) ident(verbose?) reserved(return) reserved(if) ident(no_harm?) reserved(if) constant(File)operator(.)ident(exist?)operator(()ident(fname)operator(\)) reserved(or) constant(File)operator(.)ident(symlink?)operator(()ident(fname)operator(\)) constant(File)operator(.)ident(chmod) integer(0777)operator(,) ident(fname) constant(File)operator(.)ident(unlink) ident(fname) reserved(end) reserved(end) reserved(def) method(rm_rf)operator(()ident(dn)operator(\)) global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> reserved(if) ident(verbose?) reserved(return) reserved(if) ident(no_harm?) constant(Dir)operator(.)ident(chdir) ident(dn) constant(Dir)operator(.)ident(foreach)operator(()stringoperator(\)) reserved(do) operator(|)ident(fn)operator(|) reserved(next) reserved(if) ident(fn) operator(==) string reserved(next) reserved(if) ident(fn) operator(==) string reserved(if) constant(File)operator(.)ident(dir?)operator(()ident(fn)operator(\)) ident(verbose_off) operator({) ident(rm_rf) ident(fn) operator(}) reserved(else) ident(verbose_off) operator({) ident(rm_f) ident(fn) operator(}) reserved(end) reserved(end) constant(Dir)operator(.)ident(chdir) string constant(Dir)operator(.)ident(rmdir) ident(dn) reserved(end) reserved(def) method(move_file)operator(()ident(src)operator(,) ident(dest)operator(\)) constant(File)operator(.)ident(unlink) ident(dest) reserved(if) constant(File)operator(.)ident(exist?)operator(()ident(dest)operator(\)) reserved(begin) constant(File)operator(.)ident(rename) ident(src)operator(,) ident(dest) reserved(rescue) constant(File)operator(.)ident(open)operator(()ident(dest)operator(,) stringoperator(\)) operator({)operator(|)ident(f)operator(|) ident(f)operator(.)ident(write) constant(File)operator(.)ident(binread)operator(()ident(src)operator(\)) operator(}) constant(File)operator(.)ident(chmod) constant(File)operator(.)ident(stat)operator(()ident(src)operator(\))operator(.)ident(mode)operator(,) ident(dest) constant(File)operator(.)ident(unlink) ident(src) reserved(end) reserved(end) reserved(def) method(install)operator(()ident(from)operator(,) ident(dest)operator(,) ident(mode)operator(,) ident(prefix) operator(=) pre_constant(nil)operator(\)) global_variable($stderr)operator(.)ident(puts) stringcontent( )inlinedelimiter(")> reserved(if) ident(verbose?) reserved(return) reserved(if) ident(no_harm?) ident(realdest) operator(=) ident(prefix) operator(?) ident(prefix) operator(+) constant(File)operator(.)ident(expand_path)operator(()ident(dest)operator(\)) operator(:) ident(dest) ident(realdest) operator(=) constant(File)operator(.)ident(join)operator(()ident(realdest)operator(,) constant(File)operator(.)ident(basename)operator(()ident(from)operator(\))operator(\)) reserved(if) constant(File)operator(.)ident(dir?)operator(()ident(realdest)operator(\)) ident(str) operator(=) constant(File)operator(.)ident(binread)operator(()ident(from)operator(\)) reserved(if) ident(diff?)operator(()ident(str)operator(,) ident(realdest)operator(\)) ident(verbose_off) operator({) ident(rm_f) ident(realdest) reserved(if) constant(File)operator(.)ident(exist?)operator(()ident(realdest)operator(\)) operator(}) constant(File)operator(.)ident(open)operator(()ident(realdest)operator(,) stringoperator(\)) operator({)operator(|)ident(f)operator(|) ident(f)operator(.)ident(write) ident(str) operator(}) constant(File)operator(.)ident(chmod) ident(mode)operator(,) ident(realdest) constant(File)operator(.)ident(open)operator(()stringcontent(/InstalledFiles)delimiter(")>operator(,) stringoperator(\)) operator({)operator(|)ident(f)operator(|) reserved(if) ident(prefix) ident(f)operator(.)ident(puts) ident(realdest)operator(.)ident(sub)operator(()ident(prefix)operator(,) stringoperator(\)) reserved(else) ident(f)operator(.)ident(puts) ident(realdest) reserved(end) operator(}) reserved(end) reserved(end) reserved(def) method(diff?)operator(()ident(new_content)operator(,) ident(path)operator(\)) reserved(return) pre_constant(true) reserved(unless) constant(File)operator(.)ident(exist?)operator(()ident(path)operator(\)) ident(new_content) operator(!=) constant(File)operator(.)ident(binread)operator(()ident(path)operator(\)) reserved(end) reserved(def) method(command)operator(()ident(str)operator(\)) global_variable($stderr)operator(.)ident(puts) ident(str) reserved(if) ident(verbose?) ident(system) ident(str) reserved(or) ident(raise) constant(RuntimeError)operator(,) stringcontent(' failed)delimiter(")> reserved(end) reserved(def) method(ruby)operator(()ident(str)operator(\)) ident(command) ident(config)operator(()stringoperator(\)) operator(+) string operator(+) ident(str) reserved(end) reserved(def) method(make)operator(()ident(task) operator(=) stringoperator(\)) ident(command) ident(config)operator(()stringoperator(\)) operator(+) string operator(+) ident(task) reserved(end) reserved(def) method(extdir?)operator(()ident(dir)operator(\)) constant(File)operator(.)ident(exist?)operator(()ident(dir) operator(+) stringoperator(\)) reserved(end) reserved(def) method(all_files_in)operator(()ident(dirname)operator(\)) constant(Dir)operator(.)ident(open)operator(()ident(dirname)operator(\)) operator({)operator(|)ident(d)operator(|) reserved(return) ident(d)operator(.)ident(select) operator({)operator(|)ident(ent)operator(|) constant(File)operator(.)ident(file?)operator(()stringcontent(/)inlinedelimiter(")>operator(\)) operator(}) operator(}) reserved(end) constant(REJECT_DIRS) operator(=) string reserved(def) method(all_dirs_in)operator(()ident(dirname)operator(\)) constant(Dir)operator(.)ident(open)operator(()ident(dirname)operator(\)) operator({)operator(|)ident(d)operator(|) reserved(return) ident(d)operator(.)ident(select) operator({)operator(|)ident(n)operator(|) constant(File)operator(.)ident(dir?)operator(()stringcontent(/)inlinedelimiter(")>operator(\)) operator(}) operator(-) string operator(-) constant(REJECT_DIRS) operator(}) reserved(end) reserved(end) comment(#) comment(# Main Installer) comment(#) reserved(module) class(HookUtils) reserved(def) method(run_hook)operator(()ident(name)operator(\)) ident(try_run_hook) stringcontent(/)inlinedelimiter(")> reserved(or) ident(try_run_hook) stringcontent(/)inlinecontent(.rb)delimiter(")> reserved(end) reserved(def) method(try_run_hook)operator(()ident(fname)operator(\)) reserved(return) pre_constant(false) reserved(unless) constant(File)operator(.)ident(file?)operator(()ident(fname)operator(\)) reserved(begin) ident(instance_eval) constant(File)operator(.)ident(read)operator(()ident(fname)operator(\))operator(,) ident(fname)operator(,) integer(1) reserved(rescue) ident(setup_rb_error) stringcontent( failed:)char(\\n)delimiter(")> operator(+) global_variable($!)operator(.)ident(message) reserved(end) pre_constant(true) reserved(end) reserved(end) reserved(module) class(HookScriptAPI) reserved(def) method(get_config)operator(()ident(key)operator(\)) instance_variable(@config)operator([)ident(key)operator(]) reserved(end) reserved(alias) method(config) method(get_config) reserved(def) method(set_config)operator(()ident(key)operator(,) ident(val)operator(\)) instance_variable(@config)operator([)ident(key)operator(]) operator(=) ident(val) reserved(end) comment(#) comment(# srcdir/objdir (works only in the package directory\)) comment(#) comment(#abstract srcdir_root) comment(#abstract objdir_root) comment(#abstract relpath) reserved(def) method(curr_srcdir) stringcontent(/)inlinedelimiter(")> reserved(end) reserved(def) method(curr_objdir) stringcontent(/)inlinedelimiter(")> reserved(end) reserved(def) method(srcfile)operator(()ident(path)operator(\)) stringcontent(/)inlinedelimiter(")> reserved(end) reserved(def) method(srcexist?)operator(()ident(path)operator(\)) constant(File)operator(.)ident(exist?)operator(()ident(srcfile)operator(()ident(path)operator(\))operator(\)) reserved(end) reserved(def) method(srcdirectory?)operator(()ident(path)operator(\)) constant(File)operator(.)ident(dir?)operator(()ident(srcfile)operator(()ident(path)operator(\))operator(\)) reserved(end) reserved(def) method(srcfile?)operator(()ident(path)operator(\)) constant(File)operator(.)ident(file?) ident(srcfile)operator(()ident(path)operator(\)) reserved(end) reserved(def) method(srcentries)operator(()ident(path) operator(=) stringoperator(\)) constant(Dir)operator(.)ident(open)operator(()stringcontent(/)inlinedelimiter(")>operator(\)) operator({)operator(|)ident(d)operator(|) reserved(return) ident(d)operator(.)ident(to_a) operator(-) string operator(}) reserved(end) reserved(def) method(srcfiles)operator(()ident(path) operator(=) stringoperator(\)) ident(srcentries)operator(()ident(path)operator(\))operator(.)ident(select) operator({)operator(|)ident(fname)operator(|) constant(File)operator(.)ident(file?)operator(()constant(File)operator(.)ident(join)operator(()ident(curr_srcdir)operator(()operator(\))operator(,) ident(path)operator(,) ident(fname)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(srcdirectories)operator(()ident(path) operator(=) stringoperator(\)) ident(srcentries)operator(()ident(path)operator(\))operator(.)ident(select) operator({)operator(|)ident(fname)operator(|) constant(File)operator(.)ident(dir?)operator(()constant(File)operator(.)ident(join)operator(()ident(curr_srcdir)operator(()operator(\))operator(,) ident(path)operator(,) ident(fname)operator(\))operator(\)) operator(}) reserved(end) reserved(end) reserved(class) class(ToplevelInstaller) constant(Version) operator(=) string constant(Copyright) operator(=) string constant(TASKS) operator(=) operator([) operator([) stringoperator(,) string operator(])operator(,) operator([) stringoperator(,) string operator(])operator(,) operator([) stringoperator(,) string operator(])operator(,) operator([) stringoperator(,) string operator(])operator(,) operator([) stringoperator(,) string operator(])operator(,) operator([) stringoperator(,) string operator(])operator(,) operator([) stringoperator(,)string operator(]) operator(]) reserved(def) constant(ToplevelInstaller)operator(.)method(invoke) ident(instance)operator(()operator(\))operator(.)ident(invoke) reserved(end) instance_variable(@singleton) operator(=) pre_constant(nil) reserved(def) constant(ToplevelInstaller)operator(.)method(instance) instance_variable(@singleton) operator(||=) ident(new)operator(()constant(File)operator(.)ident(dirname)operator(()global_variable($0)operator(\))operator(\)) instance_variable(@singleton) reserved(end) ident(include) constant(MetaConfigAPI) reserved(def) method(initialize)operator(()ident(ardir_root)operator(\)) instance_variable(@config) operator(=) pre_constant(nil) instance_variable(@options) operator(=) operator({) string operator(=)operator(>) pre_constant(true) operator(}) instance_variable(@ardir) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(ardir_root)operator(\)) reserved(end) reserved(def) method(inspect) stringcontent( )inlinecontent(>)delimiter(")> reserved(end) reserved(def) method(invoke) ident(run_metaconfigs) reserved(case) ident(task) operator(=) ident(parsearg_global)operator(()operator(\)) reserved(when) pre_constant(nil)operator(,) string instance_variable(@config) operator(=) ident(load_config)operator(()stringoperator(\)) ident(parsearg_config) ident(init_installers) ident(exec_config) ident(exec_setup) ident(exec_install) reserved(else) instance_variable(@config) operator(=) ident(load_config)operator(()ident(task)operator(\)) ident(__send__) stringdelimiter(")> ident(init_installers) ident(__send__) stringdelimiter(")> reserved(end) reserved(end) reserved(def) method(run_metaconfigs) ident(eval_file_ifexist) stringcontent(/metaconfig)delimiter(")> reserved(end) reserved(def) method(load_config)operator(()ident(task)operator(\)) reserved(case) ident(task) reserved(when) string constant(ConfigTable)operator(.)ident(new) reserved(when) stringoperator(,) string reserved(if) constant(File)operator(.)ident(exist?)operator(()constant(ConfigTable)operator(.)ident(savefile)operator(\)) reserved(then) constant(ConfigTable)operator(.)ident(load) reserved(else) constant(ConfigTable)operator(.)ident(new) reserved(end) reserved(else) constant(ConfigTable)operator(.)ident(load) reserved(end) reserved(end) reserved(def) method(init_installers) instance_variable(@installer) operator(=) constant(Installer)operator(.)ident(new)operator(()instance_variable(@config)operator(,) instance_variable(@options)operator(,) instance_variable(@ardir)operator(,) constant(File)operator(.)ident(expand_path)operator(()stringoperator(\))operator(\)) reserved(end) comment(#) comment(# Hook Script API bases) comment(#) reserved(def) method(srcdir_root) instance_variable(@ardir) reserved(end) reserved(def) method(objdir_root) string reserved(end) reserved(def) method(relpath) string reserved(end) comment(#) comment(# Option Parsing) comment(#) reserved(def) method(parsearg_global) ident(valid_task) operator(=) regexpinline_delimiter(})>content(\))char(\\z)delimiter(/)> reserved(while) ident(arg) operator(=) pre_constant(ARGV)operator(.)ident(shift) reserved(case) ident(arg) reserved(when) regexp ident(setup_rb_error) stringdelimiter(")> reserved(unless) ident(valid_task) operator(=)operator(~) ident(arg) reserved(return) ident(arg) reserved(when) stringoperator(,) string instance_variable(@options)operator([)stringoperator(]) operator(=) pre_constant(false) reserved(when) string instance_variable(@options)operator([)stringoperator(]) operator(=) pre_constant(true) reserved(when) stringoperator(,) string ident(print_usage) global_variable($stdout) ident(exit) integer(0) reserved(when) stringoperator(,) string ident(puts) stringcontent( version )inlinedelimiter(")> ident(exit) integer(0) reserved(when) string ident(puts) constant(Copyright) ident(exit) integer(0) reserved(else) ident(setup_rb_error) stringcontent(')delimiter(")> reserved(end) reserved(end) pre_constant(nil) reserved(end) reserved(def) method(parsearg_no_options) reserved(unless) pre_constant(ARGV)operator(.)ident(empty?) ident(setup_rb_error) stringcontent(: unknown options: )inlineinline_delimiter(})>delimiter(")> reserved(end) reserved(end) reserved(alias) method(parsearg_show) method(parsearg_no_options) reserved(alias) method(parsearg_setup) method(parsearg_no_options) reserved(alias) method(parsearg_clean) method(parsearg_no_options) reserved(alias) method(parsearg_distclean) method(parsearg_no_options) reserved(def) method(parsearg_config) ident(re) operator(=) regexpoperator(\))inline_delimiter(})>content(\)(?:=(.*\)\)?)char(\\z)delimiter(/)> instance_variable(@options)operator([)stringoperator(]) operator(=) operator([)operator(]) reserved(while) ident(i) operator(=) pre_constant(ARGV)operator(.)ident(shift) reserved(if) regexp operator(=)operator(~) ident(i) instance_variable(@options)operator([)stringoperator(]) operator(=) pre_constant(ARGV)operator(.)ident(dup) reserved(break) reserved(end) ident(m) operator(=) ident(re)operator(.)ident(match)operator(()ident(i)operator(\)) reserved(or) ident(setup_rb_error) stringdelimiter(")> ident(name)operator(,) ident(value) operator(=) operator(*)ident(m)operator(.)ident(to_a)operator([)integer(1)operator(,)integer(2)operator(]) instance_variable(@config)operator([)ident(name)operator(]) operator(=) ident(value) reserved(end) reserved(end) reserved(def) method(parsearg_install) instance_variable(@options)operator([)stringoperator(]) operator(=) pre_constant(false) instance_variable(@options)operator([)stringoperator(]) operator(=) string reserved(while) ident(a) operator(=) pre_constant(ARGV)operator(.)ident(shift) reserved(case) ident(a) reserved(when) regexp instance_variable(@options)operator([)stringoperator(]) operator(=) pre_constant(true) reserved(when) regexp ident(path) operator(=) global_variable($1) ident(path) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(path)operator(\)) reserved(unless) ident(path)operator([)integer(0)operator(,)integer(1)operator(]) operator(==) string instance_variable(@options)operator([)stringoperator(]) operator(=) ident(path) reserved(else) ident(setup_rb_error) stringdelimiter(")> reserved(end) reserved(end) reserved(end) reserved(def) method(print_usage)operator(()ident(out)operator(\)) ident(out)operator(.)ident(puts) string ident(out)operator(.)ident(puts) stringcontent( config)delimiter(")> ident(out)operator(.)ident(puts) stringcontent( setup)delimiter(")> ident(out)operator(.)ident(puts) stringcontent( install (may require root privilege\))delimiter(")> ident(out)operator(.)ident(puts) ident(out)operator(.)ident(puts) string ident(out)operator(.)ident(puts) stringcontent( )delimiter(")> ident(out)operator(.)ident(puts) stringcontent( [] [])delimiter(")> ident(fmt) operator(=) string ident(out)operator(.)ident(puts) ident(out)operator(.)ident(puts) string ident(out)operator(.)ident(printf) ident(fmt)operator(,) stringoperator(,) string ident(out)operator(.)ident(printf) ident(fmt)operator(,) stringoperator(,) string ident(out)operator(.)ident(printf) ident(fmt)operator(,) stringoperator(,) string ident(out)operator(.)ident(printf) ident(fmt)operator(,) stringoperator(,) string ident(out)operator(.)ident(printf) ident(fmt)operator(,) stringoperator(,) string ident(out)operator(.)ident(puts) ident(out)operator(.)ident(puts) string constant(TASKS)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(desc)operator(|) ident(out)operator(.)ident(printf) ident(fmt)operator(,) ident(name)operator(,) ident(desc) reserved(end) ident(fmt) operator(=) string ident(out)operator(.)ident(puts) ident(out)operator(.)ident(puts) string constant(ConfigTable)operator(.)ident(each) reserved(do) operator(|)ident(item)operator(|) ident(out)operator(.)ident(printf) ident(fmt)operator(,) ident(item)operator(.)ident(help_opt)operator(,) ident(item)operator(.)ident(description)operator(,) ident(item)operator(.)ident(help_default) reserved(end) ident(out)operator(.)ident(printf) ident(fmt)operator(,) stringoperator(,) stringoperator(,)string ident(out)operator(.)ident(puts) ident(out)operator(.)ident(puts) string ident(out)operator(.)ident(printf) ident(fmt)operator(,) stringoperator(,) stringoperator(,) string ident(out)operator(.)ident(printf) ident(fmt)operator(,) stringoperator(,) stringoperator(,) string ident(out)operator(.)ident(puts) reserved(end) comment(#) comment(# Task Handlers) comment(#) reserved(def) method(exec_config) instance_variable(@installer)operator(.)ident(exec_config) instance_variable(@config)operator(.)ident(save) comment(# must be final) reserved(end) reserved(def) method(exec_setup) instance_variable(@installer)operator(.)ident(exec_setup) reserved(end) reserved(def) method(exec_install) instance_variable(@installer)operator(.)ident(exec_install) reserved(end) reserved(def) method(exec_show) constant(ConfigTable)operator(.)ident(each) reserved(do) operator(|)ident(i)operator(|) ident(printf) stringoperator(,) ident(i)operator(.)ident(name)operator(,) ident(i)operator(.)ident(value) reserved(end) reserved(end) reserved(def) method(exec_clean) instance_variable(@installer)operator(.)ident(exec_clean) reserved(end) reserved(def) method(exec_distclean) instance_variable(@installer)operator(.)ident(exec_distclean) reserved(end) reserved(end) reserved(class) class(ToplevelInstallerMulti) operator(<) constant(ToplevelInstaller) ident(include) constant(HookUtils) ident(include) constant(HookScriptAPI) ident(include) constant(FileOperations) reserved(def) method(initialize)operator(()ident(ardir)operator(\)) reserved(super) instance_variable(@packages) operator(=) ident(all_dirs_in)operator(()stringcontent(/packages)delimiter(")>operator(\)) ident(raise) string reserved(if) instance_variable(@packages)operator(.)ident(empty?) reserved(end) reserved(def) method(run_metaconfigs) ident(eval_file_ifexist) stringcontent(/metaconfig)delimiter(")> instance_variable(@packages)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(eval_file_ifexist) stringcontent(/packages/)inlinecontent(/metaconfig)delimiter(")> reserved(end) reserved(end) reserved(def) method(init_installers) instance_variable(@installers) operator(=) operator({)operator(}) instance_variable(@packages)operator(.)ident(each) reserved(do) operator(|)ident(pack)operator(|) instance_variable(@installers)operator([)ident(pack)operator(]) operator(=) constant(Installer)operator(.)ident(new)operator(()instance_variable(@config)operator(,) instance_variable(@options)operator(,) stringcontent(/packages/)inlinedelimiter(")>operator(,) stringdelimiter(")>operator(\)) reserved(end) ident(with) operator(=) ident(extract_selection)operator(()ident(config)operator(()stringoperator(\))operator(\)) ident(without) operator(=) ident(extract_selection)operator(()ident(config)operator(()stringoperator(\))operator(\)) instance_variable(@selected) operator(=) instance_variable(@installers)operator(.)ident(keys)operator(.)ident(select) operator({)operator(|)ident(name)operator(|) operator(()ident(with)operator(.)ident(empty?) reserved(or) ident(with)operator(.)ident(include?)operator(()ident(name)operator(\))operator(\)) \ reserved(and) reserved(not) ident(without)operator(.)ident(include?)operator(()ident(name)operator(\)) operator(}) reserved(end) reserved(def) method(extract_selection)operator(()ident(list)operator(\)) ident(a) operator(=) ident(list)operator(.)ident(split)operator(()regexpoperator(\)) ident(a)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(setup_rb_error) stringdelimiter(")> reserved(unless) instance_variable(@installers)operator(.)ident(key?)operator(()ident(name)operator(\)) reserved(end) ident(a) reserved(end) reserved(def) method(print_usage)operator(()ident(f)operator(\)) reserved(super) ident(f)operator(.)ident(puts) string ident(f)operator(.)ident(puts) string operator(+) instance_variable(@packages)operator(.)ident(sort)operator(.)ident(join)operator(()stringoperator(\)) ident(f)operator(.)ident(puts) reserved(end) comment(#) comment(# multi-package metaconfig API) comment(#) ident(attr_reader) symbol(:packages) reserved(def) method(declare_packages)operator(()ident(list)operator(\)) ident(raise) string reserved(if) ident(list)operator(.)ident(empty?) ident(list)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(raise) stringcontent( does not exist)delimiter(")>\ reserved(unless) constant(File)operator(.)ident(dir?)operator(()stringcontent(/packages/)inlinedelimiter(")>operator(\)) reserved(end) instance_variable(@packages) operator(=) ident(list) reserved(end) comment(#) comment(# Task Handlers) comment(#) reserved(def) method(exec_config) ident(run_hook) string ident(each_selected_installers) operator({)operator(|)ident(inst)operator(|) ident(inst)operator(.)ident(exec_config) operator(}) ident(run_hook) string instance_variable(@config)operator(.)ident(save) comment(# must be final) reserved(end) reserved(def) method(exec_setup) ident(run_hook) string ident(each_selected_installers) operator({)operator(|)ident(inst)operator(|) ident(inst)operator(.)ident(exec_setup) operator(}) ident(run_hook) string reserved(end) reserved(def) method(exec_install) ident(run_hook) string ident(each_selected_installers) operator({)operator(|)ident(inst)operator(|) ident(inst)operator(.)ident(exec_install) operator(}) ident(run_hook) string reserved(end) reserved(def) method(exec_clean) ident(rm_f) constant(ConfigTable)operator(.)ident(savefile) ident(run_hook) string ident(each_selected_installers) operator({)operator(|)ident(inst)operator(|) ident(inst)operator(.)ident(exec_clean) operator(}) ident(run_hook) string reserved(end) reserved(def) method(exec_distclean) ident(rm_f) constant(ConfigTable)operator(.)ident(savefile) ident(run_hook) string ident(each_selected_installers) operator({)operator(|)ident(inst)operator(|) ident(inst)operator(.)ident(exec_distclean) operator(}) ident(run_hook) string reserved(end) comment(#) comment(# lib) comment(#) reserved(def) method(each_selected_installers) constant(Dir)operator(.)ident(mkdir) string reserved(unless) constant(File)operator(.)ident(dir?)operator(()stringoperator(\)) instance_variable(@selected)operator(.)ident(each) reserved(do) operator(|)ident(pack)operator(|) global_variable($stderr)operator(.)ident(puts) stringcontent(' ...)delimiter(")> reserved(if) instance_variable(@options)operator([)stringoperator(]) constant(Dir)operator(.)ident(mkdir) stringdelimiter(")> reserved(unless) constant(File)operator(.)ident(dir?)operator(()stringdelimiter(")>operator(\)) constant(Dir)operator(.)ident(chdir) stringdelimiter(")> reserved(yield) instance_variable(@installers)operator([)ident(pack)operator(]) constant(Dir)operator(.)ident(chdir) string reserved(end) reserved(end) reserved(def) method(verbose?) instance_variable(@options)operator([)stringoperator(]) reserved(end) reserved(def) method(no_harm?) instance_variable(@options)operator([)stringoperator(]) reserved(end) reserved(end) reserved(class) class(Installer) constant(FILETYPES) operator(=) string ident(include) constant(HookScriptAPI) ident(include) constant(HookUtils) ident(include) constant(FileOperations) reserved(def) method(initialize)operator(()ident(config)operator(,) ident(opt)operator(,) ident(srcroot)operator(,) ident(objroot)operator(\)) instance_variable(@config) operator(=) ident(config) instance_variable(@options) operator(=) ident(opt) instance_variable(@srcdir) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(srcroot)operator(\)) instance_variable(@objdir) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(objroot)operator(\)) instance_variable(@currdir) operator(=) string reserved(end) reserved(def) method(inspect) stringcontent( )inlinecontent(>)delimiter(")> reserved(end) comment(#) comment(# Hook Script API base methods) comment(#) reserved(def) method(srcdir_root) instance_variable(@srcdir) reserved(end) reserved(def) method(objdir_root) instance_variable(@objdir) reserved(end) reserved(def) method(relpath) instance_variable(@currdir) reserved(end) comment(#) comment(# configs/options) comment(#) reserved(def) method(no_harm?) instance_variable(@options)operator([)stringoperator(]) reserved(end) reserved(def) method(verbose?) instance_variable(@options)operator([)stringoperator(]) reserved(end) reserved(def) method(verbose_off) reserved(begin) ident(save)operator(,) instance_variable(@options)operator([)stringoperator(]) operator(=) instance_variable(@options)operator([)stringoperator(])operator(,) pre_constant(false) reserved(yield) reserved(ensure) instance_variable(@options)operator([)stringoperator(]) operator(=) ident(save) reserved(end) reserved(end) comment(#) comment(# TASK config) comment(#) reserved(def) method(exec_config) ident(exec_task_traverse) string reserved(end) reserved(def) method(config_dir_bin)operator(()ident(rel)operator(\)) reserved(end) reserved(def) method(config_dir_lib)operator(()ident(rel)operator(\)) reserved(end) reserved(def) method(config_dir_ext)operator(()ident(rel)operator(\)) ident(extconf) reserved(if) ident(extdir?)operator(()ident(curr_srcdir)operator(()operator(\))operator(\)) reserved(end) reserved(def) method(extconf) ident(opt) operator(=) instance_variable(@options)operator([)stringoperator(])operator(.)ident(join)operator(()stringoperator(\)) ident(command) stringoperator(\))inline_delimiter(})>content( )inlinecontent(/extconf.rb )inlinedelimiter(")> reserved(end) reserved(def) method(config_dir_data)operator(()ident(rel)operator(\)) reserved(end) comment(#) comment(# TASK setup) comment(#) reserved(def) method(exec_setup) ident(exec_task_traverse) string reserved(end) reserved(def) method(setup_dir_bin)operator(()ident(rel)operator(\)) ident(all_files_in)operator(()ident(curr_srcdir)operator(()operator(\))operator(\))operator(.)ident(each) reserved(do) operator(|)ident(fname)operator(|) ident(adjust_shebang) stringcontent(/)inlinedelimiter(")> reserved(end) reserved(end) reserved(def) method(adjust_shebang)operator(()ident(path)operator(\)) reserved(return) reserved(if) ident(no_harm?) ident(tmpfile) operator(=) constant(File)operator(.)ident(basename)operator(()ident(path)operator(\)) operator(+) string reserved(begin) constant(File)operator(.)ident(open)operator(()ident(path)operator(,) stringoperator(\)) operator({)operator(|)ident(r)operator(|) ident(first) operator(=) ident(r)operator(.)ident(gets) reserved(return) reserved(unless) constant(File)operator(.)ident(basename)operator(()ident(config)operator(()stringoperator(\))operator(\)) operator(==) string reserved(return) reserved(unless) constant(File)operator(.)ident(basename)operator(()ident(first)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(split)operator([)integer(0)operator(])operator(\)) operator(==) string global_variable($stderr)operator(.)ident(puts) stringdelimiter(")> reserved(if) ident(verbose?) constant(File)operator(.)ident(open)operator(()ident(tmpfile)operator(,) stringoperator(\)) operator({)operator(|)ident(w)operator(|) ident(w)operator(.)ident(print) ident(first)operator(.)ident(sub)operator(()regexpoperator(,) string operator(+) ident(config)operator(()stringoperator(\))operator(\)) ident(w)operator(.)ident(write) ident(r)operator(.)ident(read) operator(}) ident(move_file) ident(tmpfile)operator(,) constant(File)operator(.)ident(basename)operator(()ident(path)operator(\)) operator(}) reserved(ensure) constant(File)operator(.)ident(unlink) ident(tmpfile) reserved(if) constant(File)operator(.)ident(exist?)operator(()ident(tmpfile)operator(\)) reserved(end) reserved(end) reserved(def) method(setup_dir_lib)operator(()ident(rel)operator(\)) reserved(end) reserved(def) method(setup_dir_ext)operator(()ident(rel)operator(\)) ident(make) reserved(if) ident(extdir?)operator(()ident(curr_srcdir)operator(()operator(\))operator(\)) reserved(end) reserved(def) method(setup_dir_data)operator(()ident(rel)operator(\)) reserved(end) comment(#) comment(# TASK install) comment(#) reserved(def) method(exec_install) ident(rm_f) string ident(exec_task_traverse) string reserved(end) reserved(def) method(install_dir_bin)operator(()ident(rel)operator(\)) ident(install_files) ident(collect_filenames_auto)operator(()operator(\))operator(,) stringoperator(\))inline_delimiter(})>content(/)inlinedelimiter(")>operator(,) integer(0755) reserved(end) reserved(def) method(install_dir_lib)operator(()ident(rel)operator(\)) ident(install_files) ident(ruby_scripts)operator(()operator(\))operator(,) stringoperator(\))inline_delimiter(})>content(/)inlinedelimiter(")>operator(,) integer(0644) reserved(end) reserved(def) method(install_dir_ext)operator(()ident(rel)operator(\)) reserved(return) reserved(unless) ident(extdir?)operator(()ident(curr_srcdir)operator(()operator(\))operator(\)) ident(install_files) ident(ruby_extentions)operator(()stringoperator(\))operator(,) stringoperator(\))inline_delimiter(})>content(/)inlinedelimiter(")>operator(,) integer(0555) reserved(end) reserved(def) method(install_dir_data)operator(()ident(rel)operator(\)) ident(install_files) ident(collect_filenames_auto)operator(()operator(\))operator(,) stringoperator(\))inline_delimiter(})>content(/)inlinedelimiter(")>operator(,) integer(0644) reserved(end) reserved(def) method(install_files)operator(()ident(list)operator(,) ident(dest)operator(,) ident(mode)operator(\)) ident(mkdir_p) ident(dest)operator(,) instance_variable(@options)operator([)stringoperator(]) ident(list)operator(.)ident(each) reserved(do) operator(|)ident(fname)operator(|) ident(install) ident(fname)operator(,) ident(dest)operator(,) ident(mode)operator(,) instance_variable(@options)operator([)stringoperator(]) reserved(end) reserved(end) reserved(def) method(ruby_scripts) ident(collect_filenames_auto)operator(()operator(\))operator(.)ident(select) operator({)operator(|)ident(n)operator(|) regexp operator(=)operator(~) ident(n) operator(}) reserved(end) comment(# picked up many entries from cvs-1.11.1/src/ignore.c) ident(reject_patterns) operator(=) string ident(mapping) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) constant(REJECT_PATTERNS) operator(=) constant(Regexp)operator(.)ident(new)operator(()string operator(+) ident(reject_patterns)operator(.)ident(map) operator({)operator(|)ident(pat)operator(|) ident(pat)operator(.)ident(gsub)operator(()regexpoperator(\)) operator({)operator(|)ident(ch)operator(|) ident(mapping)operator([)ident(ch)operator(]) operator(}) operator(})operator(.)ident(join)operator(()stringoperator(\)) operator(+) stringoperator(\)) reserved(def) method(collect_filenames_auto) ident(mapdir)operator(()operator(()ident(existfiles)operator(()operator(\)) operator(-) ident(hookfiles)operator(()operator(\))operator(\))operator(.)ident(reject) operator({)operator(|)ident(fname)operator(|) constant(REJECT_PATTERNS) operator(=)operator(~) ident(fname) operator(})operator(\)) reserved(end) reserved(def) method(existfiles) ident(all_files_in)operator(()ident(curr_srcdir)operator(()operator(\))operator(\)) operator(|) ident(all_files_in)operator(()stringoperator(\)) reserved(end) reserved(def) method(hookfiles) stringoperator(.)ident(map) operator({)operator(|)ident(fmt)operator(|) stringoperator(.)ident(map) operator({)operator(|)ident(t)operator(|) ident(sprintf)operator(()ident(fmt)operator(,) ident(t)operator(\)) operator(}) operator(})operator(.)ident(flatten) reserved(end) reserved(def) method(mapdir)operator(()ident(filelist)operator(\)) ident(filelist)operator(.)ident(map) operator({)operator(|)ident(fname)operator(|) reserved(if) constant(File)operator(.)ident(exist?)operator(()ident(fname)operator(\)) comment(# objdir) ident(fname) reserved(else) comment(# srcdir) constant(File)operator(.)ident(join)operator(()ident(curr_srcdir)operator(()operator(\))operator(,) ident(fname)operator(\)) reserved(end) operator(}) reserved(end) reserved(def) method(ruby_extentions)operator(()ident(dir)operator(\)) constant(Dir)operator(.)ident(open)operator(()ident(dir)operator(\)) operator({)operator(|)ident(d)operator(|) ident(ents) operator(=) ident(d)operator(.)ident(select) operator({)operator(|)ident(fname)operator(|) regexpoperator(])inline_delimiter(})>char(\\z)delimiter(/)> operator(=)operator(~) ident(fname) operator(}) reserved(if) ident(ents)operator(.)ident(empty?) ident(setup_rb_error) stringcontent( setup' first)delimiter(")> reserved(end) reserved(return) ident(ents) operator(}) reserved(end) comment(#) comment(# TASK clean) comment(#) reserved(def) method(exec_clean) ident(exec_task_traverse) string ident(rm_f) constant(ConfigTable)operator(.)ident(savefile) ident(rm_f) string reserved(end) reserved(def) method(clean_dir_bin)operator(()ident(rel)operator(\)) reserved(end) reserved(def) method(clean_dir_lib)operator(()ident(rel)operator(\)) reserved(end) reserved(def) method(clean_dir_ext)operator(()ident(rel)operator(\)) reserved(return) reserved(unless) ident(extdir?)operator(()ident(curr_srcdir)operator(()operator(\))operator(\)) ident(make) string reserved(if) constant(File)operator(.)ident(file?)operator(()stringoperator(\)) reserved(end) reserved(def) method(clean_dir_data)operator(()ident(rel)operator(\)) reserved(end) comment(#) comment(# TASK distclean) comment(#) reserved(def) method(exec_distclean) ident(exec_task_traverse) string ident(rm_f) constant(ConfigTable)operator(.)ident(savefile) ident(rm_f) string reserved(end) reserved(def) method(distclean_dir_bin)operator(()ident(rel)operator(\)) reserved(end) reserved(def) method(distclean_dir_lib)operator(()ident(rel)operator(\)) reserved(end) reserved(def) method(distclean_dir_ext)operator(()ident(rel)operator(\)) reserved(return) reserved(unless) ident(extdir?)operator(()ident(curr_srcdir)operator(()operator(\))operator(\)) ident(make) string reserved(if) constant(File)operator(.)ident(file?)operator(()stringoperator(\)) reserved(end) comment(#) comment(# lib) comment(#) reserved(def) method(exec_task_traverse)operator(()ident(task)operator(\)) ident(run_hook) stringdelimiter(")> constant(FILETYPES)operator(.)ident(each) reserved(do) operator(|)ident(type)operator(|) reserved(if) ident(config)operator(()stringoperator(\)) operator(==) string reserved(and) ident(type) operator(==) string global_variable($stderr)operator(.)ident(puts) string reserved(if) ident(verbose?) reserved(next) reserved(end) ident(traverse) ident(task)operator(,) ident(type)operator(,) stringcontent(_dir_)inlinedelimiter(")> reserved(end) ident(run_hook) stringdelimiter(")> reserved(end) reserved(def) method(traverse)operator(()ident(task)operator(,) ident(rel)operator(,) ident(mid)operator(\)) ident(dive_into)operator(()ident(rel)operator(\)) operator({) ident(run_hook) stringdelimiter(")> ident(__send__) ident(mid)operator(,) ident(rel)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) ident(all_dirs_in)operator(()ident(curr_srcdir)operator(()operator(\))operator(\))operator(.)ident(each) reserved(do) operator(|)ident(d)operator(|) ident(traverse) ident(task)operator(,) stringcontent(/)inlinedelimiter(")>operator(,) ident(mid) reserved(end) ident(run_hook) stringdelimiter(")> operator(}) reserved(end) reserved(def) method(dive_into)operator(()ident(rel)operator(\)) reserved(return) reserved(unless) constant(File)operator(.)ident(dir?)operator(()stringcontent(/)inlinedelimiter(")>operator(\)) ident(dir) operator(=) constant(File)operator(.)ident(basename)operator(()ident(rel)operator(\)) constant(Dir)operator(.)ident(mkdir) ident(dir) reserved(unless) constant(File)operator(.)ident(dir?)operator(()ident(dir)operator(\)) ident(prevdir) operator(=) constant(Dir)operator(.)ident(pwd) constant(Dir)operator(.)ident(chdir) ident(dir) global_variable($stderr)operator(.)ident(puts) string )delimiter(')> operator(+) ident(rel) reserved(if) ident(verbose?) instance_variable(@currdir) operator(=) ident(rel) reserved(yield) constant(Dir)operator(.)ident(chdir) ident(prevdir) global_variable($stderr)operator(.)ident(puts) string operator(+) ident(rel) reserved(if) ident(verbose?) instance_variable(@currdir) operator(=) constant(File)operator(.)ident(dirname)operator(()ident(rel)operator(\)) reserved(end) reserved(end) reserved(if) global_variable($0) operator(==) pre_constant(__FILE__) reserved(begin) reserved(if) ident(multipackage_install?) constant(ToplevelInstallerMulti)operator(.)ident(invoke) reserved(else) constant(ToplevelInstaller)operator(.)ident(invoke) reserved(end) reserved(rescue) constant(SetupError) ident(raise) reserved(if) global_variable($DEBUG) global_variable($stderr)operator(.)ident(puts) global_variable($!)operator(.)ident(message) global_variable($stderr)operator(.)ident(puts) stringcontent( --help' for detailed usage.)delimiter(")> ident(exit) integer(1) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string ident(require) string ident(require) string reserved(module) class(ClientTest) reserved(class) class(Person) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:firstnames)operator(,) operator([)symbol(:string)operator(]) ident(member) symbol(:lastname)operator(,) symbol(:string) reserved(def) method(==)operator(()ident(other)operator(\)) ident(firstnames) operator(==) ident(other)operator(.)ident(firstnames) operator(&&) ident(lastname) operator(==) ident(other)operator(.)ident(lastname) reserved(end) reserved(end) reserved(class) class(Inner) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:name)operator(,) symbol(:string) reserved(end) reserved(class) class(Outer) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:name)operator(,) symbol(:string) ident(member) symbol(:inner)operator(,) constant(Inner) reserved(end) reserved(class) class(User) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(end) reserved(module) class(Accounting) reserved(class) class(User) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(end) reserved(end) reserved(class) class(WithModel) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:user)operator(,) constant(User) ident(member) symbol(:users)operator(,) operator([)constant(User)operator(]) reserved(end) reserved(class) class(WithMultiDimArray) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:pref)operator(,) operator([)operator([)symbol(:string)operator(])operator(]) reserved(end) reserved(class) class(API) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:void) ident(api_method) symbol(:normal)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:int)operator(,) symbol(:int)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:array_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)constant(Person)operator(])operator(]) ident(api_method) symbol(:struct_pass)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator([)constant(Person)operator(])operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:bool)operator(]) ident(api_method) symbol(:nil_struct_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(Person)operator(]) ident(api_method) symbol(:inner_nil)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(Outer)operator(]) ident(api_method) symbol(:client_container)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:named_parameters)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:key)operator(=)operator(>)symbol(:string)operator(})operator(,) operator({)symbol(:id)operator(=)operator(>)symbol(:int)operator(})operator(]) ident(api_method) symbol(:thrower) ident(api_method) symbol(:user_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(User)operator(]) ident(api_method) symbol(:with_model_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(WithModel)operator(]) ident(api_method) symbol(:scoped_model_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(Accounting)operator(::)constant(User)operator(]) ident(api_method) symbol(:multi_dim_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)constant(WithMultiDimArray)operator(]) reserved(end) reserved(class) class(NullLogOut) reserved(def) method(<<)operator(()operator(*)ident(args)operator(\))operator(;) reserved(end) reserved(end) reserved(class) class(Container) operator(<) constant(ActionController)operator(::)constant(Base) ident(web_service_api) constant(API) ident(attr_accessor) symbol(:value_void) ident(attr_accessor) symbol(:value_normal) ident(attr_accessor) symbol(:value_array_return) ident(attr_accessor) symbol(:value_struct_pass) ident(attr_accessor) symbol(:value_named_parameters) reserved(def) method(initialize) instance_variable(@session) operator(=) instance_variable(@assigns) operator(=) operator({)operator(}) instance_variable(@value_void) operator(=) pre_constant(nil) instance_variable(@value_normal) operator(=) pre_constant(nil) instance_variable(@value_array_return) operator(=) pre_constant(nil) instance_variable(@value_struct_pass) operator(=) pre_constant(nil) instance_variable(@value_named_parameters) operator(=) pre_constant(nil) reserved(end) reserved(def) method(void) instance_variable(@value_void) operator(=) instance_variable(@method_params) reserved(end) reserved(def) method(normal) instance_variable(@value_normal) operator(=) instance_variable(@method_params) integer(5) reserved(end) reserved(def) method(array_return) ident(person) operator(=) constant(Person)operator(.)ident(new) ident(person)operator(.)ident(firstnames) operator(=) operator([)stringoperator(,) stringoperator(]) ident(person)operator(.)ident(lastname) operator(=) string instance_variable(@value_array_return) operator(=) operator([)ident(person)operator(]) reserved(end) reserved(def) method(struct_pass) instance_variable(@value_struct_pass) operator(=) instance_variable(@method_params) pre_constant(true) reserved(end) reserved(def) method(nil_struct_return) pre_constant(nil) reserved(end) reserved(def) method(inner_nil) constant(Outer)operator(.)ident(new) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:inner) operator(=)operator(>) pre_constant(nil) reserved(end) reserved(def) method(client_container) integer(50) reserved(end) reserved(def) method(named_parameters) instance_variable(@value_named_parameters) operator(=) instance_variable(@method_params) reserved(end) reserved(def) method(thrower) ident(raise) string reserved(end) reserved(def) method(user_return) constant(User)operator(.)ident(find)operator(()integer(1)operator(\)) reserved(end) reserved(def) method(with_model_return) constant(WithModel)operator(.)ident(new) symbol(:user) operator(=)operator(>) constant(User)operator(.)ident(find)operator(()integer(1)operator(\))operator(,) symbol(:users) operator(=)operator(>) constant(User)operator(.)ident(find)operator(()symbol(:all)operator(\)) reserved(end) reserved(def) method(scoped_model_return) constant(Accounting)operator(::)constant(User)operator(.)ident(find)operator(()integer(1)operator(\)) reserved(end) reserved(def) method(multi_dim_return) constant(WithMultiDimArray)operator(.)ident(new) symbol(:pref) operator(=)operator(>) operator([)stringoperator(,) stringoperator(]) reserved(end) reserved(end) reserved(class) class(AbstractClientLet) operator(<) constant(WEBrick)operator(::)constant(HTTPServlet)operator(::)constant(AbstractServlet) reserved(def) method(initialize)operator(()ident(controller)operator(\)) instance_variable(@controller) operator(=) ident(controller) reserved(end) reserved(def) method(get_instance)operator(()operator(*)ident(args)operator(\)) pre_constant(self) reserved(end) reserved(def) method(require_path_info?) pre_constant(false) reserved(end) reserved(def) method(do_GET)operator(()ident(req)operator(,) ident(res)operator(\)) ident(raise) constant(WEBrick)operator(::)constant(HTTPStatus)operator(::)constant(MethodNotAllowed)operator(,) string reserved(end) reserved(def) method(do_POST)operator(()ident(req)operator(,) ident(res)operator(\)) ident(raise) constant(NotImplementedError) reserved(end) reserved(end) reserved(class) class(AbstractServer) ident(include) constant(ClientTest) ident(include) constant(Singleton) ident(attr) symbol(:container) reserved(def) method(initialize) instance_variable(@container) operator(=) constant(Container)operator(.)ident(new) instance_variable(@clientlet) operator(=) ident(create_clientlet)operator(()instance_variable(@container)operator(\)) ident(log) operator(=) constant(WEBrick)operator(::)constant(BasicLog)operator(.)ident(new)operator(()constant(NullLogOut)operator(.)ident(new)operator(\)) instance_variable(@server) operator(=) constant(WEBrick)operator(::)constant(HTTPServer)operator(.)ident(new)operator(()symbol(:Port) operator(=)operator(>) ident(server_port)operator(,) symbol(:Logger) operator(=)operator(>) ident(log)operator(,) symbol(:AccessLog) operator(=)operator(>) ident(log)operator(\)) instance_variable(@server)operator(.)ident(mount)operator(()stringoperator(,) instance_variable(@clientlet)operator(\)) instance_variable(@thr) operator(=) constant(Thread)operator(.)ident(new) operator({) instance_variable(@server)operator(.)ident(start) operator(}) reserved(until) instance_variable(@server)operator(.)ident(status) operator(==) symbol(:Running)operator(;) reserved(end) ident(at_exit) operator({) instance_variable(@server)operator(.)ident(stop)operator(;) instance_variable(@thr)operator(.)ident(join) operator(}) reserved(end) ident(protected) reserved(def) method(create_clientlet) ident(raise) constant(NotImplementedError) reserved(end) reserved(def) method(server_port) ident(raise) constant(NotImplementedError) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string reserved(class) class(ActionController::Base)operator(;) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) ident(e) reserved(end)operator(;) reserved(end) reserved(module) class(DispatcherTest) constant(Utf8String) operator(=) string constant(WsdlNamespace) operator(=) string reserved(class) class(Node) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(def) method(initialize)operator(()operator(*)ident(args)operator(\)) reserved(super)operator(()operator(*)ident(args)operator(\)) instance_variable(@new_record) operator(=) pre_constant(false) reserved(end) reserved(class) operator(<<) class(self) reserved(def) method(name) string reserved(end) reserved(def) method(columns)operator(()operator(*)ident(args)operator(\)) operator([) constant(ActiveRecord)operator(::)constant(ConnectionAdapters)operator(::)constant(Column)operator(.)ident(new)operator(()stringoperator(,) integer(0)operator(,) stringoperator(\))operator(,) constant(ActiveRecord)operator(::)constant(ConnectionAdapters)operator(::)constant(Column)operator(.)ident(new)operator(()stringoperator(,) pre_constant(nil)operator(,) stringoperator(\))operator(,) constant(ActiveRecord)operator(::)constant(ConnectionAdapters)operator(::)constant(Column)operator(.)ident(new)operator(()stringoperator(,) pre_constant(nil)operator(,) stringoperator(\))operator(,) operator(]) reserved(end) reserved(def) method(connection) pre_constant(self) reserved(end) reserved(end) reserved(end) reserved(class) class(Person) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:id)operator(,) symbol(:int) ident(member) symbol(:name)operator(,) symbol(:string) reserved(def) method(==)operator(()ident(other)operator(\)) pre_constant(self)operator(.)ident(id) operator(==) ident(other)operator(.)ident(id) operator(&&) pre_constant(self)operator(.)ident(name) operator(==) ident(other)operator(.)ident(name) reserved(end) reserved(end) reserved(class) class(API) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:add)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:int)operator(,) symbol(:int)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:interceptee) ident(api_method) symbol(:struct_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)constant(Node)operator(])operator(]) ident(api_method) symbol(:void) reserved(end) reserved(class) class(DirectAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:add)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:a)operator(=)operator(>)symbol(:int)operator(})operator(,) operator({)symbol(:b)operator(=)operator(>)symbol(:int)operator(})operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:add2)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:a)operator(=)operator(>)symbol(:int)operator(})operator(,) operator({)symbol(:b)operator(=)operator(>)symbol(:int)operator(})operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:before_filtered) ident(api_method) symbol(:after_filtered)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)symbol(:int)operator(])operator(]) ident(api_method) symbol(:struct_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)constant(Node)operator(])operator(]) ident(api_method) symbol(:struct_pass)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:person) operator(=)operator(>) constant(Person)operator(})operator(]) ident(api_method) symbol(:base_struct_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)constant(Person)operator(])operator(]) ident(api_method) symbol(:hash_struct_return)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)constant(Person)operator(])operator(]) ident(api_method) symbol(:thrower) ident(api_method) symbol(:void) ident(api_method) symbol(:test_utf8)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(]) ident(api_method) symbol(:hex)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:base64)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(]) ident(api_method) symbol(:unhex)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:string)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:base64)operator(]) ident(api_method) symbol(:time)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:time)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:time)operator(]) reserved(end) reserved(class) class(VirtualAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(default_api_method) symbol(:fallback) reserved(end) reserved(class) class(Service) operator(<) constant(ActionWebService)operator(::)constant(Base) ident(web_service_api) constant(API) ident(before_invocation) symbol(:do_intercept)operator(,) symbol(:only) operator(=)operator(>) operator([)symbol(:interceptee)operator(]) ident(attr) symbol(:added) ident(attr) symbol(:intercepted) ident(attr) symbol(:void_called) reserved(def) method(initialize) instance_variable(@void_called) operator(=) pre_constant(false) reserved(end) reserved(def) method(add)operator(()ident(a)operator(,) ident(b)operator(\)) instance_variable(@added) operator(=) ident(a) operator(+) ident(b) reserved(end) reserved(def) method(interceptee) instance_variable(@intercepted) operator(=) pre_constant(false) reserved(end) reserved(def) method(struct_return) ident(n1) operator(=) constant(Node)operator(.)ident(new)operator(()string operator(=)operator(>) integer(1)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(n2) operator(=) constant(Node)operator(.)ident(new)operator(()string operator(=)operator(>) integer(2)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator([)ident(n1)operator(,) ident(n2)operator(]) reserved(end) reserved(def) method(void)operator(()operator(*)ident(args)operator(\)) instance_variable(@void_called) operator(=) ident(args) reserved(end) reserved(def) method(do_intercept)operator(()ident(name)operator(,) ident(args)operator(\)) operator([)pre_constant(false)operator(,) stringoperator(]) reserved(end) reserved(end) reserved(class) class(MTAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(inflect_names) pre_constant(false) ident(api_method) symbol(:getCategories)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)symbol(:string)operator(])operator(]) ident(api_method) symbol(:bool)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:bool)operator(]) ident(api_method) symbol(:alwaysFail) reserved(end) reserved(class) class(BloggerAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(inflect_names) pre_constant(false) ident(api_method) symbol(:getCategories)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)symbol(:string)operator(])operator(]) ident(api_method) symbol(:str)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:int)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(]) ident(api_method) symbol(:alwaysFail) reserved(end) reserved(class) class(MTService) operator(<) constant(ActionWebService)operator(::)constant(Base) ident(web_service_api) constant(MTAPI) reserved(def) method(getCategories) operator([)stringoperator(,) stringoperator(]) reserved(end) reserved(def) method(bool) string reserved(end) reserved(def) method(alwaysFail) ident(raise) string reserved(end) reserved(end) reserved(class) class(BloggerService) operator(<) constant(ActionWebService)operator(::)constant(Base) ident(web_service_api) constant(BloggerAPI) reserved(def) method(getCategories) operator([)stringoperator(,) stringoperator(]) reserved(end) reserved(def) method(str)operator(()ident(int)operator(\)) reserved(unless) ident(int)operator(.)ident(is_a?)operator(()constant(Integer)operator(\)) ident(raise) string reserved(end) integer(500) operator(+) ident(int) reserved(end) reserved(def) method(alwaysFail) ident(raise) string reserved(end) reserved(end) reserved(class) class(AbstractController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(generate_wsdl) instance_variable(@request) operator(||=) operator(::)constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) ident(to_wsdl) reserved(end) reserved(end) reserved(class) class(DelegatedController) operator(<) constant(AbstractController) ident(web_service_dispatching_mode) symbol(:delegated) ident(wsdl_namespace) constant(WsdlNamespace) ident(web_service)operator(()symbol(:test_service)operator(\)) operator({) instance_variable(@service) operator(||=) constant(Service)operator(.)ident(new)operator(;) instance_variable(@service) operator(}) reserved(end) reserved(class) class(LayeredController) operator(<) constant(AbstractController) ident(web_service_dispatching_mode) symbol(:layered) ident(wsdl_namespace) constant(WsdlNamespace) ident(web_service)operator(()symbol(:mt)operator(\)) operator({) instance_variable(@mt_service) operator(||=) constant(MTService)operator(.)ident(new)operator(;) instance_variable(@mt_service) operator(}) ident(web_service)operator(()symbol(:blogger)operator(\)) operator({) instance_variable(@blogger_service) operator(||=) constant(BloggerService)operator(.)ident(new)operator(;) instance_variable(@blogger_service) operator(}) reserved(end) reserved(class) class(DirectController) operator(<) constant(AbstractController) ident(web_service_api) constant(DirectAPI) ident(web_service_dispatching_mode) symbol(:direct) ident(wsdl_namespace) constant(WsdlNamespace) ident(before_invocation) symbol(:alwaysfail)operator(,) symbol(:only) operator(=)operator(>) operator([)symbol(:before_filtered)operator(]) ident(after_invocation) symbol(:alwaysok)operator(,) symbol(:only) operator(=)operator(>) operator([)symbol(:after_filtered)operator(]) ident(attr) symbol(:added) ident(attr) symbol(:added2) ident(attr) symbol(:before_filter_called) ident(attr) symbol(:before_filter_target_called) ident(attr) symbol(:after_filter_called) ident(attr) symbol(:after_filter_target_called) ident(attr) symbol(:void_called) ident(attr) symbol(:struct_pass_value) reserved(def) method(initialize) instance_variable(@before_filter_called) operator(=) pre_constant(false) instance_variable(@before_filter_target_called) operator(=) pre_constant(false) instance_variable(@after_filter_called) operator(=) pre_constant(false) instance_variable(@after_filter_target_called) operator(=) pre_constant(false) instance_variable(@void_called) operator(=) pre_constant(false) instance_variable(@struct_pass_value) operator(=) pre_constant(false) reserved(end) reserved(def) method(add) instance_variable(@added) operator(=) instance_variable(@params)operator([)stringoperator(]) operator(+) instance_variable(@params)operator([)stringoperator(]) reserved(end) reserved(def) method(add2)operator(()ident(a)operator(,) ident(b)operator(\)) instance_variable(@added2) operator(=) ident(a) operator(+) ident(b) reserved(end) reserved(def) method(before_filtered) instance_variable(@before_filter_target_called) operator(=) pre_constant(true) reserved(end) reserved(def) method(after_filtered) instance_variable(@after_filter_target_called) operator(=) pre_constant(true) operator([)integer(5)operator(,) integer(6)operator(,) integer(7)operator(]) reserved(end) reserved(def) method(thrower) ident(raise) string reserved(end) reserved(def) method(struct_return) ident(n1) operator(=) constant(Node)operator(.)ident(new)operator(()string operator(=)operator(>) integer(1)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(n2) operator(=) constant(Node)operator(.)ident(new)operator(()string operator(=)operator(>) integer(2)operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) operator([)ident(n1)operator(,) ident(n2)operator(]) reserved(end) reserved(def) method(struct_pass)operator(()ident(person)operator(\)) instance_variable(@struct_pass_value) operator(=) ident(person) reserved(end) reserved(def) method(base_struct_return) ident(p1) operator(=) constant(Person)operator(.)ident(new)operator(()string operator(=)operator(>) integer(1)operator(,) string operator(=)operator(>) stringoperator(\)) ident(p2) operator(=) constant(Person)operator(.)ident(new)operator(()string operator(=)operator(>) integer(2)operator(,) string operator(=)operator(>) stringoperator(\)) operator([)ident(p1)operator(,) ident(p2)operator(]) reserved(end) reserved(def) method(hash_struct_return) ident(p1) operator(=) operator({) symbol(:id) operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) ident(p2) operator(=) operator({) string operator(=)operator(>) stringoperator(,) symbol(:name) operator(=)operator(>) string operator(}) operator([)ident(p1)operator(,) ident(p2)operator(]) reserved(end) reserved(def) method(void) instance_variable(@void_called) operator(=) instance_variable(@method_params) reserved(end) reserved(def) method(test_utf8) constant(Utf8String) reserved(end) reserved(def) method(hex)operator(()ident(s)operator(\)) reserved(return) ident(s)operator(.)ident(unpack)operator(()stringoperator(\))operator([)integer(0)operator(]) reserved(end) reserved(def) method(unhex)operator(()ident(s)operator(\)) reserved(return) operator([)ident(s)operator(])operator(.)ident(pack)operator(()stringoperator(\)) reserved(end) reserved(def) method(time)operator(()ident(t)operator(\)) ident(t) reserved(end) ident(protected) reserved(def) method(alwaysfail)operator(()ident(method_name)operator(,) ident(params)operator(\)) instance_variable(@before_filter_called) operator(=) pre_constant(true) pre_constant(false) reserved(end) reserved(def) method(alwaysok)operator(()ident(method_name)operator(,) ident(params)operator(,) ident(return_value)operator(\)) instance_variable(@after_filter_called) operator(=) pre_constant(true) reserved(end) reserved(end) reserved(class) class(VirtualController) operator(<) constant(AbstractController) ident(web_service_api) constant(VirtualAPI) ident(wsdl_namespace) constant(WsdlNamespace) reserved(def) method(fallback) string reserved(end) reserved(end) reserved(end) reserved(module) class(DispatcherCommonTests) reserved(def) method(test_direct_dispatching) ident(assert_equal)operator(()integer(70)operator(,) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) integer(20)operator(,) integer(50)operator(\))operator(\)) ident(assert_equal)operator(()integer(70)operator(,) instance_variable(@direct_controller)operator(.)ident(added)operator(\)) ident(assert_equal)operator(()integer(50)operator(,) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) integer(25)operator(,) integer(25)operator(\))operator(\)) ident(assert_equal)operator(()integer(50)operator(,) instance_variable(@direct_controller)operator(.)ident(added2)operator(\)) ident(assert)operator(()instance_variable(@direct_controller)operator(.)ident(void_called) operator(==) pre_constant(false)operator(\)) ident(assert)operator(()ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) integer(3)operator(,) integer(4)operator(,) integer(5)operator(\))operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@direct_controller)operator(.)ident(void_called) operator(==) operator([)operator(])operator(\)) ident(result) operator(=) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(\)) ident(assert)operator(()ident(result)operator([)integer(0)operator(])operator(.)ident(is_a?)operator(()constant(DispatcherTest)operator(::)constant(Person)operator(\))operator(\)) ident(assert)operator(()ident(result)operator([)integer(1)operator(])operator(.)ident(is_a?)operator(()constant(DispatcherTest)operator(::)constant(Person)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) stringoperator(\))operator(\)) ident(time) operator(=) constant(Time)operator(.)ident(gm)operator(()integer(1998)operator(,) stringoperator(,) integer(02)operator(,) integer(15)operator(,) integer(12)operator(,) integer(01)operator(\)) ident(assert_equal)operator(()ident(time)operator(,) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) ident(time)operator(\))operator(\)) reserved(end) reserved(def) method(test_direct_entrypoint) ident(assert)operator(()instance_variable(@direct_controller)operator(.)ident(respond_to?)operator(()symbol(:api)operator(\))operator(\)) reserved(end) reserved(def) method(test_virtual_dispatching) ident(assert_equal)operator(()stringoperator(,) ident(do_method_call)operator(()instance_variable(@virtual_controller)operator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(do_method_call)operator(()instance_variable(@virtual_controller)operator(,) stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_direct_filtering) ident(assert_equal)operator(()pre_constant(false)operator(,) instance_variable(@direct_controller)operator(.)ident(before_filter_called)operator(\)) ident(assert_equal)operator(()pre_constant(false)operator(,) instance_variable(@direct_controller)operator(.)ident(before_filter_target_called)operator(\)) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(\)) ident(assert_equal)operator(()pre_constant(true)operator(,) instance_variable(@direct_controller)operator(.)ident(before_filter_called)operator(\)) ident(assert_equal)operator(()pre_constant(false)operator(,) instance_variable(@direct_controller)operator(.)ident(before_filter_target_called)operator(\)) ident(assert_equal)operator(()pre_constant(false)operator(,) instance_variable(@direct_controller)operator(.)ident(after_filter_called)operator(\)) ident(assert_equal)operator(()pre_constant(false)operator(,) instance_variable(@direct_controller)operator(.)ident(after_filter_target_called)operator(\)) ident(assert_equal)operator(()operator([)integer(5)operator(,) integer(6)operator(,) integer(7)operator(])operator(,) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()pre_constant(true)operator(,) instance_variable(@direct_controller)operator(.)ident(after_filter_called)operator(\)) ident(assert_equal)operator(()pre_constant(true)operator(,) instance_variable(@direct_controller)operator(.)ident(after_filter_target_called)operator(\)) reserved(end) reserved(def) method(test_delegated_dispatching) ident(assert_equal)operator(()integer(130)operator(,) ident(do_method_call)operator(()instance_variable(@delegated_controller)operator(,) stringoperator(,) integer(50)operator(,) integer(80)operator(\))operator(\)) ident(service) operator(=) instance_variable(@delegated_controller)operator(.)ident(web_service_object)operator(()symbol(:test_service)operator(\)) ident(assert_equal)operator(()integer(130)operator(,) ident(service)operator(.)ident(added)operator(\)) instance_variable(@delegated_controller)operator(.)ident(web_service_exception_reporting) operator(=) pre_constant(true) ident(assert)operator(()ident(service)operator(.)ident(intercepted)operator(.)ident(nil?)operator(\)) ident(result) operator(=) ident(do_method_call)operator(()instance_variable(@delegated_controller)operator(,) stringoperator(\)) ident(assert)operator(()ident(service)operator(.)ident(intercepted)operator(.)ident(nil?)operator(\)) ident(assert)operator(()ident(is_exception?)operator(()ident(result)operator(\))operator(\)) ident(assert_match)operator(()regexpoperator(,) ident(exception_message)operator(()ident(result)operator(\))operator(\)) ident(result) operator(=) ident(do_method_call)operator(()instance_variable(@delegated_controller)operator(,) stringoperator(\)) ident(assert)operator(()ident(is_exception?)operator(()ident(result)operator(\))operator(\)) ident(assert_match)operator(()regexpoperator(,) ident(exception_message)operator(()ident(result)operator(\))operator(\)) ident(assert)operator(()ident(service)operator(.)ident(void_called) operator(==) pre_constant(false)operator(\)) ident(assert)operator(()ident(do_method_call)operator(()instance_variable(@delegated_controller)operator(,) stringoperator(,) integer(3)operator(,) integer(4)operator(,) integer(5)operator(\))operator(.)ident(nil?)operator(\)) ident(assert)operator(()ident(service)operator(.)ident(void_called) operator(==) operator([)operator(])operator(\)) reserved(end) reserved(def) method(test_garbage_request) operator([)instance_variable(@direct_controller)operator(,) instance_variable(@delegated_controller)operator(])operator(.)ident(each) reserved(do) operator(|)ident(controller)operator(|) ident(controller)operator(.)ident(class)operator(.)ident(web_service_exception_reporting) operator(=) pre_constant(true) ident(send_garbage_request) operator(=) ident(lambda) reserved(do) ident(service_name) operator(=) ident(service_name)operator(()ident(controller)operator(\)) ident(request) operator(=) ident(protocol)operator(.)ident(encode_action_pack_request)operator(()ident(service_name)operator(,) stringoperator(,) stringoperator(,) symbol(:request_class) operator(=)operator(>) constant(ActionController)operator(::)constant(TestRequest)operator(\)) ident(response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) ident(controller)operator(.)ident(process)operator(()ident(request)operator(,) ident(response)operator(\)) comment(# puts response.body) ident(assert)operator(()ident(response)operator(.)ident(headers)operator([)stringoperator(]) operator(=)operator(~) regexpoperator(\)) reserved(end) ident(send_garbage_request)operator(.)ident(call) ident(controller)operator(.)ident(class)operator(.)ident(web_service_exception_reporting) operator(=) pre_constant(false) ident(send_garbage_request)operator(.)ident(call) reserved(end) reserved(end) reserved(def) method(test_exception_marshaling) instance_variable(@direct_controller)operator(.)ident(web_service_exception_reporting) operator(=) pre_constant(true) ident(result) operator(=) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(\)) ident(assert)operator(()ident(is_exception?)operator(()ident(result)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(exception_message)operator(()ident(result)operator(\))operator(\)) instance_variable(@direct_controller)operator(.)ident(web_service_exception_reporting) operator(=) pre_constant(false) ident(result) operator(=) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(\)) ident(assert)operator(()ident(exception_message)operator(()ident(result)operator(\)) operator(!=) stringoperator(\)) reserved(end) reserved(def) method(test_ar_struct_return) operator([)instance_variable(@direct_controller)operator(,) instance_variable(@delegated_controller)operator(])operator(.)ident(each) reserved(do) operator(|)ident(controller)operator(|) ident(result) operator(=) ident(do_method_call)operator(()ident(controller)operator(,) stringoperator(\)) ident(assert)operator(()ident(result)operator([)integer(0)operator(])operator(.)ident(is_a?)operator(()constant(DispatcherTest)operator(::)constant(Node)operator(\))operator(\)) ident(assert)operator(()ident(result)operator([)integer(1)operator(])operator(.)ident(is_a?)operator(()constant(DispatcherTest)operator(::)constant(Node)operator(\))operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(result)operator([)integer(0)operator(])operator(.)ident(name)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(result)operator([)integer(1)operator(])operator(.)ident(name)operator(\)) reserved(end) reserved(end) reserved(def) method(test_casting) ident(assert_equal) integer(70)operator(,) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) stringoperator(,) stringoperator(\)) ident(assert_equal) pre_constant(false)operator(,) instance_variable(@direct_controller)operator(.)ident(struct_pass_value) ident(person) operator(=) constant(DispatcherTest)operator(::)constant(Person)operator(.)ident(new)operator(()symbol(:id) operator(=)operator(>) integer(1)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(result) operator(=) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) ident(person)operator(\)) ident(assert)operator(()pre_constant(nil) operator(==) ident(result) operator(||) pre_constant(true) operator(==) ident(result)operator(\)) ident(assert_equal) ident(person)operator(,) instance_variable(@direct_controller)operator(.)ident(struct_pass_value) ident(assert) operator(!)ident(person)operator(.)ident(equal?)operator(()instance_variable(@direct_controller)operator(.)ident(struct_pass_value)operator(\)) ident(result) operator(=) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(\)) reserved(case) reserved(when) ident(soap?) ident(assert_equal)operator(()ident(person)operator(,) instance_variable(@direct_controller)operator(.)ident(struct_pass_value)operator(\)) ident(assert) operator(!)ident(person)operator(.)ident(equal?)operator(()instance_variable(@direct_controller)operator(.)ident(struct_pass_value)operator(\)) reserved(when) ident(xmlrpc?) ident(assert_equal)operator(()ident(person)operator(,) instance_variable(@direct_controller)operator(.)ident(struct_pass_value)operator(\)) ident(assert) operator(!)ident(person)operator(.)ident(equal?)operator(()instance_variable(@direct_controller)operator(.)ident(struct_pass_value)operator(\)) reserved(end) ident(assert_equal) ident(person)operator(,) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(\))operator([)integer(0)operator(]) ident(result) operator(=) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(,) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(\)) reserved(case) reserved(when) ident(soap?) ident(assert_equal)operator(()ident(person)operator(,) instance_variable(@direct_controller)operator(.)ident(struct_pass_value)operator(\)) ident(assert) operator(!)ident(person)operator(.)ident(equal?)operator(()instance_variable(@direct_controller)operator(.)ident(struct_pass_value)operator(\)) reserved(when) ident(xmlrpc?) ident(assert_equal)operator(()ident(person)operator(,) instance_variable(@direct_controller)operator(.)ident(struct_pass_value)operator(\)) ident(assert) operator(!)ident(person)operator(.)ident(equal?)operator(()instance_variable(@direct_controller)operator(.)ident(struct_pass_value)operator(\)) reserved(end) reserved(end) reserved(def) method(test_logging) ident(buf) operator(=) string constant(ActionController)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()constant(StringIO)operator(.)ident(new)operator(()ident(buf)operator(\))operator(\)) ident(test_casting) ident(test_garbage_request) ident(test_exception_marshaling) constant(ActionController)operator(::)constant(Base)operator(.)ident(logger) operator(=) pre_constant(nil) ident(assert_match) regexpoperator(,) ident(buf) ident(assert_match) regexpoperator(,) ident(buf) reserved(end) ident(protected) reserved(def) method(service_name)operator(()ident(container)operator(\)) ident(raise) constant(NotImplementedError) reserved(end) reserved(def) method(exception_message)operator(()ident(obj)operator(\)) ident(raise) constant(NotImplementedError) reserved(end) reserved(def) method(is_exception?)operator(()ident(obj)operator(\)) ident(raise) constant(NotImplementedError) reserved(end) reserved(def) method(protocol) instance_variable(@protocol) reserved(end) reserved(def) method(soap?) ident(protocol)operator(.)ident(is_a?) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Soap)operator(::)constant(SoapProtocol) reserved(end) reserved(def) method(xmlrpc?) ident(protocol)operator(.)ident(is_a?) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol) reserved(end) reserved(def) method(do_method_call)operator(()ident(container)operator(,) ident(public_method_name)operator(,) operator(*)ident(params)operator(\)) ident(request_env) operator(=) operator({)operator(}) ident(mode) operator(=) ident(container)operator(.)ident(web_service_dispatching_mode) reserved(case) ident(mode) reserved(when) symbol(:direct) ident(service_name) operator(=) ident(service_name)operator(()ident(container)operator(\)) ident(api) operator(=) ident(container)operator(.)ident(class)operator(.)ident(web_service_api) ident(method) operator(=) ident(api)operator(.)ident(public_api_method_instance)operator(()ident(public_method_name)operator(\)) reserved(when) symbol(:delegated) ident(service_name) operator(=) ident(service_name)operator(()ident(container)operator(\)) ident(api) operator(=) ident(container)operator(.)ident(web_service_object)operator(()ident(service_name)operator(\))operator(.)ident(class)operator(.)ident(web_service_api) ident(method) operator(=) ident(api)operator(.)ident(public_api_method_instance)operator(()ident(public_method_name)operator(\)) reserved(when) symbol(:layered) ident(service_name) operator(=) pre_constant(nil) ident(real_method_name) operator(=) pre_constant(nil) reserved(if) ident(public_method_name) operator(=)operator(~) regexp ident(service_name) operator(=) global_variable($1) ident(real_method_name) operator(=) global_variable($2) reserved(end) reserved(if) ident(soap?) ident(public_method_name) operator(=) ident(real_method_name) ident(request_env)operator([)stringoperator(]) operator(=) stringcontent(/)inlinedelimiter(")> reserved(end) ident(api) operator(=) ident(container)operator(.)ident(web_service_object)operator(()ident(service_name)operator(.)ident(to_sym)operator(\))operator(.)ident(class)operator(.)ident(web_service_api) reserved(rescue) pre_constant(nil) ident(method) operator(=) ident(api)operator(.)ident(public_api_method_instance)operator(()ident(real_method_name)operator(\)) reserved(rescue) pre_constant(nil) ident(service_name) operator(=) pre_constant(self)operator(.)ident(service_name)operator(()ident(container)operator(\)) reserved(end) ident(protocol)operator(.)ident(register_api)operator(()ident(api)operator(\)) ident(virtual) operator(=) pre_constant(false) reserved(unless) ident(method) ident(virtual) operator(=) pre_constant(true) ident(method) operator(||=) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Method)operator(.)ident(new)operator(()ident(public_method_name)operator(.)ident(underscore)operator(.)ident(to_sym)operator(,) ident(public_method_name)operator(,) pre_constant(nil)operator(,) pre_constant(nil)operator(\)) reserved(end) ident(body) operator(=) ident(protocol)operator(.)ident(encode_request)operator(()ident(public_method_name)operator(,) ident(params)operator(.)ident(dup)operator(,) ident(method)operator(.)ident(expects)operator(\)) comment(# puts body) ident(ap_request) operator(=) ident(protocol)operator(.)ident(encode_action_pack_request)operator(()ident(service_name)operator(,) ident(public_method_name)operator(,) ident(body)operator(,) symbol(:request_class) operator(=)operator(>) constant(ActionController)operator(::)constant(TestRequest)operator(\)) ident(ap_request)operator(.)ident(env)operator(.)ident(update)operator(()ident(request_env)operator(\)) ident(ap_response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) ident(container)operator(.)ident(process)operator(()ident(ap_request)operator(,) ident(ap_response)operator(\)) comment(# puts ap_response.body) instance_variable(@response_body) operator(=) ident(ap_response)operator(.)ident(body) ident(public_method_name)operator(,) ident(return_value) operator(=) ident(protocol)operator(.)ident(decode_response)operator(()ident(ap_response)operator(.)ident(body)operator(\)) reserved(unless) ident(is_exception?)operator(()ident(return_value)operator(\)) operator(||) ident(virtual) ident(return_value) operator(=) ident(method)operator(.)ident(cast_returns)operator(()ident(return_value)operator(\)) reserved(end) reserved(if) ident(soap?) comment(# http://dev.rubyonrails.com/changeset/920) ident(assert_match)operator(()regexpoperator(,) ident(public_method_name)operator(\)) reserved(unless) ident(public_method_name) operator(==) string reserved(end) ident(return_value) reserved(end) reserved(end) pre_constant(ENV)operator([)stringoperator(]) operator(=) string global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string ident(require) string ident(require) string constant(ActionController)operator(::)constant(Base)operator(.)ident(logger) operator(=) pre_constant(nil) constant(ActionController)operator(::)constant(Base)operator(.)ident(ignore_missing_templates) operator(=) pre_constant(true) reserved(begin) constant(PATH_TO_AR) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) stringcontent(/lib/active_record)delimiter(")> reserved(unless) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:ActiveRecord)operator(\)) ident(require) stringcontent(/lib/active_record/fixtures)delimiter(")> reserved(unless) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:Fixtures)operator(\)) reserved(rescue) constant(Object) operator(=)operator(>) ident(e) ident(fail) stringdelimiter(")> reserved(end) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:encoding) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) string operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase)operator(.)ident(fixture_path) operator(=) stringcontent(/fixtures/)delimiter(")> comment(# restore default raw_post functionality) reserved(class) class(ActionController::TestRequest) reserved(def) method(raw_post) reserved(super) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(APITest) reserved(class) class(API) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:void) ident(api_method) symbol(:expects_and_returns)operator(,) symbol(:expects_and_returns) operator(=)operator(>) operator([)symbol(:string)operator(]) ident(api_method) symbol(:expects)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:int)operator(,) symbol(:bool)operator(]) ident(api_method) symbol(:returns)operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(,) operator([)symbol(:string)operator(])operator(]) ident(api_method) symbol(:named_signature)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:appkey)operator(=)operator(>)symbol(:int)operator(})operator(,) operator({)symbol(:publish)operator(=)operator(>)symbol(:bool)operator(})operator(]) ident(api_method) symbol(:string_types)operator(,) symbol(:expects) operator(=)operator(>) operator([)stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(]) ident(api_method) symbol(:class_types)operator(,) symbol(:expects) operator(=)operator(>) operator([)constant(TrueClass)operator(,) constant(Bignum)operator(,) constant(String)operator(]) reserved(end) reserved(end) reserved(class) class(TC_API) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) constant(API) operator(=) constant(APITest)operator(::)constant(API) reserved(def) method(test_api_method_declaration) stringoperator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(name) operator(=) ident(name)operator(.)ident(to_sym) ident(public_name) operator(=) constant(API)operator(.)ident(public_api_method_name)operator(()ident(name)operator(\)) ident(assert)operator(()constant(API)operator(.)ident(has_api_method?)operator(()ident(name)operator(\))operator(\)) ident(assert)operator(()constant(API)operator(.)ident(has_public_api_method?)operator(()ident(public_name)operator(\))operator(\)) ident(assert)operator(()constant(API)operator(.)ident(api_method_name)operator(()ident(public_name)operator(\)) operator(==) ident(name)operator(\)) ident(assert)operator(()constant(API)operator(.)ident(api_methods)operator(.)ident(has_key?)operator(()ident(name)operator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(test_signature_canonicalization) ident(assert_equal)operator(()pre_constant(nil)operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:void)operator(])operator(.)ident(expects)operator(\)) ident(assert_equal)operator(()pre_constant(nil)operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:void)operator(])operator(.)ident(returns)operator(\)) ident(assert_equal)operator(()operator([)constant(String)operator(])operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:expects_and_returns)operator(])operator(.)ident(expects)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(x)operator(.)ident(type_class)operator(})operator(\)) ident(assert_equal)operator(()operator([)constant(String)operator(])operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:expects_and_returns)operator(])operator(.)ident(returns)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(x)operator(.)ident(type_class)operator(})operator(\)) ident(assert_equal)operator(()operator([)constant(Integer)operator(,) constant(TrueClass)operator(])operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:expects)operator(])operator(.)ident(expects)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(x)operator(.)ident(type_class)operator(})operator(\)) ident(assert_equal)operator(()pre_constant(nil)operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:expects)operator(])operator(.)ident(returns)operator(\)) ident(assert_equal)operator(()pre_constant(nil)operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:returns)operator(])operator(.)ident(expects)operator(\)) ident(assert_equal)operator(()operator([)constant(Integer)operator(,) operator([)constant(String)operator(])operator(])operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:returns)operator(])operator(.)ident(returns)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(x)operator(.)ident(array?)operator(?) operator([)ident(x)operator(.)ident(element_type)operator(.)ident(type_class)operator(]) operator(:) ident(x)operator(.)ident(type_class)operator(})operator(\)) ident(assert_equal)operator(()operator([)operator([)symbol(:appkey)operator(,) constant(Integer)operator(])operator(,) operator([)symbol(:publish)operator(,) constant(TrueClass)operator(])operator(])operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:named_signature)operator(])operator(.)ident(expects)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) operator([)ident(x)operator(.)ident(name)operator(,) ident(x)operator(.)ident(type_class)operator(])operator(})operator(\)) ident(assert_equal)operator(()pre_constant(nil)operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:named_signature)operator(])operator(.)ident(returns)operator(\)) ident(assert_equal)operator(()operator([)constant(Integer)operator(,) constant(String)operator(,) constant(TrueClass)operator(,) constant(ActionWebService)operator(::)constant(Base64)operator(])operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:string_types)operator(])operator(.)ident(expects)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(x)operator(.)ident(type_class)operator(})operator(\)) ident(assert_equal)operator(()pre_constant(nil)operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:string_types)operator(])operator(.)ident(returns)operator(\)) ident(assert_equal)operator(()operator([)constant(TrueClass)operator(,) constant(Integer)operator(,) constant(String)operator(])operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:class_types)operator(])operator(.)ident(expects)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(x)operator(.)ident(type_class)operator(})operator(\)) ident(assert_equal)operator(()pre_constant(nil)operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:class_types)operator(])operator(.)ident(returns)operator(\)) reserved(end) reserved(def) method(test_not_instantiable) ident(assert_raises)operator(()constant(NoMethodError)operator(\)) reserved(do) constant(API)operator(.)ident(new) reserved(end) reserved(end) reserved(def) method(test_api_errors) ident(assert_raises)operator(()constant(ActionWebService)operator(::)constant(ActionWebServiceError)operator(\)) reserved(do) ident(klass) operator(=) constant(Class)operator(.)ident(new)operator(()constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base)operator(\)) reserved(do) ident(api_method) symbol(:test)operator(,) symbol(:expects) operator(=)operator(>) operator([)constant(ActiveRecord)operator(::)constant(Base)operator(]) reserved(end) reserved(end) ident(klass) operator(=) constant(Class)operator(.)ident(new)operator(()constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base)operator(\)) reserved(do) ident(allow_active_record_expects) pre_constant(true) ident(api_method) symbol(:test2)operator(,) symbol(:expects) operator(=)operator(>) operator([)constant(ActiveRecord)operator(::)constant(Base)operator(]) reserved(end) ident(assert_raises)operator(()constant(ActionWebService)operator(::)constant(ActionWebServiceError)operator(\)) reserved(do) ident(klass) operator(=) constant(Class)operator(.)ident(new)operator(()constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base)operator(\)) reserved(do) ident(api_method) symbol(:test)operator(,) symbol(:invalid) operator(=)operator(>) operator([)symbol(:int)operator(]) reserved(end) reserved(end) reserved(end) reserved(def) method(test_parameter_names) ident(method) operator(=) constant(API)operator(.)ident(api_methods)operator([)symbol(:named_signature)operator(]) ident(assert_equal) integer(0)operator(,) ident(method)operator(.)ident(expects_index_of)operator(()symbol(:appkey)operator(\)) ident(assert_equal) integer(1)operator(,) ident(method)operator(.)ident(expects_index_of)operator(()symbol(:publish)operator(\)) ident(assert_equal) integer(1)operator(,) ident(method)operator(.)ident(expects_index_of)operator(()stringoperator(\)) ident(assert_equal) integer(0)operator(,) ident(method)operator(.)ident(expects_index_of)operator(()stringoperator(\)) ident(assert_equal) integer(-1)operator(,) ident(method)operator(.)ident(expects_index_of)operator(()stringoperator(\)) ident(assert_equal) integer(-1)operator(,) ident(method)operator(.)ident(expects_index_of)operator(()symbol(:missing)operator(\)) ident(assert_equal) integer(-1)operator(,) constant(API)operator(.)ident(api_methods)operator([)symbol(:void)operator(])operator(.)ident(expects_index_of)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_parameter_hash) ident(method) operator(=) constant(API)operator(.)ident(api_methods)operator([)symbol(:named_signature)operator(]) ident(hash) operator(=) ident(method)operator(.)ident(expects_to_hash)operator(()operator([)integer(5)operator(,) pre_constant(false)operator(])operator(\)) ident(assert_equal)operator(()operator({)symbol(:appkey) operator(=)operator(>) integer(5)operator(,) symbol(:publish) operator(=)operator(>) pre_constant(false)operator(})operator(,) ident(hash)operator(\)) reserved(end) reserved(def) method(test_api_methods_compat) ident(sig) operator(=) constant(API)operator(.)ident(api_methods)operator([)symbol(:named_signature)operator(])operator([)symbol(:expects)operator(]) ident(assert_equal) operator([)operator({)symbol(:appkey)operator(=)operator(>)constant(Integer)operator(})operator(,) operator({)symbol(:publish)operator(=)operator(>)constant(TrueClass)operator(})operator(])operator(,) ident(sig) reserved(end) reserved(def) method(test_to_s) ident(assert_equal) stringoperator(,) constant(APITest)operator(::)constant(API)operator(.)ident(api_methods)operator([)symbol(:expects)operator(])operator(.)ident(to_s) reserved(end) reserved(end) reserved(class) class(AutoLoadAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:void) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(BaseTest) reserved(class) class(API) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:add)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:int)operator(,) symbol(:int)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:void) reserved(end) reserved(class) class(PristineAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(inflect_names) pre_constant(false) ident(api_method) symbol(:add) ident(api_method) symbol(:under_score) reserved(end) reserved(class) class(Service) operator(<) constant(ActionWebService)operator(::)constant(Base) ident(web_service_api) constant(API) reserved(def) method(add)operator(()ident(a)operator(,) ident(b)operator(\)) reserved(end) reserved(def) method(void) reserved(end) reserved(end) reserved(class) class(PristineService) operator(<) constant(ActionWebService)operator(::)constant(Base) ident(web_service_api) constant(PristineAPI) reserved(def) method(add) reserved(end) reserved(def) method(under_score) reserved(end) reserved(end) reserved(end) reserved(class) class(TC_Base) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_options) ident(assert)operator(()constant(BaseTest)operator(::)constant(PristineService)operator(.)ident(web_service_api)operator(.)ident(inflect_names) operator(==) pre_constant(false)operator(\)) ident(assert)operator(()constant(BaseTest)operator(::)constant(Service)operator(.)ident(web_service_api)operator(.)ident(inflect_names) operator(==) pre_constant(true)operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(CastingTest) reserved(class) class(API) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:int)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:str)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:string)operator(]) ident(api_method) symbol(:base64)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:base64)operator(]) ident(api_method) symbol(:bool)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:bool)operator(]) ident(api_method) symbol(:float)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:float)operator(]) ident(api_method) symbol(:time)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:time)operator(]) ident(api_method) symbol(:datetime)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:datetime)operator(]) ident(api_method) symbol(:date)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:date)operator(]) ident(api_method) symbol(:int_array)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator([)symbol(:int)operator(])operator(]) ident(api_method) symbol(:str_array)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator([)symbol(:string)operator(])operator(]) ident(api_method) symbol(:bool_array)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator([)symbol(:bool)operator(])operator(]) reserved(end) reserved(end) reserved(class) class(TC_Casting) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(CastingTest) reserved(def) method(test_base_type_casting_valid) ident(assert_equal) integer(10000)operator(,) ident(cast_expects)operator(()symbol(:int)operator(,) stringoperator(\))operator([)integer(0)operator(]) ident(assert_equal) stringoperator(,) ident(cast_expects)operator(()symbol(:str)operator(,) integer(10000)operator(\))operator([)integer(0)operator(]) ident(base64) operator(=) ident(cast_expects)operator(()symbol(:base64)operator(,) integer(10000)operator(\))operator([)integer(0)operator(]) ident(assert_equal) stringoperator(,) ident(base64) ident(assert_instance_of) constant(ActionWebService)operator(::)constant(Base64)operator(,) ident(base64) operator([)integer(1)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(])operator(.)ident(each) reserved(do) operator(|)ident(val)operator(|) ident(assert_equal) pre_constant(true)operator(,) ident(cast_expects)operator(()symbol(:bool)operator(,) ident(val)operator(\))operator([)integer(0)operator(]) reserved(end) operator([)integer(0)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(])operator(.)ident(each) reserved(do) operator(|)ident(val)operator(|) ident(assert_equal) pre_constant(false)operator(,) ident(cast_expects)operator(()symbol(:bool)operator(,) ident(val)operator(\))operator([)integer(0)operator(]) reserved(end) ident(assert_equal) float(3.14159)operator(,) ident(cast_expects)operator(()symbol(:float)operator(,) stringoperator(\))operator([)integer(0)operator(]) ident(now) operator(=) constant(Time)operator(.)ident(at)operator(()constant(Time)operator(.)ident(now)operator(.)ident(tv_sec)operator(\)) ident(casted) operator(=) ident(cast_expects)operator(()symbol(:time)operator(,) ident(now)operator(.)ident(to_s)operator(\))operator([)integer(0)operator(]) ident(assert_equal) ident(now)operator(,) ident(casted) ident(now) operator(=) constant(DateTime)operator(.)ident(now) ident(assert_equal) ident(now)operator(.)ident(to_s)operator(,) ident(cast_expects)operator(()symbol(:datetime)operator(,) ident(now)operator(.)ident(to_s)operator(\))operator([)integer(0)operator(])operator(.)ident(to_s) ident(today) operator(=) constant(Date)operator(.)ident(today) ident(assert_equal) ident(today)operator(,) ident(cast_expects)operator(()symbol(:date)operator(,) ident(today)operator(.)ident(to_s)operator(\))operator([)integer(0)operator(]) reserved(end) reserved(def) method(test_base_type_casting_invalid) ident(assert_raises) constant(ArgumentError) reserved(do) ident(cast_expects)operator(()symbol(:int)operator(,) stringoperator(\)) reserved(end) ident(assert_raises) constant(ActionWebService)operator(::)constant(Casting)operator(::)constant(CastingError) reserved(do) comment(# neither true or false ;\)) ident(cast_expects)operator(()symbol(:bool)operator(,) stringoperator(\)) reserved(end) ident(assert_raises) constant(ArgumentError) reserved(do) ident(cast_expects)operator(()symbol(:float)operator(,) stringoperator(\)) reserved(end) ident(assert_raises) constant(ArgumentError) reserved(do) ident(cast_expects)operator(()symbol(:time)operator(,) stringoperator(\)) reserved(end) ident(assert_raises) constant(ArgumentError) reserved(do) ident(cast_expects)operator(()symbol(:datetime)operator(,) stringoperator(\)) reserved(end) ident(assert_raises) constant(ArgumentError) reserved(do) ident(cast_expects)operator(()symbol(:date)operator(,) stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_array_type_casting) ident(assert_equal) operator([)integer(1)operator(,) integer(2)operator(,) integer(3213992)operator(,) integer(4)operator(])operator(,) ident(cast_expects)operator(()symbol(:int_array)operator(,) operator([)stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(])operator(\))operator([)integer(0)operator(]) ident(assert_equal) operator([)stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) pre_constant(nil)operator(,) stringoperator(])operator(,) ident(cast_expects)operator(()symbol(:str_array)operator(,) operator([)symbol(:one)operator(,) stringoperator(,) float(5.0)operator(,) integer(200)operator(,) pre_constant(nil)operator(,) pre_constant(true)operator(])operator(\))operator([)integer(0)operator(]) ident(assert_equal) operator([)pre_constant(true)operator(,) pre_constant(nil)operator(,) pre_constant(true)operator(,) pre_constant(true)operator(,) pre_constant(false)operator(])operator(,) ident(cast_expects)operator(()symbol(:bool_array)operator(,) operator([)stringoperator(,) pre_constant(nil)operator(,) stringoperator(,) pre_constant(true)operator(,) stringoperator(])operator(\))operator([)integer(0)operator(]) reserved(end) reserved(def) method(test_array_type_casting_failure) ident(assert_raises) constant(ActionWebService)operator(::)constant(Casting)operator(::)constant(CastingError) reserved(do) ident(cast_expects)operator(()symbol(:bool_array)operator(,) operator([)stringoperator(,) stringoperator(])operator(\)) reserved(end) ident(assert_raises) constant(ArgumentError) reserved(do) ident(cast_expects)operator(()symbol(:int_array)operator(,) operator([)stringoperator(,) stringoperator(,) stringoperator(])operator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(cast_expects)operator(()ident(method_name)operator(,) operator(*)ident(args)operator(\)) constant(API)operator(.)ident(api_method_instance)operator(()ident(method_name)operator(.)ident(to_sym)operator(\))operator(.)ident(cast_expects)operator(()operator([)operator(*)ident(args)operator(])operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ClientSoapTest) constant(PORT) operator(=) integer(8998) reserved(class) class(SoapClientLet) operator(<) constant(ClientTest)operator(::)constant(AbstractClientLet) reserved(def) method(do_POST)operator(()ident(req)operator(,) ident(res)operator(\)) ident(test_request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) ident(test_request)operator(.)ident(request_parameters)operator([)stringoperator(]) operator(=) ident(req)operator(.)ident(path)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(split)operator(()regexpoperator(\))operator([)integer(1)operator(]) ident(test_request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(test_request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(test_request)operator(.)ident(env)operator([)stringoperator(]) operator(=) ident(req)operator(.)ident(header)operator([)stringoperator(])operator([)integer(0)operator(]) ident(test_request)operator(.)ident(env)operator([)stringoperator(]) operator(=) ident(req)operator(.)ident(body) ident(response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@controller)operator(.)ident(process)operator(()ident(test_request)operator(,) ident(response)operator(\)) ident(res)operator(.)ident(header)operator([)stringoperator(]) operator(=) string ident(res)operator(.)ident(body) operator(=) ident(response)operator(.)ident(body) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) global_variable($stderr)operator(.)ident(puts) ident(e)operator(.)ident(message) global_variable($stderr)operator(.)ident(puts) ident(e)operator(.)ident(backtrace)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(class) class(ClientContainer) operator(<) constant(ActionController)operator(::)constant(Base) ident(web_client_api) symbol(:client)operator(,) symbol(:soap)operator(,) stringcontent(/client/api)delimiter(")>operator(,) symbol(:api) operator(=)operator(>) constant(ClientTest)operator(::)constant(API) ident(web_client_api) symbol(:invalid)operator(,) symbol(:null)operator(,) stringoperator(,) symbol(:api) operator(=)operator(>) pre_constant(true) reserved(def) method(get_client) ident(client) reserved(end) reserved(def) method(get_invalid) ident(invalid) reserved(end) reserved(end) reserved(class) class(SoapServer) operator(<) constant(ClientTest)operator(::)constant(AbstractServer) reserved(def) method(create_clientlet)operator(()ident(controller)operator(\)) constant(SoapClientLet)operator(.)ident(new)operator(()ident(controller)operator(\)) reserved(end) reserved(def) method(server_port) constant(PORT) reserved(end) reserved(end) reserved(end) reserved(class) class(TC_ClientSoap) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ClientTest) ident(include) constant(ClientSoapTest) ident(fixtures) symbol(:users) reserved(def) method(setup) instance_variable(@server) operator(=) constant(SoapServer)operator(.)ident(instance) instance_variable(@container) operator(=) instance_variable(@server)operator(.)ident(container) instance_variable(@client) operator(=) constant(ActionWebService)operator(::)constant(Client)operator(::)constant(Soap)operator(.)ident(new)operator(()constant(API)operator(,) stringcontent(/client/api)delimiter(")>operator(\)) reserved(end) reserved(def) method(test_void) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_void)operator(.)ident(nil?)operator(\)) instance_variable(@client)operator(.)ident(void) ident(assert)operator(()operator(!)instance_variable(@container)operator(.)ident(value_void)operator(.)ident(nil?)operator(\)) reserved(end) reserved(def) method(test_normal) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_normal)operator(.)ident(nil?)operator(\)) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@client)operator(.)ident(normal)operator(()integer(5)operator(,) integer(6)operator(\))operator(\)) ident(assert_equal)operator(()operator([)integer(5)operator(,) integer(6)operator(])operator(,) instance_variable(@container)operator(.)ident(value_normal)operator(\)) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@client)operator(.)ident(normal)operator(()stringoperator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()operator([)integer(7)operator(,) integer(8)operator(])operator(,) instance_variable(@container)operator(.)ident(value_normal)operator(\)) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@client)operator(.)ident(normal)operator(()pre_constant(true)operator(,) pre_constant(false)operator(\))operator(\)) reserved(end) reserved(def) method(test_array_return) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_array_return)operator(.)ident(nil?)operator(\)) ident(new_person) operator(=) constant(Person)operator(.)ident(new) ident(new_person)operator(.)ident(firstnames) operator(=) operator([)stringoperator(,) stringoperator(]) ident(new_person)operator(.)ident(lastname) operator(=) string ident(assert_equal)operator(()operator([)ident(new_person)operator(])operator(,) instance_variable(@client)operator(.)ident(array_return)operator(\)) ident(assert_equal)operator(()operator([)ident(new_person)operator(])operator(,) instance_variable(@container)operator(.)ident(value_array_return)operator(\)) reserved(end) reserved(def) method(test_struct_pass) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_struct_pass)operator(.)ident(nil?)operator(\)) ident(new_person) operator(=) constant(Person)operator(.)ident(new) ident(new_person)operator(.)ident(firstnames) operator(=) operator([)stringoperator(,) stringoperator(]) ident(new_person)operator(.)ident(lastname) operator(=) string ident(assert_equal)operator(()pre_constant(true)operator(,) instance_variable(@client)operator(.)ident(struct_pass)operator(()operator([)ident(new_person)operator(])operator(\))operator(\)) ident(assert_equal)operator(()operator([)operator([)ident(new_person)operator(])operator(])operator(,) instance_variable(@container)operator(.)ident(value_struct_pass)operator(\)) reserved(end) reserved(def) method(test_nil_struct_return) ident(assert_nil) instance_variable(@client)operator(.)ident(nil_struct_return) reserved(end) reserved(def) method(test_inner_nil) ident(outer) operator(=) instance_variable(@client)operator(.)ident(inner_nil) ident(assert_equal) stringoperator(,) ident(outer)operator(.)ident(name) ident(assert_nil) ident(outer)operator(.)ident(inner) reserved(end) reserved(def) method(test_client_container) ident(assert_equal)operator(()integer(50)operator(,) constant(ClientContainer)operator(.)ident(new)operator(.)ident(get_client)operator(.)ident(client_container)operator(\)) ident(assert)operator(()constant(ClientContainer)operator(.)ident(new)operator(.)ident(get_invalid)operator(.)ident(nil?)operator(\)) reserved(end) reserved(def) method(test_named_parameters) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_named_parameters)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@client)operator(.)ident(named_parameters)operator(()stringoperator(,) integer(5)operator(\))operator(.)ident(nil?)operator(\)) ident(assert_equal)operator(()operator([)stringoperator(,) integer(5)operator(])operator(,) instance_variable(@container)operator(.)ident(value_named_parameters)operator(\)) reserved(end) reserved(def) method(test_capitalized_method_name) instance_variable(@container)operator(.)ident(value_normal) operator(=) pre_constant(nil) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@client)operator(.)ident(Normal)operator(()integer(5)operator(,) integer(6)operator(\))operator(\)) ident(assert_equal)operator(()operator([)integer(5)operator(,) integer(6)operator(])operator(,) instance_variable(@container)operator(.)ident(value_normal)operator(\)) instance_variable(@container)operator(.)ident(value_normal) operator(=) pre_constant(nil) reserved(end) reserved(def) method(test_model_return) ident(user) operator(=) instance_variable(@client)operator(.)ident(user_return) ident(assert_equal) integer(1)operator(,) ident(user)operator(.)ident(id) ident(assert_equal) stringoperator(,) ident(user)operator(.)ident(name) ident(assert) ident(user)operator(.)ident(active?) ident(assert_kind_of) constant(Date)operator(,) ident(user)operator(.)ident(created_on) ident(assert_equal) constant(Date)operator(.)ident(today)operator(,) ident(user)operator(.)ident(created_on) reserved(end) reserved(def) method(test_with_model) ident(with_model) operator(=) instance_variable(@client)operator(.)ident(with_model_return) ident(assert_equal) stringoperator(,) ident(with_model)operator(.)ident(user)operator(.)ident(name) ident(assert_equal) integer(2)operator(,) ident(with_model)operator(.)ident(users)operator(.)ident(size) ident(with_model)operator(.)ident(users)operator(.)ident(each) reserved(do) operator(|)ident(user)operator(|) ident(assert_kind_of) constant(User)operator(,) ident(user) reserved(end) reserved(end) reserved(def) method(test_scoped_model_return) ident(scoped_model) operator(=) instance_variable(@client)operator(.)ident(scoped_model_return) ident(assert_kind_of) constant(Accounting)operator(::)constant(User)operator(,) ident(scoped_model) ident(assert_equal) stringoperator(,) ident(scoped_model)operator(.)ident(name) reserved(end) reserved(def) method(test_multi_dim_return) ident(md_struct) operator(=) instance_variable(@client)operator(.)ident(multi_dim_return) ident(assert_kind_of) constant(Array)operator(,) ident(md_struct)operator(.)ident(pref) ident(assert_equal) integer(2)operator(,) ident(md_struct)operator(.)ident(pref)operator(.)ident(size) ident(assert_kind_of) constant(Array)operator(,) ident(md_struct)operator(.)ident(pref)operator([)integer(0)operator(]) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ClientXmlRpcTest) constant(PORT) operator(=) integer(8999) reserved(class) class(XmlRpcClientLet) operator(<) constant(ClientTest)operator(::)constant(AbstractClientLet) reserved(def) method(do_POST)operator(()ident(req)operator(,) ident(res)operator(\)) ident(test_request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) ident(test_request)operator(.)ident(request_parameters)operator([)stringoperator(]) operator(=) ident(req)operator(.)ident(path)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(split)operator(()regexpoperator(\))operator([)integer(1)operator(]) ident(test_request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(test_request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(test_request)operator(.)ident(env)operator([)stringoperator(]) operator(=) ident(req)operator(.)ident(body) ident(response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) instance_variable(@controller)operator(.)ident(process)operator(()ident(test_request)operator(,) ident(response)operator(\)) ident(res)operator(.)ident(header)operator([)stringoperator(]) operator(=) string ident(res)operator(.)ident(body) operator(=) ident(response)operator(.)ident(body) comment(# puts res.body) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) global_variable($stderr)operator(.)ident(puts) ident(e)operator(.)ident(message) global_variable($stderr)operator(.)ident(puts) ident(e)operator(.)ident(backtrace)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(class) class(ClientContainer) operator(<) constant(ActionController)operator(::)constant(Base) ident(web_client_api) symbol(:client)operator(,) symbol(:xmlrpc)operator(,) stringcontent(/client/api)delimiter(")>operator(,) symbol(:api) operator(=)operator(>) constant(ClientTest)operator(::)constant(API) reserved(def) method(get_client) ident(client) reserved(end) reserved(end) reserved(class) class(XmlRpcServer) operator(<) constant(ClientTest)operator(::)constant(AbstractServer) reserved(def) method(create_clientlet)operator(()ident(controller)operator(\)) constant(XmlRpcClientLet)operator(.)ident(new)operator(()ident(controller)operator(\)) reserved(end) reserved(def) method(server_port) constant(PORT) reserved(end) reserved(end) reserved(end) reserved(class) class(TC_ClientXmlRpc) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ClientTest) ident(include) constant(ClientXmlRpcTest) ident(fixtures) symbol(:users) reserved(def) method(setup) instance_variable(@server) operator(=) constant(XmlRpcServer)operator(.)ident(instance) instance_variable(@container) operator(=) instance_variable(@server)operator(.)ident(container) instance_variable(@client) operator(=) constant(ActionWebService)operator(::)constant(Client)operator(::)constant(XmlRpc)operator(.)ident(new)operator(()constant(API)operator(,) stringcontent(/client/api)delimiter(")>operator(\)) reserved(end) reserved(def) method(test_void) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_void)operator(.)ident(nil?)operator(\)) instance_variable(@client)operator(.)ident(void) ident(assert)operator(()operator(!)instance_variable(@container)operator(.)ident(value_void)operator(.)ident(nil?)operator(\)) reserved(end) reserved(def) method(test_normal) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_normal)operator(.)ident(nil?)operator(\)) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@client)operator(.)ident(normal)operator(()integer(5)operator(,) integer(6)operator(\))operator(\)) ident(assert_equal)operator(()operator([)integer(5)operator(,) integer(6)operator(])operator(,) instance_variable(@container)operator(.)ident(value_normal)operator(\)) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@client)operator(.)ident(normal)operator(()stringoperator(,) stringoperator(\))operator(\)) ident(assert_equal)operator(()operator([)integer(7)operator(,) integer(8)operator(])operator(,) instance_variable(@container)operator(.)ident(value_normal)operator(\)) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@client)operator(.)ident(normal)operator(()pre_constant(true)operator(,) pre_constant(false)operator(\))operator(\)) reserved(end) reserved(def) method(test_array_return) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_array_return)operator(.)ident(nil?)operator(\)) ident(new_person) operator(=) constant(Person)operator(.)ident(new) ident(new_person)operator(.)ident(firstnames) operator(=) operator([)stringoperator(,) stringoperator(]) ident(new_person)operator(.)ident(lastname) operator(=) string ident(assert_equal)operator(()operator([)ident(new_person)operator(])operator(,) instance_variable(@client)operator(.)ident(array_return)operator(\)) ident(assert_equal)operator(()operator([)ident(new_person)operator(])operator(,) instance_variable(@container)operator(.)ident(value_array_return)operator(\)) reserved(end) reserved(def) method(test_struct_pass) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_struct_pass)operator(.)ident(nil?)operator(\)) ident(new_person) operator(=) constant(Person)operator(.)ident(new) ident(new_person)operator(.)ident(firstnames) operator(=) operator([)stringoperator(,) stringoperator(]) ident(new_person)operator(.)ident(lastname) operator(=) string ident(assert_equal)operator(()pre_constant(true)operator(,) instance_variable(@client)operator(.)ident(struct_pass)operator(()operator([)ident(new_person)operator(])operator(\))operator(\)) ident(assert_equal)operator(()operator([)operator([)ident(new_person)operator(])operator(])operator(,) instance_variable(@container)operator(.)ident(value_struct_pass)operator(\)) reserved(end) reserved(def) method(test_nil_struct_return) ident(assert_equal) pre_constant(false)operator(,) instance_variable(@client)operator(.)ident(nil_struct_return) reserved(end) reserved(def) method(test_inner_nil) ident(outer) operator(=) instance_variable(@client)operator(.)ident(inner_nil) ident(assert_equal) stringoperator(,) ident(outer)operator(.)ident(name) ident(assert_nil) ident(outer)operator(.)ident(inner) reserved(end) reserved(def) method(test_client_container) ident(assert_equal)operator(()integer(50)operator(,) constant(ClientContainer)operator(.)ident(new)operator(.)ident(get_client)operator(.)ident(client_container)operator(\)) reserved(end) reserved(def) method(test_named_parameters) ident(assert)operator(()instance_variable(@container)operator(.)ident(value_named_parameters)operator(.)ident(nil?)operator(\)) ident(assert_equal)operator(()pre_constant(false)operator(,) instance_variable(@client)operator(.)ident(named_parameters)operator(()stringoperator(,) integer(7)operator(\))operator(\)) ident(assert_equal)operator(()operator([)stringoperator(,) integer(7)operator(])operator(,) instance_variable(@container)operator(.)ident(value_named_parameters)operator(\)) reserved(end) reserved(def) method(test_exception) ident(assert_raises)operator(()constant(ActionWebService)operator(::)constant(Client)operator(::)constant(ClientError)operator(\)) reserved(do) ident(assert)operator(()instance_variable(@client)operator(.)ident(thrower)operator(\)) reserved(end) reserved(end) reserved(def) method(test_invalid_signature) ident(assert_raises)operator(()constant(ArgumentError)operator(\)) reserved(do) instance_variable(@client)operator(.)ident(normal) reserved(end) reserved(end) reserved(def) method(test_model_return) ident(user) operator(=) instance_variable(@client)operator(.)ident(user_return) ident(assert_equal) integer(1)operator(,) ident(user)operator(.)ident(id) ident(assert_equal) stringoperator(,) ident(user)operator(.)ident(name) ident(assert) ident(user)operator(.)ident(active?) ident(assert_kind_of) constant(Time)operator(,) ident(user)operator(.)ident(created_on) ident(assert_equal) constant(Time)operator(.)ident(utc)operator(()constant(Time)operator(.)ident(now)operator(.)ident(year)operator(,) constant(Time)operator(.)ident(now)operator(.)ident(month)operator(,) constant(Time)operator(.)ident(now)operator(.)ident(day)operator(\))operator(,) ident(user)operator(.)ident(created_on) reserved(end) reserved(def) method(test_with_model) ident(with_model) operator(=) instance_variable(@client)operator(.)ident(with_model_return) ident(assert_equal) stringoperator(,) ident(with_model)operator(.)ident(user)operator(.)ident(name) ident(assert_equal) integer(2)operator(,) ident(with_model)operator(.)ident(users)operator(.)ident(size) ident(with_model)operator(.)ident(users)operator(.)ident(each) reserved(do) operator(|)ident(user)operator(|) ident(assert_kind_of) constant(User)operator(,) ident(user) reserved(end) reserved(end) reserved(def) method(test_scoped_model_return) ident(scoped_model) operator(=) instance_variable(@client)operator(.)ident(scoped_model_return) ident(assert_kind_of) constant(Accounting)operator(::)constant(User)operator(,) ident(scoped_model) ident(assert_equal) stringoperator(,) ident(scoped_model)operator(.)ident(name) reserved(end) reserved(def) method(test_multi_dim_return) ident(md_struct) operator(=) instance_variable(@client)operator(.)ident(multi_dim_return) ident(assert_kind_of) constant(Array)operator(,) ident(md_struct)operator(.)ident(pref) ident(assert_equal) integer(2)operator(,) ident(md_struct)operator(.)ident(pref)operator(.)ident(size) ident(assert_kind_of) constant(Array)operator(,) ident(md_struct)operator(.)ident(pref)operator([)integer(0)operator(]) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ContainerTest) global_variable($immediate_service) operator(=) constant(Object)operator(.)ident(new) global_variable($deferred_service) operator(=) constant(Object)operator(.)ident(new) reserved(class) class(DelegateContainer) operator(<) constant(ActionController)operator(::)constant(Base) ident(web_service_dispatching_mode) symbol(:delegated) ident(attr) symbol(:flag) ident(attr) symbol(:previous_flag) reserved(def) method(initialize) instance_variable(@previous_flag) operator(=) pre_constant(nil) instance_variable(@flag) operator(=) pre_constant(true) reserved(end) ident(web_service) symbol(:immediate_service)operator(,) global_variable($immediate_service) ident(web_service)operator(()symbol(:deferred_service)operator(\)) operator({) instance_variable(@previous_flag) operator(=) instance_variable(@flag)operator(;) instance_variable(@flag) operator(=) pre_constant(false)operator(;) global_variable($deferred_service) operator(}) reserved(end) reserved(class) class(DirectContainer) operator(<) constant(ActionController)operator(::)constant(Base) ident(web_service_dispatching_mode) symbol(:direct) reserved(end) reserved(class) class(InvalidContainer) ident(include) constant(ActionWebService)operator(::)constant(Container)operator(::)constant(Direct) reserved(end) reserved(end) reserved(class) class(TC_Container) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ContainerTest) reserved(def) method(setup) instance_variable(@delegate_container) operator(=) constant(DelegateContainer)operator(.)ident(new) instance_variable(@direct_container) operator(=) constant(DirectContainer)operator(.)ident(new) reserved(end) reserved(def) method(test_registration) ident(assert)operator(()constant(DelegateContainer)operator(.)ident(has_web_service?)operator(()symbol(:immediate_service)operator(\))operator(\)) ident(assert)operator(()constant(DelegateContainer)operator(.)ident(has_web_service?)operator(()symbol(:deferred_service)operator(\))operator(\)) ident(assert)operator(()operator(!)constant(DelegateContainer)operator(.)ident(has_web_service?)operator(()symbol(:fake_service)operator(\))operator(\)) ident(assert_raises)operator(()constant(ActionWebService)operator(::)constant(Container)operator(::)constant(Delegated)operator(::)constant(ContainerError)operator(\)) reserved(do) constant(DelegateContainer)operator(.)ident(web_service)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_service_object) ident(assert_raises)operator(()constant(ActionWebService)operator(::)constant(Container)operator(::)constant(Delegated)operator(::)constant(ContainerError)operator(\)) reserved(do) instance_variable(@delegate_container)operator(.)ident(web_service_object)operator(()symbol(:nonexistent)operator(\)) reserved(end) ident(assert)operator(()instance_variable(@delegate_container)operator(.)ident(flag) operator(==) pre_constant(true)operator(\)) ident(assert)operator(()instance_variable(@delegate_container)operator(.)ident(web_service_object)operator(()symbol(:immediate_service)operator(\)) operator(==) global_variable($immediate_service)operator(\)) ident(assert)operator(()instance_variable(@delegate_container)operator(.)ident(previous_flag)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@delegate_container)operator(.)ident(flag) operator(==) pre_constant(true)operator(\)) ident(assert)operator(()instance_variable(@delegate_container)operator(.)ident(web_service_object)operator(()symbol(:deferred_service)operator(\)) operator(==) global_variable($deferred_service)operator(\)) ident(assert)operator(()instance_variable(@delegate_container)operator(.)ident(previous_flag) operator(==) pre_constant(true)operator(\)) ident(assert)operator(()instance_variable(@delegate_container)operator(.)ident(flag) operator(==) pre_constant(false)operator(\)) reserved(end) reserved(def) method(test_direct_container) ident(assert)operator(()constant(DirectContainer)operator(.)ident(web_service_dispatching_mode) operator(==) symbol(:direct)operator(\)) reserved(end) reserved(def) method(test_validity) ident(assert_raises)operator(()constant(ActionWebService)operator(::)constant(Container)operator(::)constant(Direct)operator(::)constant(ContainerError)operator(\)) reserved(do) constant(InvalidContainer)operator(.)ident(web_service_api) symbol(:test) reserved(end) ident(assert_raises)operator(()constant(ActionWebService)operator(::)constant(Container)operator(::)constant(Direct)operator(::)constant(ContainerError)operator(\)) reserved(do) constant(InvalidContainer)operator(.)ident(web_service_api) float(50.0) reserved(end) reserved(end) reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string reserved(class) class(ActionController::Base) reserved(class) operator(<<) class(self) reserved(alias) symbol(:inherited_without_name_error) symbol(:inherited) reserved(def) method(inherited)operator(()ident(child)operator(\)) reserved(begin) ident(inherited_without_name_error)operator(()ident(child)operator(\)) reserved(rescue) constant(NameError) operator(=)operator(>) ident(e) reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(AutoLoadController) operator(<) constant(ActionController)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(FailingAutoLoadController) operator(<) constant(ActionController)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(BrokenAutoLoadController) operator(<) constant(ActionController)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(TC_DispatcherActionControllerSoap) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(DispatcherTest) ident(include) constant(DispatcherCommonTests) reserved(def) method(setup) instance_variable(@direct_controller) operator(=) constant(DirectController)operator(.)ident(new) instance_variable(@delegated_controller) operator(=) constant(DelegatedController)operator(.)ident(new) instance_variable(@virtual_controller) operator(=) constant(VirtualController)operator(.)ident(new) instance_variable(@layered_controller) operator(=) constant(LayeredController)operator(.)ident(new) instance_variable(@protocol) operator(=) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(Soap)operator(::)constant(SoapProtocol)operator(.)ident(create)operator(()instance_variable(@direct_controller)operator(\)) reserved(end) reserved(def) method(test_wsdl_generation) ident(ensure_valid_wsdl_generation) constant(DelegatedController)operator(.)ident(new)operator(,) constant(DispatcherTest)operator(::)constant(WsdlNamespace) ident(ensure_valid_wsdl_generation) constant(DirectController)operator(.)ident(new)operator(,) constant(DispatcherTest)operator(::)constant(WsdlNamespace) reserved(end) reserved(def) method(test_wsdl_action) ident(delegated_types) operator(=) ident(ensure_valid_wsdl_action) constant(DelegatedController)operator(.)ident(new) ident(delegated_names) operator(=) ident(delegated_types)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(x)operator(.)ident(name)operator(.)ident(name)operator(}) ident(assert)operator(()ident(delegated_names)operator(.)ident(include?)operator(()stringoperator(\))operator(\)) ident(assert)operator(()ident(delegated_names)operator(.)ident(include?)operator(()stringoperator(\))operator(\)) ident(direct_types) operator(=) ident(ensure_valid_wsdl_action) constant(DirectController)operator(.)ident(new) ident(direct_names) operator(=) ident(direct_types)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(x)operator(.)ident(name)operator(.)ident(name)operator(}) ident(assert)operator(()ident(direct_names)operator(.)ident(include?)operator(()stringoperator(\))operator(\)) ident(assert)operator(()ident(direct_names)operator(.)ident(include?)operator(()stringoperator(\))operator(\)) ident(assert)operator(()ident(direct_names)operator(.)ident(include?)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_autoloading) ident(assert)operator(()operator(!)constant(AutoLoadController)operator(.)ident(web_service_api)operator(.)ident(nil?)operator(\)) ident(assert)operator(()constant(AutoLoadController)operator(.)ident(web_service_api)operator(.)ident(has_public_api_method?)operator(()stringoperator(\))operator(\)) ident(assert)operator(()constant(FailingAutoLoadController)operator(.)ident(web_service_api)operator(.)ident(nil?)operator(\)) ident(assert_raises)operator(()constant(MissingSourceFile)operator(\)) reserved(do) constant(FailingAutoLoadController)operator(.)ident(require_web_service_api) symbol(:blah) reserved(end) ident(assert_raises)operator(()constant(ArgumentError)operator(\)) reserved(do) constant(FailingAutoLoadController)operator(.)ident(require_web_service_api) float(50.0) reserved(end) ident(assert)operator(()constant(BrokenAutoLoadController)operator(.)ident(web_service_api)operator(.)ident(nil?)operator(\)) reserved(end) reserved(def) method(test_layered_dispatching) ident(mt_cats) operator(=) ident(do_method_call)operator(()instance_variable(@layered_controller)operator(,) stringoperator(\)) ident(assert_equal)operator(()operator([)stringoperator(,) stringoperator(])operator(,) ident(mt_cats)operator(\)) ident(blogger_cats) operator(=) ident(do_method_call)operator(()instance_variable(@layered_controller)operator(,) stringoperator(\)) ident(assert_equal)operator(()operator([)stringoperator(,) stringoperator(])operator(,) ident(blogger_cats)operator(\)) reserved(end) reserved(def) method(test_utf8) instance_variable(@direct_controller)operator(.)ident(web_service_exception_reporting) operator(=) pre_constant(true) global_variable($KCODE) operator(=) string ident(assert_equal)operator(()constant(Utf8String)operator(,) ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(\))operator(\)) ident(retval) operator(=) constant(SOAP)operator(::)constant(Processor)operator(.)ident(unmarshal)operator(()instance_variable(@response_body)operator(\))operator(.)ident(body)operator(.)ident(response) ident(assert) ident(retval)operator(.)ident(is_a?)operator(()constant(SOAP)operator(::)constant(SOAPString)operator(\)) comment(# If $KCODE is not set to UTF-8, any strings with non-ASCII UTF-8 data) comment(# will be sent back as base64 by SOAP4R. By the time we get it here though,) comment(# it will be decoded back into a string. So lets read the base64 value) comment(# from the message body directly.) global_variable($KCODE) operator(=) string ident(do_method_call)operator(()instance_variable(@direct_controller)operator(,) stringoperator(\)) ident(retval) operator(=) constant(SOAP)operator(::)constant(Processor)operator(.)ident(unmarshal)operator(()instance_variable(@response_body)operator(\))operator(.)ident(body)operator(.)ident(response) ident(assert) ident(retval)operator(.)ident(is_a?)operator(()constant(SOAP)operator(::)constant(SOAPBase64)operator(\)) ident(assert_equal) stringoperator(,) ident(retval)operator(.)ident(data)operator(.)ident(to_s) reserved(end) ident(protected) reserved(def) method(exception_message)operator(()ident(soap_fault_exception)operator(\)) ident(soap_fault_exception)operator(.)ident(detail)operator(.)ident(cause)operator(.)ident(message) reserved(end) reserved(def) method(is_exception?)operator(()ident(obj)operator(\)) ident(obj)operator(.)ident(respond_to?)operator(()symbol(:detail)operator(\)) operator(&&) ident(obj)operator(.)ident(detail)operator(.)ident(respond_to?)operator(()symbol(:cause)operator(\)) operator(&&) \ ident(obj)operator(.)ident(detail)operator(.)ident(cause)operator(.)ident(is_a?)operator(()constant(Exception)operator(\)) reserved(end) reserved(def) method(service_name)operator(()ident(container)operator(\)) ident(container)operator(.)ident(is_a?)operator(()constant(DelegatedController)operator(\)) operator(?) string operator(:) string reserved(end) reserved(def) method(ensure_valid_wsdl_generation)operator(()ident(controller)operator(,) ident(expected_namespace)operator(\)) ident(wsdl) operator(=) ident(controller)operator(.)ident(generate_wsdl) ident(ensure_valid_wsdl)operator(()ident(controller)operator(,) ident(wsdl)operator(,) ident(expected_namespace)operator(\)) reserved(end) reserved(def) method(ensure_valid_wsdl)operator(()ident(controller)operator(,) ident(wsdl)operator(,) ident(expected_namespace)operator(\)) ident(definitions) operator(=) constant(WSDL)operator(::)constant(Parser)operator(.)ident(new)operator(.)ident(parse)operator(()ident(wsdl)operator(\)) ident(assert)operator(()ident(definitions)operator(.)ident(is_a?)operator(()constant(WSDL)operator(::)constant(Definitions)operator(\))operator(\)) ident(definitions)operator(.)ident(bindings)operator(.)ident(each) reserved(do) operator(|)ident(binding)operator(|) ident(assert)operator(()ident(binding)operator(.)ident(name)operator(.)ident(name)operator(.)ident(index)operator(()stringoperator(\))operator(.)ident(nil?)operator(\)) reserved(end) ident(definitions)operator(.)ident(services)operator(.)ident(each) reserved(do) operator(|)ident(service)operator(|) ident(service)operator(.)ident(ports)operator(.)ident(each) reserved(do) operator(|)ident(port)operator(|) ident(assert)operator(()ident(port)operator(.)ident(name)operator(.)ident(name)operator(.)ident(index)operator(()stringoperator(\))operator(.)ident(nil?)operator(\)) reserved(end) reserved(end) ident(types) operator(=) ident(definitions)operator(.)ident(collect_complextypes)operator(.)ident(map)operator({)operator(|)ident(x)operator(|) ident(x)operator(.)ident(name)operator(}) ident(types)operator(.)ident(each) reserved(do) operator(|)ident(type)operator(|) ident(assert)operator(()ident(type)operator(.)ident(namespace) operator(==) ident(expected_namespace)operator(\)) reserved(end) ident(location) operator(=) ident(definitions)operator(.)ident(services)operator([)integer(0)operator(])operator(.)ident(ports)operator([)integer(0)operator(])operator(.)ident(soap_address)operator(.)ident(location) reserved(if) ident(controller)operator(.)ident(is_a?)operator(()constant(DelegatedController)operator(\)) ident(assert_match) regexpoperator(,) ident(location) reserved(elsif) ident(controller)operator(.)ident(is_a?)operator(()constant(DirectController)operator(\)) ident(assert_match) regexpoperator(,) ident(location) reserved(end) ident(definitions)operator(.)ident(collect_complextypes) reserved(end) reserved(def) method(ensure_valid_wsdl_action)operator(()ident(controller)operator(\)) ident(test_request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new)operator(()operator({) string operator(=)operator(>) string operator(})operator(\)) ident(test_request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(test_request)operator(.)ident(env)operator([)stringoperator(]) operator(=) string ident(test_response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) ident(wsdl) operator(=) ident(controller)operator(.)ident(process)operator(()ident(test_request)operator(,) ident(test_response)operator(\))operator(.)ident(body) ident(ensure_valid_wsdl)operator(()ident(controller)operator(,) ident(wsdl)operator(,) constant(DispatcherTest)operator(::)constant(WsdlNamespace)operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(TC_DispatcherActionControllerXmlRpc) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(DispatcherTest) ident(include) constant(DispatcherCommonTests) reserved(def) method(setup) instance_variable(@direct_controller) operator(=) constant(DirectController)operator(.)ident(new) instance_variable(@delegated_controller) operator(=) constant(DelegatedController)operator(.)ident(new) instance_variable(@layered_controller) operator(=) constant(LayeredController)operator(.)ident(new) instance_variable(@virtual_controller) operator(=) constant(VirtualController)operator(.)ident(new) instance_variable(@protocol) operator(=) constant(ActionWebService)operator(::)constant(Protocol)operator(::)constant(XmlRpc)operator(::)constant(XmlRpcProtocol)operator(.)ident(create)operator(()instance_variable(@direct_controller)operator(\)) reserved(end) reserved(def) method(test_layered_dispatching) ident(mt_cats) operator(=) ident(do_method_call)operator(()instance_variable(@layered_controller)operator(,) stringoperator(\)) ident(assert_equal)operator(()operator([)stringoperator(,) stringoperator(])operator(,) ident(mt_cats)operator(\)) ident(blogger_cats) operator(=) ident(do_method_call)operator(()instance_variable(@layered_controller)operator(,) stringoperator(\)) ident(assert_equal)operator(()operator([)stringoperator(,) stringoperator(])operator(,) ident(blogger_cats)operator(\)) reserved(end) reserved(def) method(test_multicall) ident(response) operator(=) ident(do_method_call)operator(()instance_variable(@layered_controller)operator(,) stringoperator(,) operator([) operator({)string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) operator([)stringoperator(])operator(})operator(,) operator({)string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) stringoperator(}) operator(])operator(\)) ident(assert_equal) operator([) operator([)operator([)stringoperator(,) stringoperator(])operator(])operator(,) operator([)operator([)stringoperator(,) stringoperator(])operator(])operator(,) operator([)pre_constant(true)operator(])operator(,) operator([)stringoperator(])operator(,) operator({)string operator(=)operator(>) integer(3)operator(,) string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) integer(3)operator(,) string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) integer(4)operator(,) string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) integer(4)operator(,) string operator(=)operator(>) stringoperator(}) operator(])operator(,) ident(response) reserved(end) ident(protected) reserved(def) method(exception_message)operator(()ident(xmlrpc_fault_exception)operator(\)) ident(xmlrpc_fault_exception)operator(.)ident(faultString) reserved(end) reserved(def) method(is_exception?)operator(()ident(obj)operator(\)) ident(obj)operator(.)ident(is_a?)operator(()constant(XMLRPC)operator(::)constant(FaultException)operator(\)) reserved(end) reserved(def) method(service_name)operator(()ident(container)operator(\)) ident(container)operator(.)ident(is_a?)operator(()constant(DelegatedController)operator(\)) operator(?) string operator(:) string reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(InvocationTest) reserved(class) class(API) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:add)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:int)operator(,) symbol(:int)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:transmogrify)operator(,) symbol(:expects_and_returns) operator(=)operator(>) operator([)symbol(:string)operator(]) ident(api_method) symbol(:fail_with_reason) ident(api_method) symbol(:fail_generic) ident(api_method) symbol(:no_before) ident(api_method) symbol(:no_after) ident(api_method) symbol(:only_one) ident(api_method) symbol(:only_two) reserved(end) reserved(class) class(Interceptor) ident(attr) symbol(:args) reserved(def) method(initialize) instance_variable(@args) operator(=) pre_constant(nil) reserved(end) reserved(def) method(intercept)operator(()operator(*)ident(args)operator(\)) instance_variable(@args) operator(=) ident(args) reserved(end) reserved(end) constant(InterceptorClass) operator(=) constant(Interceptor)operator(.)ident(new) reserved(class) class(Service) operator(<) constant(ActionController)operator(::)constant(Base) ident(web_service_api) constant(API) ident(before_invocation) symbol(:intercept_before)operator(,) symbol(:except) operator(=)operator(>) operator([)symbol(:no_before)operator(]) ident(after_invocation) symbol(:intercept_after)operator(,) symbol(:except) operator(=)operator(>) operator([)symbol(:no_after)operator(]) ident(prepend_after_invocation) symbol(:intercept_after_first)operator(,) symbol(:except) operator(=)operator(>) operator([)symbol(:no_after)operator(]) ident(prepend_before_invocation) symbol(:intercept_only)operator(,) symbol(:only) operator(=)operator(>) operator([)symbol(:only_one)operator(,) symbol(:only_two)operator(]) ident(after_invocation)operator(()symbol(:only) operator(=)operator(>) operator([)symbol(:only_one)operator(])operator(\)) reserved(do) operator(|*)ident(args)operator(|) ident(args)operator([)integer(0)operator(])operator(.)ident(instance_variable_set)operator(()stringoperator(,) ident(args)operator([)integer(1)operator(])operator(\)) reserved(end) ident(after_invocation) constant(InterceptorClass)operator(,) symbol(:only) operator(=)operator(>) operator([)symbol(:only_one)operator(]) ident(attr_accessor) symbol(:before_invoked) ident(attr_accessor) symbol(:after_invoked) ident(attr_accessor) symbol(:after_first_invoked) ident(attr_accessor) symbol(:only_invoked) ident(attr_accessor) symbol(:block_invoked) ident(attr_accessor) symbol(:invocation_result) reserved(def) method(initialize) instance_variable(@before_invoked) operator(=) pre_constant(nil) instance_variable(@after_invoked) operator(=) pre_constant(nil) instance_variable(@after_first_invoked) operator(=) pre_constant(nil) instance_variable(@only_invoked) operator(=) pre_constant(nil) instance_variable(@invocation_result) operator(=) pre_constant(nil) instance_variable(@block_invoked) operator(=) pre_constant(nil) reserved(end) reserved(def) method(add)operator(()ident(a)operator(,) ident(b)operator(\)) ident(a) operator(+) ident(b) reserved(end) reserved(def) method(transmogrify)operator(()ident(str)operator(\)) ident(str)operator(.)ident(upcase) reserved(end) reserved(def) method(fail_with_reason) reserved(end) reserved(def) method(fail_generic) reserved(end) reserved(def) method(no_before) integer(5) reserved(end) reserved(def) method(no_after) reserved(end) reserved(def) method(only_one) reserved(end) reserved(def) method(only_two) reserved(end) ident(protected) reserved(def) method(intercept_before)operator(()ident(name)operator(,) ident(args)operator(\)) instance_variable(@before_invoked) operator(=) ident(name) reserved(return) operator([)pre_constant(false)operator(,) stringoperator(]) reserved(if) ident(name) operator(==) symbol(:fail_with_reason) reserved(return) pre_constant(false) reserved(if) ident(name) operator(==) symbol(:fail_generic) reserved(end) reserved(def) method(intercept_after)operator(()ident(name)operator(,) ident(args)operator(,) ident(result)operator(\)) instance_variable(@after_invoked) operator(=) ident(name) instance_variable(@invocation_result) operator(=) ident(result) reserved(end) reserved(def) method(intercept_after_first)operator(()ident(name)operator(,) ident(args)operator(,) ident(result)operator(\)) instance_variable(@after_first_invoked) operator(=) ident(name) reserved(end) reserved(def) method(intercept_only)operator(()ident(name)operator(,) ident(args)operator(\)) ident(raise) string reserved(unless) ident(name) operator(==) symbol(:only_one) operator(||) ident(name) operator(==) symbol(:only_two) instance_variable(@only_invoked) operator(=) ident(name) reserved(end) reserved(end) reserved(end) reserved(class) class(TC_Invocation) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(ActionWebService)operator(::)constant(Invocation) reserved(def) method(setup) instance_variable(@service) operator(=) constant(InvocationTest)operator(::)constant(Service)operator(.)ident(new) reserved(end) reserved(def) method(test_invocation) ident(assert)operator(()ident(perform_invocation)operator(()symbol(:add)operator(,) integer(5)operator(,) integer(10)operator(\)) operator(==) integer(15)operator(\)) ident(assert)operator(()ident(perform_invocation)operator(()symbol(:transmogrify)operator(,) stringoperator(\)) operator(==) stringoperator(\)) ident(assert_raises)operator(()constant(NoMethodError)operator(\)) reserved(do) ident(perform_invocation)operator(()symbol(:nonexistent_method_xyzzy)operator(\)) reserved(end) reserved(end) reserved(def) method(test_interceptor_registration) ident(assert)operator(()constant(InvocationTest)operator(::)constant(Service)operator(.)ident(before_invocation_interceptors)operator(.)ident(length) operator(==) integer(2)operator(\)) ident(assert)operator(()constant(InvocationTest)operator(::)constant(Service)operator(.)ident(after_invocation_interceptors)operator(.)ident(length) operator(==) integer(4)operator(\)) ident(assert_equal)operator(()symbol(:intercept_only)operator(,) constant(InvocationTest)operator(::)constant(Service)operator(.)ident(before_invocation_interceptors)operator([)integer(0)operator(])operator(\)) ident(assert_equal)operator(()symbol(:intercept_after_first)operator(,) constant(InvocationTest)operator(::)constant(Service)operator(.)ident(after_invocation_interceptors)operator([)integer(0)operator(])operator(\)) reserved(end) reserved(def) method(test_interception) ident(assert)operator(()instance_variable(@service)operator(.)ident(before_invoked)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(after_invoked)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(only_invoked)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(block_invoked)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(invocation_result)operator(.)ident(nil?)operator(\)) ident(perform_invocation)operator(()symbol(:add)operator(,) integer(20)operator(,) integer(50)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(before_invoked) operator(==) symbol(:add)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(after_invoked) operator(==) symbol(:add)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(invocation_result) operator(==) integer(70)operator(\)) reserved(end) reserved(def) method(test_interception_canceling) ident(reason) operator(=) pre_constant(nil) ident(perform_invocation)operator(()symbol(:fail_with_reason)operator(\))operator({)operator(|)ident(r)operator(|) ident(reason) operator(=) ident(r)operator(}) ident(assert)operator(()instance_variable(@service)operator(.)ident(before_invoked) operator(==) symbol(:fail_with_reason)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(after_invoked)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(invocation_result)operator(.)ident(nil?)operator(\)) ident(assert)operator(()ident(reason) operator(==) stringoperator(\)) ident(reason) operator(=) pre_constant(true) instance_variable(@service)operator(.)ident(before_invoked) operator(=) instance_variable(@service)operator(.)ident(after_invoked) operator(=) instance_variable(@service)operator(.)ident(invocation_result) operator(=) pre_constant(nil) ident(perform_invocation)operator(()symbol(:fail_generic)operator(\))operator({)operator(|)ident(r)operator(|) ident(reason) operator(=) ident(r)operator(}) ident(assert)operator(()instance_variable(@service)operator(.)ident(before_invoked) operator(==) symbol(:fail_generic)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(after_invoked)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(invocation_result)operator(.)ident(nil?)operator(\)) ident(assert)operator(()ident(reason) operator(==) pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_interception_except_conditions) ident(perform_invocation)operator(()symbol(:no_before)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(before_invoked)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(after_first_invoked) operator(==) symbol(:no_before)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(after_invoked) operator(==) symbol(:no_before)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(invocation_result) operator(==) integer(5)operator(\)) instance_variable(@service)operator(.)ident(before_invoked) operator(=) instance_variable(@service)operator(.)ident(after_invoked) operator(=) instance_variable(@service)operator(.)ident(invocation_result) operator(=) pre_constant(nil) ident(perform_invocation)operator(()symbol(:no_after)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(before_invoked) operator(==) symbol(:no_after)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(after_invoked)operator(.)ident(nil?)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(invocation_result)operator(.)ident(nil?)operator(\)) reserved(end) reserved(def) method(test_interception_only_conditions) ident(assert)operator(()instance_variable(@service)operator(.)ident(only_invoked)operator(.)ident(nil?)operator(\)) ident(perform_invocation)operator(()symbol(:only_one)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(only_invoked) operator(==) symbol(:only_one)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(block_invoked) operator(==) symbol(:only_one)operator(\)) ident(assert)operator(()constant(InvocationTest)operator(::)constant(InterceptorClass)operator(.)ident(args)operator([)integer(1)operator(]) operator(==) symbol(:only_one)operator(\)) instance_variable(@service)operator(.)ident(only_invoked) operator(=) pre_constant(nil) ident(perform_invocation)operator(()symbol(:only_two)operator(\)) ident(assert)operator(()instance_variable(@service)operator(.)ident(only_invoked) operator(==) symbol(:only_two)operator(\)) reserved(end) ident(private) reserved(def) method(perform_invocation)operator(()ident(method_name)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) instance_variable(@service)operator(.)ident(perform_invocation)operator(()ident(method_name)operator(,) ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string constant(ActionController)operator(::)constant(Routing)operator(::)constant(Routes)operator(.)ident(draw) reserved(do) operator(|)ident(map)operator(|) ident(map)operator(.)ident(connect) stringoperator(,) symbol(:controller) operator(=)operator(>) string ident(map)operator(.)ident(connect) string reserved(end) constant(ActionController)operator(::)constant(Base)operator(.)ident(template_root) operator(=) string reserved(class) class(ScaffoldPerson) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:id)operator(,) symbol(:int) ident(member) symbol(:name)operator(,) symbol(:string) ident(member) symbol(:birth)operator(,) symbol(:date) reserved(def) method(==)operator(()ident(other)operator(\)) pre_constant(self)operator(.)ident(id) operator(==) ident(other)operator(.)ident(id) operator(&&) pre_constant(self)operator(.)ident(name) operator(==) ident(other)operator(.)ident(name) reserved(end) reserved(end) reserved(class) class(ScaffoldedControllerTestAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:hello)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:integer)operator(=)operator(>)symbol(:int)operator(})operator(,) symbol(:string)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:bool)operator(]) ident(api_method) symbol(:hello_struct_param)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:person) operator(=)operator(>) constant(ScaffoldPerson)operator(})operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:bool)operator(]) ident(api_method) symbol(:date_of_birth)operator(,) symbol(:expects) operator(=)operator(>) operator([)constant(ScaffoldPerson)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:string)operator(]) ident(api_method) symbol(:bye)operator(,) symbol(:returns) operator(=)operator(>) operator([)operator([)constant(ScaffoldPerson)operator(])operator(]) ident(api_method) symbol(:date_diff)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:start_date) operator(=)operator(>) symbol(:date)operator(})operator(,) operator({)symbol(:end_date) operator(=)operator(>) symbol(:date)operator(})operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:time_diff)operator(,) symbol(:expects) operator(=)operator(>) operator([)operator({)symbol(:start_time) operator(=)operator(>) symbol(:time)operator(})operator(,) operator({)symbol(:end_time) operator(=)operator(>) symbol(:time)operator(})operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) ident(api_method) symbol(:base64_upcase)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:base64)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:base64)operator(]) reserved(end) reserved(class) class(ScaffoldedController) operator(<) constant(ActionController)operator(::)constant(Base) ident(web_service_api) constant(ScaffoldedControllerTestAPI) ident(web_service_scaffold) symbol(:scaffold_invoke) reserved(def) method(hello)operator(()ident(int)operator(,) ident(string)operator(\)) integer(0) reserved(end) reserved(def) method(hello_struct_param)operator(()ident(person)operator(\)) integer(0) reserved(end) reserved(def) method(date_of_birth)operator(()ident(person)operator(\)) ident(person)operator(.)ident(birth)operator(.)ident(to_s) reserved(end) reserved(def) method(bye) operator([)constant(ScaffoldPerson)operator(.)ident(new)operator(()symbol(:id) operator(=)operator(>) integer(1)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(,) constant(ScaffoldPerson)operator(.)ident(new)operator(()symbol(:id) operator(=)operator(>) integer(2)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(]) reserved(end) reserved(def) method(rescue_action)operator(()ident(e)operator(\)) ident(raise) ident(e) reserved(end) reserved(def) method(date_diff)operator(()ident(start_date)operator(,) ident(end_date)operator(\)) ident(end_date) operator(-) ident(start_date) reserved(end) reserved(def) method(time_diff)operator(()ident(start_time)operator(,) ident(end_time)operator(\)) ident(end_time) operator(-) ident(start_time) reserved(end) reserved(def) method(base64_upcase)operator(()ident(data)operator(\)) ident(data)operator(.)ident(upcase) reserved(end) reserved(end) reserved(class) class(ScaffoldedControllerTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@controller) operator(=) constant(ScaffoldedController)operator(.)ident(new) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) reserved(def) method(test_scaffold_invoke) ident(get) symbol(:scaffold_invoke) ident(assert_rendered_file) string reserved(end) reserved(def) method(test_scaffold_invoke_method_params) ident(get) symbol(:scaffold_invoke_method_params)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) string ident(assert_rendered_file) string reserved(end) reserved(def) method(test_scaffold_invoke_method_params_with_struct) ident(get) symbol(:scaffold_invoke_method_params)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) string ident(assert_rendered_file) string ident(assert_tag) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:attributes) operator(=)operator(>) operator({)symbol(:name) operator(=)operator(>) stringoperator(}) reserved(end) reserved(def) method(test_scaffold_invoke_submit_hello) ident(post) symbol(:scaffold_invoke_submit)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) stringoperator(,) symbol(:method_params) operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(}) ident(assert_rendered_file) string ident(assert_equal) pre_constant(false)operator(,) instance_variable(@controller)operator(.)ident(instance_eval)operator({) instance_variable(@method_return_value) operator(}) reserved(end) reserved(def) method(test_scaffold_invoke_submit_bye) ident(post) symbol(:scaffold_invoke_submit)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) string ident(assert_rendered_file) string ident(persons) operator(=) operator([)constant(ScaffoldPerson)operator(.)ident(new)operator(()symbol(:id) operator(=)operator(>) integer(1)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(,) constant(ScaffoldPerson)operator(.)ident(new)operator(()symbol(:id) operator(=)operator(>) integer(2)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\))operator(]) ident(assert_equal) ident(persons)operator(,) instance_variable(@controller)operator(.)ident(instance_eval)operator({) instance_variable(@method_return_value) operator(}) reserved(end) reserved(def) method(test_scaffold_date_params) ident(get) symbol(:scaffold_invoke_method_params)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) string operator(()integer(0)operator(..)integer(1)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(param)operator(|) operator(()integer(1)operator(..)integer(3)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(date_part)operator(|) ident(assert_tag) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:attributes) operator(=)operator(>) operator({)symbol(:name) operator(=)operator(>) stringcontent(][)inlinecontent(])delimiter(")>operator(})operator(,) symbol(:children) operator(=)operator(>) operator({)symbol(:greater_than) operator(=)operator(>) integer(1)operator(,) symbol(:only) operator(=)operator(>) operator({)symbol(:tag) operator(=)operator(>) stringoperator(})operator(}) reserved(end) reserved(end) ident(post) symbol(:scaffold_invoke_submit)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) stringoperator(,) symbol(:method_params) operator(=)operator(>) operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) string operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(}) ident(assert_equal) integer(1)operator(,) instance_variable(@controller)operator(.)ident(instance_eval)operator({) instance_variable(@method_return_value) operator(}) reserved(end) reserved(def) method(test_scaffold_struct_date_params) ident(post) symbol(:scaffold_invoke_submit)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) stringoperator(,) symbol(:method_params) operator(=)operator(>) operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(}) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(instance_eval)operator({) instance_variable(@method_return_value) operator(}) reserved(end) reserved(def) method(test_scaffold_time_params) ident(get) symbol(:scaffold_invoke_method_params)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) string operator(()integer(0)operator(..)integer(1)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(param)operator(|) operator(()integer(1)operator(..)integer(6)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(date_part)operator(|) ident(assert_tag) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:attributes) operator(=)operator(>) operator({)symbol(:name) operator(=)operator(>) stringcontent(][)inlinecontent(])delimiter(")>operator(})operator(,) symbol(:children) operator(=)operator(>) operator({)symbol(:greater_than) operator(=)operator(>) integer(1)operator(,) symbol(:only) operator(=)operator(>) operator({)symbol(:tag) operator(=)operator(>) stringoperator(})operator(}) reserved(end) reserved(end) ident(post) symbol(:scaffold_invoke_submit)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) stringoperator(,) symbol(:method_params) operator(=)operator(>) operator({)string operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(,) string operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(}) ident(assert_equal) integer(86400)operator(,) instance_variable(@controller)operator(.)ident(instance_eval)operator({) instance_variable(@method_return_value) operator(}) reserved(end) reserved(def) method(test_scaffold_base64) ident(get) symbol(:scaffold_invoke_method_params)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) string ident(assert_tag) symbol(:tag) operator(=)operator(>) stringoperator(,) symbol(:attributes) operator(=)operator(>) operator({)symbol(:name) operator(=)operator(>) stringoperator(}) ident(post) symbol(:scaffold_invoke_submit)operator(,) symbol(:service) operator(=)operator(>) stringoperator(,) symbol(:method) operator(=)operator(>) stringoperator(,) symbol(:method_params) operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(}) ident(assert_equal) stringoperator(,) instance_variable(@controller)operator(.)ident(instance_eval)operator({) instance_variable(@method_return_value) operator(}) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(StructTest) reserved(class) class(Struct) operator(<) constant(ActionWebService)operator(::)constant(Struct) ident(member) symbol(:id)operator(,) constant(Integer) ident(member) symbol(:name)operator(,) constant(String) ident(member) symbol(:items)operator(,) operator([)constant(String)operator(]) ident(member) symbol(:deleted)operator(,) symbol(:bool) ident(member) symbol(:emails)operator(,) operator([)symbol(:string)operator(]) reserved(end) reserved(end) reserved(class) class(TC_Struct) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(include) constant(StructTest) reserved(def) method(setup) instance_variable(@struct) operator(=) constant(Struct)operator(.)ident(new)operator(()symbol(:id) operator(=)operator(>) integer(5)operator(,) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:items) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(,) symbol(:deleted) operator(=)operator(>) pre_constant(true)operator(,) symbol(:emails) operator(=)operator(>) operator([)stringoperator(])operator(\)) reserved(end) reserved(def) method(test_members) ident(assert_equal)operator(()integer(5)operator(,) constant(Struct)operator(.)ident(members)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()constant(Integer)operator(,) constant(Struct)operator(.)ident(members)operator([)symbol(:id)operator(])operator(.)ident(type_class)operator(\)) ident(assert_equal)operator(()constant(String)operator(,) constant(Struct)operator(.)ident(members)operator([)symbol(:name)operator(])operator(.)ident(type_class)operator(\)) ident(assert_equal)operator(()constant(String)operator(,) constant(Struct)operator(.)ident(members)operator([)symbol(:items)operator(])operator(.)ident(element_type)operator(.)ident(type_class)operator(\)) ident(assert_equal)operator(()constant(TrueClass)operator(,) constant(Struct)operator(.)ident(members)operator([)symbol(:deleted)operator(])operator(.)ident(type_class)operator(\)) ident(assert_equal)operator(()constant(String)operator(,) constant(Struct)operator(.)ident(members)operator([)symbol(:emails)operator(])operator(.)ident(element_type)operator(.)ident(type_class)operator(\)) reserved(end) reserved(def) method(test_initializer_and_lookup) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@struct)operator(.)ident(id)operator(\)) ident(assert_equal)operator(()stringoperator(,) instance_variable(@struct)operator(.)ident(name)operator(\)) ident(assert_equal)operator(()operator([)stringoperator(,) stringoperator(])operator(,) instance_variable(@struct)operator(.)ident(items)operator(\)) ident(assert_equal)operator(()pre_constant(true)operator(,) instance_variable(@struct)operator(.)ident(deleted)operator(\)) ident(assert_equal)operator(()operator([)stringoperator(])operator(,) instance_variable(@struct)operator(.)ident(emails)operator(\)) ident(assert_equal)operator(()integer(5)operator(,) instance_variable(@struct)operator([)stringoperator(])operator(\)) ident(assert_equal)operator(()stringoperator(,) instance_variable(@struct)operator([)stringoperator(])operator(\)) ident(assert_equal)operator(()operator([)stringoperator(,) stringoperator(])operator(,) instance_variable(@struct)operator([)stringoperator(])operator(\)) ident(assert_equal)operator(()pre_constant(true)operator(,) instance_variable(@struct)operator([)stringoperator(])operator(\)) ident(assert_equal)operator(()operator([)stringoperator(])operator(,) instance_variable(@struct)operator([)stringoperator(])operator(\)) reserved(end) reserved(def) method(test_each_pair) instance_variable(@struct)operator(.)ident(each_pair) reserved(do) operator(|)ident(name)operator(,) ident(value)operator(|) ident(assert_equal) instance_variable(@struct)operator(.)ident(__send__)operator(()ident(name)operator(\))operator(,) ident(value) ident(assert_equal) instance_variable(@struct)operator([)ident(name)operator(])operator(,) ident(value) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string reserved(class) class(TestInvokeAPI) operator(<) constant(ActionWebService)operator(::)constant(API)operator(::)constant(Base) ident(api_method) symbol(:add)operator(,) symbol(:expects) operator(=)operator(>) operator([)symbol(:int)operator(,) symbol(:int)operator(])operator(,) symbol(:returns) operator(=)operator(>) operator([)symbol(:int)operator(]) reserved(end) reserved(class) class(TestInvokeService) operator(<) constant(ActionWebService)operator(::)constant(Base) ident(web_service_api) constant(TestInvokeAPI) ident(attr) symbol(:invoked) reserved(def) method(add)operator(()ident(a)operator(,) ident(b)operator(\)) instance_variable(@invoked) operator(=) pre_constant(true) ident(a) operator(+) ident(b) reserved(end) reserved(end) reserved(class) class(TestController) operator(<) constant(ActionController)operator(::)constant(Base) reserved(def) method(rescue_action)operator(()ident(e)operator(\))operator(;) ident(raise) ident(e)operator(;) reserved(end) reserved(end) reserved(class) class(TestInvokeDirectController) operator(<) constant(TestController) ident(web_service_api) constant(TestInvokeAPI) ident(attr) symbol(:invoked) reserved(def) method(add) instance_variable(@invoked) operator(=) pre_constant(true) instance_variable(@method_params)operator([)integer(0)operator(]) operator(+) instance_variable(@method_params)operator([)integer(1)operator(]) reserved(end) reserved(end) reserved(class) class(TestInvokeDelegatedController) operator(<) constant(TestController) ident(web_service_dispatching_mode) symbol(:delegated) ident(web_service) symbol(:service)operator(,) constant(TestInvokeService)operator(.)ident(new) reserved(end) reserved(class) class(TestInvokeLayeredController) operator(<) constant(TestController) ident(web_service_dispatching_mode) symbol(:layered) ident(web_service)operator(()symbol(:one)operator(\)) operator({) instance_variable(@service_one) operator(||=) constant(TestInvokeService)operator(.)ident(new) operator(}) ident(web_service)operator(()symbol(:two)operator(\)) operator({) instance_variable(@service_two) operator(||=) constant(TestInvokeService)operator(.)ident(new) operator(}) reserved(end) reserved(class) class(TestInvokeTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@request) operator(=) constant(ActionController)operator(::)constant(TestRequest)operator(.)ident(new) instance_variable(@response) operator(=) constant(ActionController)operator(::)constant(TestResponse)operator(.)ident(new) reserved(end) reserved(def) method(test_direct_add) instance_variable(@controller) operator(=) constant(TestInvokeDirectController)operator(.)ident(new) ident(assert_equal) pre_constant(nil)operator(,) instance_variable(@controller)operator(.)ident(invoked) ident(result) operator(=) ident(invoke) symbol(:add)operator(,) integer(25)operator(,) integer(25) ident(assert_equal) integer(50)operator(,) ident(result) ident(assert_equal) pre_constant(true)operator(,) instance_variable(@controller)operator(.)ident(invoked) reserved(end) reserved(def) method(test_delegated_add) instance_variable(@controller) operator(=) constant(TestInvokeDelegatedController)operator(.)ident(new) ident(assert_equal) pre_constant(nil)operator(,) instance_variable(@controller)operator(.)ident(web_service_object)operator(()symbol(:service)operator(\))operator(.)ident(invoked) ident(result) operator(=) ident(invoke_delegated) symbol(:service)operator(,) symbol(:add)operator(,) integer(100)operator(,) integer(50) ident(assert_equal) integer(150)operator(,) ident(result) ident(assert_equal) pre_constant(true)operator(,) instance_variable(@controller)operator(.)ident(web_service_object)operator(()symbol(:service)operator(\))operator(.)ident(invoked) reserved(end) reserved(def) method(test_layered_add) operator([)symbol(:soap)operator(,) symbol(:xmlrpc)operator(])operator(.)ident(each) reserved(do) operator(|)ident(protocol)operator(|) instance_variable(@protocol) operator(=) ident(protocol) operator([)symbol(:one)operator(,) symbol(:two)operator(])operator(.)ident(each) reserved(do) operator(|)ident(service)operator(|) instance_variable(@controller) operator(=) constant(TestInvokeLayeredController)operator(.)ident(new) ident(assert_equal) pre_constant(nil)operator(,) instance_variable(@controller)operator(.)ident(web_service_object)operator(()ident(service)operator(\))operator(.)ident(invoked) ident(result) operator(=) ident(invoke_layered) ident(service)operator(,) symbol(:add)operator(,) integer(200)operator(,) integer(-50) ident(assert_equal) integer(150)operator(,) ident(result) ident(assert_equal) pre_constant(true)operator(,) instance_variable(@controller)operator(.)ident(web_service_object)operator(()ident(service)operator(\))operator(.)ident(invoked) reserved(end) reserved(end) reserved(end) reserved(def) method(test_layered_fail_with_wrong_number_of_arguments) operator([)symbol(:soap)operator(,) symbol(:xmlrpc)operator(])operator(.)ident(each) reserved(do) operator(|)ident(protocol)operator(|) instance_variable(@protocol) operator(=) ident(protocol) operator([)symbol(:one)operator(,) symbol(:two)operator(])operator(.)ident(each) reserved(do) operator(|)ident(service)operator(|) instance_variable(@controller) operator(=) constant(TestInvokeLayeredController)operator(.)ident(new) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) ident(invoke_layered) ident(service)operator(,) symbol(:add)operator(,) integer(1) operator(}) reserved(end) reserved(end) reserved(end) reserved(def) method(test_delegated_fail_with_wrong_number_of_arguments) instance_variable(@controller) operator(=) constant(TestInvokeDelegatedController)operator(.)ident(new) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) ident(invoke_delegated) symbol(:service)operator(,) symbol(:add)operator(,) integer(1) operator(}) reserved(end) reserved(def) method(test_direct_fail_with_wrong_number_of_arguments) instance_variable(@controller) operator(=) constant(TestInvokeDirectController)operator(.)ident(new) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) ident(invoke) symbol(:add)operator(,) integer(1) operator(}) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()pre_constant(STDOUT)operator(\)) comment(# Database setup ---------------) ident(logger)operator(.)ident(info) string operator([) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) operator(])operator(.)ident(each) operator({) operator(|)ident(statement)operator(|) comment(# Tables doesn't necessarily already exist) reserved(begin)operator(;) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(statement)operator(\))operator(;) reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(;) reserved(end) operator(}) comment(# Class setup ---------------) reserved(class) class(Company) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_and_belongs_to_many) symbol(:people)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:join_table) operator(=)operator(>) stringoperator(,) symbol(:table_name) operator(=)operator(>) string reserved(end) reserved(class) class(Firm) operator(<) constant(Company) ident(has_many) symbol(:clients)operator(,) symbol(:foreign_key) operator(=)operator(>) string reserved(def) method(people_with_all_clients) ident(clients)operator(.)ident(inject)operator(()operator([)operator(])operator(\)) operator({) operator(|)ident(people)operator(,) ident(client)operator(|) ident(people) operator(+) ident(client)operator(.)ident(people) operator(}) reserved(end) reserved(end) reserved(class) class(Client) operator(<) constant(Company) ident(belongs_to) symbol(:firm)operator(,) symbol(:foreign_key) operator(=)operator(>) string reserved(end) reserved(class) class(Person) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_and_belongs_to_many) symbol(:companies)operator(,) symbol(:join_table) operator(=)operator(>) string reserved(def) pre_constant(self)operator(.)method(table_name)operator(()operator(\)) string reserved(end) reserved(end) comment(# Usage ---------------) ident(logger)operator(.)ident(info) string constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(.)ident(save) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) integer(1)operator(\))operator(.)ident(save) constant(Person)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(.)ident(save) ident(logger)operator(.)ident(info) string ident(next_angle) operator(=) constant(Company)operator(.)ident(find)operator(()integer(1)operator(\)) ident(next_angle) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(next_angle) operator(=) constant(Company)operator(.)ident(find_first) string ident(next_angle) operator(=) constant(Firm)operator(.)ident(find_by_sql)operator(()stringoperator(\))operator(.)ident(first) constant(Firm) operator(===) ident(next_angle) ident(logger)operator(.)ident(info) string ident(next_angle)operator(.)ident(has_clients?) ident(next_angle)operator(.)ident(clients_count) ident(all_clients) operator(=) ident(next_angle)operator(.)ident(clients) ident(thirty_seven_signals) operator(=) ident(next_angle)operator(.)ident(find_in_clients)operator(()integer(2)operator(\)) ident(logger)operator(.)ident(info) string ident(thirty_seven_signals)operator(.)ident(has_firm?) ident(thirty_seven_signals)operator(.)ident(firm?)operator(()ident(next_angle)operator(\)) ident(logger)operator(.)ident(info) string ident(david) operator(=) constant(Person)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(add_companies)operator(()ident(thirty_seven_signals)operator(,) ident(next_angle)operator(\)) ident(david)operator(.)ident(companies)operator(.)ident(include?)operator(()ident(next_angle)operator(\)) ident(david)operator(.)ident(companies_count) operator(==) integer(2) ident(david)operator(.)ident(remove_companies)operator(()ident(next_angle)operator(\)) ident(david)operator(.)ident(companies_count) operator(==) integer(1) ident(thirty_seven_signals)operator(.)ident(people)operator(.)ident(include?)operator(()ident(david)operator(\))comment(# Be sure to change the mysql_connection details and create a database for the example) global_variable($:) operator(<<) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) string ident(require) stringoperator(;) reserved(class) class(Logger)operator(;) reserved(def) method(format_message)operator(()ident(severity)operator(,) ident(timestamp)operator(,) ident(msg)operator(,) ident(progname)operator(\)) stringchar(\\n)delimiter(")> reserved(end)operator(;) reserved(end) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()pre_constant(STDOUT)operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) string operator(\)) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()pre_constant(STDOUT)operator(\)) comment(# Database setup ---------------) ident(logger)operator(.)ident(info) string operator([) stringoperator(,) string operator(])operator(.)ident(each) operator({) operator(|)ident(statement)operator(|) reserved(begin)operator(;) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(statement)operator(\))operator(;) reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(;) reserved(end) comment(# Tables doesn't necessarily already exist) operator(}) comment(# Class setup ---------------) reserved(class) class(Person) operator(<) constant(ActiveRecord)operator(::)constant(Base) comment(# Using ) reserved(def) pre_constant(self)operator(.)method(authenticate)operator(()ident(name)operator(,) ident(pass)operator(\)) comment(# find_first "name = '#{name}' AND pass = '#{pass}'" would be open to sql-injection (in a web-app scenario\)) ident(find_first) operator([) stringoperator(,) ident(name)operator(,) ident(pass) operator(]) reserved(end) reserved(def) pre_constant(self)operator(.)method(name_exists?)operator(()ident(name)operator(,) ident(id) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(id)operator(.)ident(nil?) ident(condition) operator(=) operator([) stringoperator(,) ident(name) operator(]) reserved(else) comment(# Check if anyone else than the person identified by person_id has that user_name) ident(condition) operator(=) operator([) string %d)delimiter(")>operator(,) ident(name)operator(,) ident(id) operator(]) reserved(end) operator(!)ident(find_first)operator(()ident(condition)operator(\))operator(.)ident(nil?) reserved(end) reserved(def) method(email_address_with_name) stringchar(\\")content( <)inlinecontent(>)delimiter(")> reserved(end) ident(protected) reserved(def) method(validate) ident(errors)operator(.)ident(add_on_empty)operator(()stringoperator(\)) ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) reserved(unless) ident(email_address_valid?) reserved(end) reserved(def) method(validate_on_create) reserved(if) ident(attribute_present?)operator(()stringoperator(\)) operator(&&) constant(Person)operator(.)ident(name_exists?)operator(()ident(name)operator(\)) ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(end) reserved(def) method(validate_on_update) reserved(if) ident(attribute_present?)operator(()stringoperator(\)) operator(&&) constant(Person)operator(.)ident(name_exists?)operator(()ident(name)operator(,) ident(id)operator(\)) ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(email_address_valid?)operator(()operator(\)) ident(email) operator(=)operator(~) regexp reserved(end) reserved(end) comment(# Usage ---------------) ident(logger)operator(.)ident(info) string ident(david) operator(=) constant(Person)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) reserved(unless) ident(david)operator(.)ident(save) ident(puts) stringcontent( error(s\))delimiter(")> ident(david)operator(.)ident(errors)operator(.)ident(each_full) operator({) operator(|)ident(error)operator(|) ident(puts) ident(error) operator(}) reserved(end) ident(david)operator(.)ident(pass) operator(=) string ident(david)operator(.)ident(email) operator(=) string reserved(unless) ident(david)operator(.)ident(save) ident(puts) stringcontent( error(s\))delimiter(")> ident(puts) string operator(+) ident(david)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\)) reserved(end) ident(david)operator(.)ident(email) operator(=) string reserved(if) ident(david)operator(.)ident(save) reserved(then) ident(puts) string reserved(end) ident(another_david) operator(=) constant(Person)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) reserved(unless) ident(another_david)operator(.)ident(save) ident(puts) string operator(+) ident(another_david)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\)) ident(endrequire) string ident(require) string ident(require) string ident(include) constant(Config) comment(# this was adapted from rdoc's install.rb by ways of Log4r) global_variable($sitedir) operator(=) constant(CONFIG)operator([)stringoperator(]) reserved(unless) global_variable($sitedir) ident(version) operator(=) constant(CONFIG)operator([)stringoperator(]) operator(+) string operator(+) constant(CONFIG)operator([)stringoperator(]) global_variable($libdir) operator(=) constant(File)operator(.)ident(join)operator(()constant(CONFIG)operator([)stringoperator(])operator(,) stringoperator(,) ident(version)operator(\)) global_variable($sitedir) operator(=) global_variable($:)operator(.)ident(find) operator({)operator(|)ident(x)operator(|) ident(x) operator(=)operator(~) regexp operator(}) reserved(if) operator(!)global_variable($sitedir) global_variable($sitedir) operator(=) constant(File)operator(.)ident(join)operator(()global_variable($libdir)operator(,) stringoperator(\)) reserved(elsif) global_variable($sitedir) operator(!)operator(~) constant(Regexp)operator(.)ident(quote)operator(()ident(version)operator(\)) global_variable($sitedir) operator(=) constant(File)operator(.)ident(join)operator(()global_variable($sitedir)operator(,) ident(version)operator(\)) reserved(end) reserved(end) comment(# the acual gruntwork) constant(Dir)operator(.)ident(chdir)operator(()stringoperator(\)) constant(Find)operator(.)ident(find)operator(()stringoperator(,) stringoperator(\)) operator({) operator(|)ident(f)operator(|) reserved(if) ident(f)operator([)integer(-3)operator(..)integer(-1)operator(]) operator(==) string constant(File)operator(::)ident(install)operator(()ident(f)operator(,) constant(File)operator(.)ident(join)operator(()global_variable($sitedir)operator(,) operator(*)ident(f)operator(.)ident(split)operator(()regexpoperator(\))operator(\))operator(,) integer(0644)operator(,) pre_constant(true)operator(\)) reserved(else) constant(File)operator(::)ident(makedirs)operator(()constant(File)operator(.)ident(join)operator(()global_variable($sitedir)operator(,) operator(*)ident(f)operator(.)ident(split)operator(()regexpoperator(\))operator(\))operator(\)) reserved(end) operator(}) reserved(module) class(ActiveRecord) reserved(module) class(Acts) comment(#:nodoc:) reserved(module) class(List) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# This act provides the capabilities for sorting and reordering a number of objects in a list.) comment(# The class that has this specified needs to have a "position" column defined as an integer on) comment(# the mapped database table.) comment(#) comment(# Todo list example:) comment(#) comment(# class TodoList < ActiveRecord::Base) comment(# has_many :todo_items, :order => "position") comment(# end) comment(#) comment(# class TodoItem < ActiveRecord::Base) comment(# belongs_to :todo_list) comment(# acts_as_list :scope => :todo_list) comment(# end) comment(#) comment(# todo_list.first.move_to_bottom) comment(# todo_list.last.move_higher) reserved(module) class(ClassMethods) comment(# Configuration options are:) comment(#) comment(# * +column+ - specifies the column name to use for keeping the position integer (default: position\)) comment(# * +scope+ - restricts what is to be considered a list. Given a symbol, it'll attach "_id" ) comment(# (if that hasn't been already\) and use that as the foreign key restriction. It's also possible ) comment(# to give it an entire string that is interpolated if you need a tighter scope than just a foreign key.) comment(# Example: acts_as_list :scope => 'todo_list_id = #{todo_list_id} AND completed = 0') reserved(def) method(acts_as_list)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(configuration) operator(=) operator({) symbol(:column) operator(=)operator(>) stringoperator(,) symbol(:scope) operator(=)operator(>) string operator(}) ident(configuration)operator(.)ident(update)operator(()ident(options)operator(\)) reserved(if) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(configuration)operator([)symbol(:scope)operator(]) operator(=) stringcontent(_id)delimiter(")>operator(.)ident(intern) reserved(if) ident(configuration)operator([)symbol(:scope)operator(])operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) operator(&&) ident(configuration)operator([)symbol(:scope)operator(])operator(.)ident(to_s) operator(!)operator(~) regexp reserved(if) ident(configuration)operator([)symbol(:scope)operator(])operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) ident(scope_condition_method) operator(=) stringcontent(.nil? ")inlinecontent( IS NULL" else ")inlinecontent( = )char(\\#)content({)inlinecontent(}" end end )delimiter(\))> reserved(else) ident(scope_condition_method) operator(=) stringchar(\\")content( end)delimiter(")> reserved(end) ident(class_eval) stringstringcontent( end def position_column ')inlinecontent(' end )inlinecontent( after_destroy :remove_from_list before_create :add_to_list_bottom)delimiter( EOV)> reserved(end) reserved(end) comment(# All the methods available to a record that has had acts_as_list specified. Each method works) comment(# by assuming the object to be the item in the list, so chapter.move_lower would move that chapter) comment(# lower in the list of all chapters. Likewise, chapter.first? would return true if that chapter is) comment(# the first in the list of all chapters.) reserved(module) class(InstanceMethods) reserved(def) method(insert_at)operator(()ident(position) operator(=) integer(1)operator(\)) ident(insert_at_position)operator(()ident(position)operator(\)) reserved(end) reserved(def) method(move_lower) reserved(return) reserved(unless) ident(lower_item) ident(acts_as_list_class)operator(.)ident(transaction) reserved(do) ident(lower_item)operator(.)ident(decrement_position) ident(increment_position) reserved(end) reserved(end) reserved(def) method(move_higher) reserved(return) reserved(unless) ident(higher_item) ident(acts_as_list_class)operator(.)ident(transaction) reserved(do) ident(higher_item)operator(.)ident(increment_position) ident(decrement_position) reserved(end) reserved(end) reserved(def) method(move_to_bottom) reserved(return) reserved(unless) ident(in_list?) ident(acts_as_list_class)operator(.)ident(transaction) reserved(do) ident(decrement_positions_on_lower_items) ident(assume_bottom_position) reserved(end) reserved(end) reserved(def) method(move_to_top) reserved(return) reserved(unless) ident(in_list?) ident(acts_as_list_class)operator(.)ident(transaction) reserved(do) ident(increment_positions_on_higher_items) ident(assume_top_position) reserved(end) reserved(end) reserved(def) method(remove_from_list) ident(decrement_positions_on_lower_items) reserved(if) ident(in_list?) reserved(end) reserved(def) method(increment_position) reserved(return) reserved(unless) ident(in_list?) ident(update_attribute) ident(position_column)operator(,) pre_constant(self)operator(.)ident(send)operator(()ident(position_column)operator(\))operator(.)ident(to_i) operator(+) integer(1) reserved(end) reserved(def) method(decrement_position) reserved(return) reserved(unless) ident(in_list?) ident(update_attribute) ident(position_column)operator(,) pre_constant(self)operator(.)ident(send)operator(()ident(position_column)operator(\))operator(.)ident(to_i) operator(-) integer(1) reserved(end) reserved(def) method(first?) reserved(return) pre_constant(false) reserved(unless) ident(in_list?) pre_constant(self)operator(.)ident(send)operator(()ident(position_column)operator(\)) operator(==) integer(1) reserved(end) reserved(def) method(last?) reserved(return) pre_constant(false) reserved(unless) ident(in_list?) pre_constant(self)operator(.)ident(send)operator(()ident(position_column)operator(\)) operator(==) ident(bottom_position_in_list) reserved(end) reserved(def) method(higher_item) reserved(return) pre_constant(nil) reserved(unless) ident(in_list?) ident(acts_as_list_class)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent( AND )inlinecontent( = )inlinedelimiter(")> operator(\)) reserved(end) reserved(def) method(lower_item) reserved(return) pre_constant(nil) reserved(unless) ident(in_list?) ident(acts_as_list_class)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent( AND )inlinecontent( = )inlinedelimiter(")> operator(\)) reserved(end) reserved(def) method(in_list?) operator(!)ident(send)operator(()ident(position_column)operator(\))operator(.)ident(nil?) reserved(end) ident(private) reserved(def) method(add_to_list_top) ident(increment_positions_on_all_items) reserved(end) reserved(def) method(add_to_list_bottom) pre_constant(self)operator([)ident(position_column)operator(]) operator(=) ident(bottom_position_in_list)operator(.)ident(to_i) operator(+) integer(1) reserved(end) comment(# Overwrite this method to define the scope of the list changes) reserved(def) method(scope_condition)operator(()operator(\)) string reserved(end) reserved(def) method(bottom_position_in_list)operator(()ident(except) operator(=) pre_constant(nil)operator(\)) ident(item) operator(=) ident(bottom_item)operator(()ident(except)operator(\)) ident(item) operator(?) ident(item)operator(.)ident(send)operator(()ident(position_column)operator(\)) operator(:) integer(0) reserved(end) reserved(def) method(bottom_item)operator(()ident(except) operator(=) pre_constant(nil)operator(\)) ident(conditions) operator(=) ident(scope_condition) ident(conditions) operator(=) stringcontent( AND )inlinecontent( != )inlinedelimiter(")> reserved(if) ident(except) ident(acts_as_list_class)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) ident(conditions)operator(,) symbol(:order) operator(=)operator(>) stringcontent( DESC)delimiter(")>operator(\)) reserved(end) reserved(def) method(assume_bottom_position) ident(update_attribute)operator(()ident(position_column)operator(,) ident(bottom_position_in_list)operator(()pre_constant(self)operator(\))operator(.)ident(to_i) operator(+) integer(1)operator(\)) reserved(end) reserved(def) method(assume_top_position) ident(update_attribute)operator(()ident(position_column)operator(,) integer(1)operator(\)) reserved(end) comment(# This has the effect of moving all the higher items up one.) reserved(def) method(decrement_positions_on_higher_items)operator(()ident(position)operator(\)) ident(acts_as_list_class)operator(.)ident(update_all)operator(() stringcontent( = ()inlinecontent( - 1\))delimiter(")>operator(,) stringcontent( AND )inlinecontent( <= )inlinedelimiter(")> operator(\)) reserved(end) comment(# This has the effect of moving all the lower items up one.) reserved(def) method(decrement_positions_on_lower_items) reserved(return) reserved(unless) ident(in_list?) ident(acts_as_list_class)operator(.)ident(update_all)operator(() stringcontent( = ()inlinecontent( - 1\))delimiter(")>operator(,) stringcontent( AND )inlinecontent( > )inlinedelimiter(")> operator(\)) reserved(end) comment(# This has the effect of moving all the higher items down one.) reserved(def) method(increment_positions_on_higher_items) reserved(return) reserved(unless) ident(in_list?) ident(acts_as_list_class)operator(.)ident(update_all)operator(() stringcontent( = ()inlinecontent( + 1\))delimiter(")>operator(,) stringcontent( AND )inlinecontent( < )inlinedelimiter(")> operator(\)) reserved(end) comment(# This has the effect of moving all the lower items down one.) reserved(def) method(increment_positions_on_lower_items)operator(()ident(position)operator(\)) ident(acts_as_list_class)operator(.)ident(update_all)operator(() stringcontent( = ()inlinecontent( + 1\))delimiter(")>operator(,) stringcontent( AND )inlinecontent( >= )inlinedelimiter(")> operator(\)) reserved(end) reserved(def) method(increment_positions_on_all_items) ident(acts_as_list_class)operator(.)ident(update_all)operator(() stringcontent( = ()inlinecontent( + 1\))delimiter(")>operator(,) stringdelimiter(")> operator(\)) reserved(end) reserved(def) method(insert_at_position)operator(()ident(position)operator(\)) ident(remove_from_list) ident(increment_positions_on_lower_items)operator(()ident(position)operator(\)) pre_constant(self)operator(.)ident(update_attribute)operator(()ident(position_column)operator(,) ident(position)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Acts) comment(#:nodoc:) reserved(module) class(NestedSet) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# This acts provides Nested Set functionality. Nested Set is similiar to Tree, but with) comment(# the added feature that you can select the children and all of their descendents with) comment(# a single query. A good use case for this is a threaded post system, where you want) comment(# to display every reply to a comment without multiple selects.) comment(#) comment(# A google search for "Nested Set" should point you in the direction to explain the) comment(# database theory. I figured out a bunch of this from) comment(# http://threebit.net/tutorials/nestedset/tutorial1.html) comment(#) comment(# Instead of picturing a leaf node structure with children pointing back to their parent,) comment(# the best way to imagine how this works is to think of the parent entity surrounding all) comment(# of its children, and its parent surrounding it, etc. Assuming that they are lined up) comment(# horizontally, we store the left and right boundries in the database.) comment(#) comment(# Imagine:) comment(# root) comment(# |_ Child 1) comment(# |_ Child 1.1) comment(# |_ Child 1.2) comment(# |_ Child 2) comment(# |_ Child 2.1) comment(# |_ Child 2.2) comment(#) comment(# If my cirlces in circles description didn't make sense, check out this sweet) comment(# ASCII art:) comment(#) comment(# ___________________________________________________________________) comment(# | Root |) comment(# | ____________________________ ____________________________ |) comment(# | | Child 1 | | Child 2 | |) comment(# | | __________ _________ | | __________ _________ | |) comment(# | | | C 1.1 | | C 1.2 | | | | C 2.1 | | C 2.2 | | |) comment(# 1 2 3_________4 5________6 7 8 9_________10 11_______12 13 14) comment(# | |___________________________| |___________________________| |) comment(# |___________________________________________________________________| ) comment(#) comment(# The numbers represent the left and right boundries. The table then might) comment(# look like this:) comment(# ID | PARENT | LEFT | RIGHT | DATA) comment(# 1 | 0 | 1 | 14 | root) comment(# 2 | 1 | 2 | 7 | Child 1) comment(# 3 | 2 | 3 | 4 | Child 1.1) comment(# 4 | 2 | 5 | 6 | Child 1.2) comment(# 5 | 1 | 8 | 13 | Child 2) comment(# 6 | 5 | 9 | 10 | Child 2.1) comment(# 7 | 5 | 11 | 12 | Child 2.2) comment(#) comment(# So, to get all children of an entry, you) comment(# SELECT * WHERE CHILD.LEFT IS BETWEEN PARENT.LEFT AND PARENT.RIGHT) comment(#) comment(# To get the count, it's (LEFT - RIGHT + 1\)/2, etc.) comment(#) comment(# To get the direct parent, it falls back to using the PARENT_ID field. ) comment(#) comment(# There are instance methods for all of these.) comment(#) comment(# The structure is good if you need to group things together; the downside is that) comment(# keeping data integrity is a pain, and both adding and removing an entry) comment(# require a full table write. ) comment(#) comment(# This sets up a before_destroy trigger to prune the tree correctly if one of its) comment(# elements gets deleted.) comment(#) reserved(module) class(ClassMethods) comment(# Configuration options are:) comment(#) comment(# * +parent_column+ - specifies the column name to use for keeping the position integer (default: parent_id\)) comment(# * +left_column+ - column name for left boundry data, default "lft") comment(# * +right_column+ - column name for right boundry data, default "rgt") comment(# * +scope+ - restricts what is to be considered a list. Given a symbol, it'll attach "_id" ) comment(# (if that hasn't been already\) and use that as the foreign key restriction. It's also possible ) comment(# to give it an entire string that is interpolated if you need a tighter scope than just a foreign key.) comment(# Example: acts_as_list :scope => 'todo_list_id = #{todo_list_id} AND completed = 0') reserved(def) method(acts_as_nested_set)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(configuration) operator(=) operator({) symbol(:parent_column) operator(=)operator(>) stringoperator(,) symbol(:left_column) operator(=)operator(>) stringoperator(,) symbol(:right_column) operator(=)operator(>) stringoperator(,) symbol(:scope) operator(=)operator(>) string operator(}) ident(configuration)operator(.)ident(update)operator(()ident(options)operator(\)) reserved(if) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(configuration)operator([)symbol(:scope)operator(]) operator(=) stringcontent(_id)delimiter(")>operator(.)ident(intern) reserved(if) ident(configuration)operator([)symbol(:scope)operator(])operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) operator(&&) ident(configuration)operator([)symbol(:scope)operator(])operator(.)ident(to_s) operator(!)operator(~) regexp reserved(if) ident(configuration)operator([)symbol(:scope)operator(])operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) ident(scope_condition_method) operator(=) stringcontent(.nil? ")inlinecontent( IS NULL" else ")inlinecontent( = )char(\\#)content({)inlinecontent(}" end end )delimiter(\))> reserved(else) ident(scope_condition_method) operator(=) stringchar(\\")content( end)delimiter(")> reserved(end) ident(class_eval) stringstringcontent( def left_col_name(\) ")inlinecontent(" end def right_col_name(\) ")inlinecontent(" end def parent_column(\) ")inlinecontent(" end )delimiter( EOV)> reserved(end) reserved(end) reserved(module) class(InstanceMethods) comment(# Returns true is this is a root node. ) reserved(def) method(root?) ident(parent_id) operator(=) pre_constant(self)operator([)ident(parent_column)operator(]) operator(()ident(parent_id) operator(==) integer(0) operator(||) ident(parent_id)operator(.)ident(nil?)operator(\)) operator(&&) operator(()pre_constant(self)operator([)ident(left_col_name)operator(]) operator(==) integer(1)operator(\)) operator(&&) operator(()pre_constant(self)operator([)ident(right_col_name)operator(]) operator(>) pre_constant(self)operator([)ident(left_col_name)operator(])operator(\)) reserved(end) comment(# Returns true is this is a child node) reserved(def) method(child?) ident(parent_id) operator(=) pre_constant(self)operator([)ident(parent_column)operator(]) operator(!)operator(()ident(parent_id) operator(==) integer(0) operator(||) ident(parent_id)operator(.)ident(nil?)operator(\)) operator(&&) operator(()pre_constant(self)operator([)ident(left_col_name)operator(]) operator(>) integer(1)operator(\)) operator(&&) operator(()pre_constant(self)operator([)ident(right_col_name)operator(]) operator(>) pre_constant(self)operator([)ident(left_col_name)operator(])operator(\)) reserved(end) comment(# Returns true if we have no idea what this is) reserved(def) method(unknown?) operator(!)ident(root?) operator(&&) operator(!)ident(child?) reserved(end) comment(# Adds a child to this object in the tree. If this object hasn't been initialized,) comment(# it gets set up as a root node. Otherwise, this method will update all of the) comment(# other elements in the tree and shift them to the right, keeping everything) comment(# balanced. ) reserved(def) method(add_child)operator(() ident(child) operator(\)) pre_constant(self)operator(.)ident(reload) ident(child)operator(.)ident(reload) reserved(if) ident(child)operator(.)ident(root?) ident(raise) string reserved(else) reserved(if) operator(() operator(()pre_constant(self)operator([)ident(left_col_name)operator(]) operator(==) pre_constant(nil)operator(\)) operator(||) operator(()pre_constant(self)operator([)ident(right_col_name)operator(]) operator(==) pre_constant(nil)operator(\)) operator(\)) comment(# Looks like we're now the root node! Woo) pre_constant(self)operator([)ident(left_col_name)operator(]) operator(=) integer(1) pre_constant(self)operator([)ident(right_col_name)operator(]) operator(=) integer(4) comment(# What do to do about validation?) reserved(return) pre_constant(nil) reserved(unless) pre_constant(self)operator(.)ident(save) ident(child)operator([)ident(parent_column)operator(]) operator(=) pre_constant(self)operator(.)ident(id) ident(child)operator([)ident(left_col_name)operator(]) operator(=) integer(2) ident(child)operator([)ident(right_col_name)operator(])operator(=) integer(3) reserved(return) ident(child)operator(.)ident(save) reserved(else) comment(# OK, we need to add and shift everything else to the right) ident(child)operator([)ident(parent_column)operator(]) operator(=) pre_constant(self)operator(.)ident(id) ident(right_bound) operator(=) pre_constant(self)operator([)ident(right_col_name)operator(]) ident(child)operator([)ident(left_col_name)operator(]) operator(=) ident(right_bound) ident(child)operator([)ident(right_col_name)operator(]) operator(=) ident(right_bound) operator(+) integer(1) pre_constant(self)operator([)ident(right_col_name)operator(]) operator(+=) integer(2) pre_constant(self)operator(.)ident(class)operator(.)ident(transaction) operator({) pre_constant(self)operator(.)ident(class)operator(.)ident(update_all)operator(() stringcontent( = ()inlinecontent( + 2\))delimiter(")>operator(,) stringcontent( AND )inlinecontent( >= )inlinedelimiter(")> operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(update_all)operator(() stringcontent( = ()inlinecontent( + 2\))delimiter(")>operator(,) stringcontent( AND )inlinecontent( >= )inlinedelimiter(")> operator(\)) pre_constant(self)operator(.)ident(save) ident(child)operator(.)ident(save) operator(}) reserved(end) reserved(end) reserved(end) comment(# Returns the number of nested children of this object.) reserved(def) method(children_count) reserved(return) operator(()pre_constant(self)operator([)ident(right_col_name)operator(]) operator(-) pre_constant(self)operator([)ident(left_col_name)operator(]) operator(-) integer(1)operator(\))operator(/)integer(2) reserved(end) comment(# Returns a set of itself and all of its nested children) reserved(def) method(full_set) pre_constant(self)operator(.)ident(class)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent( AND ()inlinecontent( BETWEEN )inlinecontent( and )inlinecontent(\))delimiter(")> operator(\)) reserved(end) comment(# Returns a set of all of its children and nested children) reserved(def) method(all_children) pre_constant(self)operator(.)ident(class)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent( AND ()inlinecontent( > )inlinecontent(\) and ()inlinecontent( < )inlinecontent(\))delimiter(")> operator(\)) reserved(end) comment(# Returns a set of only this entry's immediate children) reserved(def) method(direct_children) pre_constant(self)operator(.)ident(class)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent( and )inlinecontent( = )inlinedelimiter(")>operator(\)) reserved(end) comment(# Prunes a branch off of the tree, shifting all of the elements on the right) comment(# back to the left so the counts still work.) reserved(def) method(before_destroy) reserved(return) reserved(if) pre_constant(self)operator([)ident(right_col_name)operator(])operator(.)ident(nil?) operator(||) pre_constant(self)operator([)ident(left_col_name)operator(])operator(.)ident(nil?) ident(dif) operator(=) pre_constant(self)operator([)ident(right_col_name)operator(]) operator(-) pre_constant(self)operator([)ident(left_col_name)operator(]) operator(+) integer(1) pre_constant(self)operator(.)ident(class)operator(.)ident(transaction) operator({) pre_constant(self)operator(.)ident(class)operator(.)ident(delete_all)operator(() stringcontent( and )inlinecontent( > )inlinecontent( and )inlinecontent( < )inlinedelimiter(")> operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(update_all)operator(() stringcontent( = ()inlinecontent( - )inlinecontent(\))delimiter(")>operator(,) stringcontent( AND )inlinecontent( >= )inlinedelimiter(")> operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(update_all)operator(() stringcontent( = ()inlinecontent( - )inlinecontent( \))delimiter(")>operator(,) stringcontent( AND )inlinecontent( >= )inlinedelimiter(")> operator(\)) operator(}) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Acts) comment(#:nodoc:) reserved(module) class(Tree) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# Specify this act if you want to model a tree structure by providing a parent association and a children ) comment(# association. This act requires that you have a foreign key column, which by default is called parent_id.) comment(# ) comment(# class Category < ActiveRecord::Base) comment(# acts_as_tree :order => "name") comment(# end) comment(# ) comment(# Example : ) comment(# root) comment(# \\_ child1 ) comment(# \\_ subchild1) comment(# \\_ subchild2) comment(#) comment(# root = Category.create("name" => "root"\)) comment(# child1 = root.children.create("name" => "child1"\)) comment(# subchild1 = child1.children.create("name" => "subchild1"\)) comment(#) comment(# root.parent # => nil) comment(# child1.parent # => root) comment(# root.children # => [child1]) comment(# root.children.first.children.first # => subchild1) comment(#) comment(# In addition to the parent and children associations, the following instance methods are added to the class ) comment(# after specifying the act:) comment(# * siblings : Returns all the children of the parent, excluding the current node ([ subchild2 ] when called from subchild1\)) comment(# * self_and_siblings : Returns all the children of the parent, including the current node ([ subchild1, subchild2 ] when called from subchild1\)) comment(# * ancestors : Returns all the ancestors of the current node ([child1, root] when called from subchild2\)) comment(# * root : Returns the root of the current node (root when called from subchild2\)) reserved(module) class(ClassMethods) comment(# Configuration options are:) comment(#) comment(# * foreign_key - specifies the column name to use for tracking of the tree (default: parent_id\)) comment(# * order - makes it possible to sort the children according to this SQL snippet.) comment(# * counter_cache - keeps a count in a children_count column if set to true (default: false\).) reserved(def) method(acts_as_tree)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(configuration) operator(=) operator({) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) pre_constant(nil)operator(,) symbol(:counter_cache) operator(=)operator(>) pre_constant(nil) operator(}) ident(configuration)operator(.)ident(update)operator(()ident(options)operator(\)) reserved(if) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(belongs_to) symbol(:parent)operator(,) symbol(:class_name) operator(=)operator(>) ident(name)operator(,) symbol(:foreign_key) operator(=)operator(>) ident(configuration)operator([)symbol(:foreign_key)operator(])operator(,) symbol(:counter_cache) operator(=)operator(>) ident(configuration)operator([)symbol(:counter_cache)operator(]) ident(has_many) symbol(:children)operator(,) symbol(:class_name) operator(=)operator(>) ident(name)operator(,) symbol(:foreign_key) operator(=)operator(>) ident(configuration)operator([)symbol(:foreign_key)operator(])operator(,) symbol(:order) operator(=)operator(>) ident(configuration)operator([)symbol(:order)operator(])operator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy) ident(class_eval) stringstring ")inlinecontent( IS NULL", :order => )inline operator(:) stringcontent(")delimiter(})>inline_delimiter(})>content(\) end def self.root find(:first, :conditions => ")inlinecontent( IS NULL", :order => )inline operator(:) stringcontent(")delimiter(})>inline_delimiter(})>content(\) end)delimiter( EOV)> reserved(end) reserved(end) reserved(module) class(InstanceMethods) comment(# Returns list of ancestors, starting from parent until root.) comment(#) comment(# subchild1.ancestors # => [child1, root]) reserved(def) method(ancestors) ident(node)operator(,) ident(nodes) operator(=) pre_constant(self)operator(,) operator([)operator(]) ident(nodes) operator(<<) ident(node) operator(=) ident(node)operator(.)ident(parent) reserved(until) reserved(not) ident(node)operator(.)ident(has_parent?) ident(nodes) reserved(end) reserved(def) method(root) ident(node) operator(=) pre_constant(self) ident(node) operator(=) ident(node)operator(.)ident(parent) reserved(until) reserved(not) ident(node)operator(.)ident(has_parent?) ident(node) reserved(end) reserved(def) method(siblings) ident(self_and_siblings) operator(-) operator([)pre_constant(self)operator(]) reserved(end) reserved(def) method(self_and_siblings) ident(has_parent?) operator(?) ident(parent)operator(.)ident(children) operator(:) pre_constant(self)operator(.)ident(class)operator(.)ident(roots) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Aggregations) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) reserved(def) method(clear_aggregation_cache) comment(#:nodoc:) pre_constant(self)operator(.)ident(class)operator(.)ident(reflect_on_all_aggregations)operator(.)ident(to_a)operator(.)ident(each) reserved(do) operator(|)ident(assoc)operator(|) ident(instance_variable_set) stringdelimiter(")>operator(,) pre_constant(nil) reserved(end) reserved(unless) pre_constant(self)operator(.)ident(new_record?) reserved(end) comment(# Active Record implements aggregation through a macro-like class method called +composed_of+ for representing attributes ) comment(# as value objects. It expresses relationships like "Account [is] composed of Money [among other things]" or "Person [is]) comment(# composed of [an] address". Each call to the macro adds a description of how the value objects are created from the ) comment(# attributes of the entity object (when the entity is initialized either as a new object or from finding an existing object\) ) comment(# and how it can be turned back into attributes (when the entity is saved to the database\). Example:) comment(#) comment(# class Customer < ActiveRecord::Base) comment(# composed_of :balance, :class_name => "Money", :mapping => %w(balance amount\)) comment(# composed_of :address, :mapping => [ %w(address_street street\), %w(address_city city\) ]) comment(# end) comment(#) comment(# The customer class now has the following methods to manipulate the value objects:) comment(# * Customer#balance, Customer#balance=(money\)) comment(# * Customer#address, Customer#address=(address\)) comment(#) comment(# These methods will operate with value objects like the ones described below:) comment(#) comment(# class Money) comment(# include Comparable) comment(# attr_reader :amount, :currency) comment(# EXCHANGE_RATES = { "USD_TO_DKK" => 6 } ) comment(# ) comment(# def initialize(amount, currency = "USD"\) ) comment(# @amount, @currency = amount, currency ) comment(# end) comment(#) comment(# def exchange_to(other_currency\)) comment(# exchanged_amount = (amount * EXCHANGE_RATES["#{currency}_TO_#{other_currency}"]\).floor) comment(# Money.new(exchanged_amount, other_currency\)) comment(# end) comment(#) comment(# def ==(other_money\)) comment(# amount == other_money.amount && currency == other_money.currency) comment(# end) comment(#) comment(# def <=>(other_money\)) comment(# if currency == other_money.currency) comment(# amount <=> amount) comment(# else) comment(# amount <=> other_money.exchange_to(currency\).amount) comment(# end) comment(# end) comment(# end) comment(#) comment(# class Address) comment(# attr_reader :street, :city) comment(# def initialize(street, city\) ) comment(# @street, @city = street, city ) comment(# end) comment(#) comment(# def close_to?(other_address\) ) comment(# city == other_address.city ) comment(# end) comment(#) comment(# def ==(other_address\)) comment(# city == other_address.city && street == other_address.street) comment(# end) comment(# end) comment(# ) comment(# Now it's possible to access attributes from the database through the value objects instead. If you choose to name the) comment(# composition the same as the attributes name, it will be the only way to access that attribute. That's the case with our) comment(# +balance+ attribute. You interact with the value objects just like you would any other attribute, though:) comment(#) comment(# customer.balance = Money.new(20\) # sets the Money value object and the attribute) comment(# customer.balance # => Money value object) comment(# customer.balance.exchanged_to("DKK"\) # => Money.new(120, "DKK"\)) comment(# customer.balance > Money.new(10\) # => true) comment(# customer.balance == Money.new(20\) # => true) comment(# customer.balance < Money.new(5\) # => false) comment(#) comment(# Value objects can also be composed of multiple attributes, such as the case of Address. The order of the mappings will) comment(# determine the order of the parameters. Example:) comment(#) comment(# customer.address_street = "Hyancintvej") comment(# customer.address_city = "Copenhagen") comment(# customer.address # => Address.new("Hyancintvej", "Copenhagen"\)) comment(# customer.address = Address.new("May Street", "Chicago"\)) comment(# customer.address_street # => "May Street" ) comment(# customer.address_city # => "Chicago" ) comment(#) comment(# == Writing value objects) comment(#) comment(# Value objects are immutable and interchangeable objects that represent a given value, such as a Money object representing) comment(# $5. Two Money objects both representing $5 should be equal (through methods such as == and <=> from Comparable if ranking) comment(# makes sense\). This is unlike entity objects where equality is determined by identity. An entity class such as Customer can) comment(# easily have two different objects that both have an address on Hyancintvej. Entity identity is determined by object or) comment(# relational unique identifiers (such as primary keys\). Normal ActiveRecord::Base classes are entity objects.) comment(#) comment(# It's also important to treat the value objects as immutable. Don't allow the Money object to have its amount changed after) comment(# creation. Create a new money object with the new value instead. This is exemplified by the Money#exchanged_to method that) comment(# returns a new value object instead of changing its own values. Active Record won't persist value objects that have been) comment(# changed through other means than the writer method.) comment(#) comment(# The immutable requirement is enforced by Active Record by freezing any object assigned as a value object. Attempting to ) comment(# change it afterwards will result in a TypeError.) comment(# ) comment(# Read more about value objects on http://c2.com/cgi/wiki?ValueObject and on the dangers of not keeping value objects) comment(# immutable on http://c2.com/cgi/wiki?ValueObjectsShouldBeImmutable) reserved(module) class(ClassMethods) comment(# Adds the a reader and writer method for manipulating a value object, so) comment(# composed_of :address would add address and address=(new_address\).) comment(#) comment(# Options are:) comment(# * :class_name - specify the class name of the association. Use it only if that name can't be inferred) comment(# from the part id. So composed_of :address will by default be linked to the +Address+ class, but) comment(# if the real class name is +CompanyAddress+, you'll have to specify it with this option.) comment(# * :mapping - specifies a number of mapping arrays (attribute, parameter\) that bind an attribute name) comment(# to a constructor parameter on the value class.) comment(#) comment(# Option examples:) comment(# composed_of :temperature, :mapping => %w(reading celsius\)) comment(# composed_of :balance, :class_name => "Money", :mapping => %w(balance amount\)) comment(# composed_of :address, :mapping => [ %w(address_street street\), %w(address_city city\) ]) comment(# composed_of :gps_location) reserved(def) method(composed_of)operator(()ident(part_id)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator(.)ident(assert_valid_keys)operator(()symbol(:class_name)operator(,) symbol(:mapping)operator(\)) ident(name) operator(=) ident(part_id)operator(.)ident(id2name) ident(class_name) operator(=) ident(options)operator([)symbol(:class_name)operator(]) operator(||) ident(name_to_class_name)operator(()ident(name)operator(\)) ident(mapping) operator(=) ident(options)operator([)symbol(:mapping)operator(]) operator(||) operator([) ident(name)operator(,) ident(name) operator(]) ident(reader_method)operator(()ident(name)operator(,) ident(class_name)operator(,) ident(mapping)operator(\)) ident(writer_method)operator(()ident(name)operator(,) ident(class_name)operator(,) ident(mapping)operator(\)) ident(create_reflection)operator(()symbol(:composed_of)operator(,) ident(part_id)operator(,) ident(options)operator(,) pre_constant(self)operator(\)) reserved(end) ident(private) reserved(def) method(name_to_class_name)operator(()ident(name)operator(\)) ident(name)operator(.)ident(capitalize)operator(.)ident(gsub)operator(()regexpoperator(\)) operator({) operator(|)ident(s)operator(|) global_variable($1)operator(.)ident(capitalize) operator(}) reserved(end) reserved(def) method(reader_method)operator(()ident(name)operator(,) ident(class_name)operator(,) ident(mapping)operator(\)) ident(module_eval) stringstringcontent((force_reload = false\) if @)inlinecontent(.nil? || force_reload @)inlinecontent( = )inlinecontent(.new()inlinechar(\\")content(\))delimiter(")>operator(})operator(.)ident(join)operator(()stringoperator(\))inline_delimiter(})>content(\) end return @)inlinecontent( end)delimiter( end_eval)> reserved(end) reserved(def) method(writer_method)operator(()ident(name)operator(,) ident(class_name)operator(,) ident(mapping)operator(\)) ident(module_eval) stringstringcontent(=(part\) @)inlinecontent( = part.freeze )inlinechar(\\")content(] = part.)inlinedelimiter(")> operator(})operator(.)ident(join)operator(()stringoperator(\))inline_delimiter(})>content( end)delimiter( end_eval)> reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveRecord) reserved(module) class(Associations) reserved(class) class(AssociationCollection) operator(<) constant(AssociationProxy) comment(#:nodoc:) reserved(def) method(to_ary) ident(load_target) instance_variable(@target)operator(.)ident(to_ary) reserved(end) reserved(def) method(reset) instance_variable(@target) operator(=) operator([)operator(]) instance_variable(@loaded) operator(=) pre_constant(false) reserved(end) comment(# Add +records+ to this association. Returns +self+ so method calls may be chained. ) comment(# Since << flattens its argument list and inserts each record, +push+ and +concat+ behave identically.) reserved(def) method(<<)operator(()operator(*)ident(records)operator(\)) ident(result) operator(=) pre_constant(true) ident(load_target) instance_variable(@owner)operator(.)ident(transaction) reserved(do) ident(flatten_deeper)operator(()ident(records)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(record)operator(|) ident(raise_on_type_mismatch)operator(()ident(record)operator(\)) ident(callback)operator(()symbol(:before_add)operator(,) ident(record)operator(\)) ident(result) operator(&&=) ident(insert_record)operator(()ident(record)operator(\)) reserved(unless) instance_variable(@owner)operator(.)ident(new_record?) instance_variable(@target) operator(<<) ident(record) ident(callback)operator(()symbol(:after_add)operator(,) ident(record)operator(\)) reserved(end) reserved(end) ident(result) operator(&&) pre_constant(self) reserved(end) ident(alias_method) symbol(:push)operator(,) symbol(:<<) ident(alias_method) symbol(:concat)operator(,) symbol(:<<) comment(# Remove all records from this association) reserved(def) method(delete_all) ident(load_target) ident(delete)operator(()instance_variable(@target)operator(\)) instance_variable(@target) operator(=) operator([)operator(]) reserved(end) comment(# Remove +records+ from this association. Does not destroy +records+.) reserved(def) method(delete)operator(()operator(*)ident(records)operator(\)) ident(records) operator(=) ident(flatten_deeper)operator(()ident(records)operator(\)) ident(records)operator(.)ident(each) operator({) operator(|)ident(record)operator(|) ident(raise_on_type_mismatch)operator(()ident(record)operator(\)) operator(}) ident(records)operator(.)ident(reject!) operator({) operator(|)ident(record)operator(|) instance_variable(@target)operator(.)ident(delete)operator(()ident(record)operator(\)) reserved(if) ident(record)operator(.)ident(new_record?) operator(}) reserved(return) reserved(if) ident(records)operator(.)ident(empty?) instance_variable(@owner)operator(.)ident(transaction) reserved(do) ident(records)operator(.)ident(each) operator({) operator(|)ident(record)operator(|) ident(callback)operator(()symbol(:before_remove)operator(,) ident(record)operator(\)) operator(}) ident(delete_records)operator(()ident(records)operator(\)) ident(records)operator(.)ident(each) reserved(do) operator(|)ident(record)operator(|) instance_variable(@target)operator(.)ident(delete)operator(()ident(record)operator(\)) ident(callback)operator(()symbol(:after_remove)operator(,) ident(record)operator(\)) reserved(end) reserved(end) reserved(end) comment(# Removes all records from this association. Returns +self+ so method calls may be chained.) reserved(def) method(clear) reserved(return) pre_constant(self) reserved(if) ident(length)operator(.)ident(zero?) comment(# forces load_target if hasn't happened already) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:dependent)operator(]) operator(&&) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:dependent)operator(]) operator(==) symbol(:delete_all) ident(destroy_all) reserved(else) ident(delete_all) reserved(end) pre_constant(self) reserved(end) reserved(def) method(destroy_all) instance_variable(@owner)operator(.)ident(transaction) reserved(do) ident(each) operator({) operator(|)ident(record)operator(|) ident(record)operator(.)ident(destroy) operator(}) reserved(end) instance_variable(@target) operator(=) operator([)operator(]) reserved(end) reserved(def) method(create)operator(()ident(attributes) operator(=) operator({)operator(})operator(\)) comment(# Can't use Base.create since the foreign key may be a protected attribute.) reserved(if) ident(attributes)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(attributes)operator(.)ident(collect) operator({) operator(|)ident(attr)operator(|) ident(create)operator(()ident(attr)operator(\)) operator(}) reserved(else) ident(record) operator(=) ident(build)operator(()ident(attributes)operator(\)) ident(record)operator(.)ident(save) reserved(unless) instance_variable(@owner)operator(.)ident(new_record?) ident(record) reserved(end) reserved(end) comment(# Returns the size of the collection by executing a SELECT COUNT(*\) query if the collection hasn't been loaded and) comment(# calling collection.size if it has. If it's more likely than not that the collection does have a size larger than zero) comment(# and you need to fetch that collection afterwards, it'll take one less SELECT query if you use length.) reserved(def) method(size) reserved(if) ident(loaded?) reserved(then) instance_variable(@target)operator(.)ident(size) reserved(else) ident(count_records) reserved(end) reserved(end) comment(# Returns the size of the collection by loading it and calling size on the array. If you want to use this method to check) comment(# whether the collection is empty, use collection.length.zero? instead of collection.empty?) reserved(def) method(length) ident(load_target)operator(.)ident(size) reserved(end) reserved(def) method(empty?) ident(size)operator(.)ident(zero?) reserved(end) reserved(def) method(uniq)operator(()ident(collection) operator(=) pre_constant(self)operator(\)) ident(collection)operator(.)ident(inject)operator(()operator([)operator(])operator(\)) operator({) operator(|)ident(uniq_records)operator(,) ident(record)operator(|) ident(uniq_records) operator(<<) ident(record) reserved(unless) ident(uniq_records)operator(.)ident(include?)operator(()ident(record)operator(\))operator(;) ident(uniq_records) operator(}) reserved(end) comment(# Replace this collection with +other_array+) comment(# This will perform a diff and delete/add only records that have changed.) reserved(def) method(replace)operator(()ident(other_array)operator(\)) ident(other_array)operator(.)ident(each) operator({) operator(|)ident(val)operator(|) ident(raise_on_type_mismatch)operator(()ident(val)operator(\)) operator(}) ident(load_target) ident(other) operator(=) ident(other_array)operator(.)ident(size) operator(<) integer(100) operator(?) ident(other_array) operator(:) ident(other_array)operator(.)ident(to_set) ident(current) operator(=) instance_variable(@target)operator(.)ident(size) operator(<) integer(100) operator(?) instance_variable(@target) operator(:) instance_variable(@target)operator(.)ident(to_set) instance_variable(@owner)operator(.)ident(transaction) reserved(do) ident(delete)operator(()instance_variable(@target)operator(.)ident(select) operator({) operator(|)ident(v)operator(|) operator(!)ident(other)operator(.)ident(include?)operator(()ident(v)operator(\)) operator(})operator(\)) ident(concat)operator(()ident(other_array)operator(.)ident(select) operator({) operator(|)ident(v)operator(|) operator(!)ident(current)operator(.)ident(include?)operator(()ident(v)operator(\)) operator(})operator(\)) reserved(end) reserved(end) ident(private) comment(# Array#flatten has problems with recursive arrays. Going one level deeper solves the majority of the problems.) reserved(def) method(flatten_deeper)operator(()ident(array)operator(\)) ident(array)operator(.)ident(collect) operator({) operator(|)ident(element)operator(|) ident(element)operator(.)ident(respond_to?)operator(()symbol(:flatten)operator(\)) operator(?) ident(element)operator(.)ident(flatten) operator(:) ident(element) operator(})operator(.)ident(flatten) reserved(end) reserved(def) method(callback)operator(()ident(method)operator(,) ident(record)operator(\)) ident(callbacks_for)operator(()ident(method)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(callback)operator(|) reserved(case) ident(callback) reserved(when) constant(Symbol) instance_variable(@owner)operator(.)ident(send)operator(()ident(callback)operator(,) ident(record)operator(\)) reserved(when) constant(Proc)operator(,) constant(Method) ident(callback)operator(.)ident(call)operator(()instance_variable(@owner)operator(,) ident(record)operator(\)) reserved(else) reserved(if) ident(callback)operator(.)ident(respond_to?)operator(()ident(method)operator(\)) ident(callback)operator(.)ident(send)operator(()ident(method)operator(,) instance_variable(@owner)operator(,) ident(record)operator(\)) reserved(else) ident(raise) constant(ActiveRecordError)operator(,) string reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) method(callbacks_for)operator(()ident(callback_name)operator(\)) ident(full_callback_name) operator(=) stringcontent(_for_)inlinedelimiter(")> instance_variable(@owner)operator(.)ident(class)operator(.)ident(read_inheritable_attribute)operator(()ident(full_callback_name)operator(.)ident(to_sym)operator(\)) operator(||) operator([)operator(]) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Associations) reserved(class) class(AssociationProxy) comment(#:nodoc:) ident(attr_reader) symbol(:reflection) ident(alias_method) symbol(:proxy_respond_to?)operator(,) symbol(:respond_to?) ident(alias_method) symbol(:proxy_extend)operator(,) symbol(:extend) ident(instance_methods)operator(.)ident(each) operator({) operator(|)ident(m)operator(|) ident(undef_method) ident(m) reserved(unless) ident(m) operator(=)operator(~) regexp operator(}) reserved(def) method(initialize)operator(()ident(owner)operator(,) ident(reflection)operator(\)) instance_variable(@owner)operator(,) instance_variable(@reflection) operator(=) ident(owner)operator(,) ident(reflection) ident(proxy_extend)operator(()ident(reflection)operator(.)ident(options)operator([)symbol(:extend)operator(])operator(\)) reserved(if) ident(reflection)operator(.)ident(options)operator([)symbol(:extend)operator(]) ident(reset) reserved(end) reserved(def) method(respond_to?)operator(()ident(symbol)operator(,) ident(include_priv) operator(=) pre_constant(false)operator(\)) ident(proxy_respond_to?)operator(()ident(symbol)operator(,) ident(include_priv)operator(\)) operator(||) operator(()ident(load_target) operator(&&) instance_variable(@target)operator(.)ident(respond_to?)operator(()ident(symbol)operator(,) ident(include_priv)operator(\))operator(\)) reserved(end) comment(# Explicitly proxy === because the instance method removal above) comment(# doesn't catch it.) reserved(def) method(===)operator(()ident(other)operator(\)) ident(load_target) ident(other) operator(===) instance_variable(@target) reserved(end) reserved(def) method(aliased_table_name) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(table_name) reserved(end) reserved(def) method(conditions) instance_variable(@conditions) operator(||=) ident(eval)operator(()stringcontent(\))delimiter(")>operator(\)) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(]) reserved(end) reserved(alias) symbol(:sql_conditions) symbol(:conditions) reserved(def) method(reset) instance_variable(@target) operator(=) pre_constant(nil) instance_variable(@loaded) operator(=) pre_constant(false) reserved(end) reserved(def) method(reload) ident(reset) ident(load_target) reserved(end) reserved(def) method(loaded?) instance_variable(@loaded) reserved(end) reserved(def) method(loaded) instance_variable(@loaded) operator(=) pre_constant(true) reserved(end) reserved(def) method(target) instance_variable(@target) reserved(end) reserved(def) method(target=)operator(()ident(target)operator(\)) instance_variable(@target) operator(=) ident(target) ident(loaded) reserved(end) ident(protected) reserved(def) method(dependent?) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:dependent)operator(]) operator(||) pre_constant(false) reserved(end) reserved(def) method(quoted_record_ids)operator(()ident(records)operator(\)) ident(records)operator(.)ident(map) operator({) operator(|)ident(record)operator(|) ident(record)operator(.)ident(quoted_id) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(interpolate_sql_options!)operator(()ident(options)operator(,) operator(*)ident(keys)operator(\)) ident(keys)operator(.)ident(each) operator({) operator(|)ident(key)operator(|) ident(options)operator([)ident(key)operator(]) operator(&&=) ident(interpolate_sql)operator(()ident(options)operator([)ident(key)operator(])operator(\)) operator(}) reserved(end) reserved(def) method(interpolate_sql)operator(()ident(sql)operator(,) ident(record) operator(=) pre_constant(nil)operator(\)) instance_variable(@owner)operator(.)ident(send)operator(()symbol(:interpolate_sql)operator(,) ident(sql)operator(,) ident(record)operator(\)) reserved(end) reserved(def) method(sanitize_sql)operator(()ident(sql)operator(\)) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(send)operator(()symbol(:sanitize_sql)operator(,) ident(sql)operator(\)) reserved(end) reserved(def) method(extract_options_from_args!)operator(()ident(args)operator(\)) instance_variable(@owner)operator(.)ident(send)operator(()symbol(:extract_options_from_args!)operator(,) ident(args)operator(\)) reserved(end) reserved(def) method(set_belongs_to_association_for)operator(()ident(record)operator(\)) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) ident(record)operator([)stringcontent(_id)delimiter(")>operator(]) operator(=) instance_variable(@owner)operator(.)ident(id) reserved(unless) instance_variable(@owner)operator(.)ident(new_record?) ident(record)operator([)stringcontent(_type)delimiter(")>operator(]) operator(=) instance_variable(@owner)operator(.)ident(class)operator(.)ident(base_class)operator(.)ident(name)operator(.)ident(to_s) reserved(else) ident(record)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(]) operator(=) instance_variable(@owner)operator(.)ident(id) reserved(unless) instance_variable(@owner)operator(.)ident(new_record?) reserved(end) reserved(end) reserved(def) method(merge_options_from_reflection!)operator(()ident(options)operator(\)) ident(options)operator(.)ident(reverse_merge!)operator(() symbol(:group) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:group)operator(])operator(,) symbol(:limit) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:limit)operator(])operator(,) symbol(:offset) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:offset)operator(])operator(,) symbol(:joins) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:joins)operator(])operator(,) symbol(:include) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:include)operator(])operator(,) symbol(:select) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:select)operator(]) operator(\)) reserved(end) ident(private) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(load_target) instance_variable(@target)operator(.)ident(send)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(load_target) reserved(if) operator(!)instance_variable(@owner)operator(.)ident(new_record?) operator(||) ident(foreign_key_present) reserved(begin) instance_variable(@target) operator(=) ident(find_target) reserved(if) operator(!)ident(loaded?) reserved(rescue) constant(ActiveRecord)operator(::)constant(RecordNotFound) ident(reset) reserved(end) reserved(end) ident(loaded) reserved(if) ident(target) ident(target) reserved(end) comment(# Can be overwritten by associations that might have the foreign key available for an association without) comment(# having the object itself (and still being a new record\). Currently, only belongs_to present this scenario.) reserved(def) method(foreign_key_present) pre_constant(false) reserved(end) reserved(def) method(raise_on_type_mismatch)operator(()ident(record)operator(\)) reserved(unless) ident(record)operator(.)ident(is_a?)operator(()instance_variable(@reflection)operator(.)ident(klass)operator(\)) ident(raise) constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(,) stringcontent( expected, got )inlinedelimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Associations) reserved(class) class(BelongsToAssociation) operator(<) constant(AssociationProxy) comment(#:nodoc:) reserved(def) method(create)operator(()ident(attributes) operator(=) operator({)operator(})operator(\)) ident(replace)operator(()instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(create)operator(()ident(attributes)operator(\))operator(\)) reserved(end) reserved(def) method(build)operator(()ident(attributes) operator(=) operator({)operator(})operator(\)) ident(replace)operator(()instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(new)operator(()ident(attributes)operator(\))operator(\)) reserved(end) reserved(def) method(replace)operator(()ident(record)operator(\)) ident(counter_cache_name) operator(=) instance_variable(@reflection)operator(.)ident(counter_cache_column) reserved(if) ident(record)operator(.)ident(nil?) reserved(if) ident(counter_cache_name) operator(&&) instance_variable(@owner)operator([)ident(counter_cache_name)operator(]) operator(&&) operator(!)instance_variable(@owner)operator(.)ident(new_record?) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(decrement_counter)operator(()ident(counter_cache_name)operator(,) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(])operator(\)) reserved(if) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(]) reserved(end) instance_variable(@target) operator(=) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(]) operator(=) pre_constant(nil) reserved(else) ident(raise_on_type_mismatch)operator(()ident(record)operator(\)) reserved(if) ident(counter_cache_name) operator(&&) operator(!)instance_variable(@owner)operator(.)ident(new_record?) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(increment_counter)operator(()ident(counter_cache_name)operator(,) ident(record)operator(.)ident(id)operator(\)) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(decrement_counter)operator(()ident(counter_cache_name)operator(,) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(])operator(\)) reserved(if) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(]) reserved(end) instance_variable(@target) operator(=) operator(()constant(AssociationProxy) operator(===) ident(record) operator(?) ident(record)operator(.)ident(target) operator(:) ident(record)operator(\)) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(]) operator(=) ident(record)operator(.)ident(id) reserved(unless) ident(record)operator(.)ident(new_record?) instance_variable(@updated) operator(=) pre_constant(true) reserved(end) ident(loaded) ident(record) reserved(end) reserved(def) method(updated?) instance_variable(@updated) reserved(end) ident(private) reserved(def) method(find_target) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find)operator(() instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(])operator(,) symbol(:conditions) operator(=)operator(>) ident(conditions)operator(,) symbol(:include) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:include)operator(]) operator(\)) reserved(end) reserved(def) method(foreign_key_present) operator(!)instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(])operator(.)ident(nil?) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Associations) reserved(class) class(BelongsToPolymorphicAssociation) operator(<) constant(AssociationProxy) comment(#:nodoc:) reserved(def) method(replace)operator(()ident(record)operator(\)) reserved(if) ident(record)operator(.)ident(nil?) instance_variable(@target) operator(=) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(]) operator(=) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:foreign_type)operator(])operator(]) operator(=) pre_constant(nil) reserved(else) instance_variable(@target) operator(=) operator(()constant(AssociationProxy) operator(===) ident(record) operator(?) ident(record)operator(.)ident(target) operator(:) ident(record)operator(\)) reserved(unless) ident(record)operator(.)ident(new_record?) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(]) operator(=) ident(record)operator(.)ident(id) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:foreign_type)operator(])operator(]) operator(=) ident(record)operator(.)ident(class)operator(.)ident(base_class)operator(.)ident(name)operator(.)ident(to_s) reserved(end) instance_variable(@updated) operator(=) pre_constant(true) reserved(end) ident(loaded) ident(record) reserved(end) reserved(def) method(updated?) instance_variable(@updated) reserved(end) ident(private) reserved(def) method(find_target) reserved(return) pre_constant(nil) reserved(if) ident(association_class)operator(.)ident(nil?) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(]) ident(association_class)operator(.)ident(find)operator(() instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(])operator(,) symbol(:conditions) operator(=)operator(>) ident(conditions)operator(,) symbol(:include) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:include)operator(]) operator(\)) reserved(else) ident(association_class)operator(.)ident(find)operator(()instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(])operator(,) symbol(:include) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:include)operator(])operator(\)) reserved(end) reserved(end) reserved(def) method(foreign_key_present) operator(!)instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(])operator(.)ident(nil?) reserved(end) reserved(def) method(association_class) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:foreign_type)operator(])operator(]) operator(?) instance_variable(@owner)operator([)instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:foreign_type)operator(])operator(])operator(.)ident(constantize) operator(:) pre_constant(nil) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Associations) reserved(class) class(HasAndBelongsToManyAssociation) operator(<) constant(AssociationCollection) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(owner)operator(,) ident(reflection)operator(\)) reserved(super) ident(construct_sql) reserved(end) reserved(def) method(build)operator(()ident(attributes) operator(=) operator({)operator(})operator(\)) ident(load_target) ident(record) operator(=) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(new)operator(()ident(attributes)operator(\)) instance_variable(@target) operator(<<) ident(record) ident(record) reserved(end) reserved(def) method(find_first) ident(load_target)operator(.)ident(first) reserved(end) reserved(def) method(find)operator(()operator(*)ident(args)operator(\)) ident(options) operator(=) constant(Base)operator(.)ident(send)operator(()symbol(:extract_options_from_args!)operator(,) ident(args)operator(\)) comment(# If using a custom finder_sql, scan the entire collection.) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) ident(expects_array) operator(=) ident(args)operator(.)ident(first)operator(.)ident(kind_of?)operator(()constant(Array)operator(\)) ident(ids) operator(=) ident(args)operator(.)ident(flatten)operator(.)ident(compact)operator(.)ident(uniq) reserved(if) ident(ids)operator(.)ident(size) operator(==) integer(1) ident(id) operator(=) ident(ids)operator(.)ident(first)operator(.)ident(to_i) ident(record) operator(=) ident(load_target)operator(.)ident(detect) operator({) operator(|)ident(record)operator(|) ident(id) operator(==) ident(record)operator(.)ident(id) operator(}) ident(expects_array) operator(?) operator([)ident(record)operator(]) operator(:) ident(record) reserved(else) ident(load_target)operator(.)ident(select) operator({) operator(|)ident(record)operator(|) ident(ids)operator(.)ident(include?)operator(()ident(record)operator(.)ident(id)operator(\)) operator(}) reserved(end) reserved(else) ident(conditions) operator(=) stringdelimiter(")> reserved(if) ident(sanitized_conditions) operator(=) ident(sanitize_sql)operator(()ident(options)operator([)symbol(:conditions)operator(])operator(\)) ident(conditions) operator(<<) stringcontent(\))delimiter(")> reserved(end) ident(options)operator([)symbol(:conditions)operator(]) operator(=) ident(conditions) ident(options)operator([)symbol(:joins)operator(]) operator(=) instance_variable(@join_sql) ident(options)operator([)symbol(:readonly)operator(]) operator(=) ident(finding_with_ambigious_select?)operator(()ident(options)operator([)symbol(:select)operator(])operator(\)) reserved(if) ident(options)operator([)symbol(:order)operator(]) operator(&&) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) ident(options)operator([)symbol(:order)operator(]) operator(=) stringcontent(, )inlinedelimiter(")> reserved(elsif) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) ident(options)operator([)symbol(:order)operator(]) operator(=) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) reserved(end) ident(merge_options_from_reflection!)operator(()ident(options)operator(\)) comment(# Pass through args exactly as we received them.) ident(args) operator(<<) ident(options) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(end) reserved(def) method(push_with_attributes)operator(()ident(record)operator(,) ident(join_attributes) operator(=) operator({)operator(})operator(\)) ident(raise_on_type_mismatch)operator(()ident(record)operator(\)) ident(join_attributes)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) ident(record)operator([)ident(key)operator(.)ident(to_s)operator(]) operator(=) ident(value) operator(}) ident(callback)operator(()symbol(:before_add)operator(,) ident(record)operator(\)) ident(insert_record)operator(()ident(record)operator(\)) reserved(unless) instance_variable(@owner)operator(.)ident(new_record?) instance_variable(@target) operator(<<) ident(record) ident(callback)operator(()symbol(:after_add)operator(,) ident(record)operator(\)) pre_constant(self) reserved(end) reserved(alias) symbol(:concat_with_attributes) symbol(:push_with_attributes) reserved(def) method(size) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:uniq)operator(]) operator(?) ident(count_records) operator(:) reserved(super) reserved(end) ident(protected) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(if) instance_variable(@target)operator(.)ident(respond_to?)operator(()ident(method)operator(\)) operator(||) operator(()operator(!)instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(respond_to?)operator(()ident(method)operator(\)) operator(&&) constant(Class)operator(.)ident(respond_to?)operator(()ident(method)operator(\))operator(\)) reserved(super) reserved(else) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) instance_variable(@finder_sql)operator(,) symbol(:joins) operator(=)operator(>) instance_variable(@join_sql)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(false) operator(})operator(\)) reserved(do) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(send)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(find_target) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) ident(records) operator(=) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find_by_sql)operator(()instance_variable(@finder_sql)operator(\)) reserved(else) ident(records) operator(=) ident(find)operator(()symbol(:all)operator(\)) reserved(end) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:uniq)operator(]) operator(?) ident(uniq)operator(()ident(records)operator(\)) operator(:) ident(records) reserved(end) reserved(def) method(count_records) ident(load_target)operator(.)ident(size) reserved(end) reserved(def) method(insert_record)operator(()ident(record)operator(\)) reserved(if) ident(record)operator(.)ident(new_record?) reserved(return) pre_constant(false) reserved(unless) ident(record)operator(.)ident(save) reserved(end) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:insert_sql)operator(]) instance_variable(@owner)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(interpolate_sql)operator(()instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:insert_sql)operator(])operator(,) ident(record)operator(\))operator(\)) reserved(else) ident(columns) operator(=) instance_variable(@owner)operator(.)ident(connection)operator(.)ident(columns)operator(()instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:join_table)operator(])operator(,) stringcontent( Columns)delimiter(")>operator(\)) ident(attributes) operator(=) ident(columns)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(attributes)operator(,) ident(column)operator(|) reserved(case) ident(column)operator(.)ident(name) reserved(when) instance_variable(@reflection)operator(.)ident(primary_key_name) ident(attributes)operator([)ident(column)operator(.)ident(name)operator(]) operator(=) instance_variable(@owner)operator(.)ident(quoted_id) reserved(when) instance_variable(@reflection)operator(.)ident(association_foreign_key) ident(attributes)operator([)ident(column)operator(.)ident(name)operator(]) operator(=) ident(record)operator(.)ident(quoted_id) reserved(else) reserved(if) ident(record)operator(.)ident(attributes)operator(.)ident(has_key?)operator(()ident(column)operator(.)ident(name)operator(\)) ident(value) operator(=) instance_variable(@owner)operator(.)ident(send)operator(()symbol(:quote)operator(,) ident(record)operator([)ident(column)operator(.)ident(name)operator(])operator(,) ident(column)operator(\)) ident(attributes)operator([)ident(column)operator(.)ident(name)operator(]) operator(=) ident(value) reserved(unless) ident(value)operator(.)ident(nil?) reserved(end) reserved(end) ident(attributes) reserved(end) ident(sql) operator(=) stringcontent( ()inlineoperator(\))inline_delimiter(})>content(\) )delimiter(")> operator(+) stringoperator(\))inline_delimiter(})>content(\))delimiter(")> instance_variable(@owner)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(sql)operator(\)) reserved(end) reserved(return) pre_constant(true) reserved(end) reserved(def) method(delete_records)operator(()ident(records)operator(\)) reserved(if) ident(sql) operator(=) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:delete_sql)operator(]) ident(records)operator(.)ident(each) operator({) operator(|)ident(record)operator(|) instance_variable(@owner)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(interpolate_sql)operator(()ident(sql)operator(,) ident(record)operator(\))operator(\)) operator(}) reserved(else) ident(ids) operator(=) ident(quoted_record_ids)operator(()ident(records)operator(\)) ident(sql) operator(=) stringcontent( WHERE )inlinecontent( = )inlinecontent( AND )inlinecontent( IN ()inlinecontent(\))delimiter(")> instance_variable(@owner)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(sql)operator(\)) reserved(end) reserved(end) reserved(def) method(construct_sql) ident(interpolate_sql_options!)operator(()instance_variable(@reflection)operator(.)ident(options)operator(,) symbol(:finder_sql)operator(\)) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) instance_variable(@finder_sql) operator(=) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) reserved(else) instance_variable(@finder_sql) operator(=) stringcontent(.)inlinecontent( = )inlinecontent( )delimiter(")> instance_variable(@finder_sql) operator(<<) stringcontent(\))delimiter(")> reserved(if) ident(conditions) reserved(end) instance_variable(@join_sql) operator(=) stringcontent( ON )inlinecontent(.)inlinecontent( = )inlinecontent(.)inlinedelimiter(")> reserved(end) comment(# Join tables with additional columns on top of the two foreign keys must be considered ambigious unless a select) comment(# clause has been explicitly defined. Otherwise you can get broken records back, if, say, the join column also has) comment(# and id column, which will then overwrite the id column of the records coming back.) reserved(def) method(finding_with_ambigious_select?)operator(()ident(select_clause)operator(\)) operator(!)ident(select_clause) operator(&&) instance_variable(@owner)operator(.)ident(connection)operator(.)ident(columns)operator(()instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:join_table)operator(])operator(,) stringoperator(\))operator(.)ident(size) operator(!=) integer(2) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Associations) reserved(class) class(HasManyAssociation) operator(<) constant(AssociationCollection) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(owner)operator(,) ident(reflection)operator(\)) reserved(super) ident(construct_sql) reserved(end) reserved(def) method(build)operator(()ident(attributes) operator(=) operator({)operator(})operator(\)) reserved(if) ident(attributes)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(attributes)operator(.)ident(collect) operator({) operator(|)ident(attr)operator(|) ident(build)operator(()ident(attr)operator(\)) operator(}) reserved(else) ident(load_target) ident(record) operator(=) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(new)operator(()ident(attributes)operator(\)) ident(set_belongs_to_association_for)operator(()ident(record)operator(\)) instance_variable(@target) operator(<<) ident(record) ident(record) reserved(end) reserved(end) comment(# DEPRECATED.) reserved(def) method(find_all)operator(()ident(runtime_conditions) operator(=) pre_constant(nil)operator(,) ident(orderings) operator(=) pre_constant(nil)operator(,) ident(limit) operator(=) pre_constant(nil)operator(,) ident(joins) operator(=) pre_constant(nil)operator(\)) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find_by_sql)operator(()instance_variable(@finder_sql)operator(\)) reserved(else) ident(conditions) operator(=) instance_variable(@finder_sql) ident(conditions) operator(+=) stringcontent(\))delimiter(")> reserved(if) ident(runtime_conditions) ident(orderings) operator(||=) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find_all)operator(()ident(conditions)operator(,) ident(orderings)operator(,) ident(limit)operator(,) ident(joins)operator(\)) reserved(end) reserved(end) comment(# DEPRECATED. Find the first associated record. All arguments are optional.) reserved(def) method(find_first)operator(()ident(conditions) operator(=) pre_constant(nil)operator(,) ident(orderings) operator(=) pre_constant(nil)operator(\)) ident(find_all)operator(()ident(conditions)operator(,) ident(orderings)operator(,) integer(1)operator(\))operator(.)ident(first) reserved(end) comment(# Count the number of associated records. All arguments are optional.) reserved(def) method(count)operator(()ident(runtime_conditions) operator(=) pre_constant(nil)operator(\)) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(]) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(count_by_sql)operator(()instance_variable(@counter_sql)operator(\)) reserved(elsif) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(count_by_sql)operator(()instance_variable(@finder_sql)operator(\)) reserved(else) ident(sql) operator(=) instance_variable(@finder_sql) ident(sql) operator(+=) stringcontent(\))delimiter(")> reserved(if) ident(runtime_conditions) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(count)operator(()ident(sql)operator(\)) reserved(end) reserved(end) reserved(def) method(find)operator(()operator(*)ident(args)operator(\)) ident(options) operator(=) constant(Base)operator(.)ident(send)operator(()symbol(:extract_options_from_args!)operator(,) ident(args)operator(\)) comment(# If using a custom finder_sql, scan the entire collection.) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) ident(expects_array) operator(=) ident(args)operator(.)ident(first)operator(.)ident(kind_of?)operator(()constant(Array)operator(\)) ident(ids) operator(=) ident(args)operator(.)ident(flatten)operator(.)ident(compact)operator(.)ident(uniq) reserved(if) ident(ids)operator(.)ident(size) operator(==) integer(1) ident(id) operator(=) ident(ids)operator(.)ident(first) ident(record) operator(=) ident(load_target)operator(.)ident(detect) operator({) operator(|)ident(record)operator(|) ident(id) operator(==) ident(record)operator(.)ident(id) operator(}) ident(expects_array) operator(?) operator([) ident(record) operator(]) operator(:) ident(record) reserved(else) ident(load_target)operator(.)ident(select) operator({) operator(|)ident(record)operator(|) ident(ids)operator(.)ident(include?)operator(()ident(record)operator(.)ident(id)operator(\)) operator(}) reserved(end) reserved(else) ident(conditions) operator(=) stringdelimiter(")> reserved(if) ident(sanitized_conditions) operator(=) ident(sanitize_sql)operator(()ident(options)operator([)symbol(:conditions)operator(])operator(\)) ident(conditions) operator(<<) stringcontent(\))delimiter(")> reserved(end) ident(options)operator([)symbol(:conditions)operator(]) operator(=) ident(conditions) reserved(if) ident(options)operator([)symbol(:order)operator(]) operator(&&) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) ident(options)operator([)symbol(:order)operator(]) operator(=) stringcontent(, )inlinedelimiter(")> reserved(elsif) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) ident(options)operator([)symbol(:order)operator(]) operator(=) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) reserved(end) ident(merge_options_from_reflection!)operator(()ident(options)operator(\)) comment(# Pass through args exactly as we received them.) ident(args) operator(<<) ident(options) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(end) ident(protected) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(if) instance_variable(@target)operator(.)ident(respond_to?)operator(()ident(method)operator(\)) operator(||) operator(()operator(!)instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(respond_to?)operator(()ident(method)operator(\)) operator(&&) constant(Class)operator(.)ident(respond_to?)operator(()ident(method)operator(\))operator(\)) reserved(super) reserved(else) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(with_scope)operator(() symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) instance_variable(@finder_sql)operator(,) symbol(:joins) operator(=)operator(>) instance_variable(@join_sql)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(false) operator(})operator(,) symbol(:create) operator(=)operator(>) operator({) instance_variable(@reflection)operator(.)ident(primary_key_name) operator(=)operator(>) instance_variable(@owner)operator(.)ident(id) operator(}) operator(\)) reserved(do) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(send)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(find_target) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find_by_sql)operator(()instance_variable(@finder_sql)operator(\)) reserved(else) ident(find)operator(()symbol(:all)operator(\)) reserved(end) reserved(end) reserved(def) method(count_records) ident(count) operator(=) reserved(if) ident(has_cached_counter?) instance_variable(@owner)operator(.)ident(send)operator(()symbol(:read_attribute)operator(,) ident(cached_counter_attribute_name)operator(\)) reserved(elsif) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(]) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(count_by_sql)operator(()instance_variable(@counter_sql)operator(\)) reserved(else) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(count)operator(()instance_variable(@counter_sql)operator(\)) reserved(end) instance_variable(@target) operator(=) operator([)operator(]) reserved(and) ident(loaded) reserved(if) ident(count) operator(==) integer(0) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:limit)operator(]) ident(count) operator(=) operator([) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:limit)operator(])operator(,) ident(count) operator(])operator(.)ident(min) reserved(end) reserved(return) ident(count) reserved(end) reserved(def) method(has_cached_counter?) instance_variable(@owner)operator(.)ident(attribute_present?)operator(()ident(cached_counter_attribute_name)operator(\)) reserved(end) reserved(def) method(cached_counter_attribute_name) stringcontent(_count)delimiter(")> reserved(end) reserved(def) method(insert_record)operator(()ident(record)operator(\)) ident(set_belongs_to_association_for)operator(()ident(record)operator(\)) ident(record)operator(.)ident(save) reserved(end) reserved(def) method(delete_records)operator(()ident(records)operator(\)) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:dependent)operator(]) ident(records)operator(.)ident(each) operator({) operator(|)ident(r)operator(|) ident(r)operator(.)ident(destroy) operator(}) reserved(else) ident(ids) operator(=) ident(quoted_record_ids)operator(()ident(records)operator(\)) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(update_all)operator(() stringcontent( = NULL)delimiter(")>operator(,) stringcontent( = )inlinecontent( AND )inlinecontent( IN ()inlinecontent(\))delimiter(")> operator(\)) reserved(end) reserved(end) reserved(def) method(target_obsolete?) pre_constant(false) reserved(end) reserved(def) method(construct_sql) reserved(case) reserved(when) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) instance_variable(@finder_sql) operator(=) ident(interpolate_sql)operator(()instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(])operator(\)) reserved(when) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) instance_variable(@finder_sql) operator(=) stringcontent(.)inlinecontent(_id = )inlinecontent( AND )delimiter(")> operator(+) stringcontent(.)inlinecontent(_type = )inlinedelimiter(")> instance_variable(@finder_sql) operator(<<) stringcontent(\))delimiter(")> reserved(if) ident(conditions) reserved(else) instance_variable(@finder_sql) operator(=) stringcontent(.)inlinecontent( = )inlinedelimiter(")> instance_variable(@finder_sql) operator(<<) stringcontent(\))delimiter(")> reserved(if) ident(conditions) reserved(end) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(]) instance_variable(@counter_sql) operator(=) ident(interpolate_sql)operator(()instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(])operator(\)) reserved(elsif) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) comment(# replace the SELECT clause with COUNT(*\), preserving any hints within /* ... */) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(]) operator(=) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(])operator(.)ident(sub)operator(()regexpoperator(\)) operator({) stringcontent(COUNT(*\) FROM)delimiter(")> operator(}) instance_variable(@counter_sql) operator(=) ident(interpolate_sql)operator(()instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(])operator(\)) reserved(else) instance_variable(@counter_sql) operator(=) instance_variable(@finder_sql) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Associations) reserved(class) class(HasManyThroughAssociation) operator(<) constant(AssociationProxy) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(owner)operator(,) ident(reflection)operator(\)) reserved(super) ident(reflection)operator(.)ident(check_validity!) instance_variable(@finder_sql) operator(=) ident(construct_conditions) ident(construct_sql) reserved(end) reserved(def) method(find)operator(()operator(*)ident(args)operator(\)) ident(options) operator(=) constant(Base)operator(.)ident(send)operator(()symbol(:extract_options_from_args!)operator(,) ident(args)operator(\)) ident(conditions) operator(=) stringdelimiter(")> reserved(if) ident(sanitized_conditions) operator(=) ident(sanitize_sql)operator(()ident(options)operator([)symbol(:conditions)operator(])operator(\)) ident(conditions) operator(<<) stringcontent(\))delimiter(")> reserved(end) ident(options)operator([)symbol(:conditions)operator(]) operator(=) ident(conditions) reserved(if) ident(options)operator([)symbol(:order)operator(]) operator(&&) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) ident(options)operator([)symbol(:order)operator(]) operator(=) stringcontent(, )inlinedelimiter(")> reserved(elsif) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) ident(options)operator([)symbol(:order)operator(]) operator(=) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(]) reserved(end) ident(options)operator([)symbol(:select)operator(]) operator(=) ident(construct_select)operator(()ident(options)operator([)symbol(:select)operator(])operator(\)) ident(options)operator([)symbol(:from)operator(]) operator(||=) ident(construct_from) ident(options)operator([)symbol(:joins)operator(]) operator(=) ident(construct_joins)operator(()ident(options)operator([)symbol(:joins)operator(])operator(\)) ident(options)operator([)symbol(:include)operator(]) operator(=) instance_variable(@reflection)operator(.)ident(source_reflection)operator(.)ident(options)operator([)symbol(:include)operator(]) reserved(if) ident(options)operator([)symbol(:include)operator(])operator(.)ident(nil?) ident(merge_options_from_reflection!)operator(()ident(options)operator(\)) comment(# Pass through args exactly as we received them.) ident(args) operator(<<) ident(options) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(def) method(reset) instance_variable(@target) operator(=) operator([)operator(]) instance_variable(@loaded) operator(=) pre_constant(false) reserved(end) ident(protected) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(if) instance_variable(@target)operator(.)ident(respond_to?)operator(()ident(method)operator(\)) operator(||) operator(()operator(!)instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(respond_to?)operator(()ident(method)operator(\)) operator(&&) constant(Class)operator(.)ident(respond_to?)operator(()ident(method)operator(\))operator(\)) reserved(super) reserved(else) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(with_scope)operator(()ident(construct_scope)operator(\)) operator({) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(send)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) operator(}) reserved(end) reserved(end) reserved(def) method(find_target) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:select) operator(=)operator(>) ident(construct_select)operator(,) symbol(:conditions) operator(=)operator(>) ident(construct_conditions)operator(,) symbol(:from) operator(=)operator(>) ident(construct_from)operator(,) symbol(:joins) operator(=)operator(>) ident(construct_joins)operator(,) symbol(:order) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(])operator(,) symbol(:limit) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:limit)operator(])operator(,) symbol(:group) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:group)operator(])operator(,) symbol(:include) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:include)operator(]) operator(||) instance_variable(@reflection)operator(.)ident(source_reflection)operator(.)ident(options)operator([)symbol(:include)operator(]) operator(\)) reserved(end) reserved(def) method(construct_conditions) ident(conditions) operator(=) reserved(if) instance_variable(@reflection)operator(.)ident(through_reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) stringcontent(.)inlinecontent(_id = )inlinecontent( )delimiter(")> operator(+) stringcontent(.)inlinecontent(_type = )inlinedelimiter(")> reserved(else) stringcontent(.)inlinecontent( = )inlinedelimiter(")> reserved(end) ident(conditions) operator(<<) stringcontent(\))delimiter(")> reserved(if) ident(sql_conditions) reserved(return) ident(conditions) reserved(end) reserved(def) method(construct_from) instance_variable(@reflection)operator(.)ident(table_name) reserved(end) reserved(def) method(construct_select)operator(()ident(custom_select) operator(=) pre_constant(nil)operator(\)) ident(selected) operator(=) ident(custom_select) operator(||) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:select)operator(]) operator(||) stringcontent(.*)delimiter(")> reserved(end) reserved(def) method(construct_joins)operator(()ident(custom_joins) operator(=) pre_constant(nil)operator(\)) ident(polymorphic_join) operator(=) pre_constant(nil) reserved(if) instance_variable(@reflection)operator(.)ident(through_reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) operator(||) instance_variable(@reflection)operator(.)ident(source_reflection)operator(.)ident(macro) operator(==) symbol(:belongs_to) ident(reflection_primary_key) operator(=) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(primary_key) ident(source_primary_key) operator(=) instance_variable(@reflection)operator(.)ident(source_reflection)operator(.)ident(primary_key_name) reserved(else) ident(reflection_primary_key) operator(=) instance_variable(@reflection)operator(.)ident(source_reflection)operator(.)ident(primary_key_name) ident(source_primary_key) operator(=) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(primary_key) reserved(if) instance_variable(@reflection)operator(.)ident(source_reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) ident(polymorphic_join) operator(=) string operator(%) operator([) instance_variable(@reflection)operator(.)ident(table_name)operator(,) stringcontent(_type)delimiter(")>operator(,) instance_variable(@owner)operator(.)ident(class)operator(.)ident(quote)operator(()instance_variable(@reflection)operator(.)ident(through_reflection)operator(.)ident(klass)operator(.)ident(name)operator(\)) operator(]) reserved(end) reserved(end) stringcontent( )inlinedelimiter(")> operator(%) operator([) instance_variable(@reflection)operator(.)ident(through_reflection)operator(.)ident(table_name)operator(,) instance_variable(@reflection)operator(.)ident(table_name)operator(,) ident(reflection_primary_key)operator(,) instance_variable(@reflection)operator(.)ident(through_reflection)operator(.)ident(table_name)operator(,) ident(source_primary_key)operator(,) ident(polymorphic_join) operator(]) reserved(end) reserved(def) method(construct_scope) operator({) symbol(:find) operator(=)operator(>) operator({) symbol(:from) operator(=)operator(>) ident(construct_from)operator(,) symbol(:conditions) operator(=)operator(>) ident(construct_conditions)operator(,) symbol(:joins) operator(=)operator(>) ident(construct_joins)operator(,) symbol(:select) operator(=)operator(>) ident(construct_select) operator(})operator(,) symbol(:create) operator(=)operator(>) operator({) instance_variable(@reflection)operator(.)ident(primary_key_name) operator(=)operator(>) instance_variable(@owner)operator(.)ident(id) operator(}) operator(}) reserved(end) reserved(def) method(construct_sql) reserved(case) reserved(when) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) instance_variable(@finder_sql) operator(=) ident(interpolate_sql)operator(()instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(])operator(\)) instance_variable(@finder_sql) operator(=) stringcontent(.)inlinecontent( = )inlinedelimiter(")> instance_variable(@finder_sql) operator(<<) stringcontent(\))delimiter(")> reserved(if) ident(conditions) reserved(end) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(]) instance_variable(@counter_sql) operator(=) ident(interpolate_sql)operator(()instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(])operator(\)) reserved(elsif) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(]) comment(# replace the SELECT clause with COUNT(*\), preserving any hints within /* ... */) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(]) operator(=) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:finder_sql)operator(])operator(.)ident(sub)operator(()regexpoperator(\)) operator({) stringcontent(COUNT(*\) FROM)delimiter(")> operator(}) instance_variable(@counter_sql) operator(=) ident(interpolate_sql)operator(()instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:counter_sql)operator(])operator(\)) reserved(else) instance_variable(@counter_sql) operator(=) instance_variable(@finder_sql) reserved(end) reserved(end) reserved(def) method(conditions) instance_variable(@conditions) operator(||=) operator([) operator(()ident(interpolate_sql)operator(()instance_variable(@reflection)operator(.)ident(active_record)operator(.)ident(send)operator(()symbol(:sanitize_sql)operator(,) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(])operator(\))operator(\)) reserved(if) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(])operator(\))operator(,) operator(()ident(interpolate_sql)operator(()instance_variable(@reflection)operator(.)ident(active_record)operator(.)ident(send)operator(()symbol(:sanitize_sql)operator(,) instance_variable(@reflection)operator(.)ident(through_reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(])operator(\))operator(\)) reserved(if) instance_variable(@reflection)operator(.)ident(through_reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(])operator(\)) operator(])operator(.)ident(compact)operator(.)ident(collect) operator({) operator(|)ident(condition)operator(|) stringcontent(\))delimiter(")> operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(unless) operator(()operator(!)instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(]) operator(&&) operator(!)instance_variable(@reflection)operator(.)ident(through_reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(])operator(\)) reserved(end) ident(alias_method) symbol(:sql_conditions)operator(,) symbol(:conditions) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Associations) reserved(class) class(HasOneAssociation) operator(<) constant(BelongsToAssociation) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(owner)operator(,) ident(reflection)operator(\)) reserved(super) ident(construct_sql) reserved(end) reserved(def) method(create)operator(()ident(attributes) operator(=) operator({)operator(})operator(,) ident(replace_existing) operator(=) pre_constant(true)operator(\)) ident(record) operator(=) ident(build)operator(()ident(attributes)operator(,) ident(replace_existing)operator(\)) ident(record)operator(.)ident(save) ident(record) reserved(end) reserved(def) method(build)operator(()ident(attributes) operator(=) operator({)operator(})operator(,) ident(replace_existing) operator(=) pre_constant(true)operator(\)) ident(record) operator(=) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(new)operator(()ident(attributes)operator(\)) reserved(if) ident(replace_existing) ident(replace)operator(()ident(record)operator(,) pre_constant(true)operator(\)) reserved(else) ident(record)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(]) operator(=) instance_variable(@owner)operator(.)ident(id) reserved(unless) instance_variable(@owner)operator(.)ident(new_record?) pre_constant(self)operator(.)ident(target) operator(=) ident(record) reserved(end) ident(record) reserved(end) reserved(def) method(replace)operator(()ident(obj)operator(,) ident(dont_save) operator(=) pre_constant(false)operator(\)) ident(load_target) reserved(unless) instance_variable(@target)operator(.)ident(nil?) reserved(if) ident(dependent?) operator(&&) operator(!)ident(dont_save) operator(&&) instance_variable(@target) operator(!=) ident(obj) instance_variable(@target)operator(.)ident(destroy) reserved(unless) instance_variable(@target)operator(.)ident(new_record?) instance_variable(@owner)operator(.)ident(clear_association_cache) reserved(else) instance_variable(@target)operator([)instance_variable(@reflection)operator(.)ident(primary_key_name)operator(]) operator(=) pre_constant(nil) instance_variable(@target)operator(.)ident(save) reserved(unless) instance_variable(@owner)operator(.)ident(new_record?) operator(||) instance_variable(@target)operator(.)ident(new_record?) reserved(end) reserved(end) reserved(if) ident(obj)operator(.)ident(nil?) instance_variable(@target) operator(=) pre_constant(nil) reserved(else) ident(raise_on_type_mismatch)operator(()ident(obj)operator(\)) ident(set_belongs_to_association_for)operator(()ident(obj)operator(\)) instance_variable(@target) operator(=) operator(()constant(AssociationProxy) operator(===) ident(obj) operator(?) ident(obj)operator(.)ident(target) operator(:) ident(obj)operator(\)) reserved(end) instance_variable(@loaded) operator(=) pre_constant(true) reserved(unless) instance_variable(@owner)operator(.)ident(new_record?) reserved(or) ident(obj)operator(.)ident(nil?) reserved(or) ident(dont_save) reserved(return) operator(()ident(obj)operator(.)ident(save) operator(?) pre_constant(self) operator(:) pre_constant(false)operator(\)) reserved(else) reserved(return) operator(()ident(obj)operator(.)ident(nil?) operator(?) pre_constant(nil) operator(:) pre_constant(self)operator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(find_target) instance_variable(@reflection)operator(.)ident(klass)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) instance_variable(@finder_sql)operator(,) symbol(:order) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:order)operator(])operator(,) symbol(:include) operator(=)operator(>) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:include)operator(]) operator(\)) reserved(end) reserved(def) method(construct_sql) reserved(case) reserved(when) instance_variable(@reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) instance_variable(@finder_sql) operator(=) stringcontent(.)inlinecontent(_id = )inlinecontent( AND )delimiter(")> operator(+) stringcontent(.)inlinecontent(_type = )inlinedelimiter(")> reserved(else) instance_variable(@finder_sql) operator(=) stringcontent(.)inlinecontent( = )inlinedelimiter(")> reserved(end) instance_variable(@finder_sql) operator(<<) stringcontent(\))delimiter(")> reserved(if) ident(conditions) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(module) class(ActiveRecord) reserved(class) class(HasManyThroughAssociationNotFoundError) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(reflection)operator(\)) instance_variable(@reflection) operator(=) ident(reflection) reserved(end) reserved(def) method(message) stringcontent( in model )inlinedelimiter(")> reserved(end) reserved(end) reserved(class) class(HasManyThroughAssociationPolymorphicError) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(owner_class_name)operator(,) ident(reflection)operator(,) ident(source_reflection)operator(\)) instance_variable(@owner_class_name) operator(=) ident(owner_class_name) instance_variable(@reflection) operator(=) ident(reflection) instance_variable(@source_reflection) operator(=) ident(source_reflection) reserved(end) reserved(def) method(message) stringcontent(#)inlinecontent(' on the polymorphic object ')inlinecontent(#)inlinecontent('.)delimiter(")> reserved(end) reserved(end) reserved(class) class(HasManyThroughSourceAssociationNotFoundError) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(reflection)operator(\)) instance_variable(@reflection) operator(=) ident(reflection) instance_variable(@through_reflection) operator(=) ident(reflection)operator(.)ident(through_reflection) instance_variable(@source_reflection_names) operator(=) ident(reflection)operator(.)ident(source_reflection_names) instance_variable(@source_associations) operator(=) ident(reflection)operator(.)ident(through_reflection)operator(.)ident(klass)operator(.)ident(reflect_on_all_associations)operator(.)ident(collect) operator({) operator(|)ident(a)operator(|) ident(a)operator(.)ident(name)operator(.)ident(inspect) operator(}) reserved(end) reserved(def) method(message) string) stringinline_delimiter(})>content( in model )inlinecontent(. Try 'has_many )inlinecontent(, :through => )inlinecontent(, :source => '. Is it one of )inline) stringinline_delimiter(})>content(?)delimiter(")> reserved(end) reserved(end) reserved(class) class(HasManyThroughSourceAssociationMacroError) operator(<) constant(ActiveRecordError) comment(#:nodoc) reserved(def) method(initialize)operator(()ident(reflection)operator(\)) instance_variable(@reflection) operator(=) ident(reflection) instance_variable(@through_reflection) operator(=) ident(reflection)operator(.)ident(through_reflection) instance_variable(@source_reflection) operator(=) ident(reflection)operator(.)ident(source_reflection) reserved(end) reserved(def) method(message) stringinline reserved(if) instance_variable(@source_reflection)operator(.)ident(options)operator([)symbol(:through)operator(])inline_delimiter(})>content( for has_many )inlinecontent(, :through => )inlinecontent(. Use :source to specify the source reflection.)delimiter(")> reserved(end) reserved(end) reserved(class) class(EagerLoadPolymorphicError) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(reflection)operator(\)) instance_variable(@reflection) operator(=) ident(reflection) reserved(end) reserved(def) method(message) stringdelimiter(")> reserved(end) reserved(end) reserved(module) class(Associations) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# Clears out the association cache ) reserved(def) method(clear_association_cache) comment(#:nodoc:) pre_constant(self)operator(.)ident(class)operator(.)ident(reflect_on_all_associations)operator(.)ident(to_a)operator(.)ident(each) reserved(do) operator(|)ident(assoc)operator(|) ident(instance_variable_set) stringdelimiter(")>operator(,) pre_constant(nil) reserved(end) reserved(unless) pre_constant(self)operator(.)ident(new_record?) reserved(end) comment(# Associations are a set of macro-like class methods for tying objects together through foreign keys. They express relationships like ) comment(# "Project has one Project Manager" or "Project belongs to a Portfolio". Each macro adds a number of methods to the class which are ) comment(# specialized according to the collection or association symbol and the options hash. It works much the same way as Ruby's own attr* ) comment(# methods. Example:) comment(#) comment(# class Project < ActiveRecord::Base) comment(# belongs_to :portfolio) comment(# has_one :project_manager ) comment(# has_many :milestones) comment(# has_and_belongs_to_many :categories) comment(# end) comment(#) comment(# The project class now has the following methods (and more\) to ease the traversal and manipulation of its relationships:) comment(# * Project#portfolio, Project#portfolio=(portfolio\), Project#portfolio.nil?) comment(# * Project#project_manager, Project#project_manager=(project_manager\), Project#project_manager.nil?,) comment(# * Project#milestones.empty?, Project#milestones.size, Project#milestones, Project#milestones<<(milestone\),) comment(# Project#milestones.delete(milestone\), Project#milestones.find(milestone_id\), Project#milestones.find_all(conditions\),) comment(# Project#milestones.build, Project#milestones.create) comment(# * Project#categories.empty?, Project#categories.size, Project#categories, Project#categories<<(category1\),) comment(# Project#categories.delete(category1\)) comment(#) comment(# == Example) comment(#) comment(# link:files/examples/associations.png) comment(#) comment(# == Is it belongs_to or has_one?) comment(#) comment(# Both express a 1-1 relationship, the difference is mostly where to place the foreign key, which goes on the table for the class) comment(# saying belongs_to. Example:) comment(#) comment(# class Post < ActiveRecord::Base) comment(# has_one :author) comment(# end) comment(#) comment(# class Author < ActiveRecord::Base) comment(# belongs_to :post) comment(# end) comment(#) comment(# The tables for these classes could look something like:) comment(#) comment(# CREATE TABLE posts () comment(# id int(11\) NOT NULL auto_increment,) comment(# title varchar default NULL,) comment(# PRIMARY KEY (id\)) comment(# \)) comment(#) comment(# CREATE TABLE authors () comment(# id int(11\) NOT NULL auto_increment,) comment(# post_id int(11\) default NULL,) comment(# name varchar default NULL,) comment(# PRIMARY KEY (id\)) comment(# \)) comment(#) comment(# == Unsaved objects and associations) comment(#) comment(# You can manipulate objects and associations before they are saved to the database, but there is some special behaviour you should be) comment(# aware of, mostly involving the saving of associated objects.) comment(#) comment(# === One-to-one associations) comment(#) comment(# * Assigning an object to a has_one association automatically saves that object and the object being replaced (if there is one\), in) comment(# order to update their primary keys - except if the parent object is unsaved (new_record? == true\).) comment(# * If either of these saves fail (due to one of the objects being invalid\) the assignment statement returns false and the assignment) comment(# is cancelled.) comment(# * If you wish to assign an object to a has_one association without saving it, use the #association.build method (documented below\).) comment(# * Assigning an object to a belongs_to association does not save the object, since the foreign key field belongs on the parent. It does) comment(# not save the parent either.) comment(#) comment(# === Collections) comment(#) comment(# * Adding an object to a collection (has_many or has_and_belongs_to_many\) automatically saves that object, except if the parent object) comment(# (the owner of the collection\) is not yet stored in the database.) comment(# * If saving any of the objects being added to a collection (via #push or similar\) fails, then #push returns false.) comment(# * You can add an object to a collection without automatically saving it by using the #collection.build method (documented below\).) comment(# * All unsaved (new_record? == true\) members of the collection are automatically saved when the parent is saved.) comment(#) comment(# === Association callbacks) comment(#) comment(# Similiar to the normal callbacks that hook into the lifecycle of an Active Record object, you can also define callbacks that get) comment(# trigged when you add an object to or removing an object from a association collection. Example:) comment(#) comment(# class Project) comment(# has_and_belongs_to_many :developers, :after_add => :evaluate_velocity) comment(#) comment(# def evaluate_velocity(developer\)) comment(# ...) comment(# end) comment(# end ) comment(#) comment(# It's possible to stack callbacks by passing them as an array. Example:) comment(# ) comment(# class Project) comment(# has_and_belongs_to_many :developers, :after_add => [:evaluate_velocity, Proc.new { |p, d| p.shipping_date = Time.now}]) comment(# end) comment(#) comment(# Possible callbacks are: before_add, after_add, before_remove and after_remove.) comment(#) comment(# Should any of the before_add callbacks throw an exception, the object does not get added to the collection. Same with) comment(# the before_remove callbacks, if an exception is thrown the object doesn't get removed.) comment(#) comment(# === Association extensions) comment(#) comment(# The proxy objects that controls the access to associations can be extended through anonymous modules. This is especially) comment(# beneficial for adding new finders, creators, and other factory-type methods that are only used as part of this association.) comment(# Example:) comment(#) comment(# class Account < ActiveRecord::Base) comment(# has_many :people do) comment(# def find_or_create_by_name(name\)) comment(# first_name, last_name = name.split(" ", 2\)) comment(# find_or_create_by_first_name_and_last_name(first_name, last_name\)) comment(# end) comment(# end) comment(# end) comment(#) comment(# person = Account.find(:first\).people.find_or_create_by_name("David Heinemeier Hansson"\)) comment(# person.first_name # => "David") comment(# person.last_name # => "Heinemeier Hansson") comment(#) comment(# If you need to share the same extensions between many associations, you can use a named extension module. Example:) comment(#) comment(# module FindOrCreateByNameExtension) comment(# def find_or_create_by_name(name\)) comment(# first_name, last_name = name.split(" ", 2\)) comment(# find_or_create_by_first_name_and_last_name(first_name, last_name\)) comment(# end) comment(# end) comment(#) comment(# class Account < ActiveRecord::Base) comment(# has_many :people, :extend => FindOrCreateByNameExtension) comment(# end) comment(#) comment(# class Company < ActiveRecord::Base) comment(# has_many :people, :extend => FindOrCreateByNameExtension) comment(# end) comment(#) comment(# === Association Join Models) comment(# ) comment(# Has Many associations can be configured with the :through option to use an explicit join model to retrieve the data. This) comment(# operates similarly to a has_and_belongs_to_many association. The advantage is that you're able to add validations,) comment(# callbacks, and extra attributes on the join model. Consider the following schema:) comment(# ) comment(# class Author < ActiveRecord::Base) comment(# has_many :authorships) comment(# has_many :books, :through => :authorships) comment(# end) comment(# ) comment(# class Authorship < ActiveRecord::Base) comment(# belongs_to :author) comment(# belongs_to :book) comment(# end) comment(# ) comment(# @author = Author.find :first) comment(# @author.authorships.collect { |a| a.book } # selects all books that the author's authorships belong to.) comment(# @author.books # selects all books by using the Authorship join model) comment(# ) comment(# You can also go through a has_many association on the join model:) comment(# ) comment(# class Firm < ActiveRecord::Base) comment(# has_many :clients) comment(# has_many :invoices, :through => :clients) comment(# end) comment(# ) comment(# class Client < ActiveRecord::Base) comment(# belongs_to :firm) comment(# has_many :invoices) comment(# end) comment(# ) comment(# class Invoice < ActiveRecord::Base) comment(# belongs_to :client) comment(# end) comment(#) comment(# @firm = Firm.find :first) comment(# @firm.clients.collect { |c| c.invoices }.flatten # select all invoices for all clients of the firm) comment(# @firm.invoices # selects all invoices by going through the Client join model.) comment(#) comment(# === Polymorphic Associations) comment(# ) comment(# Polymorphic associations on models are not restricted on what types of models they can be associated with. Rather, they ) comment(# specify an interface that a has_many association must adhere to.) comment(# ) comment(# class Asset < ActiveRecord::Base) comment(# belongs_to :attachable, :polymorphic => true) comment(# end) comment(# ) comment(# class Post < ActiveRecord::Base) comment(# has_many :assets, :as => :attachable # The :as option specifies the polymorphic interface to use.) comment(# end) comment(#) comment(# @asset.attachable = @post) comment(# ) comment(# This works by using a type column in addition to a foreign key to specify the associated record. In the Asset example, you'd need) comment(# an attachable_id integer column and an attachable_type string column.) comment(#) comment(# == Caching) comment(#) comment(# All of the methods are built on a simple caching principle that will keep the result of the last query around unless specifically) comment(# instructed not to. The cache is even shared across methods to make it even cheaper to use the macro-added methods without ) comment(# worrying too much about performance at the first go. Example:) comment(#) comment(# project.milestones # fetches milestones from the database) comment(# project.milestones.size # uses the milestone cache) comment(# project.milestones.empty? # uses the milestone cache) comment(# project.milestones(true\).size # fetches milestones from the database) comment(# project.milestones # uses the milestone cache) comment(#) comment(# == Eager loading of associations) comment(#) comment(# Eager loading is a way to find objects of a certain class and a number of named associations along with it in a single SQL call. This is) comment(# one of the easiest ways of to prevent the dreaded 1+N problem in which fetching 100 posts that each needs to display their author) comment(# triggers 101 database queries. Through the use of eager loading, the 101 queries can be reduced to 1. Example:) comment(#) comment(# class Post < ActiveRecord::Base) comment(# belongs_to :author) comment(# has_many :comments) comment(# end) comment(#) comment(# Consider the following loop using the class above:) comment(#) comment(# for post in Post.find(:all\)) comment(# puts "Post: " + post.title) comment(# puts "Written by: " + post.author.name) comment(# puts "Last comment on: " + post.comments.first.created_on) comment(# end ) comment(#) comment(# To iterate over these one hundred posts, we'll generate 201 database queries. Let's first just optimize it for retrieving the author:) comment(#) comment(# for post in Post.find(:all, :include => :author\)) comment(#) comment(# This references the name of the belongs_to association that also used the :author symbol, so the find will now weave in a join something) comment(# like this: LEFT OUTER JOIN authors ON authors.id = posts.author_id. Doing so will cut down the number of queries from 201 to 101.) comment(#) comment(# We can improve upon the situation further by referencing both associations in the finder with:) comment(#) comment(# for post in Post.find(:all, :include => [ :author, :comments ]\)) comment(#) comment(# That'll add another join along the lines of: LEFT OUTER JOIN comments ON comments.post_id = posts.id. And we'll be down to 1 query.) comment(# But that shouldn't fool you to think that you can pull out huge amounts of data with no performance penalty just because you've reduced) comment(# the number of queries. The database still needs to send all the data to Active Record and it still needs to be processed. So it's no) comment(# catch-all for performance problems, but it's a great way to cut down on the number of queries in a situation as the one described above.) comment(#) comment(# Please note that limited eager loading with has_many and has_and_belongs_to_many associations is not compatible with describing conditions) comment(# on these eager tables. This will work:) comment(#) comment(# Post.find(:all, :include => :comments, :conditions => "posts.title = 'magic forest'", :limit => 2\)) comment(#) comment(# ...but this will not (and an ArgumentError will be raised\):) comment(#) comment(# Post.find(:all, :include => :comments, :conditions => "comments.body like 'Normal%'", :limit => 2\)) comment(#) comment(# Also have in mind that since the eager loading is pulling from multiple tables, you'll have to disambiguate any column references) comment(# in both conditions and orders. So :order => "posts.id DESC" will work while :order => "id DESC" will not. This may require that) comment(# you alter the :order and :conditions on the association definitions themselves.) comment(#) comment(# It's currently not possible to use eager loading on multiple associations from the same table. Eager loading will not pull) comment(# additional attributes on join tables, so "rich associations" with has_and_belongs_to_many is not a good fit for eager loading.) comment(# ) comment(# == Table Aliasing) comment(#) comment(# ActiveRecord uses table aliasing in the case that a table is referenced multiple times in a join. If a table is referenced only once,) comment(# the standard table name is used. The second time, the table is aliased as #{reflection_name}_#{parent_table_name}. Indexes are appended) comment(# for any more successive uses of the table name.) comment(# ) comment(# Post.find :all, :include => :comments) comment(# # => SELECT ... FROM posts LEFT OUTER JOIN comments ON ...) comment(# Post.find :all, :include => :special_comments # STI) comment(# # => SELECT ... FROM posts LEFT OUTER JOIN comments ON ... AND comments.type = 'SpecialComment') comment(# Post.find :all, :include => [:comments, :special_comments] # special_comments is the reflection name, posts is the parent table name) comment(# # => SELECT ... FROM posts LEFT OUTER JOIN comments ON ... LEFT OUTER JOIN comments special_comments_posts) comment(# ) comment(# Acts as tree example:) comment(# ) comment(# TreeMixin.find :all, :include => :children) comment(# # => SELECT ... FROM mixins LEFT OUTER JOIN mixins childrens_mixins ...) comment(# TreeMixin.find :all, :include => {:children => :parent} # using cascading eager includes) comment(# # => SELECT ... FROM mixins LEFT OUTER JOIN mixins childrens_mixins ... ) comment(# LEFT OUTER JOIN parents_mixins ...) comment(# TreeMixin.find :all, :include => {:children => {:parent => :children}} ) comment(# # => SELECT ... FROM mixins LEFT OUTER JOIN mixins childrens_mixins ... ) comment(# LEFT OUTER JOIN parents_mixins ... ) comment(# LEFT OUTER JOIN mixins childrens_mixins_2) comment(# ) comment(# Has and Belongs to Many join tables use the same idea, but add a _join suffix:) comment(# ) comment(# Post.find :all, :include => :categories) comment(# # => SELECT ... FROM posts LEFT OUTER JOIN categories_posts ... LEFT OUTER JOIN categories ...) comment(# Post.find :all, :include => {:categories => :posts}) comment(# # => SELECT ... FROM posts LEFT OUTER JOIN categories_posts ... LEFT OUTER JOIN categories ...) comment(# LEFT OUTER JOIN categories_posts posts_categories_join LEFT OUTER JOIN posts posts_categories) comment(# Post.find :all, :include => {:categories => {:posts => :categories}}) comment(# # => SELECT ... FROM posts LEFT OUTER JOIN categories_posts ... LEFT OUTER JOIN categories ...) comment(# LEFT OUTER JOIN categories_posts posts_categories_join LEFT OUTER JOIN posts posts_categories) comment(# LEFT OUTER JOIN categories_posts categories_posts_join LEFT OUTER JOIN categories categories_posts) comment(# ) comment(# If you wish to specify your own custom joins using a :joins option, those table names will take precedence over the eager associations..) comment(# ) comment(# Post.find :all, :include => :comments, :joins => "inner join comments ...") comment(# # => SELECT ... FROM posts LEFT OUTER JOIN comments_posts ON ... INNER JOIN comments ...) comment(# Post.find :all, :include => [:comments, :special_comments], :joins => "inner join comments ...") comment(# # => SELECT ... FROM posts LEFT OUTER JOIN comments comments_posts ON ... ) comment(# LEFT OUTER JOIN comments special_comments_posts ...) comment(# INNER JOIN comments ...) comment(# ) comment(# Table aliases are automatically truncated according to the maximum length of table identifiers according to the specific database.) comment(# ) comment(# == Modules) comment(#) comment(# By default, associations will look for objects within the current module scope. Consider:) comment(#) comment(# module MyApplication) comment(# module Business) comment(# class Firm < ActiveRecord::Base) comment(# has_many :clients) comment(# end) comment(#) comment(# class Company < ActiveRecord::Base; end) comment(# end) comment(# end) comment(#) comment(# When Firm#clients is called, it'll in turn call MyApplication::Business::Company.find(firm.id\). If you want to associate) comment(# with a class in another module scope this can be done by specifying the complete class name, such as:) comment(#) comment(# module MyApplication) comment(# module Business) comment(# class Firm < ActiveRecord::Base; end) comment(# end) comment(#) comment(# module Billing) comment(# class Account < ActiveRecord::Base) comment(# belongs_to :firm, :class_name => "MyApplication::Business::Firm") comment(# end) comment(# end) comment(# end) comment(#) comment(# == Type safety with ActiveRecord::AssociationTypeMismatch) comment(#) comment(# If you attempt to assign an object to an association that doesn't match the inferred or specified :class_name, you'll) comment(# get a ActiveRecord::AssociationTypeMismatch.) comment(#) comment(# == Options) comment(#) comment(# All of the association macros can be specialized through options which makes more complex cases than the simple and guessable ones) comment(# possible.) reserved(module) class(ClassMethods) comment(# Adds the following methods for retrieval and query of collections of associated objects.) comment(# +collection+ is replaced with the symbol passed as the first argument, so ) comment(# has_many :clients would add among others clients.empty?.) comment(# * collection(force_reload = false\) - returns an array of all the associated objects.) comment(# An empty array is returned if none are found.) comment(# * collection<<(object, ...\) - adds one or more objects to the collection by setting their foreign keys to the collection's primary key.) comment(# * collection.delete(object, ...\) - removes one or more objects from the collection by setting their foreign keys to NULL. ) comment(# This will also destroy the objects if they're declared as belongs_to and dependent on this model.) comment(# * collection=objects - replaces the collections content by deleting and adding objects as appropriate.) comment(# * collection_singular_ids=ids - replace the collection by the objects identified by the primary keys in +ids+) comment(# * collection.clear - removes every object from the collection. This destroys the associated objects if they) comment(# are :dependent, deletes them directly from the database if they are :dependent => :delete_all,) comment(# and sets their foreign keys to NULL otherwise.) comment(# * collection.empty? - returns true if there are no associated objects.) comment(# * collection.size - returns the number of associated objects.) comment(# * collection.find - finds an associated object according to the same rules as Base.find.) comment(# * collection.build(attributes = {}\) - returns a new object of the collection type that has been instantiated) comment(# with +attributes+ and linked to this object through a foreign key but has not yet been saved. *Note:* This only works if an ) comment(# associated object already exists, not if it's nil!) comment(# * collection.create(attributes = {}\) - returns a new object of the collection type that has been instantiated) comment(# with +attributes+ and linked to this object through a foreign key and that has already been saved (if it passed the validation\).) comment(# *Note:* This only works if an associated object already exists, not if it's nil!) comment(#) comment(# Example: A Firm class declares has_many :clients, which will add:) comment(# * Firm#clients (similar to Clients.find :all, :conditions => "firm_id = #{id}"\)) comment(# * Firm#clients<<) comment(# * Firm#clients.delete) comment(# * Firm#clients=) comment(# * Firm#client_ids=) comment(# * Firm#clients.clear) comment(# * Firm#clients.empty? (similar to firm.clients.size == 0\)) comment(# * Firm#clients.size (similar to Client.count "firm_id = #{id}"\)) comment(# * Firm#clients.find (similar to Client.find(id, :conditions => "firm_id = #{id}"\)\)) comment(# * Firm#clients.build (similar to Client.new("firm_id" => id\)\)) comment(# * Firm#clients.create (similar to c = Client.new("firm_id" => id\); c.save; c\)) comment(# The declaration can also include an options hash to specialize the behavior of the association.) comment(# ) comment(# Options are:) comment(# * :class_name - specify the class name of the association. Use it only if that name can't be inferred) comment(# from the association name. So has_many :products will by default be linked to the +Product+ class, but) comment(# if the real class name is +SpecialProduct+, you'll have to specify it with this option.) comment(# * :conditions - specify the conditions that the associated objects must meet in order to be included as a "WHERE") comment(# sql fragment, such as "price > 5 AND name LIKE 'B%'".) comment(# * :order - specify the order in which the associated objects are returned as a "ORDER BY" sql fragment,) comment(# such as "last_name, first_name DESC") comment(# * :group - specify the attribute by which the associated objects are returned as a "GROUP BY" sql fragment,) comment(# such as "category" ) comment(# * :foreign_key - specify the foreign key used for the association. By default this is guessed to be the name) comment(# of this class in lower-case and "_id" suffixed. So a +Person+ class that makes a has_many association will use "person_id") comment(# as the default foreign_key.) comment(# * :dependent - if set to :destroy all the associated objects are destroyed) comment(# alongside this object by calling their destroy method. If set to :delete_all all associated) comment(# objects are deleted *without* calling their destroy method. If set to :nullify all associated) comment(# objects' foreign keys are set to NULL *without* calling their save callbacks.) comment(# NOTE: :dependent => true is deprecated and has been replaced with :dependent => :destroy. ) comment(# May not be set if :exclusively_dependent is also set.) comment(# * :exclusively_dependent - Deprecated; equivalent to :dependent => :delete_all. If set to true all) comment(# the associated object are deleted in one SQL statement without having their) comment(# before_destroy callback run. This should only be used on associations that depend solely on this class and don't need to do any) comment(# clean-up in before_destroy. The upside is that it's much faster, especially if there's a counter_cache involved.) comment(# May not be set if :dependent is also set.) comment(# * :finder_sql - specify a complete SQL statement to fetch the association. This is a good way to go for complex) comment(# associations that depend on multiple tables. Note: When this option is used, +find_in_collection+ is _not_ added.) comment(# * :counter_sql - specify a complete SQL statement to fetch the size of the association. If +:finder_sql+ is) comment(# specified but +:counter_sql+, +:counter_sql+ will be generated by replacing SELECT ... FROM with SELECT COUNT(*\) FROM.) comment(# * :extend - specify a named module for extending the proxy, see "Association extensions".) comment(# * :include - specify second-order associations that should be eager loaded when the collection is loaded.) comment(# * :group: An attribute name by which the result should be grouped. Uses the GROUP BY SQL-clause.) comment(# * :limit: An integer determining the limit on the number of rows that should be returned.) comment(# * :offset: An integer determining the offset from where the rows should be fetched. So at 5, it would skip the first 4 rows.) comment(# * :select: By default, this is * as in SELECT * FROM, but can be changed if you for example want to do a join, but not) comment(# include the joined columns.) comment(# * :as: Specifies a polymorphic interface (See #belongs_to\).) comment(# * :through: Specifies a Join Model to perform the query through. Options for :class_name and :foreign_key ) comment(# are ignored, as the association uses the source reflection. You can only use a :through query through a belongs_to) comment(# or has_many association.) comment(# * :source: Specifies the source association name used by has_many :through queries. Only use it if the name cannot be ) comment(# inferred from the association. has_many :subscribers, :through => :subscriptions will look for either +:subscribers+ or) comment(# +:subscriber+ on +Subscription+, unless a +:source+ is given.) comment(#) comment(# Option examples:) comment(# has_many :comments, :order => "posted_on") comment(# has_many :comments, :include => :author) comment(# has_many :people, :class_name => "Person", :conditions => "deleted = 0", :order => "name") comment(# has_many :tracks, :order => "position", :dependent => :destroy) comment(# has_many :comments, :dependent => :nullify) comment(# has_many :tags, :as => :taggable) comment(# has_many :subscribers, :through => :subscriptions, :source => :user) comment(# has_many :subscribers, :class_name => "Person", :finder_sql =>) comment(# 'SELECT DISTINCT people.* ' +) comment(# 'FROM people p, post_subscriptions ps ' +) comment(# 'WHERE ps.post_id = #{id} AND ps.person_id = p.id ' +) comment(# 'ORDER BY p.first_name') reserved(def) method(has_many)operator(()ident(association_id)operator(,) ident(options) operator(=) operator({)operator(})operator(,) operator(&)ident(extension)operator(\)) ident(reflection) operator(=) ident(create_has_many_reflection)operator(()ident(association_id)operator(,) ident(options)operator(,) operator(&)ident(extension)operator(\)) ident(configure_dependency_for_has_many)operator(()ident(reflection)operator(\)) reserved(if) ident(options)operator([)symbol(:through)operator(]) ident(collection_reader_method)operator(()ident(reflection)operator(,) constant(HasManyThroughAssociation)operator(\)) reserved(else) ident(add_multiple_associated_save_callbacks)operator(()ident(reflection)operator(.)ident(name)operator(\)) ident(add_association_callbacks)operator(()ident(reflection)operator(.)ident(name)operator(,) ident(reflection)operator(.)ident(options)operator(\)) ident(collection_accessor_methods)operator(()ident(reflection)operator(,) constant(HasManyAssociation)operator(\)) reserved(end) ident(add_deprecated_api_for_has_many)operator(()ident(reflection)operator(.)ident(name)operator(\)) reserved(end) comment(# Adds the following methods for retrieval and query of a single associated object.) comment(# +association+ is replaced with the symbol passed as the first argument, so ) comment(# has_one :manager would add among others manager.nil?.) comment(# * association(force_reload = false\) - returns the associated object. Nil is returned if none is found.) comment(# * association=(associate\) - assigns the associate object, extracts the primary key, sets it as the foreign key, ) comment(# and saves the associate object.) comment(# * association.nil? - returns true if there is no associated object.) comment(# * build_association(attributes = {}\) - returns a new object of the associated type that has been instantiated) comment(# with +attributes+ and linked to this object through a foreign key but has not yet been saved. Note: This ONLY works if) comment(# an association already exists. It will NOT work if the association is nil.) comment(# * create_association(attributes = {}\) - returns a new object of the associated type that has been instantiated) comment(# with +attributes+ and linked to this object through a foreign key and that has already been saved (if it passed the validation\).) comment(#) comment(# Example: An Account class declares has_one :beneficiary, which will add:) comment(# * Account#beneficiary (similar to Beneficiary.find(:first, :conditions => "account_id = #{id}"\)\)) comment(# * Account#beneficiary=(beneficiary\) (similar to beneficiary.account_id = account.id; beneficiary.save\)) comment(# * Account#beneficiary.nil?) comment(# * Account#build_beneficiary (similar to Beneficiary.new("account_id" => id\)\)) comment(# * Account#create_beneficiary (similar to b = Beneficiary.new("account_id" => id\); b.save; b\)) comment(#) comment(# The declaration can also include an options hash to specialize the behavior of the association.) comment(# ) comment(# Options are:) comment(# * :class_name - specify the class name of the association. Use it only if that name can't be inferred) comment(# from the association name. So has_one :manager will by default be linked to the +Manager+ class, but) comment(# if the real class name is +Person+, you'll have to specify it with this option.) comment(# * :conditions - specify the conditions that the associated object must meet in order to be included as a "WHERE") comment(# sql fragment, such as "rank = 5".) comment(# * :order - specify the order from which the associated object will be picked at the top. Specified as) comment(# an "ORDER BY" sql fragment, such as "last_name, first_name DESC") comment(# * :dependent - if set to :destroy (or true\) all the associated objects are destroyed when this object is. Also,) comment(# association is assigned.) comment(# * :foreign_key - specify the foreign key used for the association. By default this is guessed to be the name) comment(# of this class in lower-case and "_id" suffixed. So a +Person+ class that makes a has_one association will use "person_id") comment(# as the default foreign_key.) comment(# * :include - specify second-order associations that should be eager loaded when this object is loaded.) comment(#) comment(# Option examples:) comment(# has_one :credit_card, :dependent => :destroy # destroys the associated credit card) comment(# has_one :credit_card, :dependent => :nullify # updates the associated records foriegn key value to null rather than destroying it) comment(# has_one :last_comment, :class_name => "Comment", :order => "posted_on") comment(# has_one :project_manager, :class_name => "Person", :conditions => "role = 'project_manager'") reserved(def) method(has_one)operator(()ident(association_id)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(reflection) operator(=) ident(create_has_one_reflection)operator(()ident(association_id)operator(,) ident(options)operator(\)) ident(module_eval) reserved(do) ident(after_save) stringstringcontent("\) unless association.nil? association[")inlinecontent("] = id association.save(true\) end)delimiter( EOF)> reserved(end) ident(association_accessor_methods)operator(()ident(reflection)operator(,) constant(HasOneAssociation)operator(\)) ident(association_constructor_method)operator(()symbol(:build)operator(,) ident(reflection)operator(,) constant(HasOneAssociation)operator(\)) ident(association_constructor_method)operator(()symbol(:create)operator(,) ident(reflection)operator(,) constant(HasOneAssociation)operator(\)) ident(configure_dependency_for_has_one)operator(()ident(reflection)operator(\)) comment(# deprecated api) ident(deprecated_has_association_method)operator(()ident(reflection)operator(.)ident(name)operator(\)) ident(deprecated_association_comparison_method)operator(()ident(reflection)operator(.)ident(name)operator(,) ident(reflection)operator(.)ident(class_name)operator(\)) reserved(end) comment(# Adds the following methods for retrieval and query for a single associated object that this object holds an id to.) comment(# +association+ is replaced with the symbol passed as the first argument, so ) comment(# belongs_to :author would add among others author.nil?.) comment(# * association(force_reload = false\) - returns the associated object. Nil is returned if none is found.) comment(# * association=(associate\) - assigns the associate object, extracts the primary key, and sets it as the foreign key.) comment(# * association.nil? - returns true if there is no associated object.) comment(# * build_association(attributes = {}\) - returns a new object of the associated type that has been instantiated) comment(# with +attributes+ and linked to this object through a foreign key but has not yet been saved.) comment(# * create_association(attributes = {}\) - returns a new object of the associated type that has been instantiated) comment(# with +attributes+ and linked to this object through a foreign key and that has already been saved (if it passed the validation\).) comment(#) comment(# Example: A Post class declares belongs_to :author, which will add:) comment(# * Post#author (similar to Author.find(author_id\)\)) comment(# * Post#author=(author\) (similar to post.author_id = author.id\)) comment(# * Post#author? (similar to post.author == some_author\)) comment(# * Post#author.nil?) comment(# * Post#build_author (similar to post.author = Author.new\)) comment(# * Post#create_author (similar to post.author = Author.new; post.author.save; post.author\)) comment(# The declaration can also include an options hash to specialize the behavior of the association.) comment(# ) comment(# Options are:) comment(# * :class_name - specify the class name of the association. Use it only if that name can't be inferred) comment(# from the association name. So has_one :author will by default be linked to the +Author+ class, but) comment(# if the real class name is +Person+, you'll have to specify it with this option.) comment(# * :conditions - specify the conditions that the associated object must meet in order to be included as a "WHERE") comment(# sql fragment, such as "authorized = 1".) comment(# * :order - specify the order from which the associated object will be picked at the top. Specified as) comment(# an "ORDER BY" sql fragment, such as "last_name, first_name DESC") comment(# * :foreign_key - specify the foreign key used for the association. By default this is guessed to be the name) comment(# of the associated class in lower-case and "_id" suffixed. So a +Person+ class that makes a belongs_to association to a) comment(# +Boss+ class will use "boss_id" as the default foreign_key.) comment(# * :counter_cache - caches the number of belonging objects on the associate class through use of increment_counter ) comment(# and decrement_counter. The counter cache is incremented when an object of this class is created and decremented when it's) comment(# destroyed. This requires that a column named "#{table_name}_count" (such as comments_count for a belonging Comment class\)) comment(# is used on the associate class (such as a Post class\). You can also specify a custom counter cache column by given that) comment(# name instead of a true/false value to this option (e.g., :counter_cache => :my_custom_counter.\)) comment(# * :include - specify second-order associations that should be eager loaded when this object is loaded.) comment(# * :polymorphic - specify this association is a polymorphic association by passing true.) comment(#) comment(# Option examples:) comment(# belongs_to :firm, :foreign_key => "client_of") comment(# belongs_to :author, :class_name => "Person", :foreign_key => "author_id") comment(# belongs_to :valid_coupon, :class_name => "Coupon", :foreign_key => "coupon_id", ) comment(# :conditions => 'discounts > #{payments_count}') comment(# belongs_to :attachable, :polymorphic => true) reserved(def) method(belongs_to)operator(()ident(association_id)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(reflection) operator(=) ident(create_belongs_to_reflection)operator(()ident(association_id)operator(,) ident(options)operator(\)) reserved(if) ident(reflection)operator(.)ident(options)operator([)symbol(:polymorphic)operator(]) ident(association_accessor_methods)operator(()ident(reflection)operator(,) constant(BelongsToPolymorphicAssociation)operator(\)) ident(module_eval) reserved(do) ident(before_save) stringstringcontent("\) if !association.nil? if association.new_record? association.save(true\) end if association.updated? self[")inlinecontent("] = association.id self[")inlinecontent("] = association.class.base_class.name.to_s end end)delimiter( EOF)> reserved(end) reserved(else) ident(association_accessor_methods)operator(()ident(reflection)operator(,) constant(BelongsToAssociation)operator(\)) ident(association_constructor_method)operator(()symbol(:build)operator(,) ident(reflection)operator(,) constant(BelongsToAssociation)operator(\)) ident(association_constructor_method)operator(()symbol(:create)operator(,) ident(reflection)operator(,) constant(BelongsToAssociation)operator(\)) ident(module_eval) reserved(do) ident(before_save) stringstringcontent("\) if !association.nil? if association.new_record? association.save(true\) end if association.updated? self[")inlinecontent("] = association.id end end )delimiter( EOF)> reserved(end) comment(# deprecated api) ident(deprecated_has_association_method)operator(()ident(reflection)operator(.)ident(name)operator(\)) ident(deprecated_association_comparison_method)operator(()ident(reflection)operator(.)ident(name)operator(,) ident(reflection)operator(.)ident(class_name)operator(\)) reserved(end) reserved(if) ident(options)operator([)symbol(:counter_cache)operator(]) ident(cache_column) operator(=) ident(options)operator([)symbol(:counter_cache)operator(]) operator(==) pre_constant(true) operator(?) stringcontent(_count)delimiter(")> operator(:) ident(options)operator([)symbol(:counter_cache)operator(]) ident(module_eval)operator(() stringcontent(.class.increment_counter()char(\\")inlinechar(\\")content(, )inlinecontent(\))delimiter(")> operator(+) stringcontent(.nil?')delimiter(")> operator(\)) ident(module_eval)operator(() stringcontent(.class.decrement_counter()char(\\")inlinechar(\\")content(, )inlinecontent(\))delimiter(")> operator(+) stringcontent(.nil?')delimiter(")> operator(\)) reserved(end) reserved(end) comment(# Associates two classes via an intermediate join table. Unless the join table is explicitly specified as) comment(# an option, it is guessed using the lexical order of the class names. So a join between Developer and Project) comment(# will give the default join table name of "developers_projects" because "D" outranks "P".) comment(#) comment(# Deprecated: Any additional fields added to the join table will be placed as attributes when pulling records out through) comment(# has_and_belongs_to_many associations. Records returned from join tables with additional attributes will be marked as) comment(# ReadOnly (because we can't save changes to the additional attrbutes\). It's strongly recommended that you upgrade any) comment(# associations with attributes to a real join model (see introduction\).) comment(#) comment(# Adds the following methods for retrieval and query.) comment(# +collection+ is replaced with the symbol passed as the first argument, so ) comment(# has_and_belongs_to_many :categories would add among others categories.empty?.) comment(# * collection(force_reload = false\) - returns an array of all the associated objects.) comment(# An empty array is returned if none is found.) comment(# * collection<<(object, ...\) - adds one or more objects to the collection by creating associations in the join table ) comment(# (collection.push and collection.concat are aliases to this method\).) comment(# * collection.push_with_attributes(object, join_attributes\) - adds one to the collection by creating an association in the join table that) comment(# also holds the attributes from join_attributes (should be a hash with the column names as keys\). This can be used to have additional) comment(# attributes on the join, which will be injected into the associated objects when they are retrieved through the collection.) comment(# (collection.concat_with_attributes is an alias to this method\). This method is now deprecated.) comment(# * collection.delete(object, ...\) - removes one or more objects from the collection by removing their associations from the join table. ) comment(# This does not destroy the objects.) comment(# * collection=objects - replaces the collections content by deleting and adding objects as appropriate.) comment(# * collection_singular_ids=ids - replace the collection by the objects identified by the primary keys in +ids+) comment(# * collection.clear - removes every object from the collection. This does not destroy the objects.) comment(# * collection.empty? - returns true if there are no associated objects.) comment(# * collection.size - returns the number of associated objects.) comment(# * collection.find(id\) - finds an associated object responding to the +id+ and that) comment(# meets the condition that it has to be associated with this object.) comment(#) comment(# Example: An Developer class declares has_and_belongs_to_many :projects, which will add:) comment(# * Developer#projects) comment(# * Developer#projects<<) comment(# * Developer#projects.push_with_attributes) comment(# * Developer#projects.delete) comment(# * Developer#projects=) comment(# * Developer#project_ids=) comment(# * Developer#projects.clear) comment(# * Developer#projects.empty?) comment(# * Developer#projects.size) comment(# * Developer#projects.find(id\)) comment(# The declaration may include an options hash to specialize the behavior of the association.) comment(# ) comment(# Options are:) comment(# * :class_name - specify the class name of the association. Use it only if that name can't be inferred) comment(# from the association name. So has_and_belongs_to_many :projects will by default be linked to the ) comment(# +Project+ class, but if the real class name is +SuperProject+, you'll have to specify it with this option.) comment(# * :join_table - specify the name of the join table if the default based on lexical order isn't what you want.) comment(# WARNING: If you're overwriting the table name of either class, the table_name method MUST be declared underneath any) comment(# has_and_belongs_to_many declaration in order to work.) comment(# * :foreign_key - specify the foreign key used for the association. By default this is guessed to be the name) comment(# of this class in lower-case and "_id" suffixed. So a +Person+ class that makes a has_and_belongs_to_many association) comment(# will use "person_id" as the default foreign_key.) comment(# * :association_foreign_key - specify the association foreign key used for the association. By default this is) comment(# guessed to be the name of the associated class in lower-case and "_id" suffixed. So if the associated class is +Project+,) comment(# the has_and_belongs_to_many association will use "project_id" as the default association foreign_key.) comment(# * :conditions - specify the conditions that the associated object must meet in order to be included as a "WHERE") comment(# sql fragment, such as "authorized = 1".) comment(# * :order - specify the order in which the associated objects are returned as a "ORDER BY" sql fragment, such as "last_name, first_name DESC") comment(# * :uniq - if set to true, duplicate associated objects will be ignored by accessors and query methods) comment(# * :finder_sql - overwrite the default generated SQL used to fetch the association with a manual one) comment(# * :delete_sql - overwrite the default generated SQL used to remove links between the associated ) comment(# classes with a manual one) comment(# * :insert_sql - overwrite the default generated SQL used to add links between the associated classes) comment(# with a manual one) comment(# * :extend - anonymous module for extending the proxy, see "Association extensions".) comment(# * :include - specify second-order associations that should be eager loaded when the collection is loaded.) comment(# * :group: An attribute name by which the result should be grouped. Uses the GROUP BY SQL-clause.) comment(# * :limit: An integer determining the limit on the number of rows that should be returned.) comment(# * :offset: An integer determining the offset from where the rows should be fetched. So at 5, it would skip the first 4 rows.) comment(# * :select: By default, this is * as in SELECT * FROM, but can be changed if you for example want to do a join, but not) comment(# include the joined columns.) comment(#) comment(# Option examples:) comment(# has_and_belongs_to_many :projects) comment(# has_and_belongs_to_many :projects, :include => [ :milestones, :manager ]) comment(# has_and_belongs_to_many :nations, :class_name => "Country") comment(# has_and_belongs_to_many :categories, :join_table => "prods_cats") comment(# has_and_belongs_to_many :active_projects, :join_table => 'developers_projects', :delete_sql => ) comment(# 'DELETE FROM developers_projects WHERE active=1 AND developer_id = #{id} AND project_id = #{record.id}') reserved(def) method(has_and_belongs_to_many)operator(()ident(association_id)operator(,) ident(options) operator(=) operator({)operator(})operator(,) operator(&)ident(extension)operator(\)) ident(reflection) operator(=) ident(create_has_and_belongs_to_many_reflection)operator(()ident(association_id)operator(,) ident(options)operator(,) operator(&)ident(extension)operator(\)) ident(add_multiple_associated_save_callbacks)operator(()ident(reflection)operator(.)ident(name)operator(\)) ident(collection_accessor_methods)operator(()ident(reflection)operator(,) constant(HasAndBelongsToManyAssociation)operator(\)) comment(# Don't use a before_destroy callback since users' before_destroy) comment(# callbacks will be executed after the association is wiped out.) ident(old_method) operator(=) stringdelimiter(")> ident(class_eval) stringstringcontent(, :destroy_without_callbacks def destroy_without_callbacks )inlinecontent(.clear )inlinecontent( end)delimiter( end_eval)> ident(add_association_callbacks)operator(()ident(reflection)operator(.)ident(name)operator(,) ident(options)operator(\)) comment(# deprecated api) ident(deprecated_collection_count_method)operator(()ident(reflection)operator(.)ident(name)operator(\)) ident(deprecated_add_association_relation)operator(()ident(reflection)operator(.)ident(name)operator(\)) ident(deprecated_remove_association_relation)operator(()ident(reflection)operator(.)ident(name)operator(\)) ident(deprecated_has_collection_method)operator(()ident(reflection)operator(.)ident(name)operator(\)) reserved(end) ident(private) reserved(def) method(join_table_name)operator(()ident(first_table_name)operator(,) ident(second_table_name)operator(\)) reserved(if) ident(first_table_name) operator(<) ident(second_table_name) ident(join_table) operator(=) stringcontent(_)inlinedelimiter(")> reserved(else) ident(join_table) operator(=) stringcontent(_)inlinedelimiter(")> reserved(end) ident(table_name_prefix) operator(+) ident(join_table) operator(+) ident(table_name_suffix) reserved(end) reserved(def) method(association_accessor_methods)operator(()ident(reflection)operator(,) ident(association_proxy_class)operator(\)) ident(define_method)operator(()ident(reflection)operator(.)ident(name)operator(\)) reserved(do) operator(|*)ident(params)operator(|) ident(force_reload) operator(=) ident(params)operator(.)ident(first) reserved(unless) ident(params)operator(.)ident(empty?) ident(association) operator(=) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(if) ident(association)operator(.)ident(nil?) operator(||) ident(force_reload) ident(association) operator(=) ident(association_proxy_class)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(reflection)operator(\)) ident(retval) operator(=) ident(association)operator(.)ident(reload) reserved(unless) ident(retval)operator(.)ident(nil?) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) ident(association)operator(\)) reserved(else) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) pre_constant(nil)operator(\)) reserved(return) pre_constant(nil) reserved(end) reserved(end) ident(association) reserved(end) ident(define_method)operator(()stringcontent(=)delimiter(")>operator(\)) reserved(do) operator(|)ident(new_value)operator(|) ident(association) operator(=) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(if) ident(association)operator(.)ident(nil?) ident(association) operator(=) ident(association_proxy_class)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(reflection)operator(\)) reserved(end) ident(association)operator(.)ident(replace)operator(()ident(new_value)operator(\)) reserved(unless) ident(new_value)operator(.)ident(nil?) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) ident(association)operator(\)) reserved(else) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) pre_constant(nil)operator(\)) reserved(return) pre_constant(nil) reserved(end) ident(association) reserved(end) ident(define_method)operator(()stringcontent(_target)delimiter(")>operator(\)) reserved(do) operator(|)ident(target)operator(|) reserved(return) reserved(if) ident(target)operator(.)ident(nil?) ident(association) operator(=) ident(association_proxy_class)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(reflection)operator(\)) ident(association)operator(.)ident(target) operator(=) ident(target) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) ident(association)operator(\)) reserved(end) reserved(end) reserved(def) method(collection_reader_method)operator(()ident(reflection)operator(,) ident(association_proxy_class)operator(\)) ident(define_method)operator(()ident(reflection)operator(.)ident(name)operator(\)) reserved(do) operator(|*)ident(params)operator(|) ident(force_reload) operator(=) ident(params)operator(.)ident(first) reserved(unless) ident(params)operator(.)ident(empty?) ident(association) operator(=) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(unless) ident(association)operator(.)ident(respond_to?)operator(()symbol(:loaded?)operator(\)) ident(association) operator(=) ident(association_proxy_class)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(reflection)operator(\)) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) ident(association)operator(\)) reserved(end) ident(association)operator(.)ident(reload) reserved(if) ident(force_reload) ident(association) reserved(end) reserved(end) reserved(def) method(collection_accessor_methods)operator(()ident(reflection)operator(,) ident(association_proxy_class)operator(\)) ident(collection_reader_method)operator(()ident(reflection)operator(,) ident(association_proxy_class)operator(\)) ident(define_method)operator(()stringcontent(=)delimiter(")>operator(\)) reserved(do) operator(|)ident(new_value)operator(|) ident(association) operator(=) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(unless) ident(association)operator(.)ident(respond_to?)operator(()symbol(:loaded?)operator(\)) ident(association) operator(=) ident(association_proxy_class)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(reflection)operator(\)) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) ident(association)operator(\)) reserved(end) ident(association)operator(.)ident(replace)operator(()ident(new_value)operator(\)) ident(association) reserved(end) ident(define_method)operator(()stringcontent(_ids=)delimiter(")>operator(\)) reserved(do) operator(|)ident(new_value)operator(|) ident(send)operator(()stringcontent(=)delimiter(")>operator(,) ident(reflection)operator(.)ident(class_name)operator(.)ident(constantize)operator(.)ident(find)operator(()ident(new_value)operator(\))operator(\)) reserved(end) reserved(end) reserved(def) method(require_association_class)operator(()ident(class_name)operator(\)) ident(require_association)operator(()constant(Inflector)operator(.)ident(underscore)operator(()ident(class_name)operator(\))operator(\)) reserved(if) ident(class_name) reserved(end) reserved(def) method(add_multiple_associated_save_callbacks)operator(()ident(association_name)operator(\)) ident(method_name) operator(=) stringdelimiter(")>operator(.)ident(to_sym) ident(define_method)operator(()ident(method_name)operator(\)) reserved(do) ident(association) operator(=) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(if) ident(association)operator(.)ident(respond_to?)operator(()symbol(:loaded?)operator(\)) reserved(if) ident(new_record?) ident(association) reserved(else) ident(association)operator(.)ident(select) operator({) operator(|)ident(record)operator(|) ident(record)operator(.)ident(new_record?) operator(}) reserved(end)operator(.)ident(each) reserved(do) operator(|)ident(record)operator(|) ident(errors)operator(.)ident(add) stringdelimiter(")> reserved(unless) ident(record)operator(.)ident(valid?) reserved(end) reserved(end) reserved(end) ident(validate) ident(method_name) ident(before_save)operator(()stringoperator(\)) ident(after_callback) operator(=) stringstringcontent("\) if association.respond_to?(:loaded?\) if @new_record_before_save records_to_save = association else records_to_save = association.select { |record| record.new_record? } end records_to_save.each { |record| association.send(:insert_record, record\) } association.send(:construct_sql\) # reconstruct the SQL queries now that we know the owner's id end)delimiter( end_eval)> comment(# Doesn't use after_save as that would save associations added in after_create/after_update twice) ident(after_create)operator(()ident(after_callback)operator(\)) ident(after_update)operator(()ident(after_callback)operator(\)) reserved(end) reserved(def) method(association_constructor_method)operator(()ident(constructor)operator(,) ident(reflection)operator(,) ident(association_proxy_class)operator(\)) ident(define_method)operator(()stringcontent(_)inlinedelimiter(")>operator(\)) reserved(do) operator(|*)ident(params)operator(|) ident(attributees) operator(=) ident(params)operator(.)ident(first) reserved(unless) ident(params)operator(.)ident(empty?) ident(replace_existing) operator(=) ident(params)operator([)integer(1)operator(])operator(.)ident(nil?) operator(?) pre_constant(true) operator(:) ident(params)operator([)integer(1)operator(]) ident(association) operator(=) ident(instance_variable_get)operator(()stringdelimiter(")>operator(\)) reserved(if) ident(association)operator(.)ident(nil?) ident(association) operator(=) ident(association_proxy_class)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(reflection)operator(\)) ident(instance_variable_set)operator(()stringdelimiter(")>operator(,) ident(association)operator(\)) reserved(end) reserved(if) ident(association_proxy_class) operator(==) constant(HasOneAssociation) ident(association)operator(.)ident(send)operator(()ident(constructor)operator(,) ident(attributees)operator(,) ident(replace_existing)operator(\)) reserved(else) ident(association)operator(.)ident(send)operator(()ident(constructor)operator(,) ident(attributees)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(count_with_associations)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(catch) symbol(:invalid_query) reserved(do) ident(join_dependency) operator(=) constant(JoinDependency)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(merge_includes)operator(()ident(scope)operator(()symbol(:find)operator(,) symbol(:include)operator(\))operator(,) ident(options)operator([)symbol(:include)operator(])operator(\))operator(,) ident(options)operator([)symbol(:joins)operator(])operator(\)) reserved(return) ident(count_by_sql)operator(()ident(construct_counter_sql_with_included_associations)operator(()ident(options)operator(,) ident(join_dependency)operator(\))operator(\)) reserved(end) integer(0) reserved(end) reserved(def) method(find_with_associations)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(catch) symbol(:invalid_query) reserved(do) ident(join_dependency) operator(=) constant(JoinDependency)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(merge_includes)operator(()ident(scope)operator(()symbol(:find)operator(,) symbol(:include)operator(\))operator(,) ident(options)operator([)symbol(:include)operator(])operator(\))operator(,) ident(options)operator([)symbol(:joins)operator(])operator(\)) ident(rows) operator(=) ident(select_all_rows)operator(()ident(options)operator(,) ident(join_dependency)operator(\)) reserved(return) ident(join_dependency)operator(.)ident(instantiate)operator(()ident(rows)operator(\)) reserved(end) operator([)operator(]) reserved(end) reserved(def) method(configure_dependency_for_has_many)operator(()ident(reflection)operator(\)) reserved(if) ident(reflection)operator(.)ident(options)operator([)symbol(:dependent)operator(]) operator(&&) ident(reflection)operator(.)ident(options)operator([)symbol(:exclusively_dependent)operator(]) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(if) ident(reflection)operator(.)ident(options)operator([)symbol(:exclusively_dependent)operator(]) ident(reflection)operator(.)ident(options)operator([)symbol(:dependent)operator(]) operator(=) symbol(:delete_all) comment(#warn "The :exclusively_dependent option is deprecated. Please use :dependent => :delete_all instead."\)) reserved(end) comment(# See HasManyAssociation#delete_records. Dependent associations) comment(# delete children, otherwise foreign key is set to NULL.) comment(# Add polymorphic type if the :as option is present) ident(dependent_conditions) operator(=) stringcontent( = )char(\\#)content({record.quoted_id})delimiter(\))> reserved(if) ident(reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) ident(dependent_conditions) operator(+=) stringcontent(_type = ')inlinecontent(')delimiter(")> reserved(end) reserved(case) ident(reflection)operator(.)ident(options)operator([)symbol(:dependent)operator(]) reserved(when) symbol(:destroy)operator(,) pre_constant(true) ident(module_eval) stringcontent(.each { |o| o.destroy }')delimiter(")> reserved(when) symbol(:delete_all) ident(module_eval) stringcontent(.delete_all(%()inlinecontent(\)\) })delimiter(")> reserved(when) symbol(:nullify) ident(module_eval) stringcontent(.update_all(%()inlinecontent( = NULL\), %()inlinecontent(\)\) })delimiter(")> reserved(when) pre_constant(nil)operator(,) pre_constant(false) comment(# pass) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(end) reserved(def) method(configure_dependency_for_has_one)operator(()ident(reflection)operator(\)) reserved(case) ident(reflection)operator(.)ident(options)operator([)symbol(:dependent)operator(]) reserved(when) symbol(:destroy)operator(,) pre_constant(true) ident(module_eval) stringcontent(.destroy unless )inlinecontent(.nil?')delimiter(")> reserved(when) symbol(:nullify) ident(module_eval) stringcontent(.update_attribute()char(\\")inlinechar(\\")content(, nil\)')delimiter(")> reserved(when) pre_constant(nil)operator(,) pre_constant(false) comment(# pass) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(end) reserved(def) method(add_deprecated_api_for_has_many)operator(()ident(association_name)operator(\)) ident(deprecated_collection_count_method)operator(()ident(association_name)operator(\)) ident(deprecated_add_association_relation)operator(()ident(association_name)operator(\)) ident(deprecated_remove_association_relation)operator(()ident(association_name)operator(\)) ident(deprecated_has_collection_method)operator(()ident(association_name)operator(\)) ident(deprecated_find_in_collection_method)operator(()ident(association_name)operator(\)) ident(deprecated_find_all_in_collection_method)operator(()ident(association_name)operator(\)) ident(deprecated_collection_create_method)operator(()ident(association_name)operator(\)) ident(deprecated_collection_build_method)operator(()ident(association_name)operator(\)) reserved(end) reserved(def) method(create_has_many_reflection)operator(()ident(association_id)operator(,) ident(options)operator(,) operator(&)ident(extension)operator(\)) ident(options)operator(.)ident(assert_valid_keys)operator(() symbol(:class_name)operator(,) symbol(:table_name)operator(,) symbol(:foreign_key)operator(,) symbol(:exclusively_dependent)operator(,) symbol(:dependent)operator(,) symbol(:select)operator(,) symbol(:conditions)operator(,) symbol(:include)operator(,) symbol(:order)operator(,) symbol(:group)operator(,) symbol(:limit)operator(,) symbol(:offset)operator(,) symbol(:as)operator(,) symbol(:through)operator(,) symbol(:source)operator(,) symbol(:finder_sql)operator(,) symbol(:counter_sql)operator(,) symbol(:before_add)operator(,) symbol(:after_add)operator(,) symbol(:before_remove)operator(,) symbol(:after_remove)operator(,) symbol(:extend) operator(\)) ident(options)operator([)symbol(:extend)operator(]) operator(=) ident(create_extension_module)operator(()ident(association_id)operator(,) ident(extension)operator(\)) reserved(if) ident(block_given?) ident(create_reflection)operator(()symbol(:has_many)operator(,) ident(association_id)operator(,) ident(options)operator(,) pre_constant(self)operator(\)) reserved(end) reserved(def) method(create_has_one_reflection)operator(()ident(association_id)operator(,) ident(options)operator(\)) ident(options)operator(.)ident(assert_valid_keys)operator(() symbol(:class_name)operator(,) symbol(:foreign_key)operator(,) symbol(:remote)operator(,) symbol(:conditions)operator(,) symbol(:order)operator(,) symbol(:include)operator(,) symbol(:dependent)operator(,) symbol(:counter_cache)operator(,) symbol(:extend)operator(,) symbol(:as) operator(\)) ident(create_reflection)operator(()symbol(:has_one)operator(,) ident(association_id)operator(,) ident(options)operator(,) pre_constant(self)operator(\)) reserved(end) reserved(def) method(create_belongs_to_reflection)operator(()ident(association_id)operator(,) ident(options)operator(\)) ident(options)operator(.)ident(assert_valid_keys)operator(() symbol(:class_name)operator(,) symbol(:foreign_key)operator(,) symbol(:foreign_type)operator(,) symbol(:remote)operator(,) symbol(:conditions)operator(,) symbol(:order)operator(,) symbol(:include)operator(,) symbol(:dependent)operator(,) symbol(:counter_cache)operator(,) symbol(:extend)operator(,) symbol(:polymorphic) operator(\)) ident(reflection) operator(=) ident(create_reflection)operator(()symbol(:belongs_to)operator(,) ident(association_id)operator(,) ident(options)operator(,) pre_constant(self)operator(\)) reserved(if) ident(options)operator([)symbol(:polymorphic)operator(]) ident(reflection)operator(.)ident(options)operator([)symbol(:foreign_type)operator(]) operator(||=) ident(reflection)operator(.)ident(class_name)operator(.)ident(underscore) operator(+) string reserved(end) ident(reflection) reserved(end) reserved(def) method(create_has_and_belongs_to_many_reflection)operator(()ident(association_id)operator(,) ident(options)operator(,) operator(&)ident(extension)operator(\)) ident(options)operator(.)ident(assert_valid_keys)operator(() symbol(:class_name)operator(,) symbol(:table_name)operator(,) symbol(:join_table)operator(,) symbol(:foreign_key)operator(,) symbol(:association_foreign_key)operator(,) symbol(:select)operator(,) symbol(:conditions)operator(,) symbol(:include)operator(,) symbol(:order)operator(,) symbol(:group)operator(,) symbol(:limit)operator(,) symbol(:offset)operator(,) symbol(:finder_sql)operator(,) symbol(:delete_sql)operator(,) symbol(:insert_sql)operator(,) symbol(:uniq)operator(,) symbol(:before_add)operator(,) symbol(:after_add)operator(,) symbol(:before_remove)operator(,) symbol(:after_remove)operator(,) symbol(:extend) operator(\)) ident(options)operator([)symbol(:extend)operator(]) operator(=) ident(create_extension_module)operator(()ident(association_id)operator(,) ident(extension)operator(\)) reserved(if) ident(block_given?) ident(reflection) operator(=) ident(create_reflection)operator(()symbol(:has_and_belongs_to_many)operator(,) ident(association_id)operator(,) ident(options)operator(,) pre_constant(self)operator(\)) ident(reflection)operator(.)ident(options)operator([)symbol(:join_table)operator(]) operator(||=) ident(join_table_name)operator(()ident(undecorated_table_name)operator(()pre_constant(self)operator(.)ident(to_s)operator(\))operator(,) ident(undecorated_table_name)operator(()ident(reflection)operator(.)ident(class_name)operator(\))operator(\)) ident(reflection) reserved(end) reserved(def) method(reflect_on_included_associations)operator(()ident(associations)operator(\)) operator([) ident(associations) operator(])operator(.)ident(flatten)operator(.)ident(collect) operator({) operator(|)ident(association)operator(|) ident(reflect_on_association)operator(()ident(association)operator(.)ident(to_s)operator(.)ident(intern)operator(\)) operator(}) reserved(end) reserved(def) method(guard_against_unlimitable_reflections)operator(()ident(reflections)operator(,) ident(options)operator(\)) reserved(if) operator(()ident(options)operator([)symbol(:offset)operator(]) operator(||) ident(options)operator([)symbol(:limit)operator(])operator(\)) operator(&&) operator(!)ident(using_limitable_reflections?)operator(()ident(reflections)operator(\)) ident(raise)operator(() constant(ConfigurationError)operator(,) string operator(\)) reserved(end) reserved(end) reserved(def) method(select_all_rows)operator(()ident(options)operator(,) ident(join_dependency)operator(\)) ident(connection)operator(.)ident(select_all)operator(() ident(construct_finder_sql_with_included_associations)operator(()ident(options)operator(,) ident(join_dependency)operator(\))operator(,) stringcontent( Load Including Associations)delimiter(")> operator(\)) reserved(end) reserved(def) method(construct_counter_sql_with_included_associations)operator(()ident(options)operator(,) ident(join_dependency)operator(\)) ident(scope) operator(=) ident(scope)operator(()symbol(:find)operator(\)) ident(sql) operator(=) stringcontent(.)inlinecontent(\))delimiter(")> comment(# A (slower\) workaround if we're using a backend, like sqlite, that doesn't support COUNT DISTINCT.) reserved(if) operator(!)constant(Base)operator(.)ident(connection)operator(.)ident(supports_count_distinct?) ident(sql) operator(=) stringcontent(.)inlinedelimiter(")> reserved(end) ident(sql) operator(<<) stringcontent( )delimiter(")> ident(sql) operator(<<) ident(join_dependency)operator(.)ident(join_associations)operator(.)ident(collect)operator({)operator(|)ident(join)operator(|) ident(join)operator(.)ident(association_join) operator(})operator(.)ident(join) ident(add_joins!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope)operator(\)) ident(add_conditions!)operator(()ident(sql)operator(,) ident(options)operator([)symbol(:conditions)operator(])operator(,) ident(scope)operator(\)) ident(add_limited_ids_condition!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(join_dependency)operator(\)) reserved(if) operator(!)ident(using_limitable_reflections?)operator(()ident(join_dependency)operator(.)ident(reflections)operator(\)) operator(&&) operator(()operator(()ident(scope) operator(&&) ident(scope)operator([)symbol(:limit)operator(])operator(\)) operator(||) ident(options)operator([)symbol(:limit)operator(])operator(\)) ident(add_limit!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope)operator(\)) reserved(if) ident(using_limitable_reflections?)operator(()ident(join_dependency)operator(.)ident(reflections)operator(\)) reserved(if) operator(!)constant(Base)operator(.)ident(connection)operator(.)ident(supports_count_distinct?) ident(sql) operator(<<) string reserved(end) reserved(return) ident(sanitize_sql)operator(()ident(sql)operator(\)) reserved(end) reserved(def) method(construct_finder_sql_with_included_associations)operator(()ident(options)operator(,) ident(join_dependency)operator(\)) ident(scope) operator(=) ident(scope)operator(()symbol(:find)operator(\)) ident(sql) operator(=) stringcontent( FROM )inlinecontent( )delimiter(")> ident(sql) operator(<<) ident(join_dependency)operator(.)ident(join_associations)operator(.)ident(collect)operator({)operator(|)ident(join)operator(|) ident(join)operator(.)ident(association_join) operator(})operator(.)ident(join) ident(add_joins!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope)operator(\)) ident(add_conditions!)operator(()ident(sql)operator(,) ident(options)operator([)symbol(:conditions)operator(])operator(,) ident(scope)operator(\)) ident(add_limited_ids_condition!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(join_dependency)operator(\)) reserved(if) operator(!)ident(using_limitable_reflections?)operator(()ident(join_dependency)operator(.)ident(reflections)operator(\)) operator(&&) ident(options)operator([)symbol(:limit)operator(]) ident(sql) operator(<<) stringcontent( )delimiter(")> reserved(if) ident(options)operator([)symbol(:order)operator(]) ident(add_limit!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope)operator(\)) reserved(if) ident(using_limitable_reflections?)operator(()ident(join_dependency)operator(.)ident(reflections)operator(\)) reserved(return) ident(sanitize_sql)operator(()ident(sql)operator(\)) reserved(end) reserved(def) method(add_limited_ids_condition!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(join_dependency)operator(\)) reserved(unless) operator(()ident(id_list) operator(=) ident(select_limited_ids_list)operator(()ident(options)operator(,) ident(join_dependency)operator(\))operator(\))operator(.)ident(empty?) ident(sql) operator(<<) stringcontent( )inlinecontent(.)inlinecontent( IN ()inlinecontent(\) )delimiter(")> reserved(else) ident(throw) symbol(:invalid_query) reserved(end) reserved(end) reserved(def) method(select_limited_ids_list)operator(()ident(options)operator(,) ident(join_dependency)operator(\)) ident(connection)operator(.)ident(select_all)operator(() ident(construct_finder_sql_for_association_limiting)operator(()ident(options)operator(,) ident(join_dependency)operator(\))operator(,) stringcontent( Load IDs For Limited Eager Loading)delimiter(")> operator(\))operator(.)ident(collect) operator({) operator(|)ident(row)operator(|) ident(connection)operator(.)ident(quote)operator(()ident(row)operator([)ident(primary_key)operator(])operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(construct_finder_sql_for_association_limiting)operator(()ident(options)operator(,) ident(join_dependency)operator(\)) ident(scope) operator(=) ident(scope)operator(()symbol(:find)operator(\)) ident(sql) operator(=) string ident(sql) operator(<<) stringcontent(.)delimiter(")> reserved(if) ident(include_eager_conditions?)operator(()ident(options)operator(\)) operator(||) ident(include_eager_order?)operator(()ident(options)operator(\)) ident(sql) operator(<<) ident(primary_key) ident(sql) operator(<<) stringoperator(\))operator(.)ident(collect) operator({) operator(|)ident(s)operator(|) ident(s)operator(.)ident(split)operator(.)ident(first) operator(}) operator(*) stringinline_delimiter(})>delimiter(")> reserved(if) ident(options)operator([)symbol(:order)operator(]) operator(&&) operator(()ident(include_eager_conditions?)operator(()ident(options)operator(\)) operator(||) ident(include_eager_order?)operator(()ident(options)operator(\))operator(\)) ident(sql) operator(<<) stringcontent( )delimiter(")> reserved(if) ident(include_eager_conditions?)operator(()ident(options)operator(\)) operator(||) ident(include_eager_order?)operator(()ident(options)operator(\)) ident(sql) operator(<<) ident(join_dependency)operator(.)ident(join_associations)operator(.)ident(collect)operator({)operator(|)ident(join)operator(|) ident(join)operator(.)ident(association_join) operator(})operator(.)ident(join) ident(add_joins!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope)operator(\)) reserved(end) ident(add_conditions!)operator(()ident(sql)operator(,) ident(options)operator([)symbol(:conditions)operator(])operator(,) ident(scope)operator(\)) ident(sql) operator(<<) stringcontent( )delimiter(")> reserved(if) ident(options)operator([)symbol(:order)operator(]) ident(add_limit!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope)operator(\)) reserved(return) ident(sanitize_sql)operator(()ident(sql)operator(\)) reserved(end) comment(# Checks if the conditions reference a table other than the current model table) reserved(def) method(include_eager_conditions?)operator(()ident(options)operator(\)) comment(# look in both sets of conditions) ident(conditions) operator(=) operator([)ident(scope)operator(()symbol(:find)operator(,) symbol(:conditions)operator(\))operator(,) ident(options)operator([)symbol(:conditions)operator(])operator(])operator(.)ident(inject)operator(()operator([)operator(])operator(\)) reserved(do) operator(|)ident(all)operator(,) ident(cond)operator(|) reserved(case) ident(cond) reserved(when) pre_constant(nil) reserved(then) ident(all) reserved(when) constant(Array) reserved(then) ident(all) operator(<<) ident(cond)operator(.)ident(first) reserved(else) ident(all) operator(<<) ident(cond) reserved(end) reserved(end) reserved(return) pre_constant(false) reserved(unless) ident(conditions)operator(.)ident(any?) ident(conditions)operator(.)ident(join)operator(()stringoperator(\))operator(.)ident(scan)operator(()regexpoperator(\))operator(.)ident(flatten)operator(.)ident(any?) reserved(do) operator(|)ident(condition_table_name)operator(|) ident(condition_table_name) operator(!=) ident(table_name) reserved(end) reserved(end) comment(# Checks if the query order references a table other than the current model's table.) reserved(def) method(include_eager_order?)operator(()ident(options)operator(\)) ident(order) operator(=) ident(options)operator([)symbol(:order)operator(]) reserved(return) pre_constant(false) reserved(unless) ident(order) ident(order)operator(.)ident(scan)operator(()regexpoperator(\))operator(.)ident(flatten)operator(.)ident(any?) reserved(do) operator(|)ident(order_table_name)operator(|) ident(order_table_name) operator(!=) ident(table_name) reserved(end) reserved(end) reserved(def) method(using_limitable_reflections?)operator(()ident(reflections)operator(\)) ident(reflections)operator(.)ident(reject) operator({) operator(|)ident(r)operator(|) operator([) symbol(:belongs_to)operator(,) symbol(:has_one) operator(])operator(.)ident(include?)operator(()ident(r)operator(.)ident(macro)operator(\)) operator(})operator(.)ident(length)operator(.)ident(zero?) reserved(end) reserved(def) method(column_aliases)operator(()ident(join_dependency)operator(\)) ident(join_dependency)operator(.)ident(joins)operator(.)ident(collect)operator({)operator(|)ident(join)operator(|) ident(join)operator(.)ident(column_names_with_alias)operator(.)ident(collect)operator({)operator(|)ident(column_name)operator(,) ident(aliased_name)operator(|) stringcontent(.)inlinecontent( AS )inlinedelimiter(")>operator(})operator(})operator(.)ident(flatten)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(add_association_callbacks)operator(()ident(association_name)operator(,) ident(options)operator(\)) ident(callbacks) operator(=) string ident(callbacks)operator(.)ident(each) reserved(do) operator(|)ident(callback_name)operator(|) ident(full_callback_name) operator(=) stringcontent(_for_)inlinedelimiter(")> ident(defined_callbacks) operator(=) ident(options)operator([)ident(callback_name)operator(.)ident(to_sym)operator(]) reserved(if) ident(options)operator(.)ident(has_key?)operator(()ident(callback_name)operator(.)ident(to_sym)operator(\)) ident(class_inheritable_reader) ident(full_callback_name)operator(.)ident(to_sym) ident(write_inheritable_array)operator(()ident(full_callback_name)operator(.)ident(to_sym)operator(,) operator([)ident(defined_callbacks)operator(])operator(.)ident(flatten)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(condition_word)operator(()ident(sql)operator(\)) ident(sql) operator(=)operator(~) regexp operator(?) string operator(:) string reserved(end) reserved(def) method(create_extension_module)operator(()ident(association_id)operator(,) ident(extension)operator(\)) ident(extension_module_name) operator(=) stringinlinecontent(AssociationExtension)delimiter(")> ident(silence_warnings) reserved(do) constant(Object)operator(.)ident(const_set)operator(()ident(extension_module_name)operator(,) constant(Module)operator(.)ident(new)operator(()operator(&)ident(extension)operator(\))operator(\)) reserved(end) ident(extension_module_name)operator(.)ident(constantize) reserved(end) reserved(class) class(JoinDependency) ident(attr_reader) symbol(:joins)operator(,) symbol(:reflections)operator(,) symbol(:table_aliases) reserved(def) method(initialize)operator(()ident(base)operator(,) ident(associations)operator(,) ident(joins)operator(\)) instance_variable(@joins) operator(=) operator([)constant(JoinBase)operator(.)ident(new)operator(()ident(base)operator(,) ident(joins)operator(\))operator(]) instance_variable(@associations) operator(=) ident(associations) instance_variable(@reflections) operator(=) operator([)operator(]) instance_variable(@base_records_hash) operator(=) operator({)operator(}) instance_variable(@base_records_in_order) operator(=) operator([)operator(]) instance_variable(@table_aliases) operator(=) constant(Hash)operator(.)ident(new) operator({) operator(|)ident(aliases)operator(,) ident(table)operator(|) ident(aliases)operator([)ident(table)operator(]) operator(=) integer(0) operator(}) instance_variable(@table_aliases)operator([)ident(base)operator(.)ident(table_name)operator(]) operator(=) integer(1) ident(build)operator(()ident(associations)operator(\)) reserved(end) reserved(def) method(join_associations) instance_variable(@joins)operator([)integer(1)operator(..)integer(-1)operator(])operator(.)ident(to_a) reserved(end) reserved(def) method(join_base) instance_variable(@joins)operator([)integer(0)operator(]) reserved(end) reserved(def) method(instantiate)operator(()ident(rows)operator(\)) ident(rows)operator(.)ident(each_with_index) reserved(do) operator(|)ident(row)operator(,) ident(i)operator(|) ident(primary_id) operator(=) ident(join_base)operator(.)ident(record_id)operator(()ident(row)operator(\)) reserved(unless) instance_variable(@base_records_hash)operator([)ident(primary_id)operator(]) instance_variable(@base_records_in_order) operator(<<) operator(()instance_variable(@base_records_hash)operator([)ident(primary_id)operator(]) operator(=) ident(join_base)operator(.)ident(instantiate)operator(()ident(row)operator(\))operator(\)) reserved(end) ident(construct)operator(()instance_variable(@base_records_hash)operator([)ident(primary_id)operator(])operator(,) instance_variable(@associations)operator(,) ident(join_associations)operator(.)ident(dup)operator(,) ident(row)operator(\)) reserved(end) reserved(return) instance_variable(@base_records_in_order) reserved(end) reserved(def) method(aliased_table_names_for)operator(()ident(table_name)operator(\)) ident(joins)operator(.)ident(select)operator({)operator(|)ident(join)operator(|) ident(join)operator(.)ident(table_name) operator(==) ident(table_name) operator(})operator(.)ident(collect)operator({)operator(|)ident(join)operator(|) ident(join)operator(.)ident(aliased_table_name)operator(}) reserved(end) ident(protected) reserved(def) method(build)operator(()ident(associations)operator(,) ident(parent) operator(=) pre_constant(nil)operator(\)) ident(parent) operator(||=) instance_variable(@joins)operator(.)ident(last) reserved(case) ident(associations) reserved(when) constant(Symbol)operator(,) constant(String) ident(reflection) operator(=) ident(parent)operator(.)ident(reflections)operator([)ident(associations)operator(.)ident(to_s)operator(.)ident(intern)operator(]) reserved(or) ident(raise) constant(ConfigurationError)operator(,) stringcontent(' was not found; perhaps you misspelled it?)delimiter(")> instance_variable(@reflections) operator(<<) ident(reflection) instance_variable(@joins) operator(<<) constant(JoinAssociation)operator(.)ident(new)operator(()ident(reflection)operator(,) pre_constant(self)operator(,) ident(parent)operator(\)) reserved(when) constant(Array) ident(associations)operator(.)ident(each) reserved(do) operator(|)ident(association)operator(|) ident(build)operator(()ident(association)operator(,) ident(parent)operator(\)) reserved(end) reserved(when) constant(Hash) ident(associations)operator(.)ident(keys)operator(.)ident(sort)operator({)operator(|)ident(a)operator(,)ident(b)operator(|)ident(a)operator(.)ident(to_s)operator(<=>)ident(b)operator(.)ident(to_s)operator(})operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(build)operator(()ident(name)operator(,) ident(parent)operator(\)) ident(build)operator(()ident(associations)operator([)ident(name)operator(])operator(\)) reserved(end) reserved(else) ident(raise) constant(ConfigurationError)operator(,) ident(associations)operator(.)ident(inspect) reserved(end) reserved(end) reserved(def) method(construct)operator(()ident(parent)operator(,) ident(associations)operator(,) ident(joins)operator(,) ident(row)operator(\)) reserved(case) ident(associations) reserved(when) constant(Symbol)operator(,) constant(String) reserved(while) operator(()ident(join) operator(=) ident(joins)operator(.)ident(shift)operator(\))operator(.)ident(reflection)operator(.)ident(name)operator(.)ident(to_s) operator(!=) ident(associations)operator(.)ident(to_s) ident(raise) constant(ConfigurationError)operator(,) string reserved(if) ident(joins)operator(.)ident(empty?) reserved(end) ident(construct_association)operator(()ident(parent)operator(,) ident(join)operator(,) ident(row)operator(\)) reserved(when) constant(Array) ident(associations)operator(.)ident(each) reserved(do) operator(|)ident(association)operator(|) ident(construct)operator(()ident(parent)operator(,) ident(association)operator(,) ident(joins)operator(,) ident(row)operator(\)) reserved(end) reserved(when) constant(Hash) ident(associations)operator(.)ident(keys)operator(.)ident(sort)operator({)operator(|)ident(a)operator(,)ident(b)operator(|)ident(a)operator(.)ident(to_s)operator(<=>)ident(b)operator(.)ident(to_s)operator(})operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(association) operator(=) ident(construct_association)operator(()ident(parent)operator(,) ident(joins)operator(.)ident(shift)operator(,) ident(row)operator(\)) ident(construct)operator(()ident(association)operator(,) ident(associations)operator([)ident(name)operator(])operator(,) ident(joins)operator(,) ident(row)operator(\)) reserved(if) ident(association) reserved(end) reserved(else) ident(raise) constant(ConfigurationError)operator(,) ident(associations)operator(.)ident(inspect) reserved(end) reserved(end) reserved(def) method(construct_association)operator(()ident(record)operator(,) ident(join)operator(,) ident(row)operator(\)) reserved(case) ident(join)operator(.)ident(reflection)operator(.)ident(macro) reserved(when) symbol(:has_many)operator(,) symbol(:has_and_belongs_to_many) ident(collection) operator(=) ident(record)operator(.)ident(send)operator(()ident(join)operator(.)ident(reflection)operator(.)ident(name)operator(\)) ident(collection)operator(.)ident(loaded) reserved(return) pre_constant(nil) reserved(if) ident(record)operator(.)ident(id)operator(.)ident(to_s) operator(!=) ident(join)operator(.)ident(parent)operator(.)ident(record_id)operator(()ident(row)operator(\))operator(.)ident(to_s) reserved(or) ident(row)operator([)ident(join)operator(.)ident(aliased_primary_key)operator(])operator(.)ident(nil?) ident(association) operator(=) ident(join)operator(.)ident(instantiate)operator(()ident(row)operator(\)) ident(collection)operator(.)ident(target)operator(.)ident(push)operator(()ident(association)operator(\)) reserved(unless) ident(collection)operator(.)ident(target)operator(.)ident(include?)operator(()ident(association)operator(\)) reserved(when) symbol(:has_one)operator(,) symbol(:belongs_to) reserved(return) reserved(if) ident(record)operator(.)ident(id)operator(.)ident(to_s) operator(!=) ident(join)operator(.)ident(parent)operator(.)ident(record_id)operator(()ident(row)operator(\))operator(.)ident(to_s) reserved(or) ident(row)operator([)ident(join)operator(.)ident(aliased_primary_key)operator(])operator(.)ident(nil?) ident(association) operator(=) ident(join)operator(.)ident(instantiate)operator(()ident(row)operator(\)) ident(record)operator(.)ident(send)operator(()stringcontent(_target)delimiter(")>operator(,) ident(association)operator(\)) reserved(else) ident(raise) constant(ConfigurationError)operator(,) stringdelimiter(")> reserved(end) reserved(return) ident(association) reserved(end) reserved(class) class(JoinBase) ident(attr_reader) symbol(:active_record)operator(,) symbol(:table_joins) ident(delegate) symbol(:table_name)operator(,) symbol(:column_names)operator(,) symbol(:primary_key)operator(,) symbol(:reflections)operator(,) symbol(:sanitize_sql)operator(,) symbol(:to) operator(=)operator(>) symbol(:active_record) reserved(def) method(initialize)operator(()ident(active_record)operator(,) ident(joins) operator(=) pre_constant(nil)operator(\)) instance_variable(@active_record) operator(=) ident(active_record) instance_variable(@cached_record) operator(=) operator({)operator(}) instance_variable(@table_joins) operator(=) ident(joins) reserved(end) reserved(def) method(aliased_prefix) string reserved(end) reserved(def) method(aliased_primary_key) stringcontent(_r0)delimiter(")> reserved(end) reserved(def) method(aliased_table_name) ident(active_record)operator(.)ident(table_name) reserved(end) reserved(def) method(column_names_with_alias) reserved(unless) instance_variable(@column_names_with_alias) instance_variable(@column_names_with_alias) operator(=) operator([)operator(]) operator(()operator([)ident(primary_key)operator(]) operator(+) operator(()ident(column_names) operator(-) operator([)ident(primary_key)operator(])operator(\))operator(\))operator(.)ident(each_with_index) reserved(do) operator(|)ident(column_name)operator(,) ident(i)operator(|) instance_variable(@column_names_with_alias) operator(<<) operator([)ident(column_name)operator(,) stringcontent(_r)inlinedelimiter(")>operator(]) reserved(end) reserved(end) reserved(return) instance_variable(@column_names_with_alias) reserved(end) reserved(def) method(extract_record)operator(()ident(row)operator(\)) ident(column_names_with_alias)operator(.)ident(inject)operator(()operator({)operator(})operator(\))operator({)operator(|)ident(record)operator(,) operator(()ident(cn)operator(,) ident(an)operator(\))operator(|) ident(record)operator([)ident(cn)operator(]) operator(=) ident(row)operator([)ident(an)operator(])operator(;) ident(record)operator(}) reserved(end) reserved(def) method(record_id)operator(()ident(row)operator(\)) ident(row)operator([)ident(aliased_primary_key)operator(]) reserved(end) reserved(def) method(instantiate)operator(()ident(row)operator(\)) instance_variable(@cached_record)operator([)ident(record_id)operator(()ident(row)operator(\))operator(]) operator(||=) ident(active_record)operator(.)ident(instantiate)operator(()ident(extract_record)operator(()ident(row)operator(\))operator(\)) reserved(end) reserved(end) reserved(class) class(JoinAssociation) operator(<) constant(JoinBase) ident(attr_reader) symbol(:reflection)operator(,) symbol(:parent)operator(,) symbol(:aliased_table_name)operator(,) symbol(:aliased_prefix)operator(,) symbol(:aliased_join_table_name)operator(,) symbol(:parent_table_name) ident(delegate) symbol(:options)operator(,) symbol(:klass)operator(,) symbol(:through_reflection)operator(,) symbol(:source_reflection)operator(,) symbol(:to) operator(=)operator(>) symbol(:reflection) reserved(def) method(initialize)operator(()ident(reflection)operator(,) ident(join_dependency)operator(,) ident(parent) operator(=) pre_constant(nil)operator(\)) ident(reflection)operator(.)ident(check_validity!) reserved(if) ident(reflection)operator(.)ident(options)operator([)symbol(:polymorphic)operator(]) ident(raise) constant(EagerLoadPolymorphicError)operator(.)ident(new)operator(()ident(reflection)operator(\)) reserved(end) reserved(super)operator(()ident(reflection)operator(.)ident(klass)operator(\)) instance_variable(@parent) operator(=) ident(parent) instance_variable(@reflection) operator(=) ident(reflection) instance_variable(@aliased_prefix) operator(=) stringdelimiter(")> instance_variable(@aliased_table_name) operator(=) ident(table_name) comment(# start with the table name) instance_variable(@parent_table_name) operator(=) ident(parent)operator(.)ident(active_record)operator(.)ident(table_name) reserved(if) operator(!)ident(parent)operator(.)ident(table_joins)operator(.)ident(blank?) operator(&&) ident(parent)operator(.)ident(table_joins)operator(.)ident(to_s)operator(.)ident(downcase) operator(=)operator(~) regexpchar(\\s)content(on)delimiter(})> ident(join_dependency)operator(.)ident(table_aliases)operator([)ident(aliased_table_name)operator(]) operator(+=) integer(1) reserved(end) reserved(unless) ident(join_dependency)operator(.)ident(table_aliases)operator([)ident(aliased_table_name)operator(])operator(.)ident(zero?) comment(# if the table name has been used, then use an alias) instance_variable(@aliased_table_name) operator(=) ident(active_record)operator(.)ident(connection)operator(.)ident(table_alias_for) stringcontent(_)inlinedelimiter(")> ident(table_index) operator(=) ident(join_dependency)operator(.)ident(table_aliases)operator([)ident(aliased_table_name)operator(]) instance_variable(@aliased_table_name) operator(=) instance_variable(@aliased_table_name)operator([)integer(0)operator(..)ident(active_record)operator(.)ident(connection)operator(.)ident(table_alias_length)operator(-)integer(3)operator(]) operator(+) stringdelimiter(")> reserved(if) ident(table_index) operator(>) integer(0) reserved(end) ident(join_dependency)operator(.)ident(table_aliases)operator([)ident(aliased_table_name)operator(]) operator(+=) integer(1) reserved(if) ident(reflection)operator(.)ident(macro) operator(==) symbol(:has_and_belongs_to_many) operator(||) operator(()ident(reflection)operator(.)ident(macro) operator(==) symbol(:has_many) operator(&&) ident(reflection)operator(.)ident(options)operator([)symbol(:through)operator(])operator(\)) instance_variable(@aliased_join_table_name) operator(=) ident(reflection)operator(.)ident(macro) operator(==) symbol(:has_and_belongs_to_many) operator(?) ident(reflection)operator(.)ident(options)operator([)symbol(:join_table)operator(]) operator(:) ident(reflection)operator(.)ident(through_reflection)operator(.)ident(klass)operator(.)ident(table_name) reserved(unless) ident(join_dependency)operator(.)ident(table_aliases)operator([)ident(aliased_join_table_name)operator(])operator(.)ident(zero?) instance_variable(@aliased_join_table_name) operator(=) ident(active_record)operator(.)ident(connection)operator(.)ident(table_alias_for) stringcontent(_)inlinecontent(_join)delimiter(")> ident(table_index) operator(=) ident(join_dependency)operator(.)ident(table_aliases)operator([)ident(aliased_join_table_name)operator(]) instance_variable(@aliased_join_table_name) operator(=) instance_variable(@aliased_join_table_name)operator([)integer(0)operator(..)ident(active_record)operator(.)ident(connection)operator(.)ident(table_alias_length)operator(-)integer(3)operator(]) operator(+) stringdelimiter(")> reserved(if) ident(table_index) operator(>) integer(0) reserved(end) ident(join_dependency)operator(.)ident(table_aliases)operator([)ident(aliased_join_table_name)operator(]) operator(+=) integer(1) reserved(end) reserved(end) reserved(def) method(association_join) ident(join) operator(=) reserved(case) ident(reflection)operator(.)ident(macro) reserved(when) symbol(:has_and_belongs_to_many) string operator(%) operator([) ident(table_alias_for)operator(()ident(options)operator([)symbol(:join_table)operator(])operator(,) ident(aliased_join_table_name)operator(\))operator(,) ident(aliased_join_table_name)operator(,) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) ident(reflection)operator(.)ident(active_record)operator(.)ident(to_s)operator(.)ident(classify)operator(.)ident(foreign_key)operator(,) ident(reflection)operator(.)ident(active_record)operator(.)ident(table_name)operator(,) ident(reflection)operator(.)ident(active_record)operator(.)ident(primary_key)operator(]) operator(+) string operator(%) operator([) ident(table_name_and_alias)operator(,) ident(aliased_table_name)operator(,) ident(klass)operator(.)ident(primary_key)operator(,) ident(aliased_join_table_name)operator(,) ident(options)operator([)symbol(:association_foreign_key)operator(]) operator(||) ident(klass)operator(.)ident(table_name)operator(.)ident(classify)operator(.)ident(foreign_key) operator(]) reserved(when) symbol(:has_many)operator(,) symbol(:has_one) reserved(case) reserved(when) ident(reflection)operator(.)ident(macro) operator(==) symbol(:has_many) operator(&&) ident(reflection)operator(.)ident(options)operator([)symbol(:through)operator(]) ident(through_conditions) operator(=) ident(through_reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(]) operator(?) stringdelimiter(")> operator(:) string reserved(if) ident(through_reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) comment(# has_many :through against a polymorphic join) ident(polymorphic_foreign_key) operator(=) ident(through_reflection)operator(.)ident(options)operator([)symbol(:as)operator(])operator(.)ident(to_s) operator(+) string ident(polymorphic_foreign_type) operator(=) ident(through_reflection)operator(.)ident(options)operator([)symbol(:as)operator(])operator(.)ident(to_s) operator(+) string string operator(%) operator([) ident(table_alias_for)operator(()ident(through_reflection)operator(.)ident(klass)operator(.)ident(table_name)operator(,) ident(aliased_join_table_name)operator(\))operator(,) ident(aliased_join_table_name)operator(,) ident(polymorphic_foreign_key)operator(,) ident(parent)operator(.)ident(aliased_table_name)operator(,) ident(parent)operator(.)ident(primary_key)operator(,) ident(aliased_join_table_name)operator(,) ident(polymorphic_foreign_type)operator(,) ident(klass)operator(.)ident(quote)operator(()ident(parent)operator(.)ident(active_record)operator(.)ident(base_class)operator(.)ident(name)operator(\))operator(]) operator(+) string operator(%) operator([)ident(table_name_and_alias)operator(,) ident(aliased_table_name)operator(,) ident(primary_key)operator(,) ident(aliased_join_table_name)operator(,) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) ident(reflection)operator(.)ident(klass)operator(.)ident(to_s)operator(.)ident(classify)operator(.)ident(foreign_key) operator(]) reserved(else) reserved(if) ident(source_reflection)operator(.)ident(macro) operator(==) symbol(:has_many) operator(&&) ident(source_reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) string operator(%) operator([) ident(table_alias_for)operator(()ident(through_reflection)operator(.)ident(klass)operator(.)ident(table_name)operator(,) ident(aliased_join_table_name)operator(\))operator(,) ident(aliased_join_table_name)operator(,) ident(through_reflection)operator(.)ident(primary_key_name)operator(,) ident(parent)operator(.)ident(aliased_table_name)operator(,) ident(parent)operator(.)ident(primary_key)operator(]) operator(+) string operator(%) operator([) ident(table_name_and_alias)operator(,) ident(aliased_table_name)operator(,) stringcontent(_id)delimiter(")>operator(,) ident(aliased_join_table_name)operator(,) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) ident(primary_key)operator(,) ident(aliased_table_name)operator(,) stringcontent(_type)delimiter(")>operator(,) ident(klass)operator(.)ident(quote)operator(()ident(source_reflection)operator(.)ident(active_record)operator(.)ident(base_class)operator(.)ident(name)operator(\)) operator(]) reserved(else) reserved(case) ident(source_reflection)operator(.)ident(macro) reserved(when) symbol(:belongs_to) ident(first_key) operator(=) ident(primary_key) ident(second_key) operator(=) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) ident(klass)operator(.)ident(to_s)operator(.)ident(classify)operator(.)ident(foreign_key) reserved(when) symbol(:has_many) ident(first_key) operator(=) ident(through_reflection)operator(.)ident(klass)operator(.)ident(to_s)operator(.)ident(classify)operator(.)ident(foreign_key) ident(second_key) operator(=) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) ident(primary_key) reserved(end) string operator(%) operator([) ident(table_alias_for)operator(()ident(through_reflection)operator(.)ident(klass)operator(.)ident(table_name)operator(,) ident(aliased_join_table_name)operator(\))operator(,) ident(aliased_join_table_name)operator(,) ident(through_reflection)operator(.)ident(primary_key_name)operator(,) ident(parent)operator(.)ident(aliased_table_name)operator(,) ident(parent)operator(.)ident(primary_key)operator(]) operator(+) string operator(%) operator([) ident(table_name_and_alias)operator(,) ident(aliased_table_name)operator(,) ident(first_key)operator(,) ident(aliased_join_table_name)operator(,) ident(second_key) operator(]) reserved(end) reserved(end) reserved(when) ident(reflection)operator(.)ident(macro) operator(==) symbol(:has_many) operator(&&) ident(reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) string operator(%) operator([) ident(table_name_and_alias)operator(,) ident(aliased_table_name)operator(,) stringcontent(_id)delimiter(")>operator(,) ident(parent)operator(.)ident(aliased_table_name)operator(,) ident(parent)operator(.)ident(primary_key)operator(,) ident(aliased_table_name)operator(,) stringcontent(_type)delimiter(")>operator(,) ident(klass)operator(.)ident(quote)operator(()ident(parent)operator(.)ident(active_record)operator(.)ident(base_class)operator(.)ident(name)operator(\)) operator(]) reserved(when) ident(reflection)operator(.)ident(macro) operator(==) symbol(:has_one) operator(&&) ident(reflection)operator(.)ident(options)operator([)symbol(:as)operator(]) string operator(%) operator([) ident(table_name_and_alias)operator(,) ident(aliased_table_name)operator(,) stringcontent(_id)delimiter(")>operator(,) ident(parent)operator(.)ident(aliased_table_name)operator(,) ident(parent)operator(.)ident(primary_key)operator(,) ident(aliased_table_name)operator(,) stringcontent(_type)delimiter(")>operator(,) ident(klass)operator(.)ident(quote)operator(()ident(reflection)operator(.)ident(active_record)operator(.)ident(base_class)operator(.)ident(name)operator(\)) operator(]) reserved(else) ident(foreign_key) operator(=) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) ident(reflection)operator(.)ident(active_record)operator(.)ident(name)operator(.)ident(foreign_key) string operator(%) operator([) ident(table_name_and_alias)operator(,) ident(aliased_table_name)operator(,) ident(foreign_key)operator(,) ident(parent)operator(.)ident(aliased_table_name)operator(,) ident(parent)operator(.)ident(primary_key) operator(]) reserved(end) reserved(when) symbol(:belongs_to) string operator(%) operator([) ident(table_name_and_alias)operator(,) ident(aliased_table_name)operator(,) ident(reflection)operator(.)ident(klass)operator(.)ident(primary_key)operator(,) ident(parent)operator(.)ident(aliased_table_name)operator(,) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) ident(klass)operator(.)ident(to_s)operator(.)ident(foreign_key) operator(]) reserved(else) string reserved(end) operator(||) string ident(join) operator(<<) string operator(%) operator([) ident(aliased_table_name)operator(,) ident(reflection)operator(.)ident(active_record)operator(.)ident(connection)operator(.)ident(quote_column_name)operator(()ident(reflection)operator(.)ident(active_record)operator(.)ident(inheritance_column)operator(\))operator(,) ident(klass)operator(.)ident(quote)operator(()ident(klass)operator(.)ident(name)operator(\))operator(]) reserved(unless) ident(klass)operator(.)ident(descends_from_active_record?) ident(join) operator(<<) stringcontent( )delimiter(")> reserved(if) ident(reflection)operator(.)ident(options)operator([)symbol(:conditions)operator(]) ident(join) reserved(end) ident(protected) reserved(def) method(pluralize)operator(()ident(table_name)operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(pluralize_table_names) operator(?) ident(table_name)operator(.)ident(to_s)operator(.)ident(pluralize) operator(:) ident(table_name) reserved(end) reserved(def) method(table_alias_for)operator(()ident(table_name)operator(,) ident(table_alias)operator(\)) stringcontent( )inlinedelimiter(")>operator(.)ident(strip) reserved(end) reserved(def) method(table_name_and_alias) ident(table_alias_for) ident(table_name)operator(,) instance_variable(@aliased_table_name) reserved(end) reserved(def) method(interpolate_sql)operator(()ident(sql)operator(\)) ident(instance_eval)operator(()stringoperator(,) stringoperator(\))inline_delimiter(})>content(@)delimiter(")>operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(module) class(ActiveRecord) comment(#:nodoc:) reserved(class) class(ActiveRecordError) operator(<) constant(StandardError) comment(#:nodoc:) reserved(end) reserved(class) class(SubclassNotFound) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(AssociationTypeMismatch) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(SerializationTypeMismatch) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(AdapterNotSpecified) operator(<) constant(ActiveRecordError) comment(# :nodoc:) reserved(end) reserved(class) class(AdapterNotFound) operator(<) constant(ActiveRecordError) comment(# :nodoc:) reserved(end) reserved(class) class(ConnectionNotEstablished) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(ConnectionFailed) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(RecordNotFound) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(RecordNotSaved) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(StatementInvalid) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(PreparedStatementInvalid) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(StaleObjectError) operator(<) constant(ActiveRecordError) comment(#:nodoc:) reserved(end) reserved(class) class(ConfigurationError) operator(<) constant(StandardError) comment(#:nodoc:) reserved(end) reserved(class) class(ReadOnlyRecord) operator(<) constant(StandardError) comment(#:nodoc:) reserved(end) reserved(class) class(AttributeAssignmentError) operator(<) constant(ActiveRecordError) comment(#:nodoc:) ident(attr_reader) symbol(:exception)operator(,) symbol(:attribute) reserved(def) method(initialize)operator(()ident(message)operator(,) ident(exception)operator(,) ident(attribute)operator(\)) instance_variable(@exception) operator(=) ident(exception) instance_variable(@attribute) operator(=) ident(attribute) instance_variable(@message) operator(=) ident(message) reserved(end) reserved(end) reserved(class) class(MultiparameterAssignmentErrors) operator(<) constant(ActiveRecordError) comment(#:nodoc:) ident(attr_reader) symbol(:errors) reserved(def) method(initialize)operator(()ident(errors)operator(\)) instance_variable(@errors) operator(=) ident(errors) reserved(end) reserved(end) comment(# Active Record objects don't specify their attributes directly, but rather infer them from the table definition with) comment(# which they're linked. Adding, removing, and changing attributes and their type is done directly in the database. Any change) comment(# is instantly reflected in the Active Record objects. The mapping that binds a given Active Record class to a certain) comment(# database table will happen automatically in most common cases, but can be overwritten for the uncommon ones.) comment(#) comment(# See the mapping rules in table_name and the full example in link:files/README.html for more insight.) comment(#) comment(# == Creation) comment(#) comment(# Active Records accept constructor parameters either in a hash or as a block. The hash method is especially useful when) comment(# you're receiving the data from somewhere else, like a HTTP request. It works like this:) comment(#) comment(# user = User.new(:name => "David", :occupation => "Code Artist"\)) comment(# user.name # => "David") comment(#) comment(# You can also use block initialization:) comment(#) comment(# user = User.new do |u|) comment(# u.name = "David") comment(# u.occupation = "Code Artist") comment(# end) comment(#) comment(# And of course you can just create a bare object and specify the attributes after the fact:) comment(#) comment(# user = User.new) comment(# user.name = "David") comment(# user.occupation = "Code Artist") comment(#) comment(# == Conditions) comment(#) comment(# Conditions can either be specified as a string or an array representing the WHERE-part of an SQL statement.) comment(# The array form is to be used when the condition input is tainted and requires sanitization. The string form can) comment(# be used for statements that don't involve tainted data. Examples:) comment(#) comment(# User < ActiveRecord::Base) comment(# def self.authenticate_unsafely(user_name, password\)) comment(# find(:first, :conditions => "user_name = '#{user_name}' AND password = '#{password}'"\)) comment(# end) comment(#) comment(# def self.authenticate_safely(user_name, password\)) comment(# find(:first, :conditions => [ "user_name = ? AND password = ?", user_name, password ]\)) comment(# end) comment(# end) comment(#) comment(# The authenticate_unsafely method inserts the parameters directly into the query and is thus susceptible to SQL-injection) comment(# attacks if the user_name and +password+ parameters come directly from a HTTP request. The authenticate_safely method,) comment(# on the other hand, will sanitize the user_name and +password+ before inserting them in the query, which will ensure that) comment(# an attacker can't escape the query and fake the login (or worse\).) comment(#) comment(# When using multiple parameters in the conditions, it can easily become hard to read exactly what the fourth or fifth) comment(# question mark is supposed to represent. In those cases, you can resort to named bind variables instead. That's done by replacing) comment(# the question marks with symbols and supplying a hash with values for the matching symbol keys:) comment(#) comment(# Company.find(:first, [) comment(# "id = :id AND name = :name AND division = :division AND created_at > :accounting_date",) comment(# { :id => 3, :name => "37signals", :division => "First", :accounting_date => '2005-01-01' }) comment(# ]\)) comment(#) comment(# == Overwriting default accessors) comment(#) comment(# All column values are automatically available through basic accessors on the Active Record object, but some times you) comment(# want to specialize this behavior. This can be done by either by overwriting the default accessors (using the same) comment(# name as the attribute\) calling read_attribute(attr_name\) and write_attribute(attr_name, value\) to actually change things.) comment(# Example:) comment(#) comment(# class Song < ActiveRecord::Base) comment(# # Uses an integer of seconds to hold the length of the song) comment(#) comment(# def length=(minutes\)) comment(# write_attribute(:length, minutes * 60\)) comment(# end) comment(#) comment(# def length) comment(# read_attribute(:length\) / 60) comment(# end) comment(# end) comment(#) comment(# You can alternatively use self[:attribute]=(value\) and self[:attribute] instead of write_attribute(:attribute, vaule\) and) comment(# read_attribute(:attribute\) as a shorter form.) comment(#) comment(# == Accessing attributes before they have been typecasted) comment(#) comment(# Sometimes you want to be able to read the raw attribute data without having the column-determined typecast run its course first.) comment(# That can be done by using the _before_type_cast accessors that all attributes have. For example, if your Account model) comment(# has a balance attribute, you can call account.balance_before_type_cast or account.id_before_type_cast.) comment(#) comment(# This is especially useful in validation situations where the user might supply a string for an integer field and you want to display) comment(# the original string back in an error message. Accessing the attribute normally would typecast the string to 0, which isn't what you) comment(# want.) comment(#) comment(# == Dynamic attribute-based finders) comment(#) comment(# Dynamic attribute-based finders are a cleaner way of getting (and/or creating\) objects by simple queries without turning to SQL. They work by) comment(# appending the name of an attribute to find_by_ or find_all_by_, so you get finders like Person.find_by_user_name,) comment(# Person.find_all_by_last_name, Payment.find_by_transaction_id. So instead of writing) comment(# Person.find(:first, ["user_name = ?", user_name]\), you just do Person.find_by_user_name(user_name\).) comment(# And instead of writing Person.find(:all, ["last_name = ?", last_name]\), you just do Person.find_all_by_last_name(last_name\).) comment(#) comment(# It's also possible to use multiple attributes in the same find by separating them with "_and_", so you get finders like) comment(# Person.find_by_user_name_and_password or even Payment.find_by_purchaser_and_state_and_country. So instead of writing) comment(# Person.find(:first, ["user_name = ? AND password = ?", user_name, password]\), you just do) comment(# Person.find_by_user_name_and_password(user_name, password\).) comment(#) comment(# It's even possible to use all the additional parameters to find. For example, the full interface for Payment.find_all_by_amount) comment(# is actually Payment.find_all_by_amount(amount, options\). And the full interface to Person.find_by_user_name is) comment(# actually Person.find_by_user_name(user_name, options\). So you could call Payment.find_all_by_amount(50, :order => "created_on"\).) comment(#) comment(# The same dynamic finder style can be used to create the object if it doesn't already exist. This dynamic finder is called with) comment(# find_or_create_by_ and will return the object if it already exists and otherwise creates it, then returns it. Example:) comment(#) comment(# # No 'Summer' tag exists) comment(# Tag.find_or_create_by_name("Summer"\) # equal to Tag.create(:name => "Summer"\)) comment(# ) comment(# # Now the 'Summer' tag does exist) comment(# Tag.find_or_create_by_name("Summer"\) # equal to Tag.find_by_name("Summer"\)) comment(#) comment(# == Saving arrays, hashes, and other non-mappable objects in text columns) comment(#) comment(# Active Record can serialize any object in text columns using YAML. To do so, you must specify this with a call to the class method +serialize+.) comment(# This makes it possible to store arrays, hashes, and other non-mappable objects without doing any additional work. Example:) comment(#) comment(# class User < ActiveRecord::Base) comment(# serialize :preferences) comment(# end) comment(#) comment(# user = User.create(:preferences => { "background" => "black", "display" => large }\)) comment(# User.find(user.id\).preferences # => { "background" => "black", "display" => large }) comment(#) comment(# You can also specify a class option as the second parameter that'll raise an exception if a serialized object is retrieved as a) comment(# descendent of a class not in the hierarchy. Example:) comment(#) comment(# class User < ActiveRecord::Base) comment(# serialize :preferences, Hash) comment(# end) comment(#) comment(# user = User.create(:preferences => %w( one two three \)\)) comment(# User.find(user.id\).preferences # raises SerializationTypeMismatch) comment(#) comment(# == Single table inheritance) comment(#) comment(# Active Record allows inheritance by storing the name of the class in a column that by default is called "type" (can be changed) comment(# by overwriting Base.inheritance_column\). This means that an inheritance looking like this:) comment(#) comment(# class Company < ActiveRecord::Base; end) comment(# class Firm < Company; end) comment(# class Client < Company; end) comment(# class PriorityClient < Client; end) comment(#) comment(# When you do Firm.create(:name => "37signals"\), this record will be saved in the companies table with type = "Firm". You can then) comment(# fetch this row again using Company.find(:first, "name = '37signals'"\) and it will return a Firm object.) comment(#) comment(# If you don't have a type column defined in your table, single-table inheritance won't be triggered. In that case, it'll work just) comment(# like normal subclasses with no special magic for differentiating between them or reloading the right type with find.) comment(#) comment(# Note, all the attributes for all the cases are kept in the same table. Read more:) comment(# http://www.martinfowler.com/eaaCatalog/singleTableInheritance.html) comment(#) comment(# == Connection to multiple databases in different models) comment(#) comment(# Connections are usually created through ActiveRecord::Base.establish_connection and retrieved by ActiveRecord::Base.connection.) comment(# All classes inheriting from ActiveRecord::Base will use this connection. But you can also set a class-specific connection.) comment(# For example, if Course is a ActiveRecord::Base, but resides in a different database you can just say Course.establish_connection) comment(# and Course *and all its subclasses* will use this connection instead.) comment(#) comment(# This feature is implemented by keeping a connection pool in ActiveRecord::Base that is a Hash indexed by the class. If a connection is) comment(# requested, the retrieve_connection method will go up the class-hierarchy until a connection is found in the connection pool.) comment(#) comment(# == Exceptions) comment(#) comment(# * +ActiveRecordError+ -- generic error class and superclass of all other errors raised by Active Record) comment(# * +AdapterNotSpecified+ -- the configuration hash used in establish_connection didn't include a) comment(# :adapter key.) comment(# * +AdapterNotFound+ -- the :adapter key used in establish_connection specified an non-existent adapter) comment(# (or a bad spelling of an existing one\).) comment(# * +AssociationTypeMismatch+ -- the object assigned to the association wasn't of the type specified in the association definition.) comment(# * +SerializationTypeMismatch+ -- the object serialized wasn't of the class specified as the second parameter.) comment(# * +ConnectionNotEstablished+ -- no connection has been established. Use establish_connection before querying.) comment(# * +RecordNotFound+ -- no record responded to the find* method.) comment(# Either the row with the given ID doesn't exist or the row didn't meet the additional restrictions.) comment(# * +StatementInvalid+ -- the database server rejected the SQL statement. The precise error is added in the message.) comment(# Either the record with the given ID doesn't exist or the record didn't meet the additional restrictions.) comment(# * +MultiparameterAssignmentErrors+ -- collection of errors that occurred during a mass assignment using the) comment(# +attributes=+ method. The +errors+ property of this exception contains an array of +AttributeAssignmentError+) comment(# objects that should be inspected to determine which attributes triggered the errors.) comment(# * +AttributeAssignmentError+ -- an error occurred while doing a mass assignment through the +attributes=+ method.) comment(# You can inspect the +attribute+ property of the exception object to determine which attribute triggered the error.) comment(#) comment(# *Note*: The attributes listed are class-level attributes (accessible from both the class and instance level\).) comment(# So it's possible to assign a logger to the class through Base.logger= which will then be used by all) comment(# instances in the current object space.) reserved(class) class(Base) comment(# Accepts a logger conforming to the interface of Log4r or the default Ruby 1.8+ Logger class, which is then passed) comment(# on to any new database connections made and which can be retrieved on both a class and instance level by calling +logger+.) ident(cattr_accessor) symbol(:logger) ident(include) constant(Reloadable)operator(::)constant(Subclasses) reserved(def) pre_constant(self)operator(.)method(inherited)operator(()ident(child)operator(\)) comment(#:nodoc:) class_variable(@@subclasses)operator([)pre_constant(self)operator(]) operator(||=) operator([)operator(]) class_variable(@@subclasses)operator([)pre_constant(self)operator(]) operator(<<) ident(child) reserved(super) reserved(end) reserved(def) pre_constant(self)operator(.)method(reset_subclasses) comment(#:nodoc:) ident(nonreloadables) operator(=) operator([)operator(]) ident(subclasses)operator(.)ident(each) reserved(do) operator(|)ident(klass)operator(|) reserved(unless) ident(klass)operator(.)ident(reloadable?) ident(nonreloadables) operator(<<) ident(klass) reserved(next) reserved(end) ident(klass)operator(.)ident(instance_variables)operator(.)ident(each) operator({) operator(|)ident(var)operator(|) ident(klass)operator(.)ident(send)operator(()symbol(:remove_instance_variable)operator(,) ident(var)operator(\)) operator(}) ident(klass)operator(.)ident(instance_methods)operator(()pre_constant(false)operator(\))operator(.)ident(each) operator({) operator(|)ident(m)operator(|) ident(klass)operator(.)ident(send) symbol(:undef_method)operator(,) ident(m) operator(}) reserved(end) class_variable(@@subclasses) operator(=) operator({)operator(}) ident(nonreloadables)operator(.)ident(each) operator({) operator(|)ident(klass)operator(|) operator(()class_variable(@@subclasses)operator([)ident(klass)operator(.)ident(superclass)operator(]) operator(||=) operator([)operator(])operator(\)) operator(<<) ident(klass) operator(}) reserved(end) class_variable(@@subclasses) operator(=) operator({)operator(}) ident(cattr_accessor) symbol(:configurations) class_variable(@@configurations) operator(=) operator({)operator(}) comment(# Accessor for the prefix type that will be prepended to every primary key column name. The options are :table_name and) comment(# :table_name_with_underscore. If the first is specified, the Product class will look for "productid" instead of "id" as) comment(# the primary column. If the latter is specified, the Product class will look for "product_id" instead of "id". Remember) comment(# that this is a global setting for all Active Records.) ident(cattr_accessor) symbol(:primary_key_prefix_type) class_variable(@@primary_key_prefix_type) operator(=) pre_constant(nil) comment(# Accessor for the name of the prefix string to prepend to every table name. So if set to "basecamp_", all) comment(# table names will be named like "basecamp_projects", "basecamp_people", etc. This is a convenient way of creating a namespace) comment(# for tables in a shared database. By default, the prefix is the empty string.) ident(cattr_accessor) symbol(:table_name_prefix) class_variable(@@table_name_prefix) operator(=) string comment(# Works like +table_name_prefix+, but appends instead of prepends (set to "_basecamp" gives "projects_basecamp",) comment(# "people_basecamp"\). By default, the suffix is the empty string.) ident(cattr_accessor) symbol(:table_name_suffix) class_variable(@@table_name_suffix) operator(=) string comment(# Indicates whether or not table names should be the pluralized versions of the corresponding class names.) comment(# If true, the default table name for a +Product+ class will be +products+. If false, it would just be +product+.) comment(# See table_name for the full rules on table/class naming. This is true, by default.) ident(cattr_accessor) symbol(:pluralize_table_names) class_variable(@@pluralize_table_names) operator(=) pre_constant(true) comment(# Determines whether or not to use ANSI codes to colorize the logging statements committed by the connection adapter. These colors) comment(# make it much easier to overview things during debugging (when used through a reader like +tail+ and on a black background\), but) comment(# may complicate matters if you use software like syslog. This is true, by default.) ident(cattr_accessor) symbol(:colorize_logging) class_variable(@@colorize_logging) operator(=) pre_constant(true) comment(# Determines whether to use Time.local (using :local\) or Time.utc (using :utc\) when pulling dates and times from the database.) comment(# This is set to :local by default.) ident(cattr_accessor) symbol(:default_timezone) class_variable(@@default_timezone) operator(=) symbol(:local) comment(# Determines whether or not to use a connection for each thread, or a single shared connection for all threads.) comment(# Defaults to false. Set to true if you're writing a threaded application.) ident(cattr_accessor) symbol(:allow_concurrency) class_variable(@@allow_concurrency) operator(=) pre_constant(false) comment(# Determines whether to speed up access by generating optimized reader) comment(# methods to avoid expensive calls to method_missing when accessing) comment(# attributes by name. You might want to set this to false in development) comment(# mode, because the methods would be regenerated on each request.) ident(cattr_accessor) symbol(:generate_read_methods) class_variable(@@generate_read_methods) operator(=) pre_constant(true) comment(# Specifies the format to use when dumping the database schema with Rails') comment(# Rakefile. If :sql, the schema is dumped as (potentially database-) comment(# specific\) SQL statements. If :ruby, the schema is dumped as an ) comment(# ActiveRecord::Schema file which can be loaded into any database that) comment(# supports migrations. Use :ruby if you want to have different database) comment(# adapters for, e.g., your development and test environments.) ident(cattr_accessor) symbol(:schema_format) class_variable(@@schema_format) operator(=) symbol(:ruby) reserved(class) operator(<<) class(self) comment(# Class methods) comment(# Find operates with three different retrieval approaches:) comment(#) comment(# * Find by id: This can either be a specific id (1\), a list of ids (1, 5, 6\), or an array of ids ([5, 6, 10]\).) comment(# If no record can be found for all of the listed ids, then RecordNotFound will be raised.) comment(# * Find first: This will return the first record matched by the options used. These options can either be specific) comment(# conditions or merely an order. If no record can matched, nil is returned.) comment(# * Find all: This will return all the records matched by the options used. If no records are found, an empty array is returned.) comment(#) comment(# All approaches accept an option hash as their last parameter. The options are:) comment(#) comment(# * :conditions: An SQL fragment like "administrator = 1" or [ "user_name = ?", username ]. See conditions in the intro.) comment(# * :order: An SQL fragment like "created_at DESC, name".) comment(# * :group: An attribute name by which the result should be grouped. Uses the GROUP BY SQL-clause.) comment(# * :limit: An integer determining the limit on the number of rows that should be returned.) comment(# * :offset: An integer determining the offset from where the rows should be fetched. So at 5, it would skip the first 4 rows.) comment(# * :joins: An SQL fragment for additional joins like "LEFT JOIN comments ON comments.post_id = id". (Rarely needed\).) comment(# The records will be returned read-only since they will have attributes that do not correspond to the table's columns.) comment(# Pass :readonly => false to override.) comment(# * :include: Names associations that should be loaded alongside using LEFT OUTER JOINs. The symbols named refer) comment(# to already defined associations. See eager loading under Associations.) comment(# * :select: By default, this is * as in SELECT * FROM, but can be changed if you for example want to do a join, but not) comment(# include the joined columns.) comment(# * :readonly: Mark the returned records read-only so they cannot be saved or updated.) comment(#) comment(# Examples for find by id:) comment(# Person.find(1\) # returns the object for ID = 1) comment(# Person.find(1, 2, 6\) # returns an array for objects with IDs in (1, 2, 6\)) comment(# Person.find([7, 17]\) # returns an array for objects with IDs in (7, 17\)) comment(# Person.find([1]\) # returns an array for objects the object with ID = 1) comment(# Person.find(1, :conditions => "administrator = 1", :order => "created_on DESC"\)) comment(#) comment(# Examples for find first:) comment(# Person.find(:first\) # returns the first object fetched by SELECT * FROM people) comment(# Person.find(:first, :conditions => [ "user_name = ?", user_name]\)) comment(# Person.find(:first, :order => "created_on DESC", :offset => 5\)) comment(#) comment(# Examples for find all:) comment(# Person.find(:all\) # returns an array of objects for all the rows fetched by SELECT * FROM people) comment(# Person.find(:all, :conditions => [ "category IN (?\)", categories], :limit => 50\)) comment(# Person.find(:all, :offset => 10, :limit => 10\)) comment(# Person.find(:all, :include => [ :account, :friends ]\)) comment(# Person.find(:all, :group => "category"\)) reserved(def) method(find)operator(()operator(*)ident(args)operator(\)) ident(options) operator(=) ident(extract_options_from_args!)operator(()ident(args)operator(\)) ident(validate_find_options)operator(()ident(options)operator(\)) ident(set_readonly_option!)operator(()ident(options)operator(\)) reserved(case) ident(args)operator(.)ident(first) reserved(when) symbol(:first) reserved(then) ident(find_initial)operator(()ident(options)operator(\)) reserved(when) symbol(:all) reserved(then) ident(find_every)operator(()ident(options)operator(\)) reserved(else) ident(find_from_ids)operator(()ident(args)operator(,) ident(options)operator(\)) reserved(end) reserved(end) comment(# Works like find(:all\), but requires a complete SQL string. Examples:) comment(# Post.find_by_sql "SELECT p.*, c.author FROM posts p, comments c WHERE p.id = c.post_id") comment(# Post.find_by_sql ["SELECT * FROM posts WHERE author = ? AND created > ?", author_id, start_date]) reserved(def) method(find_by_sql)operator(()ident(sql)operator(\)) ident(connection)operator(.)ident(select_all)operator(()ident(sanitize_sql)operator(()ident(sql)operator(\))operator(,) stringcontent( Load)delimiter(")>operator(\))operator(.)ident(collect!) operator({) operator(|)ident(record)operator(|) ident(instantiate)operator(()ident(record)operator(\)) operator(}) reserved(end) comment(# Returns true if the given +id+ represents the primary key of a record in the database, false otherwise.) comment(# Example:) comment(# Person.exists?(5\)) reserved(def) method(exists?)operator(()ident(id)operator(\)) operator(!)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringcontent( = ?)delimiter(")>operator(,) ident(id)operator(])operator(\))operator(.)ident(nil?) reserved(rescue) pre_constant(false) reserved(end) comment(# Creates an object, instantly saves it as a record (if the validation permits it\), and returns it. If the save) comment(# fails under validations, the unsaved object is still returned.) reserved(def) method(create)operator(()ident(attributes) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(attributes)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(attributes)operator(.)ident(collect) operator({) operator(|)ident(attr)operator(|) ident(create)operator(()ident(attr)operator(\)) operator(}) reserved(else) ident(object) operator(=) ident(new)operator(()ident(attributes)operator(\)) ident(scope)operator(()symbol(:create)operator(\))operator(.)ident(each) operator({) operator(|)ident(att)operator(,)ident(value)operator(|) ident(object)operator(.)ident(send)operator(()stringcontent(=)delimiter(")>operator(,) ident(value)operator(\)) operator(}) reserved(if) ident(scoped?)operator(()symbol(:create)operator(\)) ident(object)operator(.)ident(save) ident(object) reserved(end) reserved(end) comment(# Finds the record from the passed +id+, instantly saves it with the passed +attributes+ (if the validation permits it\),) comment(# and returns it. If the save fails under validations, the unsaved object is still returned.) comment(#) comment(# The arguments may also be given as arrays in which case the update method is called for each pair of +id+ and ) comment(# +attributes+ and an array of objects is returned.) comment(#) comment(# Example of updating one record:) comment(# Person.update(15, {:user_name => 'Samuel', :group => 'expert'}\)) comment(# ) comment(# Example of updating multiple records:) comment(# people = { 1 => { "first_name" => "David" }, 2 => { "first_name" => "Jeremy"} } ) comment(# Person.update(people.keys, people.values\)) reserved(def) method(update)operator(()ident(id)operator(,) ident(attributes)operator(\)) reserved(if) ident(id)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(idx) operator(=) integer(-1) ident(id)operator(.)ident(collect) operator({) operator(|)ident(id)operator(|) ident(idx) operator(+=) integer(1)operator(;) ident(update)operator(()ident(id)operator(,) ident(attributes)operator([)ident(idx)operator(])operator(\)) operator(}) reserved(else) ident(object) operator(=) ident(find)operator(()ident(id)operator(\)) ident(object)operator(.)ident(update_attributes)operator(()ident(attributes)operator(\)) ident(object) reserved(end) reserved(end) comment(# Deletes the record with the given +id+ without instantiating an object first. If an array of ids is provided, all of them) comment(# are deleted.) reserved(def) method(delete)operator(()ident(id)operator(\)) ident(delete_all)operator(()operator([) stringcontent( IN (?\))delimiter(")>operator(,) ident(id) operator(])operator(\)) reserved(end) comment(# Destroys the record with the given +id+ by instantiating the object and calling #destroy (all the callbacks are the triggered\).) comment(# If an array of ids is provided, all of them are destroyed.) reserved(def) method(destroy)operator(()ident(id)operator(\)) ident(id)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) operator(?) ident(id)operator(.)ident(each) operator({) operator(|)ident(id)operator(|) ident(destroy)operator(()ident(id)operator(\)) operator(}) operator(:) ident(find)operator(()ident(id)operator(\))operator(.)ident(destroy) reserved(end) comment(# Updates all records with the SET-part of an SQL update statement in +updates+ and returns an integer with the number of rows updated.) comment(# A subset of the records can be selected by specifying +conditions+. Example:) comment(# Billing.update_all "category = 'authorized', approved = 1", "author = 'David'") reserved(def) method(update_all)operator(()ident(updates)operator(,) ident(conditions) operator(=) pre_constant(nil)operator(\)) ident(sql) operator(=) stringcontent( SET )inlinecontent( )delimiter(")> ident(add_conditions!)operator(()ident(sql)operator(,) ident(conditions)operator(,) ident(scope)operator(()symbol(:find)operator(\))operator(\)) ident(connection)operator(.)ident(update)operator(()ident(sql)operator(,) stringcontent( Update)delimiter(")>operator(\)) reserved(end) comment(# Destroys the objects for all the records that match the +condition+ by instantiating each object and calling) comment(# the destroy method. Example:) comment(# Person.destroy_all "last_login < '2004-04-04'") reserved(def) method(destroy_all)operator(()ident(conditions) operator(=) pre_constant(nil)operator(\)) ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) ident(conditions)operator(\))operator(.)ident(each) operator({) operator(|)ident(object)operator(|) ident(object)operator(.)ident(destroy) operator(}) reserved(end) comment(# Deletes all the records that match the +condition+ without instantiating the objects first (and hence not) comment(# calling the destroy method\). Example:) comment(# Post.delete_all "person_id = 5 AND (category = 'Something' OR category = 'Else'\)") reserved(def) method(delete_all)operator(()ident(conditions) operator(=) pre_constant(nil)operator(\)) ident(sql) operator(=) stringcontent( )delimiter(")> ident(add_conditions!)operator(()ident(sql)operator(,) ident(conditions)operator(,) ident(scope)operator(()symbol(:find)operator(\))operator(\)) ident(connection)operator(.)ident(delete)operator(()ident(sql)operator(,) stringcontent( Delete all)delimiter(")>operator(\)) reserved(end) comment(# Returns the result of an SQL statement that should only include a COUNT(*\) in the SELECT part.) comment(# Product.count_by_sql "SELECT COUNT(*\) FROM sales s, customers c WHERE s.customer_id = c.id") reserved(def) method(count_by_sql)operator(()ident(sql)operator(\)) ident(sql) operator(=) ident(sanitize_conditions)operator(()ident(sql)operator(\)) ident(connection)operator(.)ident(select_value)operator(()ident(sql)operator(,) stringcontent( Count)delimiter(")>operator(\))operator(.)ident(to_i) reserved(end) comment(# Increments the specified counter by one. So DiscussionBoard.increment_counter("post_count",) comment(# discussion_board_id\) would increment the "post_count" counter on the board responding to discussion_board_id.) comment(# This is used for caching aggregate values, so that they don't need to be computed every time. Especially important) comment(# for looping over a collection where each element require a number of aggregate values. Like the DiscussionBoard) comment(# that needs to list both the number of posts and comments.) reserved(def) method(increment_counter)operator(()ident(counter_name)operator(,) ident(id)operator(\)) ident(update_all) stringcontent( = )inlinecontent( + 1)delimiter(")>operator(,) stringcontent( = )inlinedelimiter(")> reserved(end) comment(# Works like increment_counter, but decrements instead.) reserved(def) method(decrement_counter)operator(()ident(counter_name)operator(,) ident(id)operator(\)) ident(update_all) stringcontent( = )inlinecontent( - 1)delimiter(")>operator(,) stringcontent( = )inlinedelimiter(")> reserved(end) comment(# Attributes named in this macro are protected from mass-assignment, such as new(attributes\) and) comment(# attributes=(attributes\). Their assignment will simply be ignored. Instead, you can use the direct writer) comment(# methods to do assignment. This is meant to protect sensitive attributes from being overwritten by URL/form hackers. Example:) comment(#) comment(# class Customer < ActiveRecord::Base) comment(# attr_protected :credit_rating) comment(# end) comment(#) comment(# customer = Customer.new("name" => David, "credit_rating" => "Excellent"\)) comment(# customer.credit_rating # => nil) comment(# customer.attributes = { "description" => "Jolly fellow", "credit_rating" => "Superb" }) comment(# customer.credit_rating # => nil) comment(#) comment(# customer.credit_rating = "Average") comment(# customer.credit_rating # => "Average") reserved(def) method(attr_protected)operator(()operator(*)ident(attributes)operator(\)) ident(write_inheritable_array)operator(()stringoperator(,) ident(attributes) operator(-) operator(()ident(protected_attributes) operator(||) operator([)operator(])operator(\))operator(\)) reserved(end) comment(# Returns an array of all the attributes that have been protected from mass-assignment.) reserved(def) method(protected_attributes) comment(# :nodoc:) ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(end) comment(# If this macro is used, only those attributes named in it will be accessible for mass-assignment, such as) comment(# new(attributes\) and attributes=(attributes\). This is the more conservative choice for mass-assignment) comment(# protection. If you'd rather start from an all-open default and restrict attributes as needed, have a look at) comment(# attr_protected.) reserved(def) method(attr_accessible)operator(()operator(*)ident(attributes)operator(\)) ident(write_inheritable_array)operator(()stringoperator(,) ident(attributes) operator(-) operator(()ident(accessible_attributes) operator(||) operator([)operator(])operator(\))operator(\)) reserved(end) comment(# Returns an array of all the attributes that have been made accessible to mass-assignment.) reserved(def) method(accessible_attributes) comment(# :nodoc:) ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(end) comment(# Specifies that the attribute by the name of +attr_name+ should be serialized before saving to the database and unserialized) comment(# after loading from the database. The serialization is done through YAML. If +class_name+ is specified, the serialized) comment(# object must be of that class on retrieval or +SerializationTypeMismatch+ will be raised.) reserved(def) method(serialize)operator(()ident(attr_name)operator(,) ident(class_name) operator(=) constant(Object)operator(\)) ident(serialized_attributes)operator([)ident(attr_name)operator(.)ident(to_s)operator(]) operator(=) ident(class_name) reserved(end) comment(# Returns a hash of all the attributes that have been specified for serialization as keys and their class restriction as values.) reserved(def) method(serialized_attributes) ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(or) ident(write_inheritable_attribute)operator(()stringoperator(,) operator({)operator(})operator(\)) reserved(end) comment(# Guesses the table name (in forced lower-case\) based on the name of the class in the inheritance hierarchy descending) comment(# directly from ActiveRecord. So if the hierarchy looks like: Reply < Message < ActiveRecord, then Message is used) comment(# to guess the table name from even when called on Reply. The rules used to do the guess are handled by the Inflector class) comment(# in Active Support, which knows almost all common English inflections (report a bug if your inflection isn't covered\).) comment(#) comment(# Additionally, the class-level table_name_prefix is prepended to the table_name and the table_name_suffix is appended.) comment(# So if you have "myapp_" as a prefix, the table name guess for an Account class becomes "myapp_accounts".) comment(#) comment(# You can also overwrite this class method to allow for unguessable links, such as a Mouse class with a link to a) comment(# "mice" table. Example:) comment(#) comment(# class Mouse < ActiveRecord::Base) comment(# set_table_name "mice") comment(# end) reserved(def) method(table_name) ident(reset_table_name) reserved(end) reserved(def) method(reset_table_name) comment(#:nodoc:) ident(name) operator(=) stringinlineinlinedelimiter(")> ident(set_table_name)operator(()ident(name)operator(\)) ident(name) reserved(end) comment(# Defines the primary key field -- can be overridden in subclasses. Overwriting will negate any effect of the) comment(# primary_key_prefix_type setting, though.) reserved(def) method(primary_key) ident(reset_primary_key) reserved(end) reserved(def) method(reset_primary_key) comment(#:nodoc:) ident(key) operator(=) string reserved(case) ident(primary_key_prefix_type) reserved(when) symbol(:table_name) ident(key) operator(=) constant(Inflector)operator(.)ident(foreign_key)operator(()ident(base_class)operator(.)ident(name)operator(,) pre_constant(false)operator(\)) reserved(when) symbol(:table_name_with_underscore) ident(key) operator(=) constant(Inflector)operator(.)ident(foreign_key)operator(()ident(base_class)operator(.)ident(name)operator(\)) reserved(end) ident(set_primary_key)operator(()ident(key)operator(\)) ident(key) reserved(end) comment(# Defines the column name for use with single table inheritance -- can be overridden in subclasses.) reserved(def) method(inheritance_column) string reserved(end) comment(# Lazy-set the sequence name to the connection's default. This method) comment(# is only ever called once since set_sequence_name overrides it.) reserved(def) method(sequence_name) comment(#:nodoc:) ident(reset_sequence_name) reserved(end) reserved(def) method(reset_sequence_name) comment(#:nodoc:) ident(default) operator(=) ident(connection)operator(.)ident(default_sequence_name)operator(()ident(table_name)operator(,) ident(primary_key)operator(\)) ident(set_sequence_name)operator(()ident(default)operator(\)) ident(default) reserved(end) comment(# Sets the table name to use to the given value, or (if the value) comment(# is nil or false\) to the value returned by the given block.) comment(#) comment(# Example:) comment(#) comment(# class Project < ActiveRecord::Base) comment(# set_table_name "project") comment(# end) reserved(def) method(set_table_name)operator(()ident(value) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) ident(define_attr_method) symbol(:table_name)operator(,) ident(value)operator(,) operator(&)ident(block) reserved(end) reserved(alias) symbol(:table_name=) symbol(:set_table_name) comment(# Sets the name of the primary key column to use to the given value,) comment(# or (if the value is nil or false\) to the value returned by the given) comment(# block.) comment(#) comment(# Example:) comment(#) comment(# class Project < ActiveRecord::Base) comment(# set_primary_key "sysid") comment(# end) reserved(def) method(set_primary_key)operator(()ident(value) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) ident(define_attr_method) symbol(:primary_key)operator(,) ident(value)operator(,) operator(&)ident(block) reserved(end) reserved(alias) symbol(:primary_key=) symbol(:set_primary_key) comment(# Sets the name of the inheritance column to use to the given value,) comment(# or (if the value # is nil or false\) to the value returned by the) comment(# given block.) comment(#) comment(# Example:) comment(#) comment(# class Project < ActiveRecord::Base) comment(# set_inheritance_column do) comment(# original_inheritance_column + "_id") comment(# end) comment(# end) reserved(def) method(set_inheritance_column)operator(()ident(value) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) ident(define_attr_method) symbol(:inheritance_column)operator(,) ident(value)operator(,) operator(&)ident(block) reserved(end) reserved(alias) symbol(:inheritance_column=) symbol(:set_inheritance_column) comment(# Sets the name of the sequence to use when generating ids to the given) comment(# value, or (if the value is nil or false\) to the value returned by the) comment(# given block. This is required for Oracle and is useful for any) comment(# database which relies on sequences for primary key generation.) comment(#) comment(# If a sequence name is not explicitly set when using Oracle or Firebird,) comment(# it will default to the commonly used pattern of: #{table_name}_seq) comment(#) comment(# If a sequence name is not explicitly set when using PostgreSQL, it) comment(# will discover the sequence corresponding to your primary key for you.) comment(#) comment(# Example:) comment(#) comment(# class Project < ActiveRecord::Base) comment(# set_sequence_name "projectseq" # default would have been "project_seq") comment(# end) reserved(def) method(set_sequence_name)operator(()ident(value) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) ident(define_attr_method) symbol(:sequence_name)operator(,) ident(value)operator(,) operator(&)ident(block) reserved(end) reserved(alias) symbol(:sequence_name=) symbol(:set_sequence_name) comment(# Turns the +table_name+ back into a class name following the reverse rules of +table_name+.) reserved(def) method(class_name)operator(()ident(table_name) operator(=) ident(table_name)operator(\)) comment(# :nodoc:) comment(# remove any prefix and/or suffix from the table name) ident(class_name) operator(=) ident(table_name)operator([)ident(table_name_prefix)operator(.)ident(length)operator(..)operator(-)operator(()ident(table_name_suffix)operator(.)ident(length) operator(+) integer(1)operator(\))operator(])operator(.)ident(camelize) ident(class_name) operator(=) ident(class_name)operator(.)ident(singularize) reserved(if) ident(pluralize_table_names) ident(class_name) reserved(end) comment(# Indicates whether the table associated with this class exists) reserved(def) method(table_exists?) reserved(if) ident(connection)operator(.)ident(respond_to?)operator(()symbol(:tables)operator(\)) ident(connection)operator(.)ident(tables)operator(.)ident(include?) ident(table_name) reserved(else) comment(# if the connection adapter hasn't implemented tables, there are two crude tests that can be) comment(# used - see if getting column info raises an error, or if the number of columns returned is zero) reserved(begin) ident(reset_column_information) ident(columns)operator(.)ident(size) operator(>) integer(0) reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid) pre_constant(false) reserved(end) reserved(end) reserved(end) comment(# Returns an array of column objects for the table associated with this class.) reserved(def) method(columns) reserved(unless) instance_variable(@columns) instance_variable(@columns) operator(=) ident(connection)operator(.)ident(columns)operator(()ident(table_name)operator(,) stringcontent( Columns)delimiter(")>operator(\)) instance_variable(@columns)operator(.)ident(each) operator({)operator(|)ident(column)operator(|) ident(column)operator(.)ident(primary) operator(=) ident(column)operator(.)ident(name) operator(==) ident(primary_key)operator(}) reserved(end) instance_variable(@columns) reserved(end) comment(# Returns an array of column objects for the table associated with this class.) reserved(def) method(columns_hash) instance_variable(@columns_hash) operator(||=) ident(columns)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({) operator(|)ident(hash)operator(,) ident(column)operator(|) ident(hash)operator([)ident(column)operator(.)ident(name)operator(]) operator(=) ident(column)operator(;) ident(hash) operator(}) reserved(end) comment(# Returns an array of column names as strings.) reserved(def) method(column_names) instance_variable(@column_names) operator(||=) ident(columns)operator(.)ident(map) operator({) operator(|)ident(column)operator(|) ident(column)operator(.)ident(name) operator(}) reserved(end) comment(# Returns an array of column objects where the primary id, all columns ending in "_id" or "_count",) comment(# and columns used for single table inheritance have been removed.) reserved(def) method(content_columns) instance_variable(@content_columns) operator(||=) ident(columns)operator(.)ident(reject) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(primary) operator(||) ident(c)operator(.)ident(name) operator(=)operator(~) regexp operator(||) ident(c)operator(.)ident(name) operator(==) ident(inheritance_column) operator(}) reserved(end) comment(# Returns a hash of all the methods added to query each of the columns in the table with the name of the method as the key) comment(# and true as the value. This makes it possible to do O(1\) lookups in respond_to? to check if a given method for attribute) comment(# is available.) reserved(def) method(column_methods_hash) comment(#:nodoc:) instance_variable(@dynamic_methods_hash) operator(||=) ident(column_names)operator(.)ident(inject)operator(()constant(Hash)operator(.)ident(new)operator(()pre_constant(false)operator(\))operator(\)) reserved(do) operator(|)ident(methods)operator(,) ident(attr)operator(|) ident(attr_name) operator(=) ident(attr)operator(.)ident(to_s) ident(methods)operator([)ident(attr)operator(.)ident(to_sym)operator(]) operator(=) ident(attr_name) ident(methods)operator([)stringcontent(=)delimiter(")>operator(.)ident(to_sym)operator(]) operator(=) ident(attr_name) ident(methods)operator([)stringcontent(?)delimiter(")>operator(.)ident(to_sym)operator(]) operator(=) ident(attr_name) ident(methods)operator([)stringcontent(_before_type_cast)delimiter(")>operator(.)ident(to_sym)operator(]) operator(=) ident(attr_name) ident(methods) reserved(end) reserved(end) comment(# Contains the names of the generated reader methods.) reserved(def) method(read_methods) comment(#:nodoc:) instance_variable(@read_methods) operator(||=) constant(Set)operator(.)ident(new) reserved(end) comment(# Resets all the cached information about columns, which will cause them to be reloaded on the next request.) reserved(def) method(reset_column_information) ident(read_methods)operator(.)ident(each) operator({) operator(|)ident(name)operator(|) ident(undef_method)operator(()ident(name)operator(\)) operator(}) instance_variable(@column_names) operator(=) instance_variable(@columns) operator(=) instance_variable(@columns_hash) operator(=) instance_variable(@content_columns) operator(=) instance_variable(@dynamic_methods_hash) operator(=) instance_variable(@read_methods) operator(=) pre_constant(nil) reserved(end) reserved(def) method(reset_column_information_and_inheritable_attributes_for_all_subclasses)comment(#:nodoc:) ident(subclasses)operator(.)ident(each) operator({) operator(|)ident(klass)operator(|) ident(klass)operator(.)ident(reset_inheritable_attributes)operator(;) ident(klass)operator(.)ident(reset_column_information) operator(}) reserved(end) comment(# Transforms attribute key names into a more humane format, such as "First name" instead of "first_name". Example:) comment(# Person.human_attribute_name("first_name"\) # => "First name") comment(# Deprecated in favor of just calling "first_name".humanize) reserved(def) method(human_attribute_name)operator(()ident(attribute_key_name)operator(\)) comment(#:nodoc:) ident(attribute_key_name)operator(.)ident(humanize) reserved(end) reserved(def) method(descends_from_active_record?) comment(# :nodoc:) ident(superclass) operator(==) constant(Base) operator(||) operator(!)ident(columns_hash)operator(.)ident(include?)operator(()ident(inheritance_column)operator(\)) reserved(end) reserved(def) method(quote)operator(()ident(object)operator(\)) comment(#:nodoc:) ident(connection)operator(.)ident(quote)operator(()ident(object)operator(\)) reserved(end) comment(# Used to sanitize objects before they're used in an SELECT SQL-statement. Delegates to connection.quote.) reserved(def) method(sanitize)operator(()ident(object)operator(\)) comment(#:nodoc:) ident(connection)operator(.)ident(quote)operator(()ident(object)operator(\)) reserved(end) comment(# Log and benchmark multiple statements in a single block. Example:) comment(#) comment(# Project.benchmark("Creating project"\) do) comment(# project = Project.create("name" => "stuff"\)) comment(# project.create_manager("name" => "David"\)) comment(# project.milestones << Milestone.find(:all\)) comment(# end) comment(#) comment(# The benchmark is only recorded if the current level of the logger matches the log_level, which makes it) comment(# easy to include benchmarking statements in production software that will remain inexpensive because the benchmark) comment(# will only be conducted if the log level is low enough.) comment(#) comment(# The logging of the multiple statements is turned off unless use_silence is set to false.) reserved(def) method(benchmark)operator(()ident(title)operator(,) ident(log_level) operator(=) constant(Logger)operator(::)constant(DEBUG)operator(,) ident(use_silence) operator(=) pre_constant(true)operator(\)) reserved(if) ident(logger) operator(&&) ident(logger)operator(.)ident(level) operator(==) ident(log_level) ident(result) operator(=) pre_constant(nil) ident(seconds) operator(=) constant(Benchmark)operator(.)ident(realtime) operator({) ident(result) operator(=) ident(use_silence) operator(?) ident(silence) operator({) reserved(yield) operator(}) operator(:) reserved(yield) operator(}) ident(logger)operator(.)ident(add)operator(()ident(log_level)operator(,) stringcontent( ()inline operator(%) ident(seconds)inline_delimiter(})>content(\))delimiter(")>operator(\)) ident(result) reserved(else) reserved(yield) reserved(end) reserved(end) comment(# Silences the logger for the duration of the block.) reserved(def) method(silence) ident(old_logger_level)operator(,) ident(logger)operator(.)ident(level) operator(=) ident(logger)operator(.)ident(level)operator(,) constant(Logger)operator(::)constant(ERROR) reserved(if) ident(logger) reserved(yield) reserved(ensure) ident(logger)operator(.)ident(level) operator(=) ident(old_logger_level) reserved(if) ident(logger) reserved(end) comment(# Scope parameters to method calls within the block. Takes a hash of method_name => parameters hash.) comment(# method_name may be :find or :create. :find parameters may include the :conditions, :joins,) comment(# :include, :offset, :limit, and :readonly options. :create parameters are an attributes hash.) comment(#) comment(# Article.with_scope(:find => { :conditions => "blog_id = 1" }, :create => { :blog_id => 1 }\) do) comment(# Article.find(1\) # => SELECT * from articles WHERE blog_id = 1 AND id = 1) comment(# a = Article.create(1\)) comment(# a.blog_id # => 1) comment(# end) comment(#) comment(# In nested scopings, all previous parameters are overwritten by inner rule) comment(# except :conditions in :find, that are merged as hash.) comment(#) comment(# Article.with_scope(:find => { :conditions => "blog_id = 1", :limit => 1 }, :create => { :blog_id => 1 }\) do) comment(# Article.with_scope(:find => { :limit => 10}\)) comment(# Article.find(:all\) # => SELECT * from articles WHERE blog_id = 1 LIMIT 10) comment(# end) comment(# Article.with_scope(:find => { :conditions => "author_id = 3" }\)) comment(# Article.find(:all\) # => SELECT * from articles WHERE blog_id = 1 AND author_id = 3 LIMIT 1) comment(# end) comment(# end) comment(#) comment(# You can ignore any previous scopings by using with_exclusive_scope method.) comment(#) comment(# Article.with_scope(:find => { :conditions => "blog_id = 1", :limit => 1 }\) do) comment(# Article.with_exclusive_scope(:find => { :limit => 10 }\)) comment(# Article.find(:all\) # => SELECT * from articles LIMIT 10) comment(# end) comment(# end) reserved(def) method(with_scope)operator(()ident(method_scoping) operator(=) operator({)operator(})operator(,) ident(action) operator(=) symbol(:merge)operator(,) operator(&)ident(block)operator(\)) ident(method_scoping) operator(=) ident(method_scoping)operator(.)ident(method_scoping) reserved(if) ident(method_scoping)operator(.)ident(respond_to?)operator(()symbol(:method_scoping)operator(\)) comment(# Dup first and second level of hash (method and params\).) ident(method_scoping) operator(=) ident(method_scoping)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(hash)operator(,) operator(()ident(method)operator(,) ident(params)operator(\))operator(|) ident(hash)operator([)ident(method)operator(]) operator(=) operator(()ident(params) operator(==) pre_constant(true)operator(\)) operator(?) ident(params) operator(:) ident(params)operator(.)ident(dup) ident(hash) reserved(end) ident(method_scoping)operator(.)ident(assert_valid_keys)operator(()operator([) symbol(:find)operator(,) symbol(:create) operator(])operator(\)) reserved(if) ident(f) operator(=) ident(method_scoping)operator([)symbol(:find)operator(]) ident(f)operator(.)ident(assert_valid_keys)operator(()operator([) symbol(:conditions)operator(,) symbol(:joins)operator(,) symbol(:select)operator(,) symbol(:include)operator(,) symbol(:from)operator(,) symbol(:offset)operator(,) symbol(:limit)operator(,) symbol(:readonly) operator(])operator(\)) ident(f)operator([)symbol(:readonly)operator(]) operator(=) pre_constant(true) reserved(if) operator(!)ident(f)operator([)symbol(:joins)operator(])operator(.)ident(blank?) operator(&&) operator(!)ident(f)operator(.)ident(has_key?)operator(()symbol(:readonly)operator(\)) reserved(end) comment(# Merge scopings) reserved(if) ident(action) operator(==) symbol(:merge) operator(&&) ident(current_scoped_methods) ident(method_scoping) operator(=) ident(current_scoped_methods)operator(.)ident(inject)operator(()ident(method_scoping)operator(\)) reserved(do) operator(|)ident(hash)operator(,) operator(()ident(method)operator(,) ident(params)operator(\))operator(|) reserved(case) ident(hash)operator([)ident(method)operator(]) reserved(when) constant(Hash) reserved(if) ident(method) operator(==) symbol(:find) operator(()ident(hash)operator([)ident(method)operator(])operator(.)ident(keys) operator(+) ident(params)operator(.)ident(keys)operator(\))operator(.)ident(uniq)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(|) ident(merge) operator(=) ident(hash)operator([)ident(method)operator(])operator([)ident(key)operator(]) operator(&&) ident(params)operator([)ident(key)operator(]) comment(# merge if both scopes have the same key) reserved(if) ident(key) operator(==) symbol(:conditions) operator(&&) ident(merge) ident(hash)operator([)ident(method)operator(])operator([)ident(key)operator(]) operator(=) operator([)ident(params)operator([)ident(key)operator(])operator(,) ident(hash)operator([)ident(method)operator(])operator([)ident(key)operator(])operator(])operator(.)ident(collect)operator({) operator(|)ident(sql)operator(|) string operator(%) ident(sanitize_sql)operator(()ident(sql)operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(elsif) ident(key) operator(==) symbol(:include) operator(&&) ident(merge) ident(hash)operator([)ident(method)operator(])operator([)ident(key)operator(]) operator(=) ident(merge_includes)operator(()ident(hash)operator([)ident(method)operator(])operator([)ident(key)operator(])operator(,) ident(params)operator([)ident(key)operator(])operator(\))operator(.)ident(uniq) reserved(else) ident(hash)operator([)ident(method)operator(])operator([)ident(key)operator(]) operator(=) ident(hash)operator([)ident(method)operator(])operator([)ident(key)operator(]) operator(||) ident(params)operator([)ident(key)operator(]) reserved(end) reserved(end) reserved(else) ident(hash)operator([)ident(method)operator(]) operator(=) ident(params)operator(.)ident(merge)operator(()ident(hash)operator([)ident(method)operator(])operator(\)) reserved(end) reserved(else) ident(hash)operator([)ident(method)operator(]) operator(=) ident(params) reserved(end) ident(hash) reserved(end) reserved(end) pre_constant(self)operator(.)ident(scoped_methods) operator(<<) ident(method_scoping) reserved(begin) reserved(yield) reserved(ensure) pre_constant(self)operator(.)ident(scoped_methods)operator(.)ident(pop) reserved(end) reserved(end) comment(# Works like with_scope, but discards any nested properties.) reserved(def) method(with_exclusive_scope)operator(()ident(method_scoping) operator(=) operator({)operator(})operator(,) operator(&)ident(block)operator(\)) ident(with_scope)operator(()ident(method_scoping)operator(,) symbol(:overwrite)operator(,) operator(&)ident(block)operator(\)) reserved(end) comment(# Overwrite the default class equality method to provide support for association proxies.) reserved(def) method(===)operator(()ident(object)operator(\)) ident(object)operator(.)ident(is_a?)operator(()pre_constant(self)operator(\)) reserved(end) comment(# Deprecated ) reserved(def) method(threaded_connections) comment(#:nodoc:) ident(allow_concurrency) reserved(end) comment(# Deprecated ) reserved(def) method(threaded_connections=)operator(()ident(value)operator(\)) comment(#:nodoc:) pre_constant(self)operator(.)ident(allow_concurrency) operator(=) ident(value) reserved(end) comment(# Returns the base AR subclass that this class descends from. If A) comment(# extends AR::Base, A.base_class will return A. If B descends from A) comment(# through some arbitrarily deep hierarchy, B.base_class will return A.) reserved(def) method(base_class) ident(class_of_active_record_descendant)operator(()pre_constant(self)operator(\)) reserved(end) comment(# Set this to true if this is an abstract class (see #abstract_class?\).) ident(attr_accessor) symbol(:abstract_class) comment(# Returns whether this class is a base AR class. If A is a base class and) comment(# B descends from A, then B.base_class will return B.) reserved(def) method(abstract_class?) ident(abstract_class) operator(==) pre_constant(true) reserved(end) ident(private) reserved(def) method(find_initial)operator(()ident(options)operator(\)) ident(options)operator(.)ident(update)operator(()symbol(:limit) operator(=)operator(>) integer(1)operator(\)) reserved(unless) ident(options)operator([)symbol(:include)operator(]) ident(find_every)operator(()ident(options)operator(\))operator(.)ident(first) reserved(end) reserved(def) method(find_every)operator(()ident(options)operator(\)) ident(records) operator(=) ident(scoped?)operator(()symbol(:find)operator(,) symbol(:include)operator(\)) operator(||) ident(options)operator([)symbol(:include)operator(]) operator(?) ident(find_with_associations)operator(()ident(options)operator(\)) operator(:) ident(find_by_sql)operator(()ident(construct_finder_sql)operator(()ident(options)operator(\))operator(\)) ident(records)operator(.)ident(each) operator({) operator(|)ident(record)operator(|) ident(record)operator(.)ident(readonly!) operator(}) reserved(if) ident(options)operator([)symbol(:readonly)operator(]) ident(records) reserved(end) reserved(def) method(find_from_ids)operator(()ident(ids)operator(,) ident(options)operator(\)) ident(expects_array) operator(=) ident(ids)operator(.)ident(first)operator(.)ident(kind_of?)operator(()constant(Array)operator(\)) reserved(return) ident(ids)operator(.)ident(first) reserved(if) ident(expects_array) operator(&&) ident(ids)operator(.)ident(first)operator(.)ident(empty?) ident(ids) operator(=) ident(ids)operator(.)ident(flatten)operator(.)ident(compact)operator(.)ident(uniq) reserved(case) ident(ids)operator(.)ident(size) reserved(when) integer(0) ident(raise) constant(RecordNotFound)operator(,) stringcontent( without an ID)delimiter(")> reserved(when) integer(1) ident(result) operator(=) ident(find_one)operator(()ident(ids)operator(.)ident(first)operator(,) ident(options)operator(\)) ident(expects_array) operator(?) operator([) ident(result) operator(]) operator(:) ident(result) reserved(else) ident(find_some)operator(()ident(ids)operator(,) ident(options)operator(\)) reserved(end) reserved(end) reserved(def) method(find_one)operator(()ident(id)operator(,) ident(options)operator(\)) ident(conditions) operator(=) stringcontent(\))delimiter(")> reserved(if) ident(options)operator([)symbol(:conditions)operator(]) ident(options)operator(.)ident(update) symbol(:conditions) operator(=)operator(>) stringcontent(.)inlinecontent( = )inlineinlinedelimiter(")> reserved(if) ident(result) operator(=) ident(find_initial)operator(()ident(options)operator(\)) ident(result) reserved(else) ident(raise) constant(RecordNotFound)operator(,) stringcontent( with ID=)inlineinlinedelimiter(")> reserved(end) reserved(end) reserved(def) method(find_some)operator(()ident(ids)operator(,) ident(options)operator(\)) ident(conditions) operator(=) stringcontent(\))delimiter(")> reserved(if) ident(options)operator([)symbol(:conditions)operator(]) ident(ids_list) operator(=) ident(ids)operator(.)ident(map) operator({) operator(|)ident(id)operator(|) ident(sanitize)operator(()ident(id)operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) ident(options)operator(.)ident(update) symbol(:conditions) operator(=)operator(>) stringcontent(.)inlinecontent( IN ()inlinecontent(\))inlinedelimiter(")> ident(result) operator(=) ident(find_every)operator(()ident(options)operator(\)) reserved(if) ident(result)operator(.)ident(size) operator(==) ident(ids)operator(.)ident(size) ident(result) reserved(else) ident(raise) constant(RecordNotFound)operator(,) stringcontent( with IDs ()inlinecontent(\))inlinedelimiter(")> reserved(end) reserved(end) comment(# Finder methods must instantiate through this method to work with the single-table inheritance model) comment(# that makes it possible to create objects of different types from the same table.) reserved(def) method(instantiate)operator(()ident(record)operator(\)) ident(object) operator(=) reserved(if) ident(subclass_name) operator(=) ident(record)operator([)ident(inheritance_column)operator(]) reserved(if) ident(subclass_name)operator(.)ident(empty?) ident(allocate) reserved(else) ident(require_association_class)operator(()ident(subclass_name)operator(\)) reserved(begin) ident(compute_type)operator(()ident(subclass_name)operator(\))operator(.)ident(allocate) reserved(rescue) constant(NameError) ident(raise) constant(SubclassNotFound)operator(,) stringcontent('. )delimiter(")> operator(+) stringcontent(' is reserved for storing the class in case of inheritance. )delimiter(")> operator(+) string operator(+) stringcontent(.inheritance_column to use another column for that information.)delimiter(")> reserved(end) reserved(end) reserved(else) ident(allocate) reserved(end) ident(object)operator(.)ident(instance_variable_set)operator(()stringoperator(,) ident(record)operator(\)) ident(object) reserved(end) comment(# Nest the type name in the same module as this class.) comment(# Bar is "MyApp::Business::Bar" relative to MyApp::Business::Foo) reserved(def) method(type_name_with_module)operator(()ident(type_name)operator(\)) operator(()regexp operator(=)operator(~) ident(type_name)operator(\)) operator(?) ident(type_name) operator(:) stringcontent(::)inlinedelimiter(")> reserved(end) reserved(def) method(construct_finder_sql)operator(()ident(options)operator(\)) ident(scope) operator(=) ident(scope)operator(()symbol(:find)operator(\)) ident(sql) operator(=) stringinline_delimiter(})>content( )delimiter(")> ident(sql) operator(<<) stringcontent( )delimiter(")> ident(add_joins!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope)operator(\)) ident(add_conditions!)operator(()ident(sql)operator(,) ident(options)operator([)symbol(:conditions)operator(])operator(,) ident(scope)operator(\)) ident(sql) operator(<<) stringcontent( )delimiter(")> reserved(if) ident(options)operator([)symbol(:group)operator(]) ident(sql) operator(<<) stringcontent( )delimiter(")> reserved(if) ident(options)operator([)symbol(:order)operator(]) ident(add_limit!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope)operator(\)) ident(sql) reserved(end) comment(# Merges includes so that the result is a valid +include+) reserved(def) method(merge_includes)operator(()ident(first)operator(,) ident(second)operator(\)) ident(safe_to_array)operator(()ident(first)operator(\)) operator(+) ident(safe_to_array)operator(()ident(second)operator(\)) reserved(end) comment(# Object#to_a is deprecated, though it does have the desired behaviour) reserved(def) method(safe_to_array)operator(()ident(o)operator(\)) reserved(case) ident(o) reserved(when) constant(NilClass) operator([)operator(]) reserved(when) constant(Array) ident(o) reserved(else) operator([)ident(o)operator(]) reserved(end) reserved(end) comment(# The optional scope argument is for the current :find scope.) reserved(def) method(add_limit!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope) operator(=) symbol(:auto)operator(\)) ident(scope) operator(=) ident(scope)operator(()symbol(:find)operator(\)) reserved(if) symbol(:auto) operator(==) ident(scope) reserved(if) ident(scope) ident(options)operator([)symbol(:limit)operator(]) operator(||=) ident(scope)operator([)symbol(:limit)operator(]) ident(options)operator([)symbol(:offset)operator(]) operator(||=) ident(scope)operator([)symbol(:offset)operator(]) reserved(end) ident(connection)operator(.)ident(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) reserved(end) comment(# The optional scope argument is for the current :find scope.) reserved(def) method(add_joins!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope) operator(=) symbol(:auto)operator(\)) ident(scope) operator(=) ident(scope)operator(()symbol(:find)operator(\)) reserved(if) symbol(:auto) operator(==) ident(scope) ident(join) operator(=) operator(()ident(scope) operator(&&) ident(scope)operator([)symbol(:joins)operator(])operator(\)) operator(||) ident(options)operator([)symbol(:joins)operator(]) ident(sql) operator(<<) stringcontent( )delimiter(")> reserved(if) ident(join) reserved(end) comment(# Adds a sanitized version of +conditions+ to the +sql+ string. Note that the passed-in +sql+ string is changed.) comment(# The optional scope argument is for the current :find scope.) reserved(def) method(add_conditions!)operator(()ident(sql)operator(,) ident(conditions)operator(,) ident(scope) operator(=) symbol(:auto)operator(\)) ident(scope) operator(=) ident(scope)operator(()symbol(:find)operator(\)) reserved(if) symbol(:auto) operator(==) ident(scope) ident(segments) operator(=) operator([)operator(]) ident(segments) operator(<<) ident(sanitize_sql)operator(()ident(scope)operator([)symbol(:conditions)operator(])operator(\)) reserved(if) ident(scope) operator(&&) ident(scope)operator([)symbol(:conditions)operator(]) ident(segments) operator(<<) ident(sanitize_sql)operator(()ident(conditions)operator(\)) reserved(unless) ident(conditions)operator(.)ident(nil?) ident(segments) operator(<<) ident(type_condition) reserved(unless) ident(descends_from_active_record?) ident(segments)operator(.)ident(compact!) ident(sql) operator(<<) stringoperator(\))inline_delimiter(})>content(\) )delimiter(")> reserved(unless) ident(segments)operator(.)ident(empty?) reserved(end) reserved(def) method(type_condition) ident(quoted_inheritance_column) operator(=) ident(connection)operator(.)ident(quote_column_name)operator(()ident(inheritance_column)operator(\)) ident(type_condition) operator(=) ident(subclasses)operator(.)ident(inject)operator(()stringcontent(.)inlinecontent( = ')inlinecontent(' )delimiter(")>operator(\)) reserved(do) operator(|)ident(condition)operator(,) ident(subclass)operator(|) ident(condition) operator(<<) stringcontent(.)inlinecontent( = ')inlinecontent(' )delimiter(")> reserved(end) stringcontent(\) )delimiter(")> reserved(end) comment(# Guesses the table name, but does not decorate it with prefix and suffix information.) reserved(def) method(undecorated_table_name)operator(()ident(class_name) operator(=) ident(base_class)operator(.)ident(name)operator(\)) ident(table_name) operator(=) constant(Inflector)operator(.)ident(underscore)operator(()constant(Inflector)operator(.)ident(demodulize)operator(()ident(class_name)operator(\))operator(\)) ident(table_name) operator(=) constant(Inflector)operator(.)ident(pluralize)operator(()ident(table_name)operator(\)) reserved(if) ident(pluralize_table_names) ident(table_name) reserved(end) comment(# Enables dynamic finders like find_by_user_name(user_name\) and find_by_user_name_and_password(user_name, password\) that are turned into) comment(# find(:first, :conditions => ["user_name = ?", user_name]\) and find(:first, :conditions => ["user_name = ? AND password = ?", user_name, password]\)) comment(# respectively. Also works for find(:all\), but using find_all_by_amount(50\) that are turned into find(:all, :conditions => ["amount = ?", 50]\).) comment(#) comment(# It's even possible to use all the additional parameters to find. For example, the full interface for find_all_by_amount) comment(# is actually find_all_by_amount(amount, options\).) reserved(def) method(method_missing)operator(()ident(method_id)operator(,) operator(*)ident(arguments)operator(\)) reserved(if) ident(match) operator(=) regexpoperator(.)ident(match)operator(()ident(method_id)operator(.)ident(to_s)operator(\)) ident(finder)operator(,) ident(deprecated_finder) operator(=) ident(determine_finder)operator(()ident(match)operator(\))operator(,) ident(determine_deprecated_finder)operator(()ident(match)operator(\)) ident(attribute_names) operator(=) ident(extract_attribute_names_from_match)operator(()ident(match)operator(\)) reserved(super) reserved(unless) ident(all_attributes_exists?)operator(()ident(attribute_names)operator(\)) ident(conditions) operator(=) ident(construct_conditions_from_arguments)operator(()ident(attribute_names)operator(,) ident(arguments)operator(\)) reserved(case) ident(extra_options) operator(=) ident(arguments)operator([)ident(attribute_names)operator(.)ident(size)operator(]) reserved(when) pre_constant(nil) ident(options) operator(=) operator({) symbol(:conditions) operator(=)operator(>) ident(conditions) operator(}) ident(set_readonly_option!)operator(()ident(options)operator(\)) ident(send)operator(()ident(finder)operator(,) ident(options)operator(\)) reserved(when) constant(Hash) ident(finder_options) operator(=) ident(extra_options)operator(.)ident(merge)operator(()symbol(:conditions) operator(=)operator(>) ident(conditions)operator(\)) ident(validate_find_options)operator(()ident(finder_options)operator(\)) ident(set_readonly_option!)operator(()ident(finder_options)operator(\)) reserved(if) ident(extra_options)operator([)symbol(:conditions)operator(]) ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) ident(extra_options)operator([)symbol(:conditions)operator(]) operator(})operator(\)) reserved(do) ident(send)operator(()ident(finder)operator(,) ident(finder_options)operator(\)) reserved(end) reserved(else) ident(send)operator(()ident(finder)operator(,) ident(finder_options)operator(\)) reserved(end) reserved(else) ident(send)operator(()ident(deprecated_finder)operator(,) ident(conditions)operator(,) operator(*)ident(arguments)operator([)ident(attribute_names)operator(.)ident(length)operator(..)integer(-1)operator(])operator(\)) comment(# deprecated API) reserved(end) reserved(elsif) ident(match) operator(=) regexpoperator(.)ident(match)operator(()ident(method_id)operator(.)ident(to_s)operator(\)) ident(attribute_names) operator(=) ident(extract_attribute_names_from_match)operator(()ident(match)operator(\)) reserved(super) reserved(unless) ident(all_attributes_exists?)operator(()ident(attribute_names)operator(\)) ident(options) operator(=) operator({) symbol(:conditions) operator(=)operator(>) ident(construct_conditions_from_arguments)operator(()ident(attribute_names)operator(,) ident(arguments)operator(\)) operator(}) ident(set_readonly_option!)operator(()ident(options)operator(\)) ident(find_initial)operator(()ident(options)operator(\)) operator(||) ident(create)operator(()ident(construct_attributes_from_arguments)operator(()ident(attribute_names)operator(,) ident(arguments)operator(\))operator(\)) reserved(else) reserved(super) reserved(end) reserved(end) reserved(def) method(determine_finder)operator(()ident(match)operator(\)) ident(match)operator(.)ident(captures)operator(.)ident(first) operator(==) string operator(?) symbol(:find_every) operator(:) symbol(:find_initial) reserved(end) reserved(def) method(determine_deprecated_finder)operator(()ident(match)operator(\)) ident(match)operator(.)ident(captures)operator(.)ident(first) operator(==) string operator(?) symbol(:find_all) operator(:) symbol(:find_first) reserved(end) reserved(def) method(extract_attribute_names_from_match)operator(()ident(match)operator(\)) ident(match)operator(.)ident(captures)operator(.)ident(last)operator(.)ident(split)operator(()stringoperator(\)) reserved(end) reserved(def) method(construct_conditions_from_arguments)operator(()ident(attribute_names)operator(,) ident(arguments)operator(\)) ident(conditions) operator(=) operator([)operator(]) ident(attribute_names)operator(.)ident(each_with_index) operator({) operator(|)ident(name)operator(,) ident(idx)operator(|) ident(conditions) operator(<<) stringcontent(.)inlinecontent( )inlinecontent( )delimiter(")> operator(}) operator([) ident(conditions)operator(.)ident(join)operator(()stringoperator(\))operator(,) operator(*)ident(arguments)operator([)integer(0)operator(...)ident(attribute_names)operator(.)ident(length)operator(]) operator(]) reserved(end) reserved(def) method(construct_attributes_from_arguments)operator(()ident(attribute_names)operator(,) ident(arguments)operator(\)) ident(attributes) operator(=) operator({)operator(}) ident(attribute_names)operator(.)ident(each_with_index) operator({) operator(|)ident(name)operator(,) ident(idx)operator(|) ident(attributes)operator([)ident(name)operator(]) operator(=) ident(arguments)operator([)ident(idx)operator(]) operator(}) ident(attributes) reserved(end) reserved(def) method(all_attributes_exists?)operator(()ident(attribute_names)operator(\)) ident(attribute_names)operator(.)ident(all?) operator({) operator(|)ident(name)operator(|) ident(column_methods_hash)operator(.)ident(include?)operator(()ident(name)operator(.)ident(to_sym)operator(\)) operator(}) reserved(end) reserved(def) method(attribute_condition)operator(()ident(argument)operator(\)) reserved(case) ident(argument) reserved(when) pre_constant(nil) reserved(then) string reserved(when) constant(Array) reserved(then) string reserved(else) string reserved(end) reserved(end) comment(# Defines an "attribute" method (like #inheritance_column or) comment(# #table_name\). A new (class\) method will be created with the) comment(# given name. If a value is specified, the new method will) comment(# return that value (as a string\). Otherwise, the given block) comment(# will be used to compute the value of the method.) comment(#) comment(# The original method will be aliased, with the new name being) comment(# prefixed with "original_". This allows the new method to) comment(# access the original value.) comment(#) comment(# Example:) comment(#) comment(# class A < ActiveRecord::Base) comment(# define_attr_method :primary_key, "sysid") comment(# define_attr_method( :inheritance_column \) do) comment(# original_inheritance_column + "_id") comment(# end) comment(# end) reserved(def) method(define_attr_method)operator(()ident(name)operator(,) ident(value)operator(=)pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) ident(sing) operator(=) reserved(class) operator(<<) class(self)operator(;) pre_constant(self)operator(;) reserved(end) ident(sing)operator(.)ident(send) symbol(:alias_method)operator(,) stringdelimiter(")>operator(,) ident(name) reserved(if) ident(block_given?) ident(sing)operator(.)ident(send) symbol(:define_method)operator(,) ident(name)operator(,) operator(&)ident(block) reserved(else) comment(# use eval instead of a block to work around a memory leak in dev) comment(# mode in fcgi) ident(sing)operator(.)ident(class_eval) stringcontent(; )inlinecontent(; end)delimiter(")> reserved(end) reserved(end) ident(protected) reserved(def) method(subclasses) comment(#:nodoc:) class_variable(@@subclasses)operator([)pre_constant(self)operator(]) operator(||=) operator([)operator(]) class_variable(@@subclasses)operator([)pre_constant(self)operator(]) operator(+) ident(extra) operator(=) class_variable(@@subclasses)operator([)pre_constant(self)operator(])operator(.)ident(inject)operator(()operator([)operator(])operator(\)) operator({)operator(|)ident(list)operator(,) ident(subclass)operator(|) ident(list) operator(+) ident(subclass)operator(.)ident(subclasses) operator(}) reserved(end) comment(# Test whether the given method and optional key are scoped.) reserved(def) method(scoped?)operator(()ident(method)operator(,) ident(key) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) reserved(if) ident(current_scoped_methods) operator(&&) operator(()ident(scope) operator(=) ident(current_scoped_methods)operator([)ident(method)operator(])operator(\)) operator(!)ident(key) operator(||) ident(scope)operator(.)ident(has_key?)operator(()ident(key)operator(\)) reserved(end) reserved(end) comment(# Retrieve the scope for the given method and optional key.) reserved(def) method(scope)operator(()ident(method)operator(,) ident(key) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) reserved(if) ident(current_scoped_methods) operator(&&) operator(()ident(scope) operator(=) ident(current_scoped_methods)operator([)ident(method)operator(])operator(\)) ident(key) operator(?) ident(scope)operator([)ident(key)operator(]) operator(:) ident(scope) reserved(end) reserved(end) reserved(def) method(thread_safe_scoped_methods) comment(#:nodoc:) ident(scoped_methods) operator(=) operator(()constant(Thread)operator(.)ident(current)operator([)symbol(:scoped_methods)operator(]) operator(||=) operator({)operator(})operator(\)) ident(scoped_methods)operator([)pre_constant(self)operator(]) operator(||=) operator([)operator(]) reserved(end) reserved(def) method(single_threaded_scoped_methods) comment(#:nodoc:) instance_variable(@scoped_methods) operator(||=) operator([)operator(]) reserved(end) comment(# pick up the correct scoped_methods version from @@allow_concurrency) reserved(if) class_variable(@@allow_concurrency) ident(alias_method) symbol(:scoped_methods)operator(,) symbol(:thread_safe_scoped_methods) reserved(else) ident(alias_method) symbol(:scoped_methods)operator(,) symbol(:single_threaded_scoped_methods) reserved(end) reserved(def) method(current_scoped_methods) comment(#:nodoc:) ident(scoped_methods)operator(.)ident(last) reserved(end) comment(# Returns the class type of the record using the current module as a prefix. So descendents of) comment(# MyApp::Business::Account would appear as MyApp::Business::AccountSubclass.) reserved(def) method(compute_type)operator(()ident(type_name)operator(\)) ident(modularized_name) operator(=) ident(type_name_with_module)operator(()ident(type_name)operator(\)) reserved(begin) ident(instance_eval)operator(()ident(modularized_name)operator(\)) reserved(rescue) constant(NameError) operator(=)operator(>) ident(e) ident(instance_eval)operator(()ident(type_name)operator(\)) reserved(end) reserved(end) comment(# Returns the class descending directly from ActiveRecord in the inheritance hierarchy.) reserved(def) method(class_of_active_record_descendant)operator(()ident(klass)operator(\)) reserved(if) ident(klass)operator(.)ident(superclass) operator(==) constant(Base) operator(||) ident(klass)operator(.)ident(superclass)operator(.)ident(abstract_class?) ident(klass) reserved(elsif) ident(klass)operator(.)ident(superclass)operator(.)ident(nil?) ident(raise) constant(ActiveRecordError)operator(,) stringcontent( doesn't belong in a hierarchy descending from ActiveRecord)delimiter(")> reserved(else) ident(class_of_active_record_descendant)operator(()ident(klass)operator(.)ident(superclass)operator(\)) reserved(end) reserved(end) comment(# Returns the name of the class descending directly from ActiveRecord in the inheritance hierarchy.) reserved(def) method(class_name_of_active_record_descendant)operator(()ident(klass)operator(\)) comment(#:nodoc:) ident(klass)operator(.)ident(base_class)operator(.)ident(name) reserved(end) comment(# Accepts an array or string. The string is returned untouched, but the array has each value) comment(# sanitized and interpolated into the sql statement.) comment(# ["name='%s' and group_id='%s'", "foo'bar", 4] returns "name='foo''bar' and group_id='4'") reserved(def) method(sanitize_sql)operator(()ident(ary)operator(\)) reserved(return) ident(ary) reserved(unless) ident(ary)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(statement)operator(,) operator(*)ident(values) operator(=) ident(ary) reserved(if) ident(values)operator(.)ident(first)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) reserved(and) ident(statement) operator(=)operator(~) regexp ident(replace_named_bind_variables)operator(()ident(statement)operator(,) ident(values)operator(.)ident(first)operator(\)) reserved(elsif) ident(statement)operator(.)ident(include?)operator(()stringoperator(\)) ident(replace_bind_variables)operator(()ident(statement)operator(,) ident(values)operator(\)) reserved(else) ident(statement) operator(%) ident(values)operator(.)ident(collect) operator({) operator(|)ident(value)operator(|) ident(connection)operator(.)ident(quote_string)operator(()ident(value)operator(.)ident(to_s)operator(\)) operator(}) reserved(end) reserved(end) ident(alias_method) symbol(:sanitize_conditions)operator(,) symbol(:sanitize_sql) reserved(def) method(replace_bind_variables)operator(()ident(statement)operator(,) ident(values)operator(\)) comment(#:nodoc:) ident(raise_if_bind_arity_mismatch)operator(()ident(statement)operator(,) ident(statement)operator(.)ident(count)operator(()stringoperator(\))operator(,) ident(values)operator(.)ident(size)operator(\)) ident(bound) operator(=) ident(values)operator(.)ident(dup) ident(statement)operator(.)ident(gsub)operator(()stringoperator(\)) operator({) ident(quote_bound_value)operator(()ident(bound)operator(.)ident(shift)operator(\)) operator(}) reserved(end) reserved(def) method(replace_named_bind_variables)operator(()ident(statement)operator(,) ident(bind_vars)operator(\)) comment(#:nodoc:) ident(statement)operator(.)ident(gsub)operator(()regexpoperator(\)) reserved(do) ident(match) operator(=) global_variable($1)operator(.)ident(to_sym) reserved(if) ident(bind_vars)operator(.)ident(include?)operator(()ident(match)operator(\)) ident(quote_bound_value)operator(()ident(bind_vars)operator([)ident(match)operator(])operator(\)) reserved(else) ident(raise) constant(PreparedStatementInvalid)operator(,) stringcontent( in )inlinedelimiter(")> reserved(end) reserved(end) reserved(end) reserved(def) method(quote_bound_value)operator(()ident(value)operator(\)) comment(#:nodoc:) reserved(if) operator(()ident(value)operator(.)ident(respond_to?)operator(()symbol(:map)operator(\)) operator(&&) operator(!)ident(value)operator(.)ident(is_a?)operator(()constant(String)operator(\))operator(\)) ident(value)operator(.)ident(map) operator({) operator(|)ident(v)operator(|) ident(connection)operator(.)ident(quote)operator(()ident(v)operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(else) ident(connection)operator(.)ident(quote)operator(()ident(value)operator(\)) reserved(end) reserved(end) reserved(def) method(raise_if_bind_arity_mismatch)operator(()ident(statement)operator(,) ident(expected)operator(,) ident(provided)operator(\)) comment(#:nodoc:) reserved(unless) ident(expected) operator(==) ident(provided) ident(raise) constant(PreparedStatementInvalid)operator(,) stringcontent( for )inlinecontent(\) in: )inlinedelimiter(")> reserved(end) reserved(end) reserved(def) method(extract_options_from_args!)operator(()ident(args)operator(\)) comment(#:nodoc:) ident(args)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(args)operator(.)ident(pop) operator(:) operator({)operator(}) reserved(end) constant(VALID_FIND_OPTIONS) operator(=) operator([) symbol(:conditions)operator(,) symbol(:include)operator(,) symbol(:joins)operator(,) symbol(:limit)operator(,) symbol(:offset)operator(,) symbol(:order)operator(,) symbol(:select)operator(,) symbol(:readonly)operator(,) symbol(:group)operator(,) symbol(:from) operator(]) reserved(def) method(validate_find_options)operator(()ident(options)operator(\)) comment(#:nodoc:) ident(options)operator(.)ident(assert_valid_keys)operator(()constant(VALID_FIND_OPTIONS)operator(\)) reserved(end) reserved(def) method(set_readonly_option!)operator(()ident(options)operator(\)) comment(#:nodoc:) comment(# Inherit :readonly from finder scope if set. Otherwise,) comment(# if :joins is not blank then :readonly defaults to true.) reserved(unless) ident(options)operator(.)ident(has_key?)operator(()symbol(:readonly)operator(\)) reserved(if) ident(scoped?)operator(()symbol(:find)operator(,) symbol(:readonly)operator(\)) ident(options)operator([)symbol(:readonly)operator(]) operator(=) ident(scope)operator(()symbol(:find)operator(,) symbol(:readonly)operator(\)) reserved(elsif) operator(!)ident(options)operator([)symbol(:joins)operator(])operator(.)ident(blank?) operator(&&) operator(!)ident(options)operator([)symbol(:select)operator(]) ident(options)operator([)symbol(:readonly)operator(]) operator(=) pre_constant(true) reserved(end) reserved(end) reserved(end) reserved(def) method(encode_quoted_value)operator(()ident(value)operator(\)) comment(#:nodoc:) ident(quoted_value) operator(=) ident(connection)operator(.)ident(quote)operator(()ident(value)operator(\)) ident(quoted_value) operator(=) stringoperator(,) stringoperator(\))inline_delimiter(})>content(')delimiter(")> reserved(if) ident(quoted_value)operator(.)ident(include?)operator(()stringoperator(\)) comment(# (for ruby mode\) " ) ident(quoted_value) reserved(end) reserved(end) ident(public) comment(# New objects can be instantiated as either empty (pass no construction parameter\) or pre-set with) comment(# attributes but not yet saved (pass a hash with key names matching the associated table column names\).) comment(# In both instances, valid attribute keys are determined by the column names of the associated table --) comment(# hence you can't have attributes that aren't part of the table columns.) reserved(def) method(initialize)operator(()ident(attributes) operator(=) pre_constant(nil)operator(\)) instance_variable(@attributes) operator(=) ident(attributes_from_column_definition) instance_variable(@new_record) operator(=) pre_constant(true) ident(ensure_proper_type) pre_constant(self)operator(.)ident(attributes) operator(=) ident(attributes) reserved(unless) ident(attributes)operator(.)ident(nil?) reserved(yield) pre_constant(self) reserved(if) ident(block_given?) reserved(end) comment(# A model instance's primary key is always available as model.id) comment(# whether you name it the default 'id' or set it to something else.) reserved(def) method(id) ident(attr_name) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key) ident(column) operator(=) ident(column_for_attribute)operator(()ident(attr_name)operator(\)) ident(define_read_method)operator(()symbol(:id)operator(,) ident(attr_name)operator(,) ident(column)operator(\)) reserved(if) pre_constant(self)operator(.)ident(class)operator(.)ident(generate_read_methods) ident(read_attribute)operator(()ident(attr_name)operator(\)) reserved(end) comment(# Enables Active Record objects to be used as URL parameters in Action Pack automatically.) ident(alias_method) symbol(:to_param)operator(,) symbol(:id) reserved(def) method(id_before_type_cast) comment(#:nodoc:) ident(read_attribute_before_type_cast)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(\)) reserved(end) reserved(def) method(quoted_id) comment(#:nodoc:) ident(quote)operator(()ident(id)operator(,) ident(column_for_attribute)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(\))operator(\)) reserved(end) comment(# Sets the primary ID.) reserved(def) method(id=)operator(()ident(value)operator(\)) ident(write_attribute)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(,) ident(value)operator(\)) reserved(end) comment(# Returns true if this object hasn't been saved yet -- that is, a record for the object doesn't exist yet.) reserved(def) method(new_record?) instance_variable(@new_record) reserved(end) comment(# * No record exists: Creates a new record with values matching those of the object attributes.) comment(# * A record does exist: Updates the record with values matching those of the object attributes.) reserved(def) method(save) ident(raise) constant(ReadOnlyRecord) reserved(if) ident(readonly?) ident(create_or_update) reserved(end) comment(# Attempts to save the record, but instead of just returning false if it couldn't happen, it raises a ) comment(# RecordNotSaved exception) reserved(def) method(save!) ident(save) operator(||) ident(raise)operator(()constant(RecordNotSaved)operator(\)) reserved(end) comment(# Deletes the record in the database and freezes this instance to reflect that no changes should) comment(# be made (since they can't be persisted\).) reserved(def) method(destroy) reserved(unless) ident(new_record?) ident(connection)operator(.)ident(delete) stringoperator(,) stringcontent( Destroy)delimiter(")>stringcontent( WHERE )inlinecontent( = )inlinedelimiter( end_sql)> reserved(end) ident(freeze) reserved(end) comment(# Returns a clone of the record that hasn't been assigned an id yet and) comment(# is treated as a new record. Note that this is a "shallow" clone:) comment(# it copies the object's attributes only, not its associations.) comment(# The extent of a "deep" clone is application-specific and is therefore) comment(# left to the application to implement according to its need.) reserved(def) method(clone) ident(attrs) operator(=) pre_constant(self)operator(.)ident(attributes_before_type_cast) ident(attrs)operator(.)ident(delete)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(new) reserved(do) operator(|)ident(record)operator(|) ident(record)operator(.)ident(send) symbol(:instance_variable_set)operator(,) stringoperator(,) ident(attrs) reserved(end) reserved(end) comment(# Updates a single attribute and saves the record. This is especially useful for boolean flags on existing records.) comment(# Note: This method is overwritten by the Validation module that'll make sure that updates made with this method) comment(# doesn't get subjected to validation checks. Hence, attributes can be updated even if the full object isn't valid.) reserved(def) method(update_attribute)operator(()ident(name)operator(,) ident(value)operator(\)) ident(send)operator(()ident(name)operator(.)ident(to_s) operator(+) stringoperator(,) ident(value)operator(\)) ident(save) reserved(end) comment(# Updates all the attributes from the passed-in Hash and saves the record. If the object is invalid, the saving will) comment(# fail and false will be returned.) reserved(def) method(update_attributes)operator(()ident(attributes)operator(\)) pre_constant(self)operator(.)ident(attributes) operator(=) ident(attributes) ident(save) reserved(end) comment(# Initializes the +attribute+ to zero if nil and adds one. Only makes sense for number-based attributes. Returns self.) reserved(def) method(increment)operator(()ident(attribute)operator(\)) pre_constant(self)operator([)ident(attribute)operator(]) operator(||=) integer(0) pre_constant(self)operator([)ident(attribute)operator(]) operator(+=) integer(1) pre_constant(self) reserved(end) comment(# Increments the +attribute+ and saves the record.) reserved(def) method(increment!)operator(()ident(attribute)operator(\)) ident(increment)operator(()ident(attribute)operator(\))operator(.)ident(update_attribute)operator(()ident(attribute)operator(,) pre_constant(self)operator([)ident(attribute)operator(])operator(\)) reserved(end) comment(# Initializes the +attribute+ to zero if nil and subtracts one. Only makes sense for number-based attributes. Returns self.) reserved(def) method(decrement)operator(()ident(attribute)operator(\)) pre_constant(self)operator([)ident(attribute)operator(]) operator(||=) integer(0) pre_constant(self)operator([)ident(attribute)operator(]) operator(-=) integer(1) pre_constant(self) reserved(end) comment(# Decrements the +attribute+ and saves the record.) reserved(def) method(decrement!)operator(()ident(attribute)operator(\)) ident(decrement)operator(()ident(attribute)operator(\))operator(.)ident(update_attribute)operator(()ident(attribute)operator(,) pre_constant(self)operator([)ident(attribute)operator(])operator(\)) reserved(end) comment(# Turns an +attribute+ that's currently true into false and vice versa. Returns self.) reserved(def) method(toggle)operator(()ident(attribute)operator(\)) pre_constant(self)operator([)ident(attribute)operator(]) operator(=) operator(!)ident(send)operator(()stringcontent(?)delimiter(")>operator(\)) pre_constant(self) reserved(end) comment(# Toggles the +attribute+ and saves the record.) reserved(def) method(toggle!)operator(()ident(attribute)operator(\)) ident(toggle)operator(()ident(attribute)operator(\))operator(.)ident(update_attribute)operator(()ident(attribute)operator(,) pre_constant(self)operator([)ident(attribute)operator(])operator(\)) reserved(end) comment(# Reloads the attributes of this object from the database.) reserved(def) method(reload) ident(clear_aggregation_cache) ident(clear_association_cache) instance_variable(@attributes)operator(.)ident(update)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(find)operator(()pre_constant(self)operator(.)ident(id)operator(\))operator(.)ident(instance_variable_get)operator(()stringoperator(\))operator(\)) pre_constant(self) reserved(end) comment(# Returns the value of the attribute identified by attr_name after it has been typecast (for example,) comment(# "2004-12-12" in a data column is cast to a date object, like Date.new(2004, 12, 12\)\).) comment(# (Alias for the protected read_attribute method\).) reserved(def) method([])operator(()ident(attr_name)operator(\)) ident(read_attribute)operator(()ident(attr_name)operator(\)) reserved(end) comment(# Updates the attribute identified by attr_name with the specified +value+.) comment(# (Alias for the protected write_attribute method\).) reserved(def) method([]=)operator(()ident(attr_name)operator(,) ident(value)operator(\)) ident(write_attribute)operator(()ident(attr_name)operator(,) ident(value)operator(\)) reserved(end) comment(# Allows you to set all the attributes at once by passing in a hash with keys) comment(# matching the attribute names (which again matches the column names\). Sensitive attributes can be protected) comment(# from this form of mass-assignment by using the +attr_protected+ macro. Or you can alternatively) comment(# specify which attributes *can* be accessed in with the +attr_accessible+ macro. Then all the) comment(# attributes not included in that won't be allowed to be mass-assigned.) reserved(def) method(attributes=)operator(()ident(new_attributes)operator(\)) reserved(return) reserved(if) ident(new_attributes)operator(.)ident(nil?) ident(attributes) operator(=) ident(new_attributes)operator(.)ident(dup) ident(attributes)operator(.)ident(stringify_keys!) ident(multi_parameter_attributes) operator(=) operator([)operator(]) ident(remove_attributes_protected_from_mass_assignment)operator(()ident(attributes)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,) ident(v)operator(|) ident(k)operator(.)ident(include?)operator(()stringoperator(\)) operator(?) ident(multi_parameter_attributes) operator(<<) operator([) ident(k)operator(,) ident(v) operator(]) operator(:) ident(send)operator(()ident(k) operator(+) stringoperator(,) ident(v)operator(\)) reserved(end) ident(assign_multiparameter_attributes)operator(()ident(multi_parameter_attributes)operator(\)) reserved(end) comment(# Returns a hash of all the attributes with their names as keys and clones of their objects as values.) reserved(def) method(attributes)operator(()ident(options) operator(=) pre_constant(nil)operator(\)) ident(attributes) operator(=) ident(clone_attributes) symbol(:read_attribute) reserved(if) ident(options)operator(.)ident(nil?) ident(attributes) reserved(else) reserved(if) ident(except) operator(=) ident(options)operator([)symbol(:except)operator(]) ident(except) operator(=) ident(Array)operator(()ident(except)operator(\))operator(.)ident(collect) operator({) operator(|)ident(attribute)operator(|) ident(attribute)operator(.)ident(to_s) operator(}) ident(except)operator(.)ident(each) operator({) operator(|)ident(attribute_name)operator(|) ident(attributes)operator(.)ident(delete)operator(()ident(attribute_name)operator(\)) operator(}) ident(attributes) reserved(elsif) ident(only) operator(=) ident(options)operator([)symbol(:only)operator(]) ident(only) operator(=) ident(Array)operator(()ident(only)operator(\))operator(.)ident(collect) operator({) operator(|)ident(attribute)operator(|) ident(attribute)operator(.)ident(to_s) operator(}) ident(attributes)operator(.)ident(delete_if) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) operator(!)ident(only)operator(.)ident(include?)operator(()ident(key)operator(\)) operator(}) ident(attributes) reserved(else) ident(raise) constant(ArgumentError)operator(,) stringcontent(\))delimiter(")> reserved(end) reserved(end) reserved(end) comment(# Returns a hash of cloned attributes before typecasting and deserialization.) reserved(def) method(attributes_before_type_cast) ident(clone_attributes) symbol(:read_attribute_before_type_cast) reserved(end) comment(# Returns true if the specified +attribute+ has been set by the user or by a database load and is neither) comment(# nil nor empty? (the latter only applies to objects that respond to empty?, most notably Strings\).) reserved(def) method(attribute_present?)operator(()ident(attribute)operator(\)) ident(value) operator(=) ident(read_attribute)operator(()ident(attribute)operator(\)) operator(!)ident(value)operator(.)ident(blank?) reserved(or) ident(value) operator(==) integer(0) reserved(end) comment(# Returns true if the given attribute is in the attributes hash) reserved(def) method(has_attribute?)operator(()ident(attr_name)operator(\)) instance_variable(@attributes)operator(.)ident(has_key?)operator(()ident(attr_name)operator(.)ident(to_s)operator(\)) reserved(end) comment(# Returns an array of names for the attributes available on this object sorted alphabetically.) reserved(def) method(attribute_names) instance_variable(@attributes)operator(.)ident(keys)operator(.)ident(sort) reserved(end) comment(# Returns the column object for the named attribute.) reserved(def) method(column_for_attribute)operator(()ident(name)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(columns_hash)operator([)ident(name)operator(.)ident(to_s)operator(]) reserved(end) comment(# Returns true if the +comparison_object+ is the same object, or is of the same type and has the same id.) reserved(def) method(==)operator(()ident(comparison_object)operator(\)) ident(comparison_object)operator(.)ident(equal?)operator(()pre_constant(self)operator(\)) operator(||) operator(()ident(comparison_object)operator(.)ident(instance_of?)operator(()pre_constant(self)operator(.)ident(class)operator(\)) operator(&&) ident(comparison_object)operator(.)ident(id) operator(==) ident(id) operator(&&) operator(!)ident(comparison_object)operator(.)ident(new_record?)operator(\)) reserved(end) comment(# Delegates to ==) reserved(def) method(eql?)operator(()ident(comparison_object)operator(\)) pre_constant(self) operator(==) operator(()ident(comparison_object)operator(\)) reserved(end) comment(# Delegates to id in order to allow two records of the same type and id to work with something like:) comment(# [ Person.find(1\), Person.find(2\), Person.find(3\) ] & [ Person.find(1\), Person.find(4\) ] # => [ Person.find(1\) ]) reserved(def) method(hash) ident(id)operator(.)ident(hash) reserved(end) comment(# For checking respond_to? without searching the attributes (which is faster\).) ident(alias_method) symbol(:respond_to_without_attributes?)operator(,) symbol(:respond_to?) comment(# A Person object with a name attribute can ask person.respond_to?("name"\), person.respond_to?("name="\), and) comment(# person.respond_to?("name?"\) which will all return true.) reserved(def) method(respond_to?)operator(()ident(method)operator(,) ident(include_priv) operator(=) pre_constant(false)operator(\)) reserved(if) instance_variable(@attributes)operator(.)ident(nil?) reserved(return) reserved(super) reserved(elsif) ident(attr_name) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(column_methods_hash)operator([)ident(method)operator(.)ident(to_sym)operator(]) reserved(return) pre_constant(true) reserved(if) instance_variable(@attributes)operator(.)ident(include?)operator(()ident(attr_name)operator(\)) operator(||) ident(attr_name) operator(==) pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key) reserved(return) pre_constant(false) reserved(if) pre_constant(self)operator(.)ident(class)operator(.)ident(read_methods)operator(.)ident(include?)operator(()ident(attr_name)operator(\)) reserved(elsif) instance_variable(@attributes)operator(.)ident(include?)operator(()ident(method_name) operator(=) ident(method)operator(.)ident(to_s)operator(\)) reserved(return) pre_constant(true) reserved(elsif) ident(md) operator(=) regexpoperator(.)ident(match)operator(()ident(method_name)operator(\)) reserved(return) pre_constant(true) reserved(if) instance_variable(@attributes)operator(.)ident(include?)operator(()ident(md)operator(.)ident(pre_match)operator(\)) reserved(end) comment(# super must be called at the end of the method, because the inherited respond_to?) comment(# would return true for generated readers, even if the attribute wasn't present) reserved(super) reserved(end) comment(# Just freeze the attributes hash, such that associations are still accessible even on destroyed records.) reserved(def) method(freeze) instance_variable(@attributes)operator(.)ident(freeze)operator(;) pre_constant(self) reserved(end) reserved(def) method(frozen?) instance_variable(@attributes)operator(.)ident(frozen?) reserved(end) comment(# Records loaded through joins with piggy-back attributes will be marked as read only as they cannot be saved and return true to this query.) reserved(def) method(readonly?) instance_variable(@readonly) operator(==) pre_constant(true) reserved(end) reserved(def) method(readonly!) comment(#:nodoc:) instance_variable(@readonly) operator(=) pre_constant(true) reserved(end) comment(# Builds an XML document to represent the model. Some configuration is) comment(# availble through +options+, however more complicated cases should use ) comment(# Builder.) comment(#) comment(# By default the generated XML document will include the processing ) comment(# instruction and all object's attributes. For example:) comment(# ) comment(# ) comment(# ) comment(# The First Topic) comment(# David) comment(# 1) comment(# false) comment(# 0) comment(# 2000-01-01T08:28:00+12:00) comment(# 2003-07-16T09:28:00+1200) comment(# Have a nice day) comment(# david@loudthinking.com) comment(# ) comment(# 2004-04-15) comment(# ) comment(#) comment(# This behaviour can be controlled with :only, :except, and :skip_instruct ) comment(# for instance:) comment(#) comment(# topic.to_xml(:skip_instruct => true, :except => [ :id, bonus_time, :written_on, replies_count ]\)) comment(#) comment(# ) comment(# The First Topic) comment(# David) comment(# false) comment(# Have a nice day) comment(# david@loudthinking.com) comment(# ) comment(# 2004-04-15) comment(# ) comment(# ) comment(# To include first level associations use :include) comment(#) comment(# firm.to_xml :include => [ :account, :clients ]) comment(#) comment(# ) comment(# ) comment(# 1) comment(# 1) comment(# 37signals) comment(# ) comment(# ) comment(# 1) comment(# Summit) comment(# ) comment(# ) comment(# 1) comment(# Microsoft) comment(# ) comment(# ) comment(# ) comment(# 1) comment(# 50) comment(# ) comment(# ) reserved(def) method(to_xml)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator([)symbol(:root)operator(]) operator(||=) pre_constant(self)operator(.)ident(class)operator(.)ident(to_s)operator(.)ident(underscore) ident(options)operator([)symbol(:except)operator(]) operator(=) ident(Array)operator(()ident(options)operator([)symbol(:except)operator(])operator(\)) operator(<<) pre_constant(self)operator(.)ident(class)operator(.)ident(inheritance_column) reserved(unless) ident(options)operator([)symbol(:only)operator(]) comment(# skip type column) ident(root_only_or_except) operator(=) operator({) symbol(:only) operator(=)operator(>) ident(options)operator([)symbol(:only)operator(])operator(,) symbol(:except) operator(=)operator(>) ident(options)operator([)symbol(:except)operator(]) operator(}) ident(attributes_for_xml) operator(=) ident(attributes)operator(()ident(root_only_or_except)operator(\)) reserved(if) ident(include_associations) operator(=) ident(options)operator(.)ident(delete)operator(()symbol(:include)operator(\)) ident(include_has_options) operator(=) ident(include_associations)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) reserved(for) ident(association) reserved(in) ident(include_has_options) operator(?) ident(include_associations)operator(.)ident(keys) operator(:) ident(Array)operator(()ident(include_associations)operator(\)) ident(association_options) operator(=) ident(include_has_options) operator(?) ident(include_associations)operator([)ident(association)operator(]) operator(:) ident(root_only_or_except) reserved(case) pre_constant(self)operator(.)ident(class)operator(.)ident(reflect_on_association)operator(()ident(association)operator(\))operator(.)ident(macro) reserved(when) symbol(:has_many)operator(,) symbol(:has_and_belongs_to_many) ident(records) operator(=) ident(send)operator(()ident(association)operator(\))operator(.)ident(to_a) reserved(unless) ident(records)operator(.)ident(empty?) ident(attributes_for_xml)operator([)ident(association)operator(]) operator(=) ident(records)operator(.)ident(collect) reserved(do) operator(|)ident(record)operator(|) ident(record)operator(.)ident(attributes)operator(()ident(association_options)operator(\)) reserved(end) reserved(end) reserved(when) symbol(:has_one)operator(,) symbol(:belongs_to) reserved(if) ident(record) operator(=) ident(send)operator(()ident(association)operator(\)) ident(attributes_for_xml)operator([)ident(association)operator(]) operator(=) ident(record)operator(.)ident(attributes)operator(()ident(association_options)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(attributes_for_xml)operator(.)ident(to_xml)operator(()ident(options)operator(\)) reserved(end) ident(private) reserved(def) method(create_or_update) reserved(if) ident(new_record?) reserved(then) ident(create) reserved(else) ident(update) reserved(end) reserved(end) comment(# Updates the associated record with values matching those of the instance attributes.) reserved(def) method(update) ident(connection)operator(.)ident(update)operator(() stringcontent( )delimiter(")> operator(+) stringcontent( )delimiter(")> operator(+) stringcontent( = )inlinedelimiter(")>operator(,) stringcontent( Update)delimiter(")> operator(\)) reserved(return) pre_constant(true) reserved(end) comment(# Creates a new record with values matching those of the instance attributes.) reserved(def) method(create) reserved(if) pre_constant(self)operator(.)ident(id)operator(.)ident(nil?) operator(&&) ident(connection)operator(.)ident(prefetch_primary_key?)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(table_name)operator(\)) pre_constant(self)operator(.)ident(id) operator(=) ident(connection)operator(.)ident(next_sequence_value)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(sequence_name)operator(\)) reserved(end) pre_constant(self)operator(.)ident(id) operator(=) ident(connection)operator(.)ident(insert)operator(() stringcontent( )delimiter(")> operator(+) stringoperator(\))inline_delimiter(})>content(\) )delimiter(")> operator(+) stringoperator(\))inline_delimiter(})>content(\))delimiter(")>operator(,) stringcontent( Create)delimiter(")>operator(,) pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(,) pre_constant(self)operator(.)ident(id)operator(,) pre_constant(self)operator(.)ident(class)operator(.)ident(sequence_name) operator(\)) instance_variable(@new_record) operator(=) pre_constant(false) reserved(return) pre_constant(true) reserved(end) comment(# Sets the attribute used for single table inheritance to this class name if this is not the ActiveRecord descendent.) comment(# Considering the hierarchy Reply < Message < ActiveRecord, this makes it possible to do Reply.new without having to) comment(# set Reply[Reply.inheritance_column] = "Reply" yourself. No such attribute would be set for objects of the) comment(# Message class in that example.) reserved(def) method(ensure_proper_type) reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(descends_from_active_record?) ident(write_attribute)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(inheritance_column)operator(,) constant(Inflector)operator(.)ident(demodulize)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(name)operator(\))operator(\)) reserved(end) reserved(end) comment(# Allows access to the object attributes, which are held in the @attributes hash, as were) comment(# they first-class methods. So a Person class with a name attribute can use Person#name and) comment(# Person#name= and never directly use the attributes hash -- except for multiple assigns with) comment(# ActiveRecord#attributes=. A Milestone class can also ask Milestone#completed? to test that) comment(# the completed attribute is not nil or 0.) comment(#) comment(# It's also possible to instantiate related objects, so a Client class belonging to the clients) comment(# table with a master_id foreign key can instantiate master through Client#master.) reserved(def) method(method_missing)operator(()ident(method_id)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(method_name) operator(=) ident(method_id)operator(.)ident(to_s) reserved(if) instance_variable(@attributes)operator(.)ident(include?)operator(()ident(method_name)operator(\)) reserved(or) operator(()ident(md) operator(=) regexpoperator(.)ident(match)operator(()ident(method_name)operator(\)) reserved(and) instance_variable(@attributes)operator(.)ident(include?)operator(()ident(method_name) operator(=) ident(md)operator(.)ident(pre_match)operator(\))operator(\)) ident(define_read_methods) reserved(if) pre_constant(self)operator(.)ident(class)operator(.)ident(read_methods)operator(.)ident(empty?) operator(&&) pre_constant(self)operator(.)ident(class)operator(.)ident(generate_read_methods) ident(md) operator(?) ident(query_attribute)operator(()ident(method_name)operator(\)) operator(:) ident(read_attribute)operator(()ident(method_name)operator(\)) reserved(elsif) pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(.)ident(to_s) operator(==) ident(method_name) ident(id) reserved(elsif) ident(md) operator(=) regexpoperator(.)ident(match)operator(()ident(method_name)operator(\)) ident(attribute_name)operator(,) ident(method_type) operator(=) ident(md)operator(.)ident(pre_match)operator(,) ident(md)operator(.)ident(to_s) reserved(if) instance_variable(@attributes)operator(.)ident(include?)operator(()ident(attribute_name)operator(\)) reserved(case) ident(method_type) reserved(when) string ident(write_attribute)operator(()ident(attribute_name)operator(,) ident(args)operator(.)ident(first)operator(\)) reserved(when) string ident(read_attribute_before_type_cast)operator(()ident(attribute_name)operator(\)) reserved(end) reserved(else) reserved(super) reserved(end) reserved(else) reserved(super) reserved(end) reserved(end) comment(# Returns the value of the attribute identified by attr_name after it has been typecast (for example,) comment(# "2004-12-12" in a data column is cast to a date object, like Date.new(2004, 12, 12\)\).) reserved(def) method(read_attribute)operator(()ident(attr_name)operator(\)) ident(attr_name) operator(=) ident(attr_name)operator(.)ident(to_s) reserved(if) operator(!)operator(()ident(value) operator(=) instance_variable(@attributes)operator([)ident(attr_name)operator(])operator(\))operator(.)ident(nil?) reserved(if) ident(column) operator(=) ident(column_for_attribute)operator(()ident(attr_name)operator(\)) reserved(if) ident(unserializable_attribute?)operator(()ident(attr_name)operator(,) ident(column)operator(\)) ident(unserialize_attribute)operator(()ident(attr_name)operator(\)) reserved(else) ident(column)operator(.)ident(type_cast)operator(()ident(value)operator(\)) reserved(end) reserved(else) ident(value) reserved(end) reserved(else) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(read_attribute_before_type_cast)operator(()ident(attr_name)operator(\)) instance_variable(@attributes)operator([)ident(attr_name)operator(]) reserved(end) comment(# Called on first read access to any given column and generates reader) comment(# methods for all columns in the columns_hash if) comment(# ActiveRecord::Base.generate_read_methods is set to true.) reserved(def) method(define_read_methods) pre_constant(self)operator(.)ident(class)operator(.)ident(columns_hash)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(column)operator(|) reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(serialized_attributes)operator([)ident(name)operator(]) ident(define_read_method)operator(()ident(name)operator(.)ident(to_sym)operator(,) ident(name)operator(,) ident(column)operator(\)) reserved(unless) ident(respond_to_without_attributes?)operator(()ident(name)operator(\)) ident(define_question_method)operator(()ident(name)operator(\)) reserved(unless) ident(respond_to_without_attributes?)operator(()stringcontent(?)delimiter(")>operator(\)) reserved(end) reserved(end) reserved(end) comment(# Define an attribute reader method. Cope with nil column.) reserved(def) method(define_read_method)operator(()ident(symbol)operator(,) ident(attr_name)operator(,) ident(column)operator(\)) ident(cast_code) operator(=) ident(column)operator(.)ident(type_cast_code)operator(()stringoperator(\)) reserved(if) ident(column) ident(access_code) operator(=) ident(cast_code) operator(?) stringcontent(']\) && )inlinedelimiter(")> operator(:) stringcontent('])delimiter(")> reserved(unless) ident(attr_name)operator(.)ident(to_s) operator(==) pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(.)ident(to_s) ident(access_code) operator(=) ident(access_code)operator(.)ident(insert)operator(()integer(0)operator(,) stringcontent(', caller unless @attributes.has_key?(')inlinecontent('\); )delimiter(")>operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(read_methods) operator(<<) ident(attr_name) reserved(end) ident(evaluate_read_method) ident(attr_name)operator(,) stringcontent(; )inlinecontent(; end)delimiter(")> reserved(end) comment(# Define an attribute ? method.) reserved(def) method(define_question_method)operator(()ident(attr_name)operator(\)) reserved(unless) ident(attr_name)operator(.)ident(to_s) operator(==) pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(.)ident(to_s) pre_constant(self)operator(.)ident(class)operator(.)ident(read_methods) operator(<<) stringcontent(?)delimiter(")> reserved(end) ident(evaluate_read_method) ident(attr_name)operator(,) stringcontent(?; query_attribute(')inlinecontent('\); end)delimiter(")> reserved(end) comment(# Evaluate the definition for an attribute reader or ? method) reserved(def) method(evaluate_read_method)operator(()ident(attr_name)operator(,) ident(method_definition)operator(\)) reserved(begin) pre_constant(self)operator(.)ident(class)operator(.)ident(class_eval)operator(()ident(method_definition)operator(\)) reserved(rescue) constant(SyntaxError) operator(=)operator(>) ident(err) pre_constant(self)operator(.)ident(class)operator(.)ident(read_methods)operator(.)ident(delete)operator(()ident(attr_name)operator(\)) reserved(if) ident(logger) ident(logger)operator(.)ident(warn) string ident(logger)operator(.)ident(warn) stringcontent( is not a valid Ruby identifier?)delimiter(")> ident(logger)operator(.)ident(warn) stringdelimiter(")> reserved(end) reserved(end) reserved(end) comment(# Returns true if the attribute is of a text column and marked for serialization.) reserved(def) method(unserializable_attribute?)operator(()ident(attr_name)operator(,) ident(column)operator(\)) ident(column)operator(.)ident(text?) operator(&&) pre_constant(self)operator(.)ident(class)operator(.)ident(serialized_attributes)operator([)ident(attr_name)operator(]) reserved(end) comment(# Returns the unserialized object of the attribute.) reserved(def) method(unserialize_attribute)operator(()ident(attr_name)operator(\)) ident(unserialized_object) operator(=) ident(object_from_yaml)operator(()instance_variable(@attributes)operator([)ident(attr_name)operator(])operator(\)) reserved(if) ident(unserialized_object)operator(.)ident(is_a?)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(serialized_attributes)operator([)ident(attr_name)operator(])operator(\)) instance_variable(@attributes)operator([)ident(attr_name)operator(]) operator(=) ident(unserialized_object) reserved(else) ident(raise) constant(SerializationTypeMismatch)operator(,) stringcontent( was supposed to be a )inlinecontent(, but was a )inlinedelimiter(")> reserved(end) reserved(end) comment(# Updates the attribute identified by attr_name with the specified +value+. Empty strings for fixnum and float) comment(# columns are turned into nil.) reserved(def) method(write_attribute)operator(()ident(attr_name)operator(,) ident(value)operator(\)) ident(attr_name) operator(=) ident(attr_name)operator(.)ident(to_s) reserved(if) operator(()ident(column) operator(=) ident(column_for_attribute)operator(()ident(attr_name)operator(\))operator(\)) operator(&&) ident(column)operator(.)ident(number?) instance_variable(@attributes)operator([)ident(attr_name)operator(]) operator(=) ident(convert_number_column_value)operator(()ident(value)operator(\)) reserved(else) instance_variable(@attributes)operator([)ident(attr_name)operator(]) operator(=) ident(value) reserved(end) reserved(end) reserved(def) method(convert_number_column_value)operator(()ident(value)operator(\)) reserved(case) ident(value) reserved(when) constant(FalseClass)operator(:) integer(0) reserved(when) constant(TrueClass)operator(:) integer(1) reserved(when) stringoperator(:) pre_constant(nil) reserved(else) ident(value) reserved(end) reserved(end) reserved(def) method(query_attribute)operator(()ident(attr_name)operator(\)) ident(attribute) operator(=) instance_variable(@attributes)operator([)ident(attr_name)operator(]) reserved(if) ident(attribute)operator(.)ident(kind_of?)operator(()constant(Fixnum)operator(\)) operator(&&) ident(attribute) operator(==) integer(0) pre_constant(false) reserved(elsif) ident(attribute)operator(.)ident(kind_of?)operator(()constant(String)operator(\)) operator(&&) ident(attribute) operator(==) string pre_constant(false) reserved(elsif) ident(attribute)operator(.)ident(kind_of?)operator(()constant(String)operator(\)) operator(&&) ident(attribute)operator(.)ident(empty?) pre_constant(false) reserved(elsif) ident(attribute)operator(.)ident(nil?) pre_constant(false) reserved(elsif) ident(attribute) operator(==) pre_constant(false) pre_constant(false) reserved(elsif) ident(attribute) operator(==) string pre_constant(false) reserved(elsif) ident(attribute) operator(==) string pre_constant(false) reserved(else) pre_constant(true) reserved(end) reserved(end) reserved(def) method(remove_attributes_protected_from_mass_assignment)operator(()ident(attributes)operator(\)) reserved(if) pre_constant(self)operator(.)ident(class)operator(.)ident(accessible_attributes)operator(.)ident(nil?) operator(&&) pre_constant(self)operator(.)ident(class)operator(.)ident(protected_attributes)operator(.)ident(nil?) ident(attributes)operator(.)ident(reject) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) ident(attributes_protected_by_default)operator(.)ident(include?)operator(()ident(key)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(\)) operator(}) reserved(elsif) pre_constant(self)operator(.)ident(class)operator(.)ident(protected_attributes)operator(.)ident(nil?) ident(attributes)operator(.)ident(reject) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) operator(!)pre_constant(self)operator(.)ident(class)operator(.)ident(accessible_attributes)operator(.)ident(include?)operator(()ident(key)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(intern)operator(\)) operator(||) ident(attributes_protected_by_default)operator(.)ident(include?)operator(()ident(key)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(\)) operator(}) reserved(elsif) pre_constant(self)operator(.)ident(class)operator(.)ident(accessible_attributes)operator(.)ident(nil?) ident(attributes)operator(.)ident(reject) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) pre_constant(self)operator(.)ident(class)operator(.)ident(protected_attributes)operator(.)ident(include?)operator(()ident(key)operator(.)ident(gsub)operator(()regexpoperator(,)stringoperator(\))operator(.)ident(intern)operator(\)) operator(||) ident(attributes_protected_by_default)operator(.)ident(include?)operator(()ident(key)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(\)) operator(}) reserved(end) reserved(end) comment(# The primary key and inheritance column can never be set by mass-assignment for security reasons.) reserved(def) method(attributes_protected_by_default) ident(default) operator(=) operator([) pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(,) pre_constant(self)operator(.)ident(class)operator(.)ident(inheritance_column) operator(]) ident(default) operator(<<) string reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(.)ident(eql?) string ident(default) reserved(end) comment(# Returns copy of the attributes hash where all the values have been safely quoted for use in) comment(# an SQL statement.) reserved(def) method(attributes_with_quotes)operator(()ident(include_primary_key) operator(=) pre_constant(true)operator(\)) ident(attributes)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(quoted)operator(,) operator(()ident(name)operator(,) ident(value)operator(\))operator(|) reserved(if) ident(column) operator(=) ident(column_for_attribute)operator(()ident(name)operator(\)) ident(quoted)operator([)ident(name)operator(]) operator(=) ident(quote)operator(()ident(value)operator(,) ident(column)operator(\)) reserved(unless) operator(!)ident(include_primary_key) operator(&&) ident(column)operator(.)ident(primary) reserved(end) ident(quoted) reserved(end) reserved(end) comment(# Quote strings appropriately for SQL statements.) reserved(def) method(quote)operator(()ident(value)operator(,) ident(column) operator(=) pre_constant(nil)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(connection)operator(.)ident(quote)operator(()ident(value)operator(,) ident(column)operator(\)) reserved(end) comment(# Interpolate custom sql string in instance context.) comment(# Optional record argument is meant for custom insert_sql.) reserved(def) method(interpolate_sql)operator(()ident(sql)operator(,) ident(record) operator(=) pre_constant(nil)operator(\)) ident(instance_eval)operator(()stringoperator(,) stringoperator(\))inline_delimiter(})>content(@)delimiter(")>operator(\)) reserved(end) comment(# Initializes the attributes array with keys matching the columns from the linked table and) comment(# the values matching the corresponding default value of that column, so) comment(# that a new instance, or one populated from a passed-in Hash, still has all the attributes) comment(# that instances loaded from the database would.) reserved(def) method(attributes_from_column_definition) pre_constant(self)operator(.)ident(class)operator(.)ident(columns)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(attributes)operator(,) ident(column)operator(|) ident(attributes)operator([)ident(column)operator(.)ident(name)operator(]) operator(=) ident(column)operator(.)ident(default) reserved(unless) ident(column)operator(.)ident(name) operator(==) pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key) ident(attributes) reserved(end) reserved(end) comment(# Instantiates objects for all attribute classes that needs more than one constructor parameter. This is done) comment(# by calling new on the column type or aggregation type (through composed_of\) object with these parameters.) comment(# So having the pairs written_on(1\) = "2004", written_on(2\) = "6", written_on(3\) = "24", will instantiate) comment(# written_on (a date type\) with Date.new("2004", "6", "24"\). You can also specify a typecast character in the) comment(# parentheses to have the parameters typecasted before they're used in the constructor. Use i for Fixnum, f for Float,) comment(# s for String, and a for Array. If all the values for a given attribute is empty, the attribute will be set to nil.) reserved(def) method(assign_multiparameter_attributes)operator(()ident(pairs)operator(\)) ident(execute_callstack_for_multiparameter_attributes)operator(() ident(extract_callstack_for_multiparameter_attributes)operator(()ident(pairs)operator(\)) operator(\)) reserved(end) comment(# Includes an ugly hack for Time.local instead of Time.new because the latter is reserved by Time itself.) reserved(def) method(execute_callstack_for_multiparameter_attributes)operator(()ident(callstack)operator(\)) ident(errors) operator(=) operator([)operator(]) ident(callstack)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(values)operator(|) ident(klass) operator(=) operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(reflect_on_aggregation)operator(()ident(name)operator(.)ident(to_sym)operator(\)) operator(||) ident(column_for_attribute)operator(()ident(name)operator(\))operator(\))operator(.)ident(klass) reserved(if) ident(values)operator(.)ident(empty?) ident(send)operator(()ident(name) operator(+) stringoperator(,) pre_constant(nil)operator(\)) reserved(else) reserved(begin) ident(send)operator(()ident(name) operator(+) stringoperator(,) constant(Time) operator(==) ident(klass) operator(?) ident(klass)operator(.)ident(local)operator(()operator(*)ident(values)operator(\)) operator(:) ident(klass)operator(.)ident(new)operator(()operator(*)ident(values)operator(\))operator(\)) reserved(rescue) operator(=)operator(>) ident(ex) ident(errors) operator(<<) constant(AttributeAssignmentError)operator(.)ident(new)operator(()stringcontent( to )inlinedelimiter(")>operator(,) ident(ex)operator(,) ident(name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(unless) ident(errors)operator(.)ident(empty?) ident(raise) constant(MultiparameterAssignmentErrors)operator(.)ident(new)operator(()ident(errors)operator(\))operator(,) stringcontent( error(s\) on assignment of multiparameter attributes)delimiter(")> reserved(end) reserved(end) reserved(def) method(extract_callstack_for_multiparameter_attributes)operator(()ident(pairs)operator(\)) ident(attributes) operator(=) operator({) operator(}) reserved(for) ident(pair) reserved(in) ident(pairs) ident(multiparameter_name)operator(,) ident(value) operator(=) ident(pair) ident(attribute_name) operator(=) ident(multiparameter_name)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(first) ident(attributes)operator([)ident(attribute_name)operator(]) operator(=) operator([)operator(]) reserved(unless) ident(attributes)operator(.)ident(include?)operator(()ident(attribute_name)operator(\)) reserved(unless) ident(value)operator(.)ident(empty?) ident(attributes)operator([)ident(attribute_name)operator(]) operator(<<) operator([) ident(find_parameter_position)operator(()ident(multiparameter_name)operator(\))operator(,) ident(type_cast_attribute_value)operator(()ident(multiparameter_name)operator(,) ident(value)operator(\)) operator(]) reserved(end) reserved(end) ident(attributes)operator(.)ident(each) operator({) operator(|)ident(name)operator(,) ident(values)operator(|) ident(attributes)operator([)ident(name)operator(]) operator(=) ident(values)operator(.)ident(sort_by)operator({) operator(|)ident(v)operator(|) ident(v)operator(.)ident(first) operator(})operator(.)ident(collect) operator({) operator(|)ident(v)operator(|) ident(v)operator(.)ident(last) operator(}) operator(}) reserved(end) reserved(def) method(type_cast_attribute_value)operator(()ident(multiparameter_name)operator(,) ident(value)operator(\)) ident(multiparameter_name) operator(=)operator(~) regexp operator(?) ident(value)operator(.)ident(send)operator(()string operator(+) global_variable($1)operator(\)) operator(:) ident(value) reserved(end) reserved(def) method(find_parameter_position)operator(()ident(multiparameter_name)operator(\)) ident(multiparameter_name)operator(.)ident(scan)operator(()regexpoperator(\))operator(.)ident(first)operator(.)ident(first) reserved(end) comment(# Returns a comma-separated pair list, like "key1 = val1, key2 = val2".) reserved(def) method(comma_pair_list)operator(()ident(hash)operator(\)) ident(hash)operator(.)ident(inject)operator(()operator([)operator(])operator(\)) operator({) operator(|)ident(list)operator(,) ident(pair)operator(|) ident(list) operator(<<) stringcontent( = )inlinedelimiter(")> operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(quoted_column_names)operator(()ident(attributes) operator(=) ident(attributes_with_quotes)operator(\)) ident(attributes)operator(.)ident(keys)operator(.)ident(collect) reserved(do) operator(|)ident(column_name)operator(|) pre_constant(self)operator(.)ident(class)operator(.)ident(connection)operator(.)ident(quote_column_name)operator(()ident(column_name)operator(\)) reserved(end) reserved(end) reserved(def) method(quote_columns)operator(()ident(quoter)operator(,) ident(hash)operator(\)) ident(hash)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(quoted)operator(,) operator(()ident(name)operator(,) ident(value)operator(\))operator(|) ident(quoted)operator([)ident(quoter)operator(.)ident(quote_column_name)operator(()ident(name)operator(\))operator(]) operator(=) ident(value) ident(quoted) reserved(end) reserved(end) reserved(def) method(quoted_comma_pair_list)operator(()ident(quoter)operator(,) ident(hash)operator(\)) ident(comma_pair_list)operator(()ident(quote_columns)operator(()ident(quoter)operator(,) ident(hash)operator(\))operator(\)) reserved(end) reserved(def) method(object_from_yaml)operator(()ident(string)operator(\)) reserved(return) ident(string) reserved(unless) ident(string)operator(.)ident(is_a?)operator(()constant(String)operator(\)) constant(YAML)operator(::)ident(load)operator(()ident(string)operator(\)) reserved(rescue) ident(string) reserved(end) reserved(def) method(clone_attributes)operator(()ident(reader_method) operator(=) symbol(:read_attribute)operator(,) ident(attributes) operator(=) operator({)operator(})operator(\)) pre_constant(self)operator(.)ident(attribute_names)operator(.)ident(inject)operator(()ident(attributes)operator(\)) reserved(do) operator(|)ident(attributes)operator(,) ident(name)operator(|) ident(attributes)operator([)ident(name)operator(]) operator(=) ident(clone_attribute_value)operator(()ident(reader_method)operator(,) ident(name)operator(\)) ident(attributes) reserved(end) reserved(end) reserved(def) method(clone_attribute_value)operator(()ident(reader_method)operator(,) ident(attribute_name)operator(\)) ident(value) operator(=) ident(send)operator(()ident(reader_method)operator(,) ident(attribute_name)operator(\)) ident(value)operator(.)ident(clone) reserved(rescue) constant(TypeError)operator(,) constant(NoMethodError) ident(value) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Calculations) comment(#:nodoc:) constant(CALCULATIONS_OPTIONS) operator(=) operator([)symbol(:conditions)operator(,) symbol(:joins)operator(,) symbol(:order)operator(,) symbol(:select)operator(,) symbol(:group)operator(,) symbol(:having)operator(,) symbol(:distinct)operator(,) symbol(:limit)operator(,) symbol(:offset)operator(]) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(# Count operates using three different approaches. ) comment(#) comment(# * Count all: By not passing any parameters to count, it will return a count of all the rows for the model.) comment(# * Count by conditions or joins: For backwards compatibility, you can pass in +conditions+ and +joins+ as individual parameters.) comment(# * Count using options will find the row count matched by the options used.) comment(#) comment(# The last approach, count using options, accepts an option hash as the only parameter. The options are:) comment(#) comment(# * :conditions: An SQL fragment like "administrator = 1" or [ "user_name = ?", username ]. See conditions in the intro.) comment(# * :joins: An SQL fragment for additional joins like "LEFT JOIN comments ON comments.post_id = id". (Rarely needed\).) comment(# The records will be returned read-only since they will have attributes that do not correspond to the table's columns.) comment(# * :include: Named associations that should be loaded alongside using LEFT OUTER JOINs. The symbols named refer) comment(# to already defined associations. When using named associations count returns the number DISTINCT items for the model you're counting.) comment(# See eager loading under Associations.) comment(# * :order: An SQL fragment like "created_at DESC, name" (really only used with GROUP BY calculations\).) comment(# * :group: An attribute name by which the result should be grouped. Uses the GROUP BY SQL-clause.) comment(# * :select: By default, this is * as in SELECT * FROM, but can be changed if you for example want to do a join, but not) comment(# include the joined columns.) comment(# * :distinct: Set this to true to make this a distinct calculation, such as SELECT COUNT(DISTINCT posts.id\) ...) comment(#) comment(# Examples for counting all:) comment(# Person.count # returns the total count of all people) comment(#) comment(# Examples for count by +conditions+ and +joins+ (for backwards compatibility\):) comment(# Person.count("age > 26"\) # returns the number of people older than 26) comment(# Person.find("age > 26 AND job.salary > 60000", "LEFT JOIN jobs on jobs.person_id = person.id"\) # returns the total number of rows matching the conditions and joins fetched by SELECT COUNT(*\).) comment(#) comment(# Examples for count with options:) comment(# Person.count(:conditions => "age > 26"\)) comment(# Person.count(:conditions => "age > 26 AND job.salary > 60000", :include => :job\) # because of the named association, it finds the DISTINCT count using LEFT OUTER JOIN.) comment(# Person.count(:conditions => "age > 26 AND job.salary > 60000", :joins => "LEFT JOIN jobs on jobs.person_id = person.id"\) # finds the number of rows matching the conditions and joins. ) comment(# Person.count('id', :conditions => "age > 26"\) # Performs a COUNT(id\)) comment(# Person.count(:all, :conditions => "age > 26"\) # Performs a COUNT(*\) (:all is an alias for '*'\)) comment(#) comment(# Note: Person.count(:all\) will not work because it will use :all as the condition. Use Person.count instead.) reserved(def) method(count)operator(()operator(*)ident(args)operator(\)) ident(options) operator(=) operator({)operator(}) ident(column_name) operator(=) symbol(:all) comment(# For backwards compatibility, we need to handle both count(conditions=nil, joins=nil\) or count(options={}\) or count(column_name=:all, options={}\).) reserved(if) ident(args)operator(.)ident(size) operator(>)operator(=) integer(0) operator(&&) ident(args)operator(.)ident(size) operator(<=) integer(2) reserved(if) ident(args)operator(.)ident(first)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(options) operator(=) ident(args)operator(.)ident(first) reserved(elsif) ident(args)operator([)integer(1)operator(])operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(options) operator(=) ident(args)operator([)integer(1)operator(]) ident(column_name) operator(=) ident(args)operator(.)ident(first) reserved(else) comment(# Handle legacy paramter options: def count(conditions=nil, joins=nil\)) ident(options)operator(.)ident(merge!)operator(()symbol(:conditions) operator(=)operator(>) ident(args)operator([)integer(0)operator(])operator(\)) reserved(if) ident(args)operator(.)ident(length) operator(>) integer(0) ident(options)operator(.)ident(merge!)operator(()symbol(:joins) operator(=)operator(>) ident(args)operator([)integer(1)operator(])operator(\)) reserved(if) ident(args)operator(.)ident(length) operator(>) integer(1) reserved(end) reserved(else) ident(raise)operator(()constant(ArgumentError)operator(,) stringoperator(\)) reserved(end) reserved(if) ident(options)operator([)symbol(:include)operator(]) operator(||) ident(scope)operator(()symbol(:find)operator(,) symbol(:include)operator(\)) ident(count_with_associations)operator(()ident(options)operator(\)) reserved(else) ident(calculate)operator(()symbol(:count)operator(,) ident(column_name)operator(,) ident(options)operator(\)) reserved(end) reserved(end) comment(# Calculates average value on a given column. The value is returned as a float. See #calculate for examples with options.) comment(#) comment(# Person.average('age'\)) reserved(def) method(average)operator(()ident(column_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(calculate)operator(()symbol(:avg)operator(,) ident(column_name)operator(,) ident(options)operator(\)) reserved(end) comment(# Calculates the minimum value on a given column. The value is returned with the same data type of the column.. See #calculate for examples with options.) comment(#) comment(# Person.minimum('age'\)) reserved(def) method(minimum)operator(()ident(column_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(calculate)operator(()symbol(:min)operator(,) ident(column_name)operator(,) ident(options)operator(\)) reserved(end) comment(# Calculates the maximum value on a given column. The value is returned with the same data type of the column.. See #calculate for examples with options.) comment(#) comment(# Person.maximum('age'\)) reserved(def) method(maximum)operator(()ident(column_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(calculate)operator(()symbol(:max)operator(,) ident(column_name)operator(,) ident(options)operator(\)) reserved(end) comment(# Calculates the sum value on a given column. The value is returned with the same data type of the column.. See #calculate for examples with options.) comment(#) comment(# Person.sum('age'\)) reserved(def) method(sum)operator(()ident(column_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(calculate)operator(()symbol(:sum)operator(,) ident(column_name)operator(,) ident(options)operator(\)) reserved(end) comment(# This calculates aggregate values in the given column: Methods for count, sum, average, minimum, and maximum have been added as shortcuts.) comment(# Options such as :conditions, :order, :group, :having, and :joins can be passed to customize the query. ) comment(#) comment(# There are two basic forms of output:) comment(# * Single aggregate value: The single value is type cast to Fixnum for COUNT, Float for AVG, and the given column's type for everything else.) comment(# * Grouped values: This returns an ordered hash of the values and groups them by the :group option. It takes either a column name, or the name ) comment(# of a belongs_to association.) comment(#) comment(# values = Person.maximum(:age, :group => 'last_name'\)) comment(# puts values["Drake"]) comment(# => 43) comment(#) comment(# drake = Family.find_by_last_name('Drake'\)) comment(# values = Person.maximum(:age, :group => :family\) # Person belongs_to :family) comment(# puts values[drake]) comment(# => 43) comment(#) comment(# values.each do |family, max_age|) comment(# ...) comment(# end) comment(#) comment(# Options:) comment(# * :conditions: An SQL fragment like "administrator = 1" or [ "user_name = ?", username ]. See conditions in the intro.) comment(# * :joins: An SQL fragment for additional joins like "LEFT JOIN comments ON comments.post_id = id". (Rarely needed\).) comment(# The records will be returned read-only since they will have attributes that do not correspond to the table's columns.) comment(# * :order: An SQL fragment like "created_at DESC, name" (really only used with GROUP BY calculations\).) comment(# * :group: An attribute name by which the result should be grouped. Uses the GROUP BY SQL-clause.) comment(# * :select: By default, this is * as in SELECT * FROM, but can be changed if you for example want to do a join, but not) comment(# include the joined columns.) comment(# * :distinct: Set this to true to make this a distinct calculation, such as SELECT COUNT(DISTINCT posts.id\) ...) comment(#) comment(# Examples:) comment(# Person.calculate(:count, :all\) # The same as Person.count) comment(# Person.average(:age\) # SELECT AVG(age\) FROM people...) comment(# Person.minimum(:age, :conditions => ['last_name != ?', 'Drake']\) # Selects the minimum age for everyone with a last name other than 'Drake') comment(# Person.minimum(:age, :having => 'min(age\) > 17', :group => :last_name\) # Selects the minimum age for any family without any minors) reserved(def) method(calculate)operator(()ident(operation)operator(,) ident(column_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(validate_calculation_options)operator(()ident(operation)operator(,) ident(options)operator(\)) ident(column_name) operator(=) ident(options)operator([)symbol(:select)operator(]) reserved(if) ident(options)operator([)symbol(:select)operator(]) ident(column_name) operator(=) string reserved(if) ident(column_name) operator(==) symbol(:all) ident(column) operator(=) ident(column_for) ident(column_name) ident(aggregate) operator(=) ident(select_aggregate)operator(()ident(operation)operator(,) ident(column_name)operator(,) ident(options)operator(\)) ident(aggregate_alias) operator(=) ident(column_alias_for)operator(()ident(operation)operator(,) ident(column_name)operator(\)) reserved(if) ident(options)operator([)symbol(:group)operator(]) ident(execute_grouped_calculation)operator(()ident(operation)operator(,) ident(column_name)operator(,) ident(column)operator(,) ident(aggregate)operator(,) ident(aggregate_alias)operator(,) ident(options)operator(\)) reserved(else) ident(execute_simple_calculation)operator(()ident(operation)operator(,) ident(column_name)operator(,) ident(column)operator(,) ident(aggregate)operator(,) ident(aggregate_alias)operator(,) ident(options)operator(\)) reserved(end) reserved(end) ident(protected) reserved(def) method(construct_calculation_sql)operator(()ident(aggregate)operator(,) ident(aggregate_alias)operator(,) ident(options)operator(\)) comment(#:nodoc:) ident(scope) operator(=) ident(scope)operator(()symbol(:find)operator(\)) ident(sql) operator(=) stringcontent( AS )inlinedelimiter(")> ident(sql) operator(<<) stringcontent( AS )inlinedelimiter(")> reserved(if) ident(options)operator([)symbol(:group)operator(]) ident(sql) operator(<<) stringcontent( )delimiter(")> ident(add_joins!)operator(()ident(sql)operator(,) ident(options)operator(,) ident(scope)operator(\)) ident(add_conditions!)operator(()ident(sql)operator(,) ident(options)operator([)symbol(:conditions)operator(])operator(,) ident(scope)operator(\)) ident(sql) operator(<<) stringdelimiter(")> reserved(if) ident(options)operator([)symbol(:group)operator(]) ident(sql) operator(<<) stringdelimiter(")> reserved(if) ident(options)operator([)symbol(:group)operator(]) operator(&&) ident(options)operator([)symbol(:having)operator(]) ident(sql) operator(<<) stringdelimiter(")> reserved(if) ident(options)operator([)symbol(:order)operator(]) ident(add_limit!)operator(()ident(sql)operator(,) ident(options)operator(\)) ident(sql) reserved(end) reserved(def) method(execute_simple_calculation)operator(()ident(operation)operator(,) ident(column_name)operator(,) ident(column)operator(,) ident(aggregate)operator(,) ident(aggregate_alias)operator(,) ident(options)operator(\)) comment(#:nodoc:) ident(value) operator(=) ident(connection)operator(.)ident(select_value)operator(()ident(construct_calculation_sql)operator(()ident(aggregate)operator(,) ident(aggregate_alias)operator(,) ident(options)operator(\))operator(\)) ident(type_cast_calculated_value)operator(()ident(value)operator(,) ident(column)operator(,) ident(operation)operator(\)) reserved(end) reserved(def) method(execute_grouped_calculation)operator(()ident(operation)operator(,) ident(column_name)operator(,) ident(column)operator(,) ident(aggregate)operator(,) ident(aggregate_alias)operator(,) ident(options)operator(\)) comment(#:nodoc:) ident(group_attr) operator(=) ident(options)operator([)symbol(:group)operator(])operator(.)ident(to_s) ident(association) operator(=) ident(reflect_on_association)operator(()ident(group_attr)operator(.)ident(to_sym)operator(\)) ident(associated) operator(=) ident(association) operator(&&) ident(association)operator(.)ident(macro) operator(==) symbol(:belongs_to) comment(# only count belongs_to associations) ident(group_field) operator(=) operator(()ident(associated) operator(?) stringcontent(_id)delimiter(")> operator(:) ident(options)operator([)symbol(:group)operator(])operator(\))operator(.)ident(to_s) ident(group_alias) operator(=) ident(column_alias_for)operator(()ident(group_field)operator(\)) ident(group_column) operator(=) ident(column_for) ident(group_field) ident(sql) operator(=) ident(construct_calculation_sql)operator(()ident(aggregate)operator(,) ident(aggregate_alias)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:group_field) operator(=)operator(>) ident(group_field)operator(,) symbol(:group_alias) operator(=)operator(>) ident(group_alias)operator(\))operator(\)) ident(calculated_data) operator(=) ident(connection)operator(.)ident(select_all)operator(()ident(sql)operator(\)) reserved(if) ident(association) ident(key_ids) operator(=) ident(calculated_data)operator(.)ident(collect) operator({) operator(|)ident(row)operator(|) ident(row)operator([)ident(group_alias)operator(]) operator(}) ident(key_records) operator(=) ident(association)operator(.)ident(klass)operator(.)ident(base_class)operator(.)ident(find)operator(()ident(key_ids)operator(\)) ident(key_records) operator(=) ident(key_records)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({) operator(|)ident(hsh)operator(,) ident(r)operator(|) ident(hsh)operator(.)ident(merge)operator(()ident(r)operator(.)ident(id) operator(=)operator(>) ident(r)operator(\)) operator(}) reserved(end) ident(calculated_data)operator(.)ident(inject)operator(()constant(OrderedHash)operator(.)ident(new)operator(\)) reserved(do) operator(|)ident(all)operator(,) ident(row)operator(|) ident(key) operator(=) ident(associated) operator(?) ident(key_records)operator([)ident(row)operator([)ident(group_alias)operator(])operator(.)ident(to_i)operator(]) operator(:) ident(type_cast_calculated_value)operator(()ident(row)operator([)ident(group_alias)operator(])operator(,) ident(group_column)operator(\)) ident(value) operator(=) ident(row)operator([)ident(aggregate_alias)operator(]) ident(all) operator(<<) operator([)ident(key)operator(,) ident(type_cast_calculated_value)operator(()ident(value)operator(,) ident(column)operator(,) ident(operation)operator(\))operator(]) reserved(end) reserved(end) ident(private) reserved(def) method(validate_calculation_options)operator(()ident(operation)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) reserved(if) ident(operation)operator(.)ident(to_s) operator(==) string ident(options)operator(.)ident(assert_valid_keys)operator(()constant(CALCULATIONS_OPTIONS) operator(+) operator([)symbol(:include)operator(])operator(\)) reserved(else) ident(options)operator(.)ident(assert_valid_keys)operator(()constant(CALCULATIONS_OPTIONS)operator(\)) reserved(end) reserved(end) reserved(def) method(select_aggregate)operator(()ident(operation)operator(,) ident(column_name)operator(,) ident(options)operator(\)) stringcontent(()inline reserved(if) ident(options)operator([)symbol(:distinct)operator(])inline_delimiter(})>inlinecontent(\))delimiter(")> reserved(end) comment(# converts a given key to the value that the database adapter returns as) comment(#) comment(# users.id #=> users_id) comment(# sum(id\) #=> sum_id) comment(# count(distinct users.id\) #=> count_distinct_users_id) comment(# count(*\) #=> count_all) reserved(def) method(column_alias_for)operator(()operator(*)ident(keys)operator(\)) ident(keys)operator(.)ident(join)operator(()stringoperator(\))operator(.)ident(downcase)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(strip)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) method(column_for)operator(()ident(field)operator(\)) ident(field_name) operator(=) ident(field)operator(.)ident(to_s)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last) ident(columns)operator(.)ident(detect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name)operator(.)ident(to_s) operator(==) ident(field_name) operator(}) reserved(end) reserved(def) method(type_cast_calculated_value)operator(()ident(value)operator(,) ident(column)operator(,) ident(operation) operator(=) pre_constant(nil)operator(\)) ident(operation) operator(=) ident(operation)operator(.)ident(to_s)operator(.)ident(downcase) reserved(case) ident(operation) reserved(when) string reserved(then) ident(value)operator(.)ident(to_i) reserved(when) string reserved(then) ident(value)operator(.)ident(to_f) reserved(else) ident(column) operator(?) ident(column)operator(.)ident(type_cast)operator(()ident(value)operator(\)) operator(:) ident(value) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveRecord) comment(# Callbacks are hooks into the lifecycle of an Active Record object that allows you to trigger logic) comment(# before or after an alteration of the object state. This can be used to make sure that associated and) comment(# dependent objects are deleted when destroy is called (by overwriting before_destroy\) or to massage attributes) comment(# before they're validated (by overwriting before_validation\). As an example of the callbacks initiated, consider) comment(# the Base#save call:) comment(#) comment(# * (-\) save) comment(# * (-\) valid?) comment(# * (1\) before_validation) comment(# * (2\) before_validation_on_create) comment(# * (-\) validate) comment(# * (-\) validate_on_create) comment(# * (3\) after_validation) comment(# * (4\) after_validation_on_create) comment(# * (5\) before_save) comment(# * (6\) before_create) comment(# * (-\) create) comment(# * (7\) after_create) comment(# * (8\) after_save) comment(#) comment(# That's a total of eight callbacks, which gives you immense power to react and prepare for each state in the) comment(# Active Record lifecycle.) comment(#) comment(# Examples:) comment(# class CreditCard < ActiveRecord::Base) comment(# # Strip everything but digits, so the user can specify "555 234 34" or) comment(# # "5552-3434" or both will mean "55523434") comment(# def before_validation_on_create) comment(# self.number = number.gsub(/[^0-9]/, ""\) if attribute_present?("number"\)) comment(# end) comment(# end) comment(#) comment(# class Subscription < ActiveRecord::Base) comment(# before_create :record_signup) comment(#) comment(# private) comment(# def record_signup) comment(# self.signed_up_on = Date.today) comment(# end) comment(# end) comment(#) comment(# class Firm < ActiveRecord::Base) comment(# # Destroys the associated clients and people when the firm is destroyed) comment(# before_destroy { |record| Person.destroy_all "firm_id = #{record.id}" }) comment(# before_destroy { |record| Client.destroy_all "client_of = #{record.id}" }) comment(# end) comment(#) comment(# == Inheritable callback queues) comment(#) comment(# Besides the overwriteable callback methods, it's also possible to register callbacks through the use of the callback macros.) comment(# Their main advantage is that the macros add behavior into a callback queue that is kept intact down through an inheritance) comment(# hierarchy. Example:) comment(#) comment(# class Topic < ActiveRecord::Base) comment(# before_destroy :destroy_author) comment(# end) comment(#) comment(# class Reply < Topic) comment(# before_destroy :destroy_readers) comment(# end) comment(#) comment(# Now, when Topic#destroy is run only +destroy_author+ is called. When Reply#destroy is run both +destroy_author+ and) comment(# +destroy_readers+ is called. Contrast this to the situation where we've implemented the save behavior through overwriteable) comment(# methods:) comment(#) comment(# class Topic < ActiveRecord::Base) comment(# def before_destroy(\) destroy_author end) comment(# end) comment(#) comment(# class Reply < Topic) comment(# def before_destroy(\) destroy_readers end) comment(# end) comment(#) comment(# In that case, Reply#destroy would only run +destroy_readers+ and _not_ +destroy_author+. So use the callback macros when) comment(# you want to ensure that a certain callback is called for the entire hierarchy and the regular overwriteable methods when you) comment(# want to leave it up to each descendent to decide whether they want to call +super+ and trigger the inherited callbacks.) comment(#) comment(# *IMPORTANT:* In order for inheritance to work for the callback queues, you must specify the callbacks before specifying the) comment(# associations. Otherwise, you might trigger the loading of a child before the parent has registered the callbacks and they won't) comment(# be inherited.) comment(#) comment(# == Types of callbacks) comment(#) comment(# There are four types of callbacks accepted by the callback macros: Method references (symbol\), callback objects,) comment(# inline methods (using a proc\), and inline eval methods (using a string\). Method references and callback objects are the) comment(# recommended approaches, inline methods using a proc are sometimes appropriate (such as for creating mix-ins\), and inline) comment(# eval methods are deprecated.) comment(#) comment(# The method reference callbacks work by specifying a protected or private method available in the object, like this:) comment(#) comment(# class Topic < ActiveRecord::Base) comment(# before_destroy :delete_parents) comment(#) comment(# private) comment(# def delete_parents) comment(# self.class.delete_all "parent_id = #{id}") comment(# end) comment(# end) comment(#) comment(# The callback objects have methods named after the callback called with the record as the only parameter, such as:) comment(#) comment(# class BankAccount < ActiveRecord::Base) comment(# before_save EncryptionWrapper.new("credit_card_number"\)) comment(# after_save EncryptionWrapper.new("credit_card_number"\)) comment(# after_initialize EncryptionWrapper.new("credit_card_number"\)) comment(# end) comment(#) comment(# class EncryptionWrapper) comment(# def initialize(attribute\)) comment(# @attribute = attribute) comment(# end) comment(#) comment(# def before_save(record\)) comment(# record.credit_card_number = encrypt(record.credit_card_number\)) comment(# end) comment(#) comment(# def after_save(record\)) comment(# record.credit_card_number = decrypt(record.credit_card_number\)) comment(# end) comment(#) comment(# alias_method :after_find, :after_save) comment(#) comment(# private) comment(# def encrypt(value\)) comment(# # Secrecy is committed) comment(# end) comment(#) comment(# def decrypt(value\)) comment(# # Secrecy is unveiled) comment(# end) comment(# end) comment(#) comment(# So you specify the object you want messaged on a given callback. When that callback is triggered, the object has) comment(# a method by the name of the callback messaged.) comment(#) comment(# The callback macros usually accept a symbol for the method they're supposed to run, but you can also pass a "method string",) comment(# which will then be evaluated within the binding of the callback. Example:) comment(#) comment(# class Topic < ActiveRecord::Base) comment(# before_destroy 'self.class.delete_all "parent_id = #{id}"') comment(# end) comment(#) comment(# Notice that single plings ('\) are used so the #{id} part isn't evaluated until the callback is triggered. Also note that these) comment(# inline callbacks can be stacked just like the regular ones:) comment(#) comment(# class Topic < ActiveRecord::Base) comment(# before_destroy 'self.class.delete_all "parent_id = #{id}"',) comment(# 'puts "Evaluated after parents are destroyed"') comment(# end) comment(#) comment(# == The after_find and after_initialize exceptions) comment(#) comment(# Because after_find and after_initialize are called for each object found and instantiated by a finder, such as Base.find(:all\), we've had) comment(# to implement a simple performance constraint (50% more speed on a simple test case\). Unlike all the other callbacks, after_find and) comment(# after_initialize will only be run if an explicit implementation is defined (def after_find\). In that case, all of the) comment(# callback types will be called.) comment(#) comment(# == Cancelling callbacks) comment(#) comment(# If a before_* callback returns false, all the later callbacks and the associated action are cancelled. If an after_* callback returns) comment(# false, all the later callbacks are cancelled. Callbacks are generally run in the order they are defined, with the exception of callbacks) comment(# defined as methods on the model, which are called last.) reserved(module) class(Callbacks) constant(CALLBACKS) operator(=) string reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) reserved(class) operator(<<) class(self) ident(include) constant(Observable) ident(alias_method) symbol(:instantiate_without_callbacks)operator(,) symbol(:instantiate) ident(alias_method) symbol(:instantiate)operator(,) symbol(:instantiate_with_callbacks) reserved(end) ident(alias_method) symbol(:initialize_without_callbacks)operator(,) symbol(:initialize) ident(alias_method) symbol(:initialize)operator(,) symbol(:initialize_with_callbacks) ident(alias_method) symbol(:create_or_update_without_callbacks)operator(,) symbol(:create_or_update) ident(alias_method) symbol(:create_or_update)operator(,) symbol(:create_or_update_with_callbacks) ident(alias_method) symbol(:valid_without_callbacks)operator(,) symbol(:valid?) ident(alias_method) symbol(:valid?)operator(,) symbol(:valid_with_callbacks) ident(alias_method) symbol(:create_without_callbacks)operator(,) symbol(:create) ident(alias_method) symbol(:create)operator(,) symbol(:create_with_callbacks) ident(alias_method) symbol(:update_without_callbacks)operator(,) symbol(:update) ident(alias_method) symbol(:update)operator(,) symbol(:update_with_callbacks) ident(alias_method) symbol(:destroy_without_callbacks)operator(,) symbol(:destroy) ident(alias_method) symbol(:destroy)operator(,) symbol(:destroy_with_callbacks) reserved(end) constant(CALLBACKS)operator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(base)operator(.)ident(class_eval) stringstringcontent((*callbacks, &block\) callbacks << block if block_given? write_inheritable_array()inlinecontent(, callbacks\) end)delimiter( end_eval)> reserved(end) reserved(end) reserved(module) class(ClassMethods) comment(#:nodoc:) reserved(def) method(instantiate_with_callbacks)operator(()ident(record)operator(\)) ident(object) operator(=) ident(instantiate_without_callbacks)operator(()ident(record)operator(\)) reserved(if) ident(object)operator(.)ident(respond_to_without_attributes?)operator(()symbol(:after_find)operator(\)) ident(object)operator(.)ident(send)operator(()symbol(:callback)operator(,) symbol(:after_find)operator(\)) reserved(end) reserved(if) ident(object)operator(.)ident(respond_to_without_attributes?)operator(()symbol(:after_initialize)operator(\)) ident(object)operator(.)ident(send)operator(()symbol(:callback)operator(,) symbol(:after_initialize)operator(\)) reserved(end) ident(object) reserved(end) reserved(end) comment(# Is called when the object was instantiated by one of the finders, like Base.find.) comment(#def after_find(\) end) comment(# Is called after the object has been instantiated by a call to Base.new.) comment(#def after_initialize(\) end) reserved(def) method(initialize_with_callbacks)operator(()ident(attributes) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(initialize_without_callbacks)operator(()ident(attributes)operator(\)) ident(result) operator(=) reserved(yield) pre_constant(self) reserved(if) ident(block_given?) ident(callback)operator(()symbol(:after_initialize)operator(\)) reserved(if) ident(respond_to_without_attributes?)operator(()symbol(:after_initialize)operator(\)) ident(result) reserved(end) comment(# Is called _before_ Base.save (regardless of whether it's a create or update save\).) reserved(def) method(before_save)operator(()operator(\)) reserved(end) comment(# Is called _after_ Base.save (regardless of whether it's a create or update save\).) comment(#) comment(# class Contact < ActiveRecord::Base) comment(# after_save { logger.info( 'New contact saved!' \) }) comment(# end) reserved(def) method(after_save)operator(()operator(\)) reserved(end) reserved(def) method(create_or_update_with_callbacks) comment(#:nodoc:) reserved(return) pre_constant(false) reserved(if) ident(callback)operator(()symbol(:before_save)operator(\)) operator(==) pre_constant(false) ident(result) operator(=) ident(create_or_update_without_callbacks) ident(callback)operator(()symbol(:after_save)operator(\)) ident(result) reserved(end) comment(# Is called _before_ Base.save on new objects that haven't been saved yet (no record exists\).) reserved(def) method(before_create)operator(()operator(\)) reserved(end) comment(# Is called _after_ Base.save on new objects that haven't been saved yet (no record exists\).) reserved(def) method(after_create)operator(()operator(\)) reserved(end) reserved(def) method(create_with_callbacks) comment(#:nodoc:) reserved(return) pre_constant(false) reserved(if) ident(callback)operator(()symbol(:before_create)operator(\)) operator(==) pre_constant(false) ident(result) operator(=) ident(create_without_callbacks) ident(callback)operator(()symbol(:after_create)operator(\)) ident(result) reserved(end) comment(# Is called _before_ Base.save on existing objects that have a record.) reserved(def) method(before_update)operator(()operator(\)) reserved(end) comment(# Is called _after_ Base.save on existing objects that have a record.) reserved(def) method(after_update)operator(()operator(\)) reserved(end) reserved(def) method(update_with_callbacks) comment(#:nodoc:) reserved(return) pre_constant(false) reserved(if) ident(callback)operator(()symbol(:before_update)operator(\)) operator(==) pre_constant(false) ident(result) operator(=) ident(update_without_callbacks) ident(callback)operator(()symbol(:after_update)operator(\)) ident(result) reserved(end) comment(# Is called _before_ Validations.validate (which is part of the Base.save call\).) reserved(def) method(before_validation)operator(()operator(\)) reserved(end) comment(# Is called _after_ Validations.validate (which is part of the Base.save call\).) reserved(def) method(after_validation)operator(()operator(\)) reserved(end) comment(# Is called _before_ Validations.validate (which is part of the Base.save call\) on new objects) comment(# that haven't been saved yet (no record exists\).) reserved(def) method(before_validation_on_create)operator(()operator(\)) reserved(end) comment(# Is called _after_ Validations.validate (which is part of the Base.save call\) on new objects) comment(# that haven't been saved yet (no record exists\).) reserved(def) method(after_validation_on_create)operator(()operator(\)) reserved(end) comment(# Is called _before_ Validations.validate (which is part of the Base.save call\) on) comment(# existing objects that have a record.) reserved(def) method(before_validation_on_update)operator(()operator(\)) reserved(end) comment(# Is called _after_ Validations.validate (which is part of the Base.save call\) on) comment(# existing objects that have a record.) reserved(def) method(after_validation_on_update)operator(()operator(\)) reserved(end) reserved(def) method(valid_with_callbacks) comment(#:nodoc:) reserved(return) pre_constant(false) reserved(if) ident(callback)operator(()symbol(:before_validation)operator(\)) operator(==) pre_constant(false) reserved(if) ident(new_record?) reserved(then) ident(result) operator(=) ident(callback)operator(()symbol(:before_validation_on_create)operator(\)) reserved(else) ident(result) operator(=) ident(callback)operator(()symbol(:before_validation_on_update)operator(\)) reserved(end) reserved(return) pre_constant(false) reserved(if) ident(result) operator(==) pre_constant(false) ident(result) operator(=) ident(valid_without_callbacks) ident(callback)operator(()symbol(:after_validation)operator(\)) reserved(if) ident(new_record?) reserved(then) ident(callback)operator(()symbol(:after_validation_on_create)operator(\)) reserved(else) ident(callback)operator(()symbol(:after_validation_on_update)operator(\)) reserved(end) reserved(return) ident(result) reserved(end) comment(# Is called _before_ Base.destroy.) comment(#) comment(# Note: If you need to _destroy_ or _nullify_ associated records first,) comment(# use the _:dependent_ option on your associations.) reserved(def) method(before_destroy)operator(()operator(\)) reserved(end) comment(# Is called _after_ Base.destroy (and all the attributes have been frozen\).) comment(#) comment(# class Contact < ActiveRecord::Base) comment(# after_destroy { |record| logger.info( "Contact #{record.id} was destroyed." \) }) comment(# end) reserved(def) method(after_destroy)operator(()operator(\)) reserved(end) reserved(def) method(destroy_with_callbacks) comment(#:nodoc:) reserved(return) pre_constant(false) reserved(if) ident(callback)operator(()symbol(:before_destroy)operator(\)) operator(==) pre_constant(false) ident(result) operator(=) ident(destroy_without_callbacks) ident(callback)operator(()symbol(:after_destroy)operator(\)) ident(result) reserved(end) ident(private) reserved(def) method(callback)operator(()ident(method)operator(\)) ident(notify)operator(()ident(method)operator(\)) ident(callbacks_for)operator(()ident(method)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(callback)operator(|) ident(result) operator(=) reserved(case) ident(callback) reserved(when) constant(Symbol) pre_constant(self)operator(.)ident(send)operator(()ident(callback)operator(\)) reserved(when) constant(String) ident(eval)operator(()ident(callback)operator(,) ident(binding)operator(\)) reserved(when) constant(Proc)operator(,) constant(Method) ident(callback)operator(.)ident(call)operator(()pre_constant(self)operator(\)) reserved(else) reserved(if) ident(callback)operator(.)ident(respond_to?)operator(()ident(method)operator(\)) ident(callback)operator(.)ident(send)operator(()ident(method)operator(,) pre_constant(self)operator(\)) reserved(else) ident(raise) constant(ActiveRecordError)operator(,) string reserved(end) reserved(end) reserved(return) pre_constant(false) reserved(if) ident(result) operator(==) pre_constant(false) reserved(end) ident(result) operator(=) ident(send)operator(()ident(method)operator(\)) reserved(if) ident(respond_to_without_attributes?)operator(()ident(method)operator(\)) reserved(return) ident(result) reserved(end) reserved(def) method(callbacks_for)operator(()ident(method)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(read_inheritable_attribute)operator(()ident(method)operator(.)ident(to_sym)operator(\)) reserved(or) operator([)operator(]) reserved(end) reserved(def) method(invoke_and_notify)operator(()ident(method)operator(\)) ident(notify)operator(()ident(method)operator(\)) ident(send)operator(()ident(method)operator(\)) reserved(if) ident(respond_to_without_attributes?)operator(()ident(method)operator(\)) reserved(end) reserved(def) method(notify)operator(()ident(method)operator(\)) comment(#:nodoc:) pre_constant(self)operator(.)ident(class)operator(.)ident(changed) pre_constant(self)operator(.)ident(class)operator(.)ident(notify_observers)operator(()ident(method)operator(,) pre_constant(self)operator(\)) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveRecord) reserved(class) class(Base) reserved(class) class(ConnectionSpecification) comment(#:nodoc:) ident(attr_reader) symbol(:config)operator(,) symbol(:adapter_method) reserved(def) method(initialize) operator(()ident(config)operator(,) ident(adapter_method)operator(\)) instance_variable(@config)operator(,) instance_variable(@adapter_method) operator(=) ident(config)operator(,) ident(adapter_method) reserved(end) reserved(end) comment(# Check for activity after at least +verification_timeout+ seconds.) comment(# Defaults to 0 (always check.\)) ident(cattr_accessor) symbol(:verification_timeout) class_variable(@@verification_timeout) operator(=) integer(0) comment(# The class -> [adapter_method, config] map) class_variable(@@defined_connections) operator(=) operator({)operator(}) comment(# The class -> thread id -> adapter cache. (class -> adapter if not allow_concurrency\)) class_variable(@@active_connections) operator(=) operator({)operator(}) reserved(class) operator(<<) class(self) comment(# Retrieve the connection cache.) reserved(def) method(thread_safe_active_connections) comment(#:nodoc:) class_variable(@@active_connections)operator([)constant(Thread)operator(.)ident(current)operator(.)ident(object_id)operator(]) operator(||=) operator({)operator(}) reserved(end) reserved(def) method(single_threaded_active_connections) comment(#:nodoc:) class_variable(@@active_connections) reserved(end) comment(# pick up the right active_connection method from @@allow_concurrency) reserved(if) class_variable(@@allow_concurrency) ident(alias_method) symbol(:active_connections)operator(,) symbol(:thread_safe_active_connections) reserved(else) ident(alias_method) symbol(:active_connections)operator(,) symbol(:single_threaded_active_connections) reserved(end) comment(# set concurrency support flag (not thread safe, like most of the methods in this file\)) reserved(def) method(allow_concurrency=)operator(()ident(threaded)operator(\)) comment(#:nodoc:) ident(logger)operator(.)ident(debug) stringdelimiter(")> reserved(if) ident(logger) reserved(return) reserved(if) class_variable(@@allow_concurrency) operator(==) ident(threaded) ident(clear_all_cached_connections!) class_variable(@@allow_concurrency) operator(=) ident(threaded) ident(method_prefix) operator(=) ident(threaded) operator(?) string operator(:) string ident(sing) operator(=) operator(()reserved(class) operator(<<) class(self)operator(;) pre_constant(self)operator(;) reserved(end)operator(\)) operator([)symbol(:active_connections)operator(,) symbol(:scoped_methods)operator(])operator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(sing)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) ident(method)operator(,) stringcontent(_)inlinedelimiter(")>operator(\)) reserved(end) ident(log_connections) reserved(if) ident(logger) reserved(end) reserved(def) method(active_connection_name) comment(#:nodoc:) instance_variable(@active_connection_name) operator(||=) reserved(if) ident(active_connections)operator([)ident(name)operator(]) operator(||) class_variable(@@defined_connections)operator([)ident(name)operator(]) ident(name) reserved(elsif) pre_constant(self) operator(==) constant(ActiveRecord)operator(::)constant(Base) pre_constant(nil) reserved(else) ident(superclass)operator(.)ident(active_connection_name) reserved(end) reserved(end) reserved(def) method(clear_active_connection_name) comment(#:nodoc:) instance_variable(@active_connection_name) operator(=) pre_constant(nil) ident(subclasses)operator(.)ident(each) operator({) operator(|)ident(klass)operator(|) ident(klass)operator(.)ident(clear_active_connection_name) operator(}) reserved(end) comment(# Returns the connection currently associated with the class. This can) comment(# also be used to "borrow" the connection to do database work unrelated) comment(# to any of the specific Active Records.) reserved(def) method(connection) reserved(if) instance_variable(@active_connection_name) operator(&&) operator(()ident(conn) operator(=) ident(active_connections)operator([)instance_variable(@active_connection_name)operator(])operator(\)) ident(conn) reserved(else) comment(# retrieve_connection sets the cache key.) ident(conn) operator(=) ident(retrieve_connection) ident(active_connections)operator([)instance_variable(@active_connection_name)operator(]) operator(=) ident(conn) reserved(end) reserved(end) comment(# Clears the cache which maps classes to connections.) reserved(def) method(clear_active_connections!) ident(clear_cache!)operator(()class_variable(@@active_connections)operator(\)) reserved(do) operator(|)ident(name)operator(,) ident(conn)operator(|) ident(conn)operator(.)ident(disconnect!) reserved(end) reserved(end) comment(# Verify active connections.) reserved(def) method(verify_active_connections!) comment(#:nodoc:) reserved(if) class_variable(@@allow_concurrency) ident(remove_stale_cached_threads!)operator(()class_variable(@@active_connections)operator(\)) reserved(do) operator(|)ident(name)operator(,) ident(conn)operator(|) ident(conn)operator(.)ident(disconnect!) reserved(end) reserved(end) ident(active_connections)operator(.)ident(each_value) reserved(do) operator(|)ident(connection)operator(|) ident(connection)operator(.)ident(verify!)operator(()class_variable(@@verification_timeout)operator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(clear_cache!)operator(()ident(cache)operator(,) ident(thread_id) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) reserved(if) ident(cache) reserved(if) class_variable(@@allow_concurrency) ident(thread_id) operator(||=) constant(Thread)operator(.)ident(current)operator(.)ident(object_id) ident(thread_cache)operator(,) ident(cache) operator(=) ident(cache)operator(,) ident(cache)operator([)ident(thread_id)operator(]) reserved(return) reserved(unless) ident(cache) reserved(end) ident(cache)operator(.)ident(each)operator(()operator(&)ident(block)operator(\)) reserved(if) ident(block_given?) ident(cache)operator(.)ident(clear) reserved(end) reserved(ensure) reserved(if) ident(thread_cache) operator(&&) class_variable(@@allow_concurrency) ident(thread_cache)operator(.)ident(delete)operator(()ident(thread_id)operator(\)) reserved(end) reserved(end) comment(# Remove stale threads from the cache.) reserved(def) method(remove_stale_cached_threads!)operator(()ident(cache)operator(,) operator(&)ident(block)operator(\)) ident(stale) operator(=) constant(Set)operator(.)ident(new)operator(()ident(cache)operator(.)ident(keys)operator(\)) constant(Thread)operator(.)ident(list)operator(.)ident(each) reserved(do) operator(|)ident(thread)operator(|) ident(stale)operator(.)ident(delete)operator(()ident(thread)operator(.)ident(object_id)operator(\)) reserved(if) ident(thread)operator(.)ident(alive?) reserved(end) ident(stale)operator(.)ident(each) reserved(do) operator(|)ident(thread_id)operator(|) ident(clear_cache!)operator(()ident(cache)operator(,) ident(thread_id)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(def) method(clear_all_cached_connections!) reserved(if) class_variable(@@allow_concurrency) class_variable(@@active_connections)operator(.)ident(each_value) reserved(do) operator(|)ident(connection_hash_for_thread)operator(|) ident(connection_hash_for_thread)operator(.)ident(each_value) operator({)operator(|)ident(conn)operator(|) ident(conn)operator(.)ident(disconnect!) operator(}) ident(connection_hash_for_thread)operator(.)ident(clear) reserved(end) reserved(else) class_variable(@@active_connections)operator(.)ident(each_value) operator({)operator(|)ident(conn)operator(|) ident(conn)operator(.)ident(disconnect!) operator(}) reserved(end) class_variable(@@active_connections)operator(.)ident(clear) reserved(end) reserved(end) comment(# Returns the connection currently associated with the class. This can) comment(# also be used to "borrow" the connection to do database work that isn't) comment(# easily done without going straight to SQL.) reserved(def) method(connection) pre_constant(self)operator(.)ident(class)operator(.)ident(connection) reserved(end) comment(# Establishes the connection to the database. Accepts a hash as input where) comment(# the :adapter key must be specified with the name of a database adapter (in lower-case\)) comment(# example for regular databases (MySQL, Postgresql, etc\):) comment(#) comment(# ActiveRecord::Base.establish_connection() comment(# :adapter => "mysql",) comment(# :host => "localhost",) comment(# :username => "myuser",) comment(# :password => "mypass",) comment(# :database => "somedatabase") comment(# \)) comment(#) comment(# Example for SQLite database:) comment(#) comment(# ActiveRecord::Base.establish_connection() comment(# :adapter => "sqlite",) comment(# :database => "path/to/dbfile") comment(# \)) comment(#) comment(# Also accepts keys as strings (for parsing from yaml for example\):) comment(# ActiveRecord::Base.establish_connection() comment(# "adapter" => "sqlite",) comment(# "database" => "path/to/dbfile") comment(# \)) comment(#) comment(# The exceptions AdapterNotSpecified, AdapterNotFound and ArgumentError) comment(# may be returned on an error.) reserved(def) pre_constant(self)operator(.)method(establish_connection)operator(()ident(spec) operator(=) pre_constant(nil)operator(\)) reserved(case) ident(spec) reserved(when) pre_constant(nil) ident(raise) constant(AdapterNotSpecified) reserved(unless) reserved(defined?) constant(RAILS_ENV) ident(establish_connection)operator(()constant(RAILS_ENV)operator(\)) reserved(when) constant(ConnectionSpecification) ident(clear_active_connection_name) instance_variable(@active_connection_name) operator(=) ident(name) class_variable(@@defined_connections)operator([)ident(name)operator(]) operator(=) ident(spec) reserved(when) constant(Symbol)operator(,) constant(String) reserved(if) ident(configuration) operator(=) ident(configurations)operator([)ident(spec)operator(.)ident(to_s)operator(]) ident(establish_connection)operator(()ident(configuration)operator(\)) reserved(else) ident(raise) constant(AdapterNotSpecified)operator(,) stringcontent( database is not configured)delimiter(")> reserved(end) reserved(else) ident(spec) operator(=) ident(spec)operator(.)ident(symbolize_keys) reserved(unless) ident(spec)operator(.)ident(key?)operator(()symbol(:adapter)operator(\)) reserved(then) ident(raise) constant(AdapterNotSpecified)operator(,) string reserved(end) ident(adapter_method) operator(=) stringcontent(_connection)delimiter(")> reserved(unless) ident(respond_to?)operator(()ident(adapter_method)operator(\)) reserved(then) ident(raise) constant(AdapterNotFound)operator(,) stringcontent( adapter)delimiter(")> reserved(end) ident(remove_connection) ident(establish_connection)operator(()constant(ConnectionSpecification)operator(.)ident(new)operator(()ident(spec)operator(,) ident(adapter_method)operator(\))operator(\)) reserved(end) reserved(end) comment(# Locate the connection of the nearest super class. This can be an) comment(# active or defined connections: if it is the latter, it will be) comment(# opened and set as the active connection for the class it was defined) comment(# for (not necessarily the current class\).) reserved(def) pre_constant(self)operator(.)method(retrieve_connection) comment(#:nodoc:) comment(# Name is nil if establish_connection hasn't been called for) comment(# some class along the inheritance chain up to AR::Base yet.) reserved(if) ident(name) operator(=) ident(active_connection_name) reserved(if) ident(conn) operator(=) ident(active_connections)operator([)ident(name)operator(]) comment(# Verify the connection.) ident(conn)operator(.)ident(verify!)operator(()class_variable(@@verification_timeout)operator(\)) reserved(elsif) ident(spec) operator(=) class_variable(@@defined_connections)operator([)ident(name)operator(]) comment(# Activate this connection specification.) ident(klass) operator(=) ident(name)operator(.)ident(constantize) ident(klass)operator(.)ident(connection) operator(=) ident(spec) ident(conn) operator(=) ident(active_connections)operator([)ident(name)operator(]) reserved(end) reserved(end) ident(conn) reserved(or) ident(raise) constant(ConnectionNotEstablished) reserved(end) comment(# Returns true if a connection that's accessible to this class have already been opened.) reserved(def) pre_constant(self)operator(.)method(connected?) ident(active_connections)operator([)ident(active_connection_name)operator(]) operator(?) pre_constant(true) operator(:) pre_constant(false) reserved(end) comment(# Remove the connection for this class. This will close the active) comment(# connection and the defined connection (if they exist\). The result) comment(# can be used as argument for establish_connection, for easy) comment(# re-establishing of the connection.) reserved(def) pre_constant(self)operator(.)method(remove_connection)operator(()ident(klass)operator(=)pre_constant(self)operator(\)) ident(spec) operator(=) class_variable(@@defined_connections)operator([)ident(klass)operator(.)ident(name)operator(]) ident(konn) operator(=) ident(active_connections)operator([)ident(klass)operator(.)ident(name)operator(]) class_variable(@@defined_connections)operator(.)ident(delete_if) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) ident(value) operator(==) ident(spec) operator(}) ident(active_connections)operator(.)ident(delete_if) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) ident(value) operator(==) ident(konn) operator(}) ident(konn)operator(.)ident(disconnect!) reserved(if) ident(konn) ident(spec)operator(.)ident(config) reserved(if) ident(spec) reserved(end) comment(# Set the connection for the class.) reserved(def) pre_constant(self)operator(.)method(connection=)operator(()ident(spec)operator(\)) comment(#:nodoc:) reserved(if) ident(spec)operator(.)ident(kind_of?)operator(()constant(ActiveRecord)operator(::)constant(ConnectionAdapters)operator(::)constant(AbstractAdapter)operator(\)) ident(active_connections)operator([)ident(name)operator(]) operator(=) ident(spec) reserved(elsif) ident(spec)operator(.)ident(kind_of?)operator(()constant(ConnectionSpecification)operator(\)) pre_constant(self)operator(.)ident(connection) operator(=) pre_constant(self)operator(.)ident(send)operator(()ident(spec)operator(.)ident(adapter_method)operator(,) ident(spec)operator(.)ident(config)operator(\)) reserved(elsif) ident(spec)operator(.)ident(nil?) ident(raise) constant(ConnectionNotEstablished) reserved(else) ident(establish_connection) ident(spec) reserved(end) reserved(end) comment(# connection state logging) reserved(def) pre_constant(self)operator(.)method(log_connections) comment(#:nodoc:) reserved(if) ident(logger) ident(logger)operator(.)ident(info) stringdelimiter(")> ident(logger)operator(.)ident(info) stringdelimiter(")> ident(logger)operator(.)ident(info) stringdelimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(ConnectionAdapters) comment(# :nodoc:) reserved(module) class(DatabaseStatements) comment(# Returns an array of record hashes with the column names as keys and) comment(# column values as values.) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) reserved(end) comment(# Returns a record hash with the column names as keys and column values) comment(# as values.) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) reserved(end) comment(# Returns a single value from a record) reserved(def) method(select_value)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(result) operator(=) ident(select_one)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(result)operator(.)ident(nil?) operator(?) pre_constant(nil) operator(:) ident(result)operator(.)ident(values)operator(.)ident(first) reserved(end) comment(# Returns an array of the values of the first column in a select:) comment(# select_values("SELECT id FROM companies LIMIT 3"\) => [1,2,3]) reserved(def) method(select_values)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(result) operator(=) ident(select_all)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(result)operator(.)ident(map)operator({) operator(|)ident(v)operator(|) ident(v)operator(.)ident(values)operator(.)ident(first) operator(}) reserved(end) comment(# Executes the SQL statement in the context of this connection.) comment(# This abstract method raises a NotImplementedError.) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(raise) constant(NotImplementedError)operator(,) string reserved(end) comment(# Returns the last auto-generated ID from the affected table.) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) reserved(end) comment(# Executes the update statement and returns the number of rows affected.) reserved(def) method(update)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) reserved(end) comment(# Executes the delete statement and returns the number of rows affected.) reserved(def) method(delete)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) reserved(end) comment(# Wrap a block in a transaction. Returns result of block.) reserved(def) method(transaction)operator(()ident(start_db_transaction) operator(=) pre_constant(true)operator(\)) ident(transaction_open) operator(=) pre_constant(false) reserved(begin) reserved(if) ident(block_given?) reserved(if) ident(start_db_transaction) ident(begin_db_transaction) ident(transaction_open) operator(=) pre_constant(true) reserved(end) reserved(yield) reserved(end) reserved(rescue) constant(Exception) operator(=)operator(>) ident(database_transaction_rollback) reserved(if) ident(transaction_open) ident(transaction_open) operator(=) pre_constant(false) ident(rollback_db_transaction) reserved(end) ident(raise) reserved(end) reserved(ensure) ident(commit_db_transaction) reserved(if) ident(transaction_open) reserved(end) comment(# Begins the transaction (and turns off auto-committing\).) reserved(def) method(begin_db_transaction)operator(()operator(\)) reserved(end) comment(# Commits the transaction (and turns on auto-committing\).) reserved(def) method(commit_db_transaction)operator(()operator(\)) reserved(end) comment(# Rolls back the transaction (and turns on auto-committing\). Must be) comment(# done if the transaction block raises an exception or returns false.) reserved(def) method(rollback_db_transaction)operator(()operator(\)) reserved(end) comment(# Alias for #add_limit_offset!.) reserved(def) method(add_limit!)operator(()ident(sql)operator(,) ident(options)operator(\)) ident(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) reserved(if) ident(options) reserved(end) comment(# Appends +LIMIT+ and +OFFSET+ options to a SQL statement.) comment(# This method *modifies* the +sql+ parameter.) comment(# ===== Examples) comment(# add_limit_offset!('SELECT * FROM suppliers', {:limit => 10, :offset => 50}\)) comment(# generates) comment(# SELECT * FROM suppliers LIMIT 10 OFFSET 50) reserved(def) method(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) reserved(if) ident(limit) operator(=) ident(options)operator([)symbol(:limit)operator(]) ident(sql) operator(<<) stringdelimiter(")> reserved(if) ident(offset) operator(=) ident(options)operator([)symbol(:offset)operator(]) ident(sql) operator(<<) stringdelimiter(")> reserved(end) reserved(end) reserved(end) reserved(def) method(default_sequence_name)operator(()ident(table)operator(,) ident(column)operator(\)) pre_constant(nil) reserved(end) comment(# Set the sequence to the max value of the table's column.) reserved(def) method(reset_sequence!)operator(()ident(table)operator(,) ident(column)operator(,) ident(sequence) operator(=) pre_constant(nil)operator(\)) comment(# Do nothing by default. Implement for PostgreSQL, Oracle, ...) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(ConnectionAdapters) comment(# :nodoc:) reserved(module) class(Quoting) comment(# Quotes the column value to help prevent) comment(# {SQL injection attacks}[http://en.wikipedia.org/wiki/SQL_injection].) reserved(def) method(quote)operator(()ident(value)operator(,) ident(column) operator(=) pre_constant(nil)operator(\)) reserved(case) ident(value) reserved(when) constant(String) reserved(if) ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:binary) operator(&&) ident(column)operator(.)ident(class)operator(.)ident(respond_to?)operator(()symbol(:string_to_binary)operator(\)) stringcontent(')delimiter(")> comment(# ' (for ruby-mode\)) reserved(elsif) ident(column) operator(&&) operator([)symbol(:integer)operator(,) symbol(:float)operator(])operator(.)ident(include?)operator(()ident(column)operator(.)ident(type)operator(\)) ident(value)operator(.)ident(to_s) reserved(else) stringcontent(')delimiter(")> comment(# ' (for ruby-mode\)) reserved(end) reserved(when) constant(NilClass) reserved(then) string reserved(when) constant(TrueClass) reserved(then) operator(()ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:integer) operator(?) string operator(:) ident(quoted_true)operator(\)) reserved(when) constant(FalseClass) reserved(then) operator(()ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:integer) operator(?) string operator(:) ident(quoted_false)operator(\)) reserved(when) constant(Float)operator(,) constant(Fixnum)operator(,) constant(Bignum) reserved(then) ident(value)operator(.)ident(to_s) reserved(when) constant(Date) reserved(then) stringcontent(')delimiter(")> reserved(when) constant(Time)operator(,) constant(DateTime) reserved(then) stringcontent(')delimiter(")> reserved(else) stringcontent(')delimiter(")> reserved(end) reserved(end) comment(# Quotes a string, escaping any ' (single quote\) and \\ (backslash\)) comment(# characters.) reserved(def) method(quote_string)operator(()ident(s)operator(\)) ident(s)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) comment(# ' (for ruby-mode\)) reserved(end) comment(# Returns a quoted form of the column name. This is highly adapter) comment(# specific.) reserved(def) method(quote_column_name)operator(()ident(name)operator(\)) ident(name) reserved(end) reserved(def) method(quoted_true) string reserved(end) reserved(def) method(quoted_false) string reserved(end) reserved(def) method(quoted_date)operator(()ident(value)operator(\)) ident(value)operator(.)ident(strftime)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveRecord) reserved(module) class(ConnectionAdapters) comment(#:nodoc:) comment(# An abstract definition of a column in a table.) reserved(class) class(Column) ident(attr_reader) symbol(:name)operator(,) symbol(:default)operator(,) symbol(:type)operator(,) symbol(:limit)operator(,) symbol(:null)operator(,) symbol(:sql_type) ident(attr_accessor) symbol(:primary) comment(# Instantiates a new column in the table.) comment(#) comment(# +name+ is the column's name, as in supplier_id int(11\).) comment(# +default+ is the type-casted default value, such as sales_stage varchar(20\) default 'new'.) comment(# +sql_type+ is only used to extract the column's length, if necessary. For example, company_name varchar(60\).) comment(# +null+ determines if this column allows +NULL+ values.) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(default)operator(,) ident(sql_type) operator(=) pre_constant(nil)operator(,) ident(null) operator(=) pre_constant(true)operator(\)) instance_variable(@name)operator(,) instance_variable(@type)operator(,) instance_variable(@null) operator(=) ident(name)operator(,) ident(simplified_type)operator(()ident(sql_type)operator(\))operator(,) ident(null) instance_variable(@sql_type) operator(=) ident(sql_type) comment(# have to do this one separately because type_cast depends on #type) instance_variable(@default) operator(=) ident(type_cast)operator(()ident(default)operator(\)) instance_variable(@limit) operator(=) ident(extract_limit)operator(()ident(sql_type)operator(\)) reserved(unless) ident(sql_type)operator(.)ident(nil?) instance_variable(@primary) operator(=) pre_constant(nil) instance_variable(@text) operator(=) operator([)symbol(:string)operator(,) symbol(:text)operator(])operator(.)ident(include?) instance_variable(@type) instance_variable(@number) operator(=) operator([)symbol(:float)operator(,) symbol(:integer)operator(])operator(.)ident(include?) instance_variable(@type) reserved(end) reserved(def) method(text?) instance_variable(@text) reserved(end) reserved(def) method(number?) instance_variable(@number) reserved(end) comment(# Returns the Ruby class that corresponds to the abstract data type.) reserved(def) method(klass) reserved(case) ident(type) reserved(when) symbol(:integer) reserved(then) constant(Fixnum) reserved(when) symbol(:float) reserved(then) constant(Float) reserved(when) symbol(:datetime) reserved(then) constant(Time) reserved(when) symbol(:date) reserved(then) constant(Date) reserved(when) symbol(:timestamp) reserved(then) constant(Time) reserved(when) symbol(:time) reserved(then) constant(Time) reserved(when) symbol(:text)operator(,) symbol(:string) reserved(then) constant(String) reserved(when) symbol(:binary) reserved(then) constant(String) reserved(when) symbol(:boolean) reserved(then) constant(Object) reserved(end) reserved(end) comment(# Casts value (which is a String\) to an appropriate instance.) reserved(def) method(type_cast)operator(()ident(value)operator(\)) reserved(return) pre_constant(nil) reserved(if) ident(value)operator(.)ident(nil?) reserved(case) ident(type) reserved(when) symbol(:string) reserved(then) ident(value) reserved(when) symbol(:text) reserved(then) ident(value) reserved(when) symbol(:integer) reserved(then) ident(value)operator(.)ident(to_i) reserved(rescue) ident(value) operator(?) integer(1) operator(:) integer(0) reserved(when) symbol(:float) reserved(then) ident(value)operator(.)ident(to_f) reserved(when) symbol(:datetime) reserved(then) pre_constant(self)operator(.)ident(class)operator(.)ident(string_to_time)operator(()ident(value)operator(\)) reserved(when) symbol(:timestamp) reserved(then) pre_constant(self)operator(.)ident(class)operator(.)ident(string_to_time)operator(()ident(value)operator(\)) reserved(when) symbol(:time) reserved(then) pre_constant(self)operator(.)ident(class)operator(.)ident(string_to_dummy_time)operator(()ident(value)operator(\)) reserved(when) symbol(:date) reserved(then) pre_constant(self)operator(.)ident(class)operator(.)ident(string_to_date)operator(()ident(value)operator(\)) reserved(when) symbol(:binary) reserved(then) pre_constant(self)operator(.)ident(class)operator(.)ident(binary_to_string)operator(()ident(value)operator(\)) reserved(when) symbol(:boolean) reserved(then) pre_constant(self)operator(.)ident(class)operator(.)ident(value_to_boolean)operator(()ident(value)operator(\)) reserved(else) ident(value) reserved(end) reserved(end) reserved(def) method(type_cast_code)operator(()ident(var_name)operator(\)) reserved(case) ident(type) reserved(when) symbol(:string) reserved(then) pre_constant(nil) reserved(when) symbol(:text) reserved(then) pre_constant(nil) reserved(when) symbol(:integer) reserved(then) stringcontent(.to_i rescue )inlinecontent( ? 1 : 0\))delimiter(")> reserved(when) symbol(:float) reserved(then) stringcontent(.to_f)delimiter(")> reserved(when) symbol(:datetime) reserved(then) stringcontent(.string_to_time()inlinecontent(\))delimiter(")> reserved(when) symbol(:timestamp) reserved(then) stringcontent(.string_to_time()inlinecontent(\))delimiter(")> reserved(when) symbol(:time) reserved(then) stringcontent(.string_to_dummy_time()inlinecontent(\))delimiter(")> reserved(when) symbol(:date) reserved(then) stringcontent(.string_to_date()inlinecontent(\))delimiter(")> reserved(when) symbol(:binary) reserved(then) stringcontent(.binary_to_string()inlinecontent(\))delimiter(")> reserved(when) symbol(:boolean) reserved(then) stringcontent(.value_to_boolean()inlinecontent(\))delimiter(")> reserved(else) pre_constant(nil) reserved(end) reserved(end) comment(# Returns the human name of the column name.) comment(#) comment(# ===== Examples) comment(# Column.new('sales_stage', ...\).human_name #=> 'Sales stage') reserved(def) method(human_name) constant(Base)operator(.)ident(human_attribute_name)operator(()instance_variable(@name)operator(\)) reserved(end) comment(# Used to convert from Strings to BLOBs) reserved(def) pre_constant(self)operator(.)method(string_to_binary)operator(()ident(value)operator(\)) ident(value) reserved(end) comment(# Used to convert from BLOBs to Strings) reserved(def) pre_constant(self)operator(.)method(binary_to_string)operator(()ident(value)operator(\)) ident(value) reserved(end) reserved(def) pre_constant(self)operator(.)method(string_to_date)operator(()ident(string)operator(\)) reserved(return) ident(string) reserved(unless) ident(string)operator(.)ident(is_a?)operator(()constant(String)operator(\)) ident(date_array) operator(=) constant(ParseDate)operator(.)ident(parsedate)operator(()ident(string)operator(\)) comment(# treat 0000-00-00 as nil) constant(Date)operator(.)ident(new)operator(()ident(date_array)operator([)integer(0)operator(])operator(,) ident(date_array)operator([)integer(1)operator(])operator(,) ident(date_array)operator([)integer(2)operator(])operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) pre_constant(self)operator(.)method(string_to_time)operator(()ident(string)operator(\)) reserved(return) ident(string) reserved(unless) ident(string)operator(.)ident(is_a?)operator(()constant(String)operator(\)) ident(time_array) operator(=) constant(ParseDate)operator(.)ident(parsedate)operator(()ident(string)operator(\))operator([)integer(0)operator(..)integer(5)operator(]) comment(# treat 0000-00-00 00:00:00 as nil) constant(Time)operator(.)ident(send)operator(()constant(Base)operator(.)ident(default_timezone)operator(,) operator(*)ident(time_array)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) pre_constant(self)operator(.)method(string_to_dummy_time)operator(()ident(string)operator(\)) reserved(return) ident(string) reserved(unless) ident(string)operator(.)ident(is_a?)operator(()constant(String)operator(\)) ident(time_array) operator(=) constant(ParseDate)operator(.)ident(parsedate)operator(()ident(string)operator(\)) comment(# pad the resulting array with dummy date information) ident(time_array)operator([)integer(0)operator(]) operator(=) integer(2000)operator(;) ident(time_array)operator([)integer(1)operator(]) operator(=) integer(1)operator(;) ident(time_array)operator([)integer(2)operator(]) operator(=) integer(1)operator(;) constant(Time)operator(.)ident(send)operator(()constant(Base)operator(.)ident(default_timezone)operator(,) operator(*)ident(time_array)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) comment(# convert something to a boolean) reserved(def) pre_constant(self)operator(.)method(value_to_boolean)operator(()ident(value)operator(\)) reserved(return) ident(value) reserved(if) ident(value)operator(==)pre_constant(true) operator(||) ident(value)operator(==)pre_constant(false) reserved(case) ident(value)operator(.)ident(to_s)operator(.)ident(downcase) reserved(when) stringoperator(,) stringoperator(,) string reserved(then) pre_constant(true) reserved(else) pre_constant(false) reserved(end) reserved(end) ident(private) reserved(def) method(extract_limit)operator(()ident(sql_type)operator(\)) global_variable($1)operator(.)ident(to_i) reserved(if) ident(sql_type) operator(=)operator(~) regexp reserved(end) reserved(def) method(simplified_type)operator(()ident(field_type)operator(\)) reserved(case) ident(field_type) reserved(when) regexp symbol(:integer) reserved(when) regexp symbol(:float) reserved(when) regexp symbol(:datetime) reserved(when) regexp symbol(:timestamp) reserved(when) regexp symbol(:time) reserved(when) regexp symbol(:date) reserved(when) regexpoperator(,) regexp symbol(:text) reserved(when) regexpoperator(,) regexp symbol(:binary) reserved(when) regexpoperator(,) regexp symbol(:string) reserved(when) regexp symbol(:boolean) reserved(end) reserved(end) reserved(end) reserved(class) class(IndexDefinition) operator(<) constant(Struct)operator(.)ident(new)operator(()symbol(:table)operator(,) symbol(:name)operator(,) symbol(:unique)operator(,) symbol(:columns)operator(\)) comment(#:nodoc:) reserved(end) reserved(class) class(ColumnDefinition) operator(<) constant(Struct)operator(.)ident(new)operator(()symbol(:base)operator(,) symbol(:name)operator(,) symbol(:type)operator(,) symbol(:limit)operator(,) symbol(:default)operator(,) symbol(:null)operator(\)) comment(#:nodoc:) reserved(def) method(to_sql) ident(column_sql) operator(=) stringcontent( )inlinedelimiter(")> ident(add_column_options!)operator(()ident(column_sql)operator(,) symbol(:null) operator(=)operator(>) ident(null)operator(,) symbol(:default) operator(=)operator(>) ident(default)operator(\)) ident(column_sql) reserved(end) reserved(alias) method(to_s) symbol(:to_sql) ident(private) reserved(def) method(type_to_sql)operator(()ident(name)operator(,) ident(limit)operator(\)) ident(base)operator(.)ident(type_to_sql)operator(()ident(name)operator(,) ident(limit)operator(\)) reserved(rescue) ident(name) reserved(end) reserved(def) method(add_column_options!)operator(()ident(sql)operator(,) ident(options)operator(\)) ident(base)operator(.)ident(add_column_options!)operator(()ident(sql)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:column) operator(=)operator(>) pre_constant(self)operator(\))operator(\)) reserved(end) reserved(end) comment(# Represents a SQL table in an abstract way.) comment(# Columns are stored as ColumnDefinition in the #columns attribute.) reserved(class) class(TableDefinition) ident(attr_accessor) symbol(:columns) reserved(def) method(initialize)operator(()ident(base)operator(\)) instance_variable(@columns) operator(=) operator([)operator(]) instance_variable(@base) operator(=) ident(base) reserved(end) comment(# Appends a primary key definition to the table definition.) comment(# Can be called multiple times, but this is probably not a good idea.) reserved(def) method(primary_key)operator(()ident(name)operator(\)) ident(column)operator(()ident(name)operator(,) ident(native)operator([)symbol(:primary_key)operator(])operator(\)) reserved(end) comment(# Returns a ColumnDefinition for the column with name +name+.) reserved(def) method([])operator(()ident(name)operator(\)) instance_variable(@columns)operator(.)ident(find) operator({)operator(|)ident(column)operator(|) ident(column)operator(.)ident(name)operator(.)ident(to_s) operator(==) ident(name)operator(.)ident(to_s)operator(}) reserved(end) comment(# Instantiates a new column for the table.) comment(# The +type+ parameter must be one of the following values:) comment(# :primary_key, :string, :text,) comment(# :integer, :float, :datetime,) comment(# :timestamp, :time, :date,) comment(# :binary, :boolean.) comment(#) comment(# Available options are (none of these exists by default\):) comment(# * :limit:) comment(# Requests a maximum column length (:string, :text,) comment(# :binary or :integer columns only\)) comment(# * :default:) comment(# The column's default value. You cannot explicitely set the default) comment(# value to +NULL+. Simply leave off this option if you want a +NULL+) comment(# default value.) comment(# * :null:) comment(# Allows or disallows +NULL+ values in the column. This option could) comment(# have been named :null_allowed.) comment(#) comment(# This method returns self.) comment(#) comment(# ===== Examples) comment(# # Assuming def is an instance of TableDefinition) comment(# def.column(:granted, :boolean\)) comment(# #=> granted BOOLEAN) comment(#) comment(# def.column(:picture, :binary, :limit => 2.megabytes\)) comment(# #=> picture BLOB(2097152\)) comment(#) comment(# def.column(:sales_stage, :string, :limit => 20, :default => 'new', :null => false\)) comment(# #=> sales_stage VARCHAR(20\) DEFAULT 'new' NOT NULL) reserved(def) method(column)operator(()ident(name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(column) operator(=) pre_constant(self)operator([)ident(name)operator(]) operator(||) constant(ColumnDefinition)operator(.)ident(new)operator(()instance_variable(@base)operator(,) ident(name)operator(,) ident(type)operator(\)) ident(column)operator(.)ident(limit) operator(=) ident(options)operator([)symbol(:limit)operator(]) operator(||) ident(native)operator([)ident(type)operator(.)ident(to_sym)operator(])operator([)symbol(:limit)operator(]) reserved(if) ident(options)operator([)symbol(:limit)operator(]) reserved(or) ident(native)operator([)ident(type)operator(.)ident(to_sym)operator(]) ident(column)operator(.)ident(default) operator(=) ident(options)operator([)symbol(:default)operator(]) ident(column)operator(.)ident(null) operator(=) ident(options)operator([)symbol(:null)operator(]) instance_variable(@columns) operator(<<) ident(column) reserved(unless) instance_variable(@columns)operator(.)ident(include?) ident(column) pre_constant(self) reserved(end) comment(# Returns a String whose contents are the column definitions) comment(# concatenated together. This string can then be pre and appended to) comment(# to generate the final SQL to create the table.) reserved(def) method(to_sql) instance_variable(@columns) operator(*) string reserved(end) ident(private) reserved(def) method(native) instance_variable(@base)operator(.)ident(native_database_types) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(ConnectionAdapters) comment(# :nodoc:) reserved(module) class(SchemaStatements) comment(# Returns a Hash of mappings from the abstract data types to the native) comment(# database types. See TableDefinition#column for details on the recognized) comment(# abstract data types.) reserved(def) method(native_database_types) operator({)operator(}) reserved(end) comment(# This is the maximum length a table alias can be) reserved(def) method(table_alias_length) integer(255) reserved(end) comment(# Truncates a table alias according to the limits of the current adapter. ) reserved(def) method(table_alias_for)operator(()ident(table_name)operator(\)) ident(table_name)operator([)integer(0)operator(..)ident(table_alias_length)operator(-)integer(1)operator(])operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) comment(# def tables(name = nil\) end) comment(# Returns an array of indexes for the given table.) comment(# def indexes(table_name, name = nil\) end) comment(# Returns an array of Column objects for the table specified by +table_name+.) comment(# See the concrete implementation for details on the expected parameter values.) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) reserved(end) comment(# Creates a new table) comment(# There are two ways to work with #create_table. You can use the block) comment(# form or the regular form, like this:) comment(#) comment(# === Block form) comment(# # create_table(\) yields a TableDefinition instance) comment(# create_table(:suppliers\) do |t|) comment(# t.column :name, :string, :limit => 60) comment(# # Other fields here) comment(# end) comment(#) comment(# === Regular form) comment(# create_table(:suppliers\)) comment(# add_column(:suppliers, :name, :string, {:limit => 60}\)) comment(#) comment(# The +options+ hash can include the following keys:) comment(# [:id]) comment(# Set to true or false to add/not add a primary key column) comment(# automatically. Defaults to true.) comment(# [:primary_key]) comment(# The name of the primary key, if one is to be added automatically.) comment(# Defaults to +id+.) comment(# [:options]) comment(# Any extra options you want appended to the table definition.) comment(# [:temporary]) comment(# Make a temporary table.) comment(# [:force]) comment(# Set to true or false to drop the table before creating it.) comment(# Defaults to false.) comment(#) comment(# ===== Examples) comment(# ====== Add a backend specific option to the generated SQL (MySQL\)) comment(# create_table(:suppliers, :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8'\)) comment(# generates:) comment(# CREATE TABLE suppliers () comment(# id int(11\) DEFAULT NULL auto_increment PRIMARY KEY) comment(# \) ENGINE=InnoDB DEFAULT CHARSET=utf8) comment(#) comment(# ====== Rename the primary key column) comment(# create_table(:objects, :primary_key => 'guid'\) do |t|) comment(# t.column :name, :string, :limit => 80) comment(# end) comment(# generates:) comment(# CREATE TABLE objects () comment(# guid int(11\) DEFAULT NULL auto_increment PRIMARY KEY,) comment(# name varchar(80\)) comment(# \)) comment(#) comment(# ====== Do not add a primary key column) comment(# create_table(:categories_suppliers, :id => false\) do |t|) comment(# t.column :category_id, :integer) comment(# t.column :supplier_id, :integer) comment(# end) comment(# generates:) comment(# CREATE TABLE categories_suppliers_join () comment(# category_id int,) comment(# supplier_id int) comment(# \)) comment(#) comment(# See also TableDefinition#column for details on how to create columns.) reserved(def) method(create_table)operator(()ident(name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(table_definition) operator(=) constant(TableDefinition)operator(.)ident(new)operator(()pre_constant(self)operator(\)) ident(table_definition)operator(.)ident(primary_key)operator(()ident(options)operator([)symbol(:primary_key)operator(]) operator(||) stringoperator(\)) reserved(unless) ident(options)operator([)symbol(:id)operator(]) operator(==) pre_constant(false) reserved(yield) ident(table_definition) reserved(if) ident(options)operator([)symbol(:force)operator(]) ident(drop_table)operator(()ident(name)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) ident(create_sql) operator(=) string reserved(if) ident(options)operator([)symbol(:temporary)operator(])inline_delimiter(})>content( TABLE )delimiter(")> ident(create_sql) operator(<<) stringcontent( ()delimiter(")> ident(create_sql) operator(<<) ident(table_definition)operator(.)ident(to_sql) ident(create_sql) operator(<<) stringdelimiter(")> ident(execute) ident(create_sql) reserved(end) comment(# Renames a table.) comment(# ===== Example) comment(# rename_table('octopuses', 'octopi'\)) reserved(def) method(rename_table)operator(()ident(name)operator(,) ident(new_name)operator(\)) ident(raise) constant(NotImplementedError)operator(,) string reserved(end) comment(# Drops a table from the database.) reserved(def) method(drop_table)operator(()ident(name)operator(\)) ident(execute) stringdelimiter(")> reserved(end) comment(# Adds a new column to the named table.) comment(# See TableDefinition#column for details of the options you can use.) reserved(def) method(add_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(add_column_sql) operator(=) stringcontent( ADD )inlinecontent( )inlinedelimiter(")> ident(add_column_options!)operator(()ident(add_column_sql)operator(,) ident(options)operator(\)) ident(execute)operator(()ident(add_column_sql)operator(\)) reserved(end) comment(# Removes the column from the table definition.) comment(# ===== Examples) comment(# remove_column(:suppliers, :qualification\)) reserved(def) method(remove_column)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(execute) stringcontent( DROP )inlinedelimiter(")> reserved(end) comment(# Changes the column's definition according to the new options.) comment(# See TableDefinition#column for details of the options you can use.) comment(# ===== Examples) comment(# change_column(:suppliers, :name, :string, :limit => 80\)) comment(# change_column(:accounts, :description, :text\)) reserved(def) method(change_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(raise) constant(NotImplementedError)operator(,) string reserved(end) comment(# Sets a new default value for a column. If you want to set the default) comment(# value to +NULL+, you are out of luck. You need to) comment(# DatabaseStatements#execute the apppropriate SQL statement yourself.) comment(# ===== Examples) comment(# change_column_default(:suppliers, :qualification, 'new'\)) comment(# change_column_default(:accounts, :authorized, 1\)) reserved(def) method(change_column_default)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(default)operator(\)) ident(raise) constant(NotImplementedError)operator(,) string reserved(end) comment(# Renames a column.) comment(# ===== Example) comment(# rename_column(:suppliers, :description, :name\)) reserved(def) method(rename_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(new_column_name)operator(\)) ident(raise) constant(NotImplementedError)operator(,) string reserved(end) comment(# Adds a new index to the table. +column_name+ can be a single Symbol, or) comment(# an Array of Symbols.) comment(#) comment(# The index will be named after the table and the first column names,) comment(# unless you pass +:name+ as an option.) comment(#) comment(# When creating an index on multiple columns, the first column is used as a name) comment(# for the index. For example, when you specify an index on two columns) comment(# [+:first+, +:last+], the DBMS creates an index for both columns as well as an) comment(# index for the first colum +:first+. Using just the first name for this index) comment(# makes sense, because you will never have to create a singular index with this) comment(# name.) comment(#) comment(# ===== Examples) comment(# ====== Creating a simple index) comment(# add_index(:suppliers, :name\)) comment(# generates) comment(# CREATE INDEX suppliers_name_index ON suppliers(name\)) comment(# ====== Creating a unique index) comment(# add_index(:accounts, [:branch_id, :party_id], :unique => true\)) comment(# generates) comment(# CREATE UNIQUE INDEX accounts_branch_id_index ON accounts(branch_id, party_id\)) comment(# ====== Creating a named index) comment(# add_index(:accounts, [:branch_id, :party_id], :unique => true, :name => 'by_branch_party'\)) comment(# generates) comment(# CREATE UNIQUE INDEX by_branch_party ON accounts(branch_id, party_id\)) reserved(def) method(add_index)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(column_names) operator(=) ident(Array)operator(()ident(column_name)operator(\)) ident(index_name) operator(=) ident(index_name)operator(()ident(table_name)operator(,) symbol(:column) operator(=)operator(>) ident(column_names)operator(.)ident(first)operator(\)) reserved(if) constant(Hash) operator(===) ident(options) comment(# legacy support, since this param was a string) ident(index_type) operator(=) ident(options)operator([)symbol(:unique)operator(]) operator(?) string operator(:) string ident(index_name) operator(=) ident(options)operator([)symbol(:name)operator(]) operator(||) ident(index_name) reserved(else) ident(index_type) operator(=) ident(options) reserved(end) ident(quoted_column_names) operator(=) ident(column_names)operator(.)ident(map) operator({) operator(|)ident(e)operator(|) ident(quote_column_name)operator(()ident(e)operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) ident(execute) stringcontent( INDEX )inlinecontent( ON )inlinecontent( ()inlinecontent(\))delimiter(")> reserved(end) comment(# Remove the given index from the table.) comment(#) comment(# Remove the suppliers_name_index in the suppliers table (legacy support, use the second or third forms\).) comment(# remove_index :suppliers, :name) comment(# Remove the index named accounts_branch_id in the accounts table.) comment(# remove_index :accounts, :column => :branch_id) comment(# Remove the index named by_branch_party in the accounts table.) comment(# remove_index :accounts, :name => :by_branch_party) comment(#) comment(# You can remove an index on multiple columns by specifying the first column.) comment(# add_index :accounts, [:username, :password]) comment(# remove_index :accounts, :username) reserved(def) method(remove_index)operator(()ident(table_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(execute) stringcontent( ON )inlinedelimiter(")> reserved(end) reserved(def) method(index_name)operator(()ident(table_name)operator(,) ident(options)operator(\)) comment(#:nodoc:) reserved(if) constant(Hash) operator(===) ident(options) comment(# legacy support) reserved(if) ident(options)operator([)symbol(:column)operator(]) stringcontent(_)inlinecontent(_index)delimiter(")> reserved(elsif) ident(options)operator([)symbol(:name)operator(]) ident(options)operator([)symbol(:name)operator(]) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(else) stringcontent(_)inlinecontent(_index)delimiter(")> reserved(end) reserved(end) comment(# Returns a string of CREATE TABLE SQL statement(s\) for recreating the) comment(# entire structure of the database.) reserved(def) method(structure_dump) reserved(end) comment(# Should not be called normally, but this operation is non-destructive.) comment(# The migrations module handles this automatically.) reserved(def) method(initialize_schema_information) reserved(begin) ident(execute) stringcontent( (version )inlinecontent(\))delimiter(")> ident(execute) stringcontent( (version\) VALUES(0\))delimiter(")> reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid) comment(# Schema has been intialized) reserved(end) reserved(end) reserved(def) method(dump_schema_information) comment(#:nodoc:) reserved(begin) reserved(if) operator(()ident(current_schema) operator(=) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(current_version)operator(\)) operator(>) integer(0) reserved(return) stringcontent( (version\) VALUES ()inlinecontent(\))delimiter(")> reserved(end) reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid) comment(# No Schema Info) reserved(end) reserved(end) reserved(def) method(type_to_sql)operator(()ident(type)operator(,) ident(limit) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(native) operator(=) ident(native_database_types)operator([)ident(type)operator(]) ident(limit) operator(||=) ident(native)operator([)symbol(:limit)operator(]) ident(column_type_sql) operator(=) ident(native)operator([)symbol(:name)operator(]) ident(column_type_sql) operator(<<) stringcontent(\))delimiter(")> reserved(if) ident(limit) ident(column_type_sql) reserved(end) reserved(def) method(add_column_options!)operator(()ident(sql)operator(,) ident(options)operator(\)) comment(#:nodoc:) ident(sql) operator(<<) stringdelimiter(")> reserved(unless) ident(options)operator([)symbol(:default)operator(])operator(.)ident(nil?) ident(sql) operator(<<) string reserved(if) ident(options)operator([)symbol(:null)operator(]) operator(==) pre_constant(false) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(module) class(ActiveRecord) reserved(module) class(ConnectionAdapters) comment(# :nodoc:) comment(# All the concrete database adapters follow the interface laid down in this class.) comment(# You can use this interface directly by borrowing the database connection from the Base with) comment(# Base.connection.) comment(#) comment(# Most of the methods in the adapter are useful during migrations. Most) comment(# notably, SchemaStatements#create_table, SchemaStatements#drop_table,) comment(# SchemaStatements#add_index, SchemaStatements#remove_index,) comment(# SchemaStatements#add_column, SchemaStatements#change_column and) comment(# SchemaStatements#remove_column are very useful.) reserved(class) class(AbstractAdapter) ident(include) constant(Quoting)operator(,) constant(DatabaseStatements)operator(,) constant(SchemaStatements) class_variable(@@row_even) operator(=) pre_constant(true) reserved(def) method(initialize)operator(()ident(connection)operator(,) ident(logger) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@connection)operator(,) instance_variable(@logger) operator(=) ident(connection)operator(,) ident(logger) instance_variable(@runtime) operator(=) integer(0) instance_variable(@last_verification) operator(=) integer(0) reserved(end) comment(# Returns the human-readable name of the adapter. Use mixed case - one) comment(# can always use downcase if needed.) reserved(def) method(adapter_name) string reserved(end) comment(# Does this adapter support migrations? Backend specific, as the) comment(# abstract adapter always returns +false+.) reserved(def) method(supports_migrations?) pre_constant(false) reserved(end) comment(# Does this adapter support using DISTINCT within COUNT? This is +true+) comment(# for all adapters except sqlite.) reserved(def) method(supports_count_distinct?) pre_constant(true) reserved(end) comment(# Should primary key values be selected from their corresponding) comment(# sequence before the insert statement? If true, next_sequence_value) comment(# is called before each insert to set the record's primary key.) comment(# This is false for all adapters but Firebird.) reserved(def) method(prefetch_primary_key?)operator(()ident(table_name) operator(=) pre_constant(nil)operator(\)) pre_constant(false) reserved(end) reserved(def) method(reset_runtime) comment(#:nodoc:) ident(rt)operator(,) instance_variable(@runtime) operator(=) instance_variable(@runtime)operator(,) integer(0) ident(rt) reserved(end) comment(# CONNECTION MANAGEMENT ====================================) comment(# Is this connection active and ready to perform queries?) reserved(def) method(active?) instance_variable(@active) operator(!=) pre_constant(false) reserved(end) comment(# Close this connection and open a new one in its place.) reserved(def) method(reconnect!) instance_variable(@active) operator(=) pre_constant(true) reserved(end) comment(# Close this connection) reserved(def) method(disconnect!) instance_variable(@active) operator(=) pre_constant(false) reserved(end) comment(# Lazily verify this connection, calling +active?+ only if it hasn't) comment(# been called for +timeout+ seconds. ) reserved(def) method(verify!)operator(()ident(timeout)operator(\)) ident(now) operator(=) constant(Time)operator(.)ident(now)operator(.)ident(to_i) reserved(if) operator(()ident(now) operator(-) instance_variable(@last_verification)operator(\)) operator(>) ident(timeout) ident(reconnect!) reserved(unless) ident(active?) instance_variable(@last_verification) operator(=) ident(now) reserved(end) reserved(end) comment(# Provides access to the underlying database connection. Useful for) comment(# when you need to call a proprietary method such as postgresql's lo_*) comment(# methods) reserved(def) method(raw_connection) instance_variable(@connection) reserved(end) ident(protected) reserved(def) method(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(if) ident(block_given?) reserved(if) instance_variable(@logger) reserved(and) instance_variable(@logger)operator(.)ident(level) operator(<=) constant(Logger)operator(::)constant(INFO) ident(result) operator(=) pre_constant(nil) ident(seconds) operator(=) constant(Benchmark)operator(.)ident(realtime) operator({) ident(result) operator(=) reserved(yield) operator(}) instance_variable(@runtime) operator(+=) ident(seconds) ident(log_info)operator(()ident(sql)operator(,) ident(name)operator(,) ident(seconds)operator(\)) ident(result) reserved(else) reserved(yield) reserved(end) reserved(else) ident(log_info)operator(()ident(sql)operator(,) ident(name)operator(,) integer(0)operator(\)) pre_constant(nil) reserved(end) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) comment(# Log message and raise exception.) comment(# Set last_verfication to 0, so that connection gets verified) comment(# upon reentering the request loop) instance_variable(@last_verification) operator(=) integer(0) ident(message) operator(=) stringcontent(: )inlinecontent(: )inlinedelimiter(")> ident(log_info)operator(()ident(message)operator(,) ident(name)operator(,) integer(0)operator(\)) ident(raise) constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(,) ident(message) reserved(end) reserved(def) method(log_info)operator(()ident(sql)operator(,) ident(name)operator(,) ident(runtime)operator(\)) reserved(return) reserved(unless) instance_variable(@logger) instance_variable(@logger)operator(.)ident(debug)operator(() ident(format_log_entry)operator(() string operator(:) ident(name)inline_delimiter(})>content( ()inlineoperator(,) ident(runtime)operator(\))inline_delimiter(})>content(\))delimiter(")>operator(,) ident(sql)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) operator(\)) operator(\)) reserved(end) reserved(def) method(format_log_entry)operator(()ident(message)operator(,) ident(dump) operator(=) pre_constant(nil)operator(\)) reserved(if) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(colorize_logging) reserved(if) class_variable(@@row_even) class_variable(@@row_even) operator(=) pre_constant(false) ident(message_color)operator(,) ident(dump_color) operator(=) stringoperator(,) string reserved(else) class_variable(@@row_even) operator(=) pre_constant(true) ident(message_color)operator(,) ident(dump_color) operator(=) stringoperator(,) string reserved(end) ident(log_entry) operator(=) stringcontent(m)inlinechar(\\e)content([0m )delimiter(")> ident(log_entry) operator(<<) stringcontent(m%)inline operator(:) stringinline_delimiter(})>char(\\e)content([0m)delimiter(")> operator(%) ident(dump) reserved(if) ident(dump) ident(log_entry) reserved(else) string operator(%) operator([)ident(message)operator(,) ident(dump)operator(]) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Author/Maintainer: Maik Schmidt ) ident(require) string reserved(begin) ident(require) string reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(const_defined?)operator(()symbol(:DB2CLI)operator(\)) ident(require) string reserved(module) class(ActiveRecord) reserved(class) class(Base) comment(# Establishes a connection to the database that's used by) comment(# all Active Record objects) reserved(def) pre_constant(self)operator(.)method(db2_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) ident(config) operator(=) ident(config)operator(.)ident(symbolize_keys) ident(usr) operator(=) ident(config)operator([)symbol(:username)operator(]) ident(pwd) operator(=) ident(config)operator([)symbol(:password)operator(]) ident(schema) operator(=) ident(config)operator([)symbol(:schema)operator(]) reserved(if) ident(config)operator(.)ident(has_key?)operator(()symbol(:database)operator(\)) ident(database) operator(=) ident(config)operator([)symbol(:database)operator(]) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(connection) operator(=) constant(DB2)operator(::)constant(Connection)operator(.)ident(new)operator(()constant(DB2)operator(::)constant(Environment)operator(.)ident(new)operator(\)) ident(connection)operator(.)ident(connect)operator(()ident(database)operator(,) ident(usr)operator(,) ident(pwd)operator(\)) constant(ConnectionAdapters)operator(::)constant(DB2Adapter)operator(.)ident(new)operator(()ident(connection)operator(,) ident(logger)operator(,) symbol(:schema) operator(=)operator(>) ident(schema)operator(\)) reserved(end) reserved(end) reserved(module) class(ConnectionAdapters) comment(# The DB2 adapter works with the C-based CLI driver (http://rubyforge.org/projects/ruby-dbi/\)) comment(#) comment(# Options:) comment(#) comment(# * :username -- Defaults to nothing) comment(# * :password -- Defaults to nothing) comment(# * :database -- The name of the database. No default, must be provided.) comment(# * :schema -- Database schema to be set initially.) reserved(class) class(DB2Adapter) operator(<) constant(AbstractAdapter) reserved(def) method(initialize)operator(()ident(connection)operator(,) ident(logger)operator(,) ident(connection_options)operator(\)) reserved(super)operator(()ident(connection)operator(,) ident(logger)operator(\)) instance_variable(@connection_options) operator(=) ident(connection_options) reserved(if) ident(schema) operator(=) instance_variable(@connection_options)operator([)symbol(:schema)operator(]) ident(with_statement) reserved(do) operator(|)ident(stmt)operator(|) ident(stmt)operator(.)ident(exec_direct)operator(()stringdelimiter(")>operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\))operator(.)ident(first) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) ident(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(id_value) operator(||) ident(last_insert_id) reserved(end) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(rows_affected) operator(=) integer(0) ident(with_statement) reserved(do) operator(|)ident(stmt)operator(|) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(do) ident(stmt)operator(.)ident(exec_direct)operator(()ident(sql)operator(\)) ident(rows_affected) operator(=) ident(stmt)operator(.)ident(row_count) reserved(end) reserved(end) ident(rows_affected) reserved(end) ident(alias_method) symbol(:update)operator(,) symbol(:execute) ident(alias_method) symbol(:delete)operator(,) symbol(:execute) reserved(def) method(begin_db_transaction) instance_variable(@connection)operator(.)ident(set_auto_commit_off) reserved(end) reserved(def) method(commit_db_transaction) instance_variable(@connection)operator(.)ident(commit) instance_variable(@connection)operator(.)ident(set_auto_commit_on) reserved(end) reserved(def) method(rollback_db_transaction) instance_variable(@connection)operator(.)ident(rollback) instance_variable(@connection)operator(.)ident(set_auto_commit_on) reserved(end) reserved(def) method(quote_column_name)operator(()ident(column_name)operator(\)) ident(column_name) reserved(end) reserved(def) method(adapter_name)operator(()operator(\)) string reserved(end) reserved(def) method(quote_string)operator(()ident(string)operator(\)) ident(string)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) comment(# ' (for ruby-mode\)) reserved(end) reserved(def) method(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) reserved(if) ident(limit) operator(=) ident(options)operator([)symbol(:limit)operator(]) ident(offset) operator(=) ident(options)operator([)symbol(:offset)operator(]) operator(||) integer(0) comment(# The following trick was added by andrea+rails@webcom.it.) ident(sql)operator(.)ident(gsub!)operator(()regexpoperator(,) stringoperator(\)) ident(sql) operator(<<) string )inlinecontent( AND B.internal$rownum <= )inlinedelimiter(")> reserved(end) reserved(end) reserved(def) method(tables)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) ident(result) operator(=) operator([)operator(]) ident(schema) operator(=) instance_variable(@connection_options)operator([)symbol(:schema)operator(]) operator(||) string ident(with_statement) reserved(do) operator(|)ident(stmt)operator(|) ident(stmt)operator(.)ident(tables)operator(()ident(schema)operator(\))operator(.)ident(each) operator({) operator(|)ident(t)operator(|) ident(result) operator(<<) ident(t)operator([)integer(2)operator(])operator(.)ident(downcase) operator(}) reserved(end) ident(result) reserved(end) reserved(def) method(indexes)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(tmp) operator(=) operator({)operator(}) ident(schema) operator(=) instance_variable(@connection_options)operator([)symbol(:schema)operator(]) operator(||) string ident(with_statement) reserved(do) operator(|)ident(stmt)operator(|) ident(stmt)operator(.)ident(indexes)operator(()ident(table_name)operator(,) ident(schema)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(t)operator(|) reserved(next) reserved(unless) ident(t)operator([)integer(5)operator(]) reserved(next) reserved(if) ident(t)operator([)integer(4)operator(]) operator(==) string comment(# Skip system indexes.) ident(idx_name) operator(=) ident(t)operator([)integer(5)operator(])operator(.)ident(downcase) ident(col_name) operator(=) ident(t)operator([)integer(8)operator(])operator(.)ident(downcase) reserved(if) ident(tmp)operator(.)ident(has_key?)operator(()ident(idx_name)operator(\)) ident(tmp)operator([)ident(idx_name)operator(])operator(.)ident(columns) operator(<<) ident(col_name) reserved(else) ident(is_unique) operator(=) ident(t)operator([)integer(3)operator(]) operator(==) integer(0) ident(tmp)operator([)ident(idx_name)operator(]) operator(=) constant(IndexDefinition)operator(.)ident(new)operator(()ident(table_name)operator(,) ident(idx_name)operator(,) ident(is_unique)operator(,) operator([)ident(col_name)operator(])operator(\)) reserved(end) reserved(end) reserved(end) ident(tmp)operator(.)ident(values) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(result) operator(=) operator([)operator(]) ident(schema) operator(=) instance_variable(@connection_options)operator([)symbol(:schema)operator(]) operator(||) string ident(with_statement) reserved(do) operator(|)ident(stmt)operator(|) ident(stmt)operator(.)ident(columns)operator(()ident(table_name)operator(,) ident(schema)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(c)operator(|) ident(c_name) operator(=) ident(c)operator([)integer(3)operator(])operator(.)ident(downcase) ident(c_default) operator(=) ident(c)operator([)integer(12)operator(]) operator(==) string operator(?) pre_constant(nil) operator(:) ident(c)operator([)integer(12)operator(]) ident(c_default)operator(.)ident(gsub!)operator(()regexpoperator(,) stringoperator(\)) reserved(if) operator(!)ident(c_default)operator(.)ident(nil?) ident(c_type) operator(=) ident(c)operator([)integer(5)operator(])operator(.)ident(downcase) ident(c_type) operator(+=) stringcontent(\))delimiter(")> reserved(if) operator(!)ident(c)operator([)integer(6)operator(])operator(.)ident(nil?) operator(&&) ident(c)operator([)integer(6)operator(]) operator(!=) string ident(result) operator(<<) constant(Column)operator(.)ident(new)operator(()ident(c_name)operator(,) ident(c_default)operator(,) ident(c_type)operator(,) ident(c)operator([)integer(17)operator(]) operator(==) stringoperator(\)) reserved(end) reserved(end) ident(result) reserved(end) reserved(def) method(native_database_types) operator({) symbol(:primary_key) operator(=)operator(>) stringoperator(,) symbol(:string) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(255) operator(})operator(,) symbol(:text) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(32768) operator(})operator(,) symbol(:integer) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:float) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:datetime) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:timestamp) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:time) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:date) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:binary) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(32768) operator(})operator(,) symbol(:boolean) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(1) operator(}) operator(}) reserved(end) reserved(def) method(quoted_true) string reserved(end) reserved(def) method(quoted_false) string reserved(end) reserved(def) method(active?) instance_variable(@connection)operator(.)ident(select_one) string pre_constant(true) reserved(rescue) constant(Exception) pre_constant(false) reserved(end) reserved(def) method(reconnect!) reserved(end) reserved(def) method(table_alias_length) integer(128) reserved(end) ident(private) reserved(def) method(with_statement) ident(stmt) operator(=) constant(DB2)operator(::)constant(Statement)operator(.)ident(new)operator(()instance_variable(@connection)operator(\)) reserved(yield) ident(stmt) ident(stmt)operator(.)ident(free) reserved(end) reserved(def) method(last_insert_id) ident(row) operator(=) ident(select_one)operator(()stringoperator(.)ident(strip)operator(\))string ident(row)operator([)stringoperator(])operator(.)ident(to_i) reserved(end) reserved(def) method(select)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(rows) operator(=) operator([)operator(]) ident(with_statement) reserved(do) operator(|)ident(stmt)operator(|) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(do) ident(stmt)operator(.)ident(exec_direct)operator(()stringoperator(,) stringoperator(\))inline_delimiter(})>content( with ur)delimiter(")>operator(\)) reserved(end) reserved(while) ident(row) operator(=) ident(stmt)operator(.)ident(fetch_as_hash) ident(row)operator(.)ident(delete)operator(()stringoperator(\)) ident(rows) operator(<<) ident(row) reserved(end) reserved(end) ident(rows) reserved(end) reserved(end) reserved(end) reserved(end) reserved(rescue) constant(LoadError) comment(# DB2 driver is unavailable.) reserved(module) class(ActiveRecord) comment(# :nodoc:) reserved(class) class(Base) reserved(def) pre_constant(self)operator(.)method(db2_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) comment(# Set up a reasonable error message) ident(raise) constant(LoadError)operator(,) string reserved(end) reserved(end) reserved(end) reserved(end) comment(# Author: Ken Kunz ) ident(require) string reserved(module) class(FireRuby) comment(# :nodoc: all) reserved(class) class(Database) reserved(def) pre_constant(self)operator(.)method(new_from_params)operator(()ident(database)operator(,) ident(host)operator(,) ident(port)operator(,) ident(service)operator(\)) ident(db_string) operator(=) string reserved(if) ident(host) ident(db_string) operator(<<) ident(host) ident(db_string) operator(<<) stringdelimiter(")> reserved(if) ident(service) operator(||) ident(port) ident(db_string) operator(<<) string reserved(end) ident(db_string) operator(<<) ident(database) ident(new)operator(()ident(db_string)operator(\)) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(class) operator(<<) class(Base) reserved(def) method(firebird_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) ident(require_library_or_gem) string reserved(unless) reserved(defined?) constant(FireRuby)operator(::)constant(SQLType) ident(raise) constant(AdapterNotFound)operator(,) string operator(<<) string reserved(end) ident(config) operator(=) ident(config)operator(.)ident(symbolize_keys) reserved(unless) ident(config)operator(.)ident(has_key?)operator(()symbol(:database)operator(\)) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(options) operator(=) ident(config)operator([)symbol(:charset)operator(]) operator(?) operator({) constant(CHARACTER_SET) operator(=)operator(>) ident(config)operator([)symbol(:charset)operator(]) operator(}) operator(:) operator({)operator(}) ident(connection_params) operator(=) operator([)ident(config)operator([)symbol(:username)operator(])operator(,) ident(config)operator([)symbol(:password)operator(])operator(,) ident(options)operator(]) ident(db) operator(=) constant(FireRuby)operator(::)constant(Database)operator(.)ident(new_from_params)operator(()operator(*)ident(config)operator(.)ident(values_at)operator(()symbol(:database)operator(,) symbol(:host)operator(,) symbol(:port)operator(,) symbol(:service)operator(\))operator(\)) ident(connection) operator(=) ident(db)operator(.)ident(connect)operator(()operator(*)ident(connection_params)operator(\)) constant(ConnectionAdapters)operator(::)constant(FirebirdAdapter)operator(.)ident(new)operator(()ident(connection)operator(,) ident(logger)operator(,) ident(connection_params)operator(\)) reserved(end) reserved(end) reserved(module) class(ConnectionAdapters) reserved(class) class(FirebirdColumn) operator(<) constant(Column) comment(# :nodoc:) constant(VARCHAR_MAX_LENGTH) operator(=) integer(32_765) constant(BLOB_MAX_LENGTH) operator(=) integer(32_767) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(domain)operator(,) ident(type)operator(,) ident(sub_type)operator(,) ident(length)operator(,) ident(precision)operator(,) ident(scale)operator(,) ident(default_source)operator(,) ident(null_flag)operator(\)) instance_variable(@firebird_type) operator(=) constant(FireRuby)operator(::)constant(SQLType)operator(.)ident(to_base_type)operator(()ident(type)operator(,) ident(sub_type)operator(\))operator(.)ident(to_s) reserved(super)operator(()ident(name)operator(.)ident(downcase)operator(,) pre_constant(nil)operator(,) instance_variable(@firebird_type)operator(,) operator(!)ident(null_flag)operator(\)) instance_variable(@default) operator(=) ident(parse_default)operator(()ident(default_source)operator(\)) reserved(if) ident(default_source) instance_variable(@limit) operator(=) ident(type) operator(==) string operator(?) constant(BLOB_MAX_LENGTH) operator(:) ident(length) instance_variable(@domain)operator(,) instance_variable(@sub_type)operator(,) instance_variable(@precision)operator(,) instance_variable(@scale) operator(=) ident(domain)operator(,) ident(sub_type)operator(,) ident(precision)operator(,) ident(scale) reserved(end) reserved(def) method(type) reserved(if) instance_variable(@domain) operator(=)operator(~) regexp symbol(:boolean) reserved(elsif) instance_variable(@type) operator(==) symbol(:binary) reserved(and) instance_variable(@sub_type) operator(==) integer(1) symbol(:text) reserved(else) instance_variable(@type) reserved(end) reserved(end) comment(# Submits a _CAST_ query to the database, casting the default value to the specified SQL type.) comment(# This enables Firebird to provide an actual value when context variables are used as column) comment(# defaults (such as CURRENT_TIMESTAMP\).) reserved(def) method(default) reserved(if) instance_variable(@default) ident(sql) operator(=) stringcontent( AS )inlinecontent(\) FROM RDB$DATABASE)delimiter(")> ident(connection) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(active_connections)operator(.)ident(values)operator(.)ident(detect) operator({) operator(|)ident(conn)operator(|) ident(conn) operator(&&) ident(conn)operator(.)ident(adapter_name) operator(==) string operator(}) reserved(if) ident(connection) ident(type_cast) ident(connection)operator(.)ident(execute)operator(()ident(sql)operator(\))operator(.)ident(to_a)operator(.)ident(first)operator([)stringoperator(]) reserved(else) ident(raise) constant(ConnectionNotEstablished)operator(,) string reserved(end) reserved(end) reserved(end) reserved(def) method(type_cast)operator(()ident(value)operator(\)) reserved(if) ident(type) operator(==) symbol(:boolean) ident(value) operator(==) pre_constant(true) reserved(or) ident(value) operator(==) constant(ActiveRecord)operator(::)constant(ConnectionAdapters)operator(::)constant(FirebirdAdapter)operator(.)ident(boolean_domain)operator([)symbol(:true)operator(]) reserved(else) reserved(super) reserved(end) reserved(end) ident(private) reserved(def) method(parse_default)operator(()ident(default_source)operator(\)) ident(default_source) operator(=)operator(~) regexp reserved(return) global_variable($1) reserved(unless) global_variable($1)operator(.)ident(upcase) operator(==) string reserved(end) reserved(def) method(column_def) reserved(case) instance_variable(@firebird_type) reserved(when) string reserved(then) stringcontent(\))delimiter(")> reserved(when) stringoperator(,) string reserved(then) stringcontent(()inlinecontent(\))delimiter(")> reserved(when) stringoperator(,) string reserved(then) stringcontent(()inlinecontent(,)inlinecontent(\))delimiter(")> reserved(when) string reserved(then) string reserved(else) instance_variable(@firebird_type) reserved(end) reserved(end) reserved(def) method(simplified_type)operator(()ident(field_type)operator(\)) reserved(if) ident(field_type) operator(==) string symbol(:datetime) reserved(else) reserved(super) reserved(end) reserved(end) reserved(end) comment(# The Firebird adapter relies on the FireRuby[http://rubyforge.org/projects/fireruby/]) comment(# extension, version 0.4.0 or later (available as a gem or from) comment(# RubyForge[http://rubyforge.org/projects/fireruby/]\). FireRuby works with) comment(# Firebird 1.5.x on Linux, OS X and Win32 platforms.) comment(#) comment(# == Usage Notes) comment(#) comment(# === Sequence (Generator\) Names) comment(# The Firebird adapter supports the same approach adopted for the Oracle) comment(# adapter. See ActiveRecord::Base#set_sequence_name for more details.) comment(#) comment(# Note that in general there is no need to create a BEFORE INSERT) comment(# trigger corresponding to a Firebird sequence generator when using) comment(# ActiveRecord. In other words, you don't have to try to make Firebird) comment(# simulate an AUTO_INCREMENT or +IDENTITY+ column. When saving a) comment(# new record, ActiveRecord pre-fetches the next sequence value for the table) comment(# and explicitly includes it in the +INSERT+ statement. (Pre-fetching the) comment(# next primary key value is the only reliable method for the Firebird) comment(# adapter to report back the +id+ after a successful insert.\)) comment(#) comment(# === BOOLEAN Domain) comment(# Firebird 1.5 does not provide a native +BOOLEAN+ type. But you can easily) comment(# define a +BOOLEAN+ _domain_ for this purpose, e.g.:) comment(#) comment(# CREATE DOMAIN D_BOOLEAN AS SMALLINT CHECK (VALUE IN (0, 1\)\);) comment(#) comment(# When the Firebird adapter encounters a column that is based on a domain) comment(# that includes "BOOLEAN" in the domain name, it will attempt to treat) comment(# the column as a +BOOLEAN+.) comment(#) comment(# By default, the Firebird adapter will assume that the BOOLEAN domain is) comment(# defined as above. This can be modified if needed. For example, if you) comment(# have a legacy schema with the following +BOOLEAN+ domain defined:) comment(#) comment(# CREATE DOMAIN BOOLEAN AS CHAR(1\) CHECK (VALUE IN ('T', 'F'\)\);) comment(#) comment(# ...you can add the following line to your environment.rb file:) comment(#) comment(# ActiveRecord::ConnectionAdapters::FirebirdAdapter.boolean_domain = { :true => 'T', :false => 'F' }) comment(#) comment(# === BLOB Elements) comment(# The Firebird adapter currently provides only limited support for +BLOB+) comment(# columns. You cannot currently retrieve or insert a +BLOB+ as an IO stream.) comment(# When selecting a +BLOB+, the entire element is converted into a String.) comment(# When inserting or updating a +BLOB+, the entire value is included in-line) comment(# in the SQL statement, limiting you to values <= 32KB in size.) comment(#) comment(# === Column Name Case Semantics) comment(# Firebird and ActiveRecord have somewhat conflicting case semantics for) comment(# column names.) comment(#) comment(# [*Firebird*]) comment(# The standard practice is to use unquoted column names, which can be) comment(# thought of as case-insensitive. (In fact, Firebird converts them to) comment(# uppercase.\) Quoted column names (not typically used\) are case-sensitive.) comment(# [*ActiveRecord*]) comment(# Attribute accessors corresponding to column names are case-sensitive.) comment(# The defaults for primary key and inheritance columns are lowercase, and) comment(# in general, people use lowercase attribute names.) comment(#) comment(# In order to map between the differing semantics in a way that conforms) comment(# to common usage for both Firebird and ActiveRecord, uppercase column names) comment(# in Firebird are converted to lowercase attribute names in ActiveRecord,) comment(# and vice-versa. Mixed-case column names retain their case in both) comment(# directions. Lowercase (quoted\) Firebird column names are not supported.) comment(# This is similar to the solutions adopted by other adapters.) comment(#) comment(# In general, the best approach is to use unqouted (case-insensitive\) column) comment(# names in your Firebird DDL (or if you must quote, use uppercase column) comment(# names\). These will correspond to lowercase attributes in ActiveRecord.) comment(#) comment(# For example, a Firebird table based on the following DDL:) comment(#) comment(# CREATE TABLE products () comment(# id BIGINT NOT NULL PRIMARY KEY,) comment(# "TYPE" VARCHAR(50\),) comment(# name VARCHAR(255\) \);) comment(#) comment(# ...will correspond to an ActiveRecord model class called +Product+ with) comment(# the following attributes: +id+, +type+, +name+.) comment(#) comment(# ==== Quoting "TYPE" and other Firebird reserved words:) comment(# In ActiveRecord, the default inheritance column name is +type+. The word) comment(# _type_ is a Firebird reserved word, so it must be quoted in any Firebird) comment(# SQL statements. Because of the case mapping described above, you should) comment(# always reference this column using quoted-uppercase syntax) comment(# ("TYPE"\) within Firebird DDL or other SQL statements (as in the) comment(# example above\). This holds true for any other Firebird reserved words used) comment(# as column names as well.) comment(#) comment(# === Migrations) comment(# The Firebird adapter does not currently support Migrations. I hope to) comment(# add this feature in the near future.) comment(#) comment(# == Connection Options) comment(# The following options are supported by the Firebird adapter. None of the) comment(# options have default values.) comment(#) comment(# :database::) comment(# Required option. Specifies one of: (i\) a Firebird database alias;) comment(# (ii\) the full path of a database file; _or_ (iii\) a full Firebird) comment(# connection string. Do not specify :host, :service) comment(# or :port as separate options when using a full connection) comment(# string.) comment(# :host::) comment(# Set to "remote.host.name" for remote database connections.) comment(# May be omitted for local connections if a full database path is) comment(# specified for :database. Some platforms require a value of) comment(# "localhost" for local connections when using a Firebird) comment(# database _alias_.) comment(# :service::) comment(# Specifies a service name for the connection. Only used if :host) comment(# is provided. Required when connecting to a non-standard service.) comment(# :port::) comment(# Specifies the connection port. Only used if :host is provided) comment(# and :service is not. Required when connecting to a non-standard) comment(# port and :service is not defined.) comment(# :username::) comment(# Specifies the database user. May be omitted or set to +nil+ (together) comment(# with :password\) to use the underlying operating system user) comment(# credentials on supported platforms.) comment(# :password::) comment(# Specifies the database password. Must be provided if :username) comment(# is explicitly specified; should be omitted if OS user credentials are) comment(# are being used.) comment(# :charset::) comment(# Specifies the character set to be used by the connection. Refer to) comment(# Firebird documentation for valid options.) reserved(class) class(FirebirdAdapter) operator(<) constant(AbstractAdapter) class_variable(@@boolean_domain) operator(=) operator({) symbol(:true) operator(=)operator(>) integer(1)operator(,) symbol(:false) operator(=)operator(>) integer(0) operator(}) ident(cattr_accessor) symbol(:boolean_domain) reserved(def) method(initialize)operator(()ident(connection)operator(,) ident(logger)operator(,) ident(connection_params)operator(=)pre_constant(nil)operator(\)) reserved(super)operator(()ident(connection)operator(,) ident(logger)operator(\)) instance_variable(@connection_params) operator(=) ident(connection_params) reserved(end) reserved(def) method(adapter_name) comment(# :nodoc:) string reserved(end) comment(# Returns true for Firebird adapter (since Firebird requires primary key) comment(# values to be pre-fetched before insert\). See also #next_sequence_value.) reserved(def) method(prefetch_primary_key?)operator(()ident(table_name) operator(=) pre_constant(nil)operator(\)) pre_constant(true) reserved(end) reserved(def) method(default_sequence_name)operator(()ident(table_name)operator(,) ident(primary_key)operator(\)) comment(# :nodoc:) stringcontent(_seq)delimiter(")> reserved(end) comment(# QUOTING ==================================================) reserved(def) method(quote)operator(()ident(value)operator(,) ident(column) operator(=) pre_constant(nil)operator(\)) comment(# :nodoc:) reserved(if) operator([)constant(Time)operator(,) constant(DateTime)operator(])operator(.)ident(include?)operator(()ident(value)operator(.)ident(class)operator(\)) stringoperator(\))inline_delimiter(})>content(' AS TIMESTAMP\))delimiter(")> reserved(else) reserved(super) reserved(end) reserved(end) reserved(def) method(quote_string)operator(()ident(string)operator(\)) comment(# :nodoc:) ident(string)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) method(quote_column_name)operator(()ident(column_name)operator(\)) comment(# :nodoc:) stringcontent(")delimiter(\))> reserved(end) reserved(def) method(quoted_true) comment(# :nodoc:) ident(quote)operator(()ident(boolean_domain)operator([)symbol(:true)operator(])operator(\)) reserved(end) reserved(def) method(quoted_false) comment(# :nodoc:) ident(quote)operator(()ident(boolean_domain)operator([)symbol(:false)operator(])operator(\)) reserved(end) comment(# CONNECTION MANAGEMENT ====================================) reserved(def) method(active?) reserved(not) instance_variable(@connection)operator(.)ident(closed?) reserved(end) reserved(def) method(reconnect!) instance_variable(@connection)operator(.)ident(close) instance_variable(@connection) operator(=) instance_variable(@connection)operator(.)ident(database)operator(.)ident(connect)operator(()operator(*)instance_variable(@connection_params)operator(\)) reserved(end) comment(# DATABASE STATEMENTS ======================================) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(# :nodoc:) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(# :nodoc:) ident(result) operator(=) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(result)operator(.)ident(nil?) operator(?) pre_constant(nil) operator(:) ident(result)operator(.)ident(first) reserved(end) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) comment(# :nodoc:) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(do) reserved(if) instance_variable(@transaction) instance_variable(@connection)operator(.)ident(execute)operator(()ident(sql)operator(,) instance_variable(@transaction)operator(,) operator(&)ident(block)operator(\)) reserved(else) instance_variable(@connection)operator(.)ident(execute_immediate)operator(()ident(sql)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) comment(# :nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(id_value) reserved(end) ident(alias_method) symbol(:update)operator(,) symbol(:execute) ident(alias_method) symbol(:delete)operator(,) symbol(:execute) reserved(def) method(begin_db_transaction)operator(()operator(\)) comment(# :nodoc:) instance_variable(@transaction) operator(=) instance_variable(@connection)operator(.)ident(start_transaction) reserved(end) reserved(def) method(commit_db_transaction)operator(()operator(\)) comment(# :nodoc:) instance_variable(@transaction)operator(.)ident(commit) reserved(ensure) instance_variable(@transaction) operator(=) pre_constant(nil) reserved(end) reserved(def) method(rollback_db_transaction)operator(()operator(\)) comment(# :nodoc:) instance_variable(@transaction)operator(.)ident(rollback) reserved(ensure) instance_variable(@transaction) operator(=) pre_constant(nil) reserved(end) reserved(def) method(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) comment(# :nodoc:) reserved(if) ident(options)operator([)symbol(:limit)operator(]) ident(limit_string) operator(=) stringdelimiter(")> ident(limit_string) operator(<<) stringdelimiter(")> reserved(if) ident(options)operator([)symbol(:offset)operator(]) ident(sql)operator(.)ident(sub!)operator(()regexpoperator(,) string operator(+) ident(limit_string) operator(+) stringoperator(\)) reserved(end) reserved(end) comment(# Returns the next sequence value from a sequence generator. Not generally) comment(# called directly; used by ActiveRecord to get the next primary key value) comment(# when inserting a new database record (see #prefetch_primary_key?\).) reserved(def) method(next_sequence_value)operator(()ident(sequence_name)operator(\)) constant(FireRuby)operator(::)constant(Generator)operator(.)ident(new)operator(()ident(sequence_name)operator(,) instance_variable(@connection)operator(\))operator(.)ident(next)operator(()integer(1)operator(\)) reserved(end) comment(# SCHEMA STATEMENTS ========================================) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(# :nodoc:) ident(sql) operator(=) stringstring ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\))operator(.)ident(collect) reserved(do) operator(|)ident(field)operator(|) ident(field_values) operator(=) ident(field)operator(.)ident(values)operator(.)ident(collect) reserved(do) operator(|)ident(value)operator(|) reserved(case) ident(value) reserved(when) constant(String) reserved(then) ident(value)operator(.)ident(rstrip) reserved(when) constant(FireRuby)operator(::)constant(Blob) reserved(then) ident(value)operator(.)ident(to_s) reserved(else) ident(value) reserved(end) reserved(end) constant(FirebirdColumn)operator(.)ident(new)operator(()operator(*)ident(field_values)operator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(select)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\))operator(.)ident(collect) reserved(do) operator(|)ident(row)operator(|) ident(hashed_row) operator(=) operator({)operator(}) ident(row)operator(.)ident(each) reserved(do) operator(|)ident(column)operator(,) ident(value)operator(|) ident(value) operator(=) ident(value)operator(.)ident(to_s) reserved(if) constant(FireRuby)operator(::)constant(Blob) operator(===) ident(value) ident(hashed_row)operator([)ident(fb_to_ar_case)operator(()ident(column)operator(\))operator(]) operator(=) ident(value) reserved(end) ident(hashed_row) reserved(end) reserved(end) comment(# Maps uppercase Firebird column names to lowercase for ActiveRecord;) comment(# mixed-case columns retain their original case.) reserved(def) method(fb_to_ar_case)operator(()ident(column_name)operator(\)) ident(column_name) operator(=)operator(~) regexp operator(?) ident(column_name) operator(:) ident(column_name)operator(.)ident(downcase) reserved(end) comment(# Maps lowercase ActiveRecord column names to uppercase for Fierbird;) comment(# mixed-case columns retain their original case.) reserved(def) method(ar_to_fb_case)operator(()ident(column_name)operator(\)) ident(column_name) operator(=)operator(~) regexp operator(?) ident(column_name) operator(:) ident(column_name)operator(.)ident(upcase) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveRecord) reserved(class) class(Base) comment(# Establishes a connection to the database that's used by all Active Record objects.) reserved(def) pre_constant(self)operator(.)method(mysql_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) comment(# Only include the MySQL driver if one hasn't already been loaded) reserved(unless) reserved(defined?) constant(Mysql) reserved(begin) ident(require_library_or_gem) string reserved(rescue) constant(LoadError) operator(=)operator(>) ident(cannot_require_mysql) comment(# Only use the supplied backup Ruby/MySQL driver if no driver is already in place) reserved(begin) ident(require) string reserved(rescue) constant(LoadError) ident(raise) ident(cannot_require_mysql) reserved(end) reserved(end) reserved(end) ident(config) operator(=) ident(config)operator(.)ident(symbolize_keys) ident(host) operator(=) ident(config)operator([)symbol(:host)operator(]) ident(port) operator(=) ident(config)operator([)symbol(:port)operator(]) ident(socket) operator(=) ident(config)operator([)symbol(:socket)operator(]) ident(username) operator(=) ident(config)operator([)symbol(:username)operator(]) operator(?) ident(config)operator([)symbol(:username)operator(])operator(.)ident(to_s) operator(:) string ident(password) operator(=) ident(config)operator([)symbol(:password)operator(])operator(.)ident(to_s) reserved(if) ident(config)operator(.)ident(has_key?)operator(()symbol(:database)operator(\)) ident(database) operator(=) ident(config)operator([)symbol(:database)operator(]) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(mysql) operator(=) constant(Mysql)operator(.)ident(init) ident(mysql)operator(.)ident(ssl_set)operator(()ident(config)operator([)symbol(:sslkey)operator(])operator(,) ident(config)operator([)symbol(:sslcert)operator(])operator(,) ident(config)operator([)symbol(:sslca)operator(])operator(,) ident(config)operator([)symbol(:sslcapath)operator(])operator(,) ident(config)operator([)symbol(:sslcipher)operator(])operator(\)) reserved(if) ident(config)operator([)symbol(:sslkey)operator(]) constant(ConnectionAdapters)operator(::)constant(MysqlAdapter)operator(.)ident(new)operator(()ident(mysql)operator(,) ident(logger)operator(,) operator([)ident(host)operator(,) ident(username)operator(,) ident(password)operator(,) ident(database)operator(,) ident(port)operator(,) ident(socket)operator(])operator(,) ident(config)operator(\)) reserved(end) reserved(end) reserved(module) class(ConnectionAdapters) reserved(class) class(MysqlColumn) operator(<) constant(Column) comment(#:nodoc:) ident(private) reserved(def) method(simplified_type)operator(()ident(field_type)operator(\)) reserved(return) symbol(:boolean) reserved(if) constant(MysqlAdapter)operator(.)ident(emulate_booleans) operator(&&) ident(field_type)operator(.)ident(downcase)operator(.)ident(index)operator(()stringoperator(\)) reserved(return) symbol(:string) reserved(if) ident(field_type) operator(=)operator(~) regexp reserved(super) reserved(end) reserved(end) comment(# The MySQL adapter will work with both Ruby/MySQL, which is a Ruby-based MySQL adapter that comes bundled with Active Record, and with) comment(# the faster C-based MySQL/Ruby adapter (available both as a gem and from http://www.tmtm.org/en/mysql/ruby/\).) comment(#) comment(# Options:) comment(#) comment(# * :host -- Defaults to localhost) comment(# * :port -- Defaults to 3306) comment(# * :socket -- Defaults to /tmp/mysql.sock) comment(# * :username -- Defaults to root) comment(# * :password -- Defaults to nothing) comment(# * :database -- The name of the database. No default, must be provided.) comment(# * :sslkey -- Necessary to use MySQL with an SSL connection) comment(# * :sslcert -- Necessary to use MySQL with an SSL connection) comment(# * :sslcapath -- Necessary to use MySQL with an SSL connection) comment(# * :sslcipher -- Necessary to use MySQL with an SSL connection) comment(#) comment(# By default, the MysqlAdapter will consider all columns of type tinyint(1\)) comment(# as boolean. If you wish to disable this emulation (which was the default) comment(# behavior in versions 0.13.1 and earlier\) you can add the following line) comment(# to your environment.rb file:) comment(#) comment(# ActiveRecord::ConnectionAdapters::MysqlAdapter.emulate_booleans = false) reserved(class) class(MysqlAdapter) operator(<) constant(AbstractAdapter) class_variable(@@emulate_booleans) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:emulate_booleans) constant(LOST_CONNECTION_ERROR_MESSAGES) operator(=) operator([) stringoperator(,) stringoperator(,) stringoperator(,) string operator(]) reserved(def) method(initialize)operator(()ident(connection)operator(,) ident(logger)operator(,) ident(connection_options)operator(,) ident(config)operator(\)) reserved(super)operator(()ident(connection)operator(,) ident(logger)operator(\)) instance_variable(@connection_options)operator(,) instance_variable(@config) operator(=) ident(connection_options)operator(,) ident(config) instance_variable(@null_values_in_each_hash) operator(=) constant(Mysql)operator(.)ident(const_defined?)operator(()symbol(:VERSION)operator(\)) ident(connect) reserved(end) reserved(def) method(adapter_name) comment(#:nodoc:) string reserved(end) reserved(def) method(supports_migrations?) comment(#:nodoc:) pre_constant(true) reserved(end) reserved(def) method(native_database_types) comment(#:nodoc) operator({) symbol(:primary_key) operator(=)operator(>) stringoperator(,) symbol(:string) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(255) operator(})operator(,) symbol(:text) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:integer) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(11) operator(})operator(,) symbol(:float) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:datetime) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:timestamp) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:time) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:date) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:binary) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:boolean) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(1) operator(}) operator(}) reserved(end) comment(# QUOTING ==================================================) reserved(def) method(quote)operator(()ident(value)operator(,) ident(column) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(value)operator(.)ident(kind_of?)operator(()constant(String)operator(\)) operator(&&) ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:binary) operator(&&) ident(column)operator(.)ident(class)operator(.)ident(respond_to?)operator(()symbol(:string_to_binary)operator(\)) ident(s) operator(=) ident(column)operator(.)ident(class)operator(.)ident(string_to_binary)operator(()ident(value)operator(\))operator(.)ident(unpack)operator(()stringoperator(\))operator([)integer(0)operator(]) stringcontent(')delimiter(")> reserved(else) reserved(super) reserved(end) reserved(end) reserved(def) method(quote_column_name)operator(()ident(name)operator(\)) comment(#:nodoc:) stringcontent(`)delimiter(")> reserved(end) reserved(def) method(quote_string)operator(()ident(string)operator(\)) comment(#:nodoc:) instance_variable(@connection)operator(.)ident(quote)operator(()ident(string)operator(\)) reserved(end) reserved(def) method(quoted_true) string reserved(end) reserved(def) method(quoted_false) string reserved(end) comment(# CONNECTION MANAGEMENT ====================================) reserved(def) method(active?) reserved(if) instance_variable(@connection)operator(.)ident(respond_to?)operator(()symbol(:stat)operator(\)) instance_variable(@connection)operator(.)ident(stat) reserved(else) instance_variable(@connection)operator(.)ident(query) string reserved(end) comment(# mysql-ruby doesn't raise an exception when stat fails.) reserved(if) instance_variable(@connection)operator(.)ident(respond_to?)operator(()symbol(:errno)operator(\)) instance_variable(@connection)operator(.)ident(errno)operator(.)ident(zero?) reserved(else) pre_constant(true) reserved(end) reserved(rescue) constant(Mysql)operator(::)constant(Error) pre_constant(false) reserved(end) reserved(def) method(reconnect!) ident(disconnect!) ident(connect) reserved(end) reserved(def) method(disconnect!) instance_variable(@connection)operator(.)ident(close) reserved(rescue) pre_constant(nil) reserved(end) comment(# DATABASE STATEMENTS ======================================) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(result) operator(=) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(result)operator(.)ident(nil?) operator(?) pre_constant(nil) operator(:) ident(result)operator(.)ident(first) reserved(end) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(retries) operator(=) integer(2)operator(\)) comment(#:nodoc:) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(query)operator(()ident(sql)operator(\)) operator(}) reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid) operator(=)operator(>) ident(exception) reserved(if) ident(exception)operator(.)ident(message)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(first) operator(=)operator(~) regexp ident(raise) constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(,) string reserved(else) ident(raise) reserved(end) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(id_value) operator(||) instance_variable(@connection)operator(.)ident(insert_id) reserved(end) reserved(def) method(update)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) instance_variable(@connection)operator(.)ident(affected_rows) reserved(end) ident(alias_method) symbol(:delete)operator(,) symbol(:update) comment(#:nodoc:) reserved(def) method(begin_db_transaction) comment(#:nodoc:) ident(execute) string reserved(rescue) constant(Exception) comment(# Transactions aren't supported) reserved(end) reserved(def) method(commit_db_transaction) comment(#:nodoc:) ident(execute) string reserved(rescue) constant(Exception) comment(# Transactions aren't supported) reserved(end) reserved(def) method(rollback_db_transaction) comment(#:nodoc:) ident(execute) string reserved(rescue) constant(Exception) comment(# Transactions aren't supported) reserved(end) reserved(def) method(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) comment(#:nodoc) reserved(if) ident(limit) operator(=) ident(options)operator([)symbol(:limit)operator(]) reserved(unless) ident(offset) operator(=) ident(options)operator([)symbol(:offset)operator(]) ident(sql) operator(<<) stringdelimiter(")> reserved(else) ident(sql) operator(<<) stringcontent(, )inlinedelimiter(")> reserved(end) reserved(end) reserved(end) comment(# SCHEMA STATEMENTS ========================================) reserved(def) method(structure_dump) comment(#:nodoc:) reserved(if) ident(supports_views?) ident(sql) operator(=) string reserved(else) ident(sql) operator(=) string reserved(end) ident(select_all)operator(()ident(sql)operator(\))operator(.)ident(inject)operator(()stringoperator(\)) reserved(do) operator(|)ident(structure)operator(,) ident(table)operator(|) ident(table)operator(.)ident(delete)operator(()stringoperator(\)) ident(structure) operator(+=) ident(select_one)operator(()stringdelimiter(")>operator(\))operator([)stringoperator(]) operator(+) string reserved(end) reserved(end) reserved(def) method(recreate_database)operator(()ident(name)operator(\)) comment(#:nodoc:) ident(drop_database)operator(()ident(name)operator(\)) ident(create_database)operator(()ident(name)operator(\)) reserved(end) reserved(def) method(create_database)operator(()ident(name)operator(\)) comment(#:nodoc:) ident(execute) stringcontent(`)delimiter(")> reserved(end) reserved(def) method(drop_database)operator(()ident(name)operator(\)) comment(#:nodoc:) ident(execute) stringcontent(`)delimiter(")> reserved(end) reserved(def) method(current_database) ident(select_one)operator(()stringoperator(\))operator([)stringoperator(]) reserved(end) reserved(def) method(tables)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(tables) operator(=) operator([)operator(]) ident(execute)operator(()stringoperator(,) ident(name)operator(\))operator(.)ident(each) operator({) operator(|)ident(field)operator(|) ident(tables) operator(<<) ident(field)operator([)integer(0)operator(]) operator(}) ident(tables) reserved(end) reserved(def) method(indexes)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\))comment(#:nodoc:) ident(indexes) operator(=) operator([)operator(]) ident(current_index) operator(=) pre_constant(nil) ident(execute)operator(()stringdelimiter(")>operator(,) ident(name)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) reserved(if) ident(current_index) operator(!=) ident(row)operator([)integer(2)operator(]) reserved(next) reserved(if) ident(row)operator([)integer(2)operator(]) operator(==) string comment(# skip the primary key) ident(current_index) operator(=) ident(row)operator([)integer(2)operator(]) ident(indexes) operator(<<) constant(IndexDefinition)operator(.)ident(new)operator(()ident(row)operator([)integer(0)operator(])operator(,) ident(row)operator([)integer(2)operator(])operator(,) ident(row)operator([)integer(1)operator(]) operator(==) stringoperator(,) operator([)operator(])operator(\)) reserved(end) ident(indexes)operator(.)ident(last)operator(.)ident(columns) operator(<<) ident(row)operator([)integer(4)operator(]) reserved(end) ident(indexes) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\))comment(#:nodoc:) ident(sql) operator(=) stringdelimiter(")> ident(columns) operator(=) operator([)operator(]) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\))operator(.)ident(each) operator({) operator(|)ident(field)operator(|) ident(columns) operator(<<) constant(MysqlColumn)operator(.)ident(new)operator(()ident(field)operator([)integer(0)operator(])operator(,) ident(field)operator([)integer(4)operator(])operator(,) ident(field)operator([)integer(1)operator(])operator(,) ident(field)operator([)integer(2)operator(]) operator(==) stringoperator(\)) operator(}) ident(columns) reserved(end) reserved(def) method(create_table)operator(()ident(name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) reserved(super)operator(()ident(name)operator(,) operator({)symbol(:options) operator(=)operator(>) stringoperator(})operator(.)ident(merge)operator(()ident(options)operator(\))operator(\)) reserved(end) reserved(def) method(rename_table)operator(()ident(name)operator(,) ident(new_name)operator(\)) ident(execute) stringcontent( TO )inlinedelimiter(")> reserved(end) reserved(def) method(change_column_default)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(default)operator(\)) comment(#:nodoc:) ident(current_type) operator(=) ident(select_one)operator(()stringcontent( LIKE ')inlinecontent(')delimiter(")>operator(\))operator([)stringoperator(]) ident(change_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(current_type)operator(,) operator({) symbol(:default) operator(=)operator(>) ident(default) operator(})operator(\)) reserved(end) reserved(def) method(change_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(options)operator([)symbol(:default)operator(]) operator(||=) ident(select_one)operator(()stringcontent( LIKE ')inlinecontent(')delimiter(")>operator(\))operator([)stringoperator(]) ident(change_column_sql) operator(=) stringcontent( CHANGE )inlinecontent( )inlinecontent( )inlinedelimiter(")> ident(add_column_options!)operator(()ident(change_column_sql)operator(,) ident(options)operator(\)) ident(execute)operator(()ident(change_column_sql)operator(\)) reserved(end) reserved(def) method(rename_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(new_column_name)operator(\)) comment(#:nodoc:) ident(current_type) operator(=) ident(select_one)operator(()stringcontent( LIKE ')inlinecontent(')delimiter(")>operator(\))operator([)stringoperator(]) ident(execute) stringcontent( CHANGE )inlinecontent( )inlinecontent( )inlinedelimiter(")> reserved(end) ident(private) reserved(def) method(connect) ident(encoding) operator(=) instance_variable(@config)operator([)symbol(:encoding)operator(]) reserved(if) ident(encoding) instance_variable(@connection)operator(.)ident(options)operator(()constant(Mysql)operator(::)constant(SET_CHARSET_NAME)operator(,) ident(encoding)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) instance_variable(@connection)operator(.)ident(real_connect)operator(()operator(*)instance_variable(@connection_options)operator(\)) ident(execute)operator(()stringcontent(')delimiter(")>operator(\)) reserved(if) ident(encoding) reserved(end) reserved(def) method(select)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) instance_variable(@connection)operator(.)ident(query_with_result) operator(=) pre_constant(true) ident(result) operator(=) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(rows) operator(=) operator([)operator(]) reserved(if) instance_variable(@null_values_in_each_hash) ident(result)operator(.)ident(each_hash) operator({) operator(|)ident(row)operator(|) ident(rows) operator(<<) ident(row) operator(}) reserved(else) ident(all_fields) operator(=) ident(result)operator(.)ident(fetch_fields)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) operator({) operator(|)ident(fields)operator(,) ident(f)operator(|) ident(fields)operator([)ident(f)operator(.)ident(name)operator(]) operator(=) pre_constant(nil)operator(;) ident(fields) operator(}) ident(result)operator(.)ident(each_hash) operator({) operator(|)ident(row)operator(|) ident(rows) operator(<<) ident(all_fields)operator(.)ident(dup)operator(.)ident(update)operator(()ident(row)operator(\)) operator(}) reserved(end) ident(result)operator(.)ident(free) ident(rows) reserved(end) reserved(def) method(supports_views?) ident(version)operator([)integer(0)operator(]) operator(>)operator(=) integer(5) reserved(end) reserved(def) method(version) instance_variable(@version) operator(||=) instance_variable(@connection)operator(.)ident(server_info)operator(.)ident(scan)operator(()regexpoperator(\))operator(.)ident(flatten)operator(.)ident(map) operator({) operator(|)ident(v)operator(|) ident(v)operator(.)ident(to_i) operator(}) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveRecord) reserved(class) class(Base) comment(# Establishes a connection to the database that's used by all Active Record objects) reserved(def) pre_constant(self)operator(.)method(openbase_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) ident(require_library_or_gem) string reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(const_defined?)operator(()symbol(:OpenBase)operator(\)) ident(config) operator(=) ident(config)operator(.)ident(symbolize_keys) ident(host) operator(=) ident(config)operator([)symbol(:host)operator(]) ident(username) operator(=) ident(config)operator([)symbol(:username)operator(])operator(.)ident(to_s) ident(password) operator(=) ident(config)operator([)symbol(:password)operator(])operator(.)ident(to_s) reserved(if) ident(config)operator(.)ident(has_key?)operator(()symbol(:database)operator(\)) ident(database) operator(=) ident(config)operator([)symbol(:database)operator(]) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(oba) operator(=) constant(ConnectionAdapters)operator(::)constant(OpenBaseAdapter)operator(.)ident(new)operator(() constant(OpenBase)operator(.)ident(new)operator(()ident(database)operator(,) ident(host)operator(,) ident(username)operator(,) ident(password)operator(\))operator(,) ident(logger) operator(\)) ident(oba) reserved(end) reserved(end) reserved(module) class(ConnectionAdapters) reserved(class) class(OpenBaseColumn) operator(<) constant(Column) comment(#:nodoc:) ident(private) reserved(def) method(simplified_type)operator(()ident(field_type)operator(\)) reserved(return) symbol(:integer) reserved(if) ident(field_type)operator(.)ident(downcase) operator(=)operator(~) regexp reserved(return) symbol(:float) reserved(if) ident(field_type)operator(.)ident(downcase) operator(==) string reserved(return) symbol(:binary) reserved(if) ident(field_type)operator(.)ident(downcase) operator(==) string reserved(super) reserved(end) reserved(end) comment(# The OpenBase adapter works with the Ruby/Openbase driver by Tetsuya Suzuki.) comment(# http://www.spice-of-life.net/ruby-openbase/ (needs version 0.7.3+\)) comment(#) comment(# Options:) comment(#) comment(# * :host -- Defaults to localhost) comment(# * :username -- Defaults to nothing) comment(# * :password -- Defaults to nothing) comment(# * :database -- The name of the database. No default, must be provided.) comment(#) comment(# The OpenBase adapter will make use of OpenBase's ability to generate unique ids) comment(# for any column with an unique index applied. Thus, if the value of a primary) comment(# key is not specified at the time an INSERT is performed, the adapter will prefetch) comment(# a unique id for the primary key. This prefetching is also necessary in order ) comment(# to return the id after an insert.) comment(#) comment(# Caveat: Operations involving LIMIT and OFFSET do not yet work!) comment(#) comment(# Maintainer: derrickspell@cdmplus.com) reserved(class) class(OpenBaseAdapter) operator(<) constant(AbstractAdapter) reserved(def) method(adapter_name) string reserved(end) reserved(def) method(native_database_types) operator({) symbol(:primary_key) operator(=)operator(>) stringoperator(,) symbol(:string) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(4096) operator(})operator(,) symbol(:text) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:integer) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:float) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:datetime) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:timestamp) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:time) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:date) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:binary) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:boolean) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(}) operator(}) reserved(end) reserved(def) method(supports_migrations?) pre_constant(false) reserved(end) reserved(def) method(prefetch_primary_key?)operator(()ident(table_name) operator(=) pre_constant(nil)operator(\)) pre_constant(true) reserved(end) reserved(def) method(default_sequence_name)operator(()ident(table_name)operator(,) ident(primary_key)operator(\)) comment(# :nodoc:) stringcontent( )inlinedelimiter(")> reserved(end) reserved(def) method(next_sequence_value)operator(()ident(sequence_name)operator(\)) ident(ary) operator(=) ident(sequence_name)operator(.)ident(split)operator(()stringoperator(\)) reserved(if) operator(()operator(!)ident(ary)operator([)integer(1)operator(])operator(\)) reserved(then) ident(ary)operator([)integer(0)operator(]) operator(=)operator(~) regexp ident(ary)operator([)integer(0)operator(]) operator(=) global_variable($1) reserved(end) instance_variable(@connection)operator(.)ident(unique_row_id)operator(()ident(ary)operator([)integer(0)operator(])operator(,) ident(ary)operator([)integer(1)operator(])operator(\)) reserved(end) comment(# QUOTING ==================================================) reserved(def) method(quote)operator(()ident(value)operator(,) ident(column) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(value)operator(.)ident(kind_of?)operator(()constant(String)operator(\)) operator(&&) ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:binary) stringcontent(')delimiter(")> reserved(else) reserved(super) reserved(end) reserved(end) reserved(def) method(quoted_true) string reserved(end) reserved(def) method(quoted_false) string reserved(end) comment(# DATABASE STATEMENTS ======================================) reserved(def) method(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) comment(#:nodoc) reserved(if) ident(limit) operator(=) ident(options)operator([)symbol(:limit)operator(]) reserved(unless) ident(offset) operator(=) ident(options)operator([)symbol(:offset)operator(]) ident(sql) operator(<<) stringdelimiter(")> reserved(else) ident(limit) operator(=) ident(limit) operator(+) ident(offset) ident(sql) operator(<<) stringcontent( TO )inlinedelimiter(")> reserved(end) reserved(end) reserved(end) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(add_limit_offset!)operator(()ident(sql)operator(,)operator({)symbol(:limit) operator(=)operator(>) integer(1)operator(})operator(\)) ident(results) operator(=) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(results)operator(.)ident(first) reserved(if) ident(results) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(update_nulls_after_insert)operator(()ident(sql)operator(,) ident(name)operator(,) ident(pk)operator(,) ident(id_value)operator(,) ident(sequence_name)operator(\)) ident(id_value) reserved(end) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(execute)operator(()ident(sql)operator(\)) operator(}) reserved(end) reserved(def) method(update)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\))operator(.)ident(rows_affected) reserved(end) ident(alias_method) symbol(:delete)operator(,) symbol(:update) comment(#:nodoc:) comment(#=begin) reserved(def) method(begin_db_transaction) comment(#:nodoc:) ident(execute) string reserved(rescue) constant(Exception) comment(# Transactions aren't supported) reserved(end) reserved(def) method(commit_db_transaction) comment(#:nodoc:) ident(execute) string reserved(rescue) constant(Exception) comment(# Transactions aren't supported) reserved(end) reserved(def) method(rollback_db_transaction) comment(#:nodoc:) ident(execute) string reserved(rescue) constant(Exception) comment(# Transactions aren't supported) reserved(end) comment(#=end ) comment(# SCHEMA STATEMENTS ========================================) comment(# Return the list of all tables in the schema search path.) reserved(def) method(tables)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(tables) operator(=) instance_variable(@connection)operator(.)ident(tables) ident(tables)operator(.)ident(reject!) operator({) operator(|)ident(t)operator(|) regexp operator(===) ident(t) operator(}) ident(tables) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(sql) operator(=) string ident(sql) operator(<<) string0 )delimiter(")> ident(sql) operator(<<) string ident(columns) operator(=) operator([)operator(]) ident(select_all)operator(()ident(sql)operator(,) ident(name)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) ident(columns) operator(<<) constant(OpenBaseColumn)operator(.)ident(new)operator(()ident(row)operator([)stringoperator(])operator(,) ident(default_value)operator(()ident(row)operator([)stringoperator(])operator(\))operator(,) ident(sql_type_name)operator(()ident(row)operator([)stringoperator(])operator(,)ident(row)operator([)stringoperator(])operator(\))operator(,) ident(row)operator([)stringoperator(]) operator(\)) comment(# breakpoint(\) if row["fieldname"] == "content") reserved(end) ident(columns) reserved(end) reserved(def) method(indexes)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\))comment(#:nodoc:) ident(sql) operator(=) string ident(sql) operator(<<) string0 )delimiter(")> ident(sql) operator(<<) string ident(sql) operator(<<) string ident(sql) operator(<<) string ident(indexes) operator(=) operator([)operator(]) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) ident(indexes) operator(<<) constant(IndexDefinition)operator(.)ident(new)operator(()ident(table_name)operator(,)ident(index_name)operator(()ident(row)operator(\))operator(,)ident(row)operator([)integer(3)operator(])operator(==)integer(1)operator(,)operator([)ident(row)operator([)integer(0)operator(])operator(])operator(\)) reserved(end) ident(indexes) reserved(end) ident(private) reserved(def) method(select)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(sql) operator(=) ident(translate_sql)operator(()ident(sql)operator(\)) ident(results) operator(=) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(date_cols) operator(=) operator([)operator(]) ident(col_names) operator(=) operator([)operator(]) ident(results)operator(.)ident(column_infos)operator(.)ident(each) reserved(do) operator(|)ident(info)operator(|) ident(col_names) operator(<<) ident(info)operator(.)ident(name) ident(date_cols) operator(<<) ident(info)operator(.)ident(name) reserved(if) ident(info)operator(.)ident(type) operator(==) string reserved(end) ident(rows) operator(=) operator([)operator(]) reserved(if) operator(() ident(results)operator(.)ident(rows_affected) operator(\)) ident(results)operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) comment(# loop through result rows) ident(hashed_row) operator(=) operator({)operator(}) ident(row)operator(.)ident(each_index) reserved(do) operator(|)ident(index)operator(|) ident(hashed_row)operator([)stringdelimiter(")>operator(]) operator(=) ident(row)operator([)ident(index)operator(]) reserved(unless) ident(col_names)operator([)ident(index)operator(]) operator(==) string reserved(end) ident(date_cols)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) reserved(unless) ident(hashed_row)operator([)stringdelimiter(")>operator(])operator(.)ident(nil?) reserved(or) ident(hashed_row)operator([)stringdelimiter(")>operator(])operator(.)ident(empty?) ident(hashed_row)operator([)stringdelimiter(")>operator(]) operator(=) constant(Date)operator(.)ident(parse)operator(()ident(hashed_row)operator([)stringdelimiter(")>operator(])operator(,)pre_constant(false)operator(\))operator(.)ident(to_s) reserved(end) reserved(end) ident(rows) operator(<<) ident(hashed_row) reserved(end) reserved(end) ident(rows) reserved(end) reserved(def) method(default_value)operator(()ident(value)operator(\)) comment(# Boolean type values) reserved(return) pre_constant(true) reserved(if) ident(value) operator(=)operator(~) regexp reserved(return) pre_constant(false) reserved(if) ident(value) operator(=)operator(~) regexp comment(# Date / Time magic values) reserved(return) constant(Time)operator(.)ident(now)operator(.)ident(to_s) reserved(if) ident(value) operator(=)operator(~) regexp comment(# Empty strings should be set to null) reserved(return) pre_constant(nil) reserved(if) ident(value)operator(.)ident(empty?) comment(# Otherwise return what we got from OpenBase) comment(# and hope for the best...) reserved(return) ident(value) reserved(end) reserved(def) method(sql_type_name)operator(()ident(type_name)operator(,) ident(length)operator(\)) reserved(return) stringcontent(()inlinecontent(\))delimiter(")> reserved(if) operator(() ident(type_name) operator(=)operator(~) regexp operator(\)) ident(type_name) reserved(end) reserved(def) method(index_name)operator(()ident(row) operator(=) operator([)operator(])operator(\)) ident(name) operator(=) string ident(name) operator(<<) string reserved(if) ident(row)operator([)integer(3)operator(]) ident(name) operator(<<) string reserved(if) ident(row)operator([)integer(4)operator(]) ident(name) operator(<<) string ident(name) reserved(end) reserved(def) method(translate_sql)operator(()ident(sql)operator(\)) comment(# Change table.* to list of columns in table) reserved(while) operator(()ident(sql) operator(=)operator(~) regexpoperator(\)) ident(table) operator(=) global_variable($1) ident(cols) operator(=) ident(columns)operator(()ident(table)operator(\)) reserved(if) operator(() ident(cols)operator(.)ident(size) operator(==) integer(0) operator(\)) reserved(then) comment(# Maybe this is a table alias) ident(sql) operator(=)operator(~) regexp global_variable($1) operator(=)operator(~) regexpcontent([)char(\\s)content(|,])delimiter(/)> comment(# get the tablename for this alias) ident(cols) operator(=) ident(columns)operator(()global_variable($1)operator(\)) reserved(end) ident(select_columns) operator(=) operator([)operator(]) ident(cols)operator(.)ident(each) reserved(do) operator(|)ident(col)operator(|) ident(select_columns) operator(<<) ident(table) operator(+) string operator(+) ident(col)operator(.)ident(name) reserved(end) ident(sql)operator(.)ident(gsub!)operator(()ident(table) operator(+) stringoperator(,)ident(select_columns)operator(.)ident(join)operator(()stringoperator(\))operator(\)) reserved(if) ident(select_columns) reserved(end) comment(# Change JOIN clause to table list and WHERE condition) reserved(while) operator(()ident(sql) operator(=)operator(~) regexpoperator(\)) ident(sql) operator(=)operator(~) regexp ident(join_clause) operator(=) global_variable($1) operator(+) global_variable($5) ident(is_outer_join) operator(=) global_variable($3) ident(join_table) operator(=) global_variable($4) ident(join_condition) operator(=) global_variable($5) ident(join_condition)operator(.)ident(gsub!)operator(()regexpoperator(,)stringoperator(\)) reserved(if) ident(is_outer_join) reserved(if) operator(()ident(sql) operator(=)operator(~) regexpoperator(\)) ident(sql)operator(.)ident(gsub!)operator(()regexpoperator(,)stringcontent(\) AND)delimiter(")>operator(\)) reserved(else) ident(sql)operator(.)ident(gsub!)operator(()ident(join_clause)operator(,)stringcontent( WHERE )inlinedelimiter(")>operator(\)) reserved(end) ident(sql) operator(=)operator(~) regexp ident(from_clause) operator(=) global_variable($1) ident(sql)operator(.)ident(gsub!)operator(()ident(from_clause)operator(,)stringcontent(, )inlinecontent( )delimiter(")>operator(\)) ident(sql)operator(.)ident(gsub!)operator(()ident(join_clause)operator(,)stringoperator(\)) reserved(end) comment(# ORDER BY _rowid if no explicit ORDER BY) comment(# This will ensure that find(:first\) returns the first inserted row) reserved(if) operator(()ident(sql) operator(!)operator(~) regexpoperator(\)) reserved(if) operator(()ident(sql) operator(=)operator(~) regexpoperator(\)) ident(sql)operator(.)ident(sub!)operator(()regexpoperator(,)stringoperator(\)) reserved(else) ident(sql) operator(<<) string reserved(end) reserved(end) ident(sql) reserved(end) reserved(def) method(update_nulls_after_insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) ident(sql) operator(=)operator(~) regexp ident(table) operator(=) global_variable($1) ident(cols) operator(=) global_variable($2) ident(values) operator(=) global_variable($3) ident(cols) operator(=) ident(cols)operator(.)ident(split)operator(()stringoperator(\)) ident(values)operator(.)ident(gsub!)operator(()regexpoperator(,)stringoperator(\)) ident(values)operator(.)ident(gsub!)operator(()regexpoperator(,)stringoperator(\)) ident(values) operator(=) ident(values)operator(.)ident(split)operator(()stringoperator(\)) ident(update_cols) operator(=) operator([)operator(]) ident(values)operator(.)ident(each_index) operator({) operator(|)ident(index)operator(|) ident(update_cols) operator(<<) ident(cols)operator([)ident(index)operator(]) reserved(if) ident(values)operator([)ident(index)operator(]) operator(=)operator(~) regexp operator(}) ident(update_sql) operator(=) stringcontent( SET)delimiter(")> ident(update_cols)operator(.)ident(each) operator({) operator(|)ident(col)operator(|) ident(update_sql) operator(<<) stringcontent(=NULL,)delimiter(")> reserved(unless) ident(col)operator(.)ident(empty?) operator(}) ident(update_sql)operator(.)ident(chop!)operator(()operator(\)) ident(update_sql) operator(<<) stringcontent(=)inlinedelimiter(")> ident(execute)operator(()ident(update_sql)operator(,) ident(name) operator(+) stringoperator(\)) reserved(if) ident(update_cols)operator(.)ident(size) operator(>) integer(0) reserved(end) reserved(end) reserved(end) reserved(end) comment(# oracle_adapter.rb -- ActiveRecord adapter for Oracle 8i, 9i, 10g) comment(#) comment(# Original author: Graham Jenkins) comment(#) comment(# Current maintainer: Michael Schoen ) comment(#) comment(#########################################################################) comment(#) comment(# Implementation notes:) comment(# 1. Redefines (safely\) a method in ActiveRecord to make it possible to) comment(# implement an autonumbering solution for Oracle.) comment(# 2. The OCI8 driver is patched to properly handle values for LONG and) comment(# TIMESTAMP columns. The driver-author has indicated that a future) comment(# release of the driver will obviate this patch.) comment(# 3. LOB support is implemented through an after_save callback.) comment(# 4. Oracle does not offer native LIMIT and OFFSET options; this) comment(# functionality is mimiced through the use of nested selects.) comment(# See http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:127412348064) comment(#) comment(# Do what you want with this code, at your own peril, but if any) comment(# significant portion of my code remains then please acknowledge my) comment(# contribution.) comment(# portions Copyright 2005 Graham Jenkins) ident(require) string ident(require) string reserved(begin) ident(require_library_or_gem) string reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(const_defined?) symbol(:OCI8) reserved(module) class(ActiveRecord) reserved(class) class(Base) reserved(def) pre_constant(self)operator(.)method(oracle_connection)operator(()ident(config)operator(\)) comment(#:nodoc:) comment(# Use OCI8AutoRecover instead of normal OCI8 driver.) constant(ConnectionAdapters)operator(::)constant(OracleAdapter)operator(.)ident(new) constant(OCI8AutoRecover)operator(.)ident(new)operator(()ident(config)operator(\))operator(,) ident(logger) reserved(end) comment(# for backwards-compatibility) reserved(def) pre_constant(self)operator(.)method(oci_connection)operator(()ident(config)operator(\)) comment(#:nodoc:) ident(config)operator([)symbol(:database)operator(]) operator(=) ident(config)operator([)symbol(:host)operator(]) pre_constant(self)operator(.)ident(oracle_connection)operator(()ident(config)operator(\)) reserved(end) comment(# Enable the id column to be bound into the sql later, by the adapter's insert method.) comment(# This is preferable to inserting the hard-coded value here, because the insert method) comment(# needs to know the id value explicitly.) reserved(alias) symbol(:attributes_with_quotes_pre_oracle) symbol(:attributes_with_quotes) reserved(def) method(attributes_with_quotes)operator(()ident(include_primary_key) operator(=) pre_constant(true)operator(\)) comment(#:nodoc:) ident(aq) operator(=) ident(attributes_with_quotes_pre_oracle)operator(()ident(include_primary_key)operator(\)) reserved(if) ident(connection)operator(.)ident(class) operator(==) constant(ConnectionAdapters)operator(::)constant(OracleAdapter) ident(aq)operator([)pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(]) operator(=) string reserved(if) ident(include_primary_key) operator(&&) ident(aq)operator([)pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)operator(])operator(.)ident(nil?) reserved(end) ident(aq) reserved(end) comment(# After setting large objects to empty, select the OCI8::LOB) comment(# and write back the data.) ident(after_save) symbol(:write_lobs) reserved(def) method(write_lobs)operator(()operator(\)) comment(#:nodoc:) reserved(if) ident(connection)operator(.)ident(is_a?)operator(()constant(ConnectionAdapters)operator(::)constant(OracleAdapter)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(columns)operator(.)ident(select) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(type) operator(==) symbol(:binary) operator(})operator(.)ident(each) operator({) operator(|)ident(c)operator(|) ident(value) operator(=) pre_constant(self)operator([)ident(c)operator(.)ident(name)operator(]) reserved(next) reserved(if) ident(value)operator(.)ident(nil?) operator(||) operator(()ident(value) operator(==) stringoperator(\)) ident(lob) operator(=) ident(connection)operator(.)ident(select_one)operator(() stringcontent( FROM )inlinecontent( WHERE )inlinecontent( = )inlinedelimiter(")>operator(,) stringoperator(\))operator([)ident(c)operator(.)ident(name)operator(]) ident(lob)operator(.)ident(write) ident(value) operator(}) reserved(end) reserved(end) ident(private) symbol(:write_lobs) reserved(end) reserved(module) class(ConnectionAdapters) comment(#:nodoc:) reserved(class) class(OracleColumn) operator(<) constant(Column) comment(#:nodoc:) ident(attr_reader) symbol(:sql_type) comment(# overridden to add the concept of scale, required to differentiate) comment(# between integer and float fields) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(default)operator(,) ident(sql_type)operator(,) ident(limit)operator(,) ident(scale)operator(,) ident(null)operator(\)) instance_variable(@name)operator(,) instance_variable(@limit)operator(,) instance_variable(@sql_type)operator(,) instance_variable(@scale)operator(,) instance_variable(@null) operator(=) ident(name)operator(,) ident(limit)operator(,) ident(sql_type)operator(,) ident(scale)operator(,) ident(null) instance_variable(@type) operator(=) ident(simplified_type)operator(()ident(sql_type)operator(\)) instance_variable(@default) operator(=) ident(type_cast)operator(()ident(default)operator(\)) instance_variable(@primary) operator(=) pre_constant(nil) instance_variable(@text) operator(=) operator([)symbol(:string)operator(,) symbol(:text)operator(])operator(.)ident(include?) instance_variable(@type) instance_variable(@number) operator(=) operator([)symbol(:float)operator(,) symbol(:integer)operator(])operator(.)ident(include?) instance_variable(@type) reserved(end) reserved(def) method(type_cast)operator(()ident(value)operator(\)) reserved(return) pre_constant(nil) reserved(if) ident(value)operator(.)ident(nil?) operator(||) ident(value) operator(=)operator(~) regexp reserved(case) ident(type) reserved(when) symbol(:string) reserved(then) ident(value) reserved(when) symbol(:integer) reserved(then) reserved(defined?)operator(()ident(value)operator(.)ident(to_i)operator(\)) operator(?) ident(value)operator(.)ident(to_i) operator(:) operator(()ident(value) operator(?) integer(1) operator(:) integer(0)operator(\)) reserved(when) symbol(:float) reserved(then) ident(value)operator(.)ident(to_f) reserved(when) symbol(:datetime) reserved(then) ident(cast_to_date_or_time)operator(()ident(value)operator(\)) reserved(when) symbol(:time) reserved(then) ident(cast_to_time)operator(()ident(value)operator(\)) reserved(else) ident(value) reserved(end) reserved(end) ident(private) reserved(def) method(simplified_type)operator(()ident(field_type)operator(\)) reserved(case) ident(field_type) reserved(when) regexp operator(:) symbol(:string) reserved(when) regexp operator(:) instance_variable(@scale) operator(==) integer(0) operator(?) symbol(:integer) operator(:) symbol(:float) reserved(when) regexp operator(:) instance_variable(@name) operator(=)operator(~) regexp operator(?) symbol(:time) operator(:) symbol(:datetime) reserved(when) regexp operator(:) symbol(:text) reserved(when) regexp operator(:) symbol(:binary) reserved(end) reserved(end) reserved(def) method(cast_to_date_or_time)operator(()ident(value)operator(\)) reserved(return) ident(value) reserved(if) ident(value)operator(.)ident(is_a?) constant(Date) reserved(return) pre_constant(nil) reserved(if) ident(value)operator(.)ident(blank?) ident(guess_date_or_time) operator(()ident(value)operator(.)ident(is_a?) constant(Time)operator(\)) operator(?) ident(value) operator(:) ident(cast_to_time)operator(()ident(value)operator(\)) reserved(end) reserved(def) method(cast_to_time)operator(()ident(value)operator(\)) reserved(return) ident(value) reserved(if) ident(value)operator(.)ident(is_a?) constant(Time) ident(time_array) operator(=) constant(ParseDate)operator(.)ident(parsedate) ident(value) ident(time_array)operator([)integer(0)operator(]) operator(||=) integer(2000)operator(;) ident(time_array)operator([)integer(1)operator(]) operator(||=) integer(1)operator(;) ident(time_array)operator([)integer(2)operator(]) operator(||=) integer(1)operator(;) constant(Time)operator(.)ident(send)operator(()constant(Base)operator(.)ident(default_timezone)operator(,) operator(*)ident(time_array)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(guess_date_or_time)operator(()ident(value)operator(\)) operator(()ident(value)operator(.)ident(hour) operator(==) integer(0) reserved(and) ident(value)operator(.)ident(min) operator(==) integer(0) reserved(and) ident(value)operator(.)ident(sec) operator(==) integer(0)operator(\)) operator(?) constant(Date)operator(.)ident(new)operator(()ident(value)operator(.)ident(year)operator(,) ident(value)operator(.)ident(month)operator(,) ident(value)operator(.)ident(day)operator(\)) operator(:) ident(value) reserved(end) reserved(end) comment(# This is an Oracle/OCI adapter for the ActiveRecord persistence) comment(# framework. It relies upon the OCI8 driver, which works with Oracle 8i) comment(# and above. Most recent development has been on Debian Linux against) comment(# a 10g database, ActiveRecord 1.12.1 and OCI8 0.1.13.) comment(# See: http://rubyforge.org/projects/ruby-oci8/) comment(#) comment(# Usage notes:) comment(# * Key generation assumes a "${table_name}_seq" sequence is available) comment(# for all tables; the sequence name can be changed using) comment(# ActiveRecord::Base.set_sequence_name. When using Migrations, these) comment(# sequences are created automatically.) comment(# * Oracle uses DATE or TIMESTAMP datatypes for both dates and times.) comment(# Consequently some hacks are employed to map data back to Date or Time) comment(# in Ruby. If the column_name ends in _time it's created as a Ruby Time.) comment(# Else if the hours/minutes/seconds are 0, I make it a Ruby Date. Else) comment(# it's a Ruby Time. This is a bit nasty - but if you use Duck Typing) comment(# you'll probably not care very much. In 9i and up it's tempting to) comment(# map DATE to Date and TIMESTAMP to Time, but too many databases use) comment(# DATE for both. Timezones and sub-second precision on timestamps are) comment(# not supported.) comment(# * Default values that are functions (such as "SYSDATE"\) are not) comment(# supported. This is a restriction of the way ActiveRecord supports) comment(# default values.) comment(# * Support for Oracle8 is limited by Rails' use of ANSI join syntax, which) comment(# is supported in Oracle9i and later. You will need to use #finder_sql for) comment(# has_and_belongs_to_many associations to run against Oracle8.) comment(#) comment(# Required parameters:) comment(#) comment(# * :username) comment(# * :password) comment(# * :database) reserved(class) class(OracleAdapter) operator(<) constant(AbstractAdapter) reserved(def) method(adapter_name) comment(#:nodoc:) string reserved(end) reserved(def) method(supports_migrations?) comment(#:nodoc:) pre_constant(true) reserved(end) reserved(def) method(native_database_types) comment(#:nodoc) operator({) symbol(:primary_key) operator(=)operator(>) stringoperator(,) symbol(:string) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(255) operator(})operator(,) symbol(:text) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:integer) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(38) operator(})operator(,) symbol(:float) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:datetime) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:timestamp) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:time) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:date) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:binary) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:boolean) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(1) operator(}) operator(}) reserved(end) reserved(def) method(table_alias_length) integer(30) reserved(end) comment(# QUOTING ==================================================) comment(#) comment(# see: abstract/quoting.rb) comment(# camelCase column names need to be quoted; not that anyone using Oracle) comment(# would really do this, but handling this case means we pass the test...) reserved(def) method(quote_column_name)operator(()ident(name)operator(\)) comment(#:nodoc:) ident(name) operator(=)operator(~) regexp operator(?) stringchar(\\")delimiter(")> operator(:) ident(name) reserved(end) reserved(def) method(quote_string)operator(()ident(string)operator(\)) comment(#:nodoc:) ident(string)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) method(quote)operator(()ident(value)operator(,) ident(column) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) reserved(if) ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:binary) string inline_delimiter(})>content((\))delimiter(})> reserved(else) reserved(case) ident(value) reserved(when) constant(String) operator(:) stringcontent(')delimiter(})> reserved(when) constant(NilClass) operator(:) string reserved(when) constant(TrueClass) operator(:) string reserved(when) constant(FalseClass) operator(:) string reserved(when) constant(Numeric) operator(:) ident(value)operator(.)ident(to_s) reserved(when) constant(Date)operator(,) constant(Time) operator(:) stringoperator(\))inline_delimiter(})>content(')delimiter(})> reserved(else) stringcontent(')delimiter(})> reserved(end) reserved(end) reserved(end) comment(# CONNECTION MANAGEMENT ====================================) comment(#) comment(# Returns true if the connection is active.) reserved(def) method(active?) comment(# Pings the connection to check if it's still good. Note that an) comment(# #active? method is also available, but that simply returns the ) comment(# last known state, which isn't good enough if the connection has) comment(# gone stale since the last use.) instance_variable(@connection)operator(.)ident(ping) reserved(rescue) constant(OCIException) pre_constant(false) reserved(end) comment(# Reconnects to the database.) reserved(def) method(reconnect!) instance_variable(@connection)operator(.)ident(reset!) reserved(rescue) constant(OCIException) operator(=)operator(>) ident(e) instance_variable(@logger)operator(.)ident(warn) stringcontent( automatic reconnection failed: )inlinedelimiter(")> reserved(end) comment(# Disconnects from the database.) reserved(def) method(disconnect!) instance_variable(@connection)operator(.)ident(logoff) reserved(rescue) pre_constant(nil) instance_variable(@connection)operator(.)ident(active) operator(=) pre_constant(false) reserved(end) comment(# DATABASE STATEMENTS ======================================) comment(#) comment(# see: abstract/database_statements.rb) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(result) operator(=) ident(select_all)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(result)operator(.)ident(size) operator(>) integer(0) operator(?) ident(result)operator(.)ident(first) operator(:) pre_constant(nil) reserved(end) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(exec) ident(sql) operator(}) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) reserved(if) ident(pk)operator(.)ident(nil?) comment(# Who called us? What does the sql look like? No idea!) ident(execute) ident(sql)operator(,) ident(name) reserved(elsif) ident(id_value) comment(# Pre-assigned id) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(exec) ident(sql) operator(}) reserved(else) comment(# Assume the sql contains a bind-variable for the id) ident(id_value) operator(=) ident(select_one)operator(()stringcontent(.nextval id from dual)delimiter(")>operator(\))operator([)stringoperator(]) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(exec) ident(sql)operator(,) ident(id_value) operator(}) reserved(end) ident(id_value) reserved(end) reserved(alias) symbol(:update) symbol(:execute) comment(#:nodoc:) reserved(alias) symbol(:delete) symbol(:execute) comment(#:nodoc:) reserved(def) method(begin_db_transaction) comment(#:nodoc:) instance_variable(@connection)operator(.)ident(autocommit) operator(=) pre_constant(false) reserved(end) reserved(def) method(commit_db_transaction) comment(#:nodoc:) instance_variable(@connection)operator(.)ident(commit) reserved(ensure) instance_variable(@connection)operator(.)ident(autocommit) operator(=) pre_constant(true) reserved(end) reserved(def) method(rollback_db_transaction) comment(#:nodoc:) instance_variable(@connection)operator(.)ident(rollback) reserved(ensure) instance_variable(@connection)operator(.)ident(autocommit) operator(=) pre_constant(true) reserved(end) reserved(def) method(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) comment(#:nodoc:) ident(offset) operator(=) ident(options)operator([)symbol(:offset)operator(]) operator(||) integer(0) reserved(if) ident(limit) operator(=) ident(options)operator([)symbol(:limit)operator(]) ident(sql)operator(.)ident(replace) stringcontent(\) raw_sql_ where rownum <= )inlinecontent(\) where raw_rnum_ > )inlinedelimiter(")> reserved(elsif) ident(offset) operator(>) integer(0) ident(sql)operator(.)ident(replace) stringcontent(\) raw_sql_\) where raw_rnum_ > )inlinedelimiter(")> reserved(end) reserved(end) reserved(def) method(default_sequence_name)operator(()ident(table)operator(,) ident(column)operator(\)) comment(#:nodoc:) stringcontent(_seq)delimiter(")> reserved(end) comment(# SCHEMA STATEMENTS ========================================) comment(#) comment(# see: abstract/schema_statements.rb) reserved(def) method(current_database) comment(#:nodoc:) ident(select_one)operator(()stringoperator(\))operator([)stringoperator(]) reserved(end) reserved(def) method(tables)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(select_all)operator(()stringoperator(\))operator(.)ident(inject)operator(()operator([)operator(])operator(\)) reserved(do) operator(|) ident(tabs)operator(,) ident(t) operator(|) ident(tabs) operator(<<) ident(t)operator(.)ident(to_a)operator(.)ident(first)operator(.)ident(last) reserved(end) reserved(end) reserved(def) method(indexes)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(result) operator(=) ident(select_all)operator(()stringoperator(,) ident(name)operator(\))string ident(current_index) operator(=) pre_constant(nil) ident(indexes) operator(=) operator([)operator(]) ident(result)operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) reserved(if) ident(current_index) operator(!=) ident(row)operator([)stringoperator(]) ident(indexes) operator(<<) constant(IndexDefinition)operator(.)ident(new)operator(()ident(table_name)operator(,) ident(row)operator([)stringoperator(])operator(,) ident(row)operator([)stringoperator(]) operator(==) stringoperator(,) operator([)operator(])operator(\)) ident(current_index) operator(=) ident(row)operator([)stringoperator(]) reserved(end) ident(indexes)operator(.)ident(last)operator(.)ident(columns) operator(<<) ident(row)operator([)stringoperator(]) reserved(end) ident(indexes) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) operator(()ident(owner)operator(,) ident(table_name)operator(\)) operator(=) instance_variable(@connection)operator(.)ident(describe)operator(()ident(table_name)operator(\)) ident(table_cols) operator(=) string ident(select_all)operator(()ident(table_cols)operator(,) ident(name)operator(\))operator(.)ident(map) reserved(do) operator(|)ident(row)operator(|) reserved(if) ident(row)operator([)stringoperator(]) ident(row)operator([)stringoperator(])operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) ident(row)operator([)stringoperator(])operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) reserved(end) constant(OracleColumn)operator(.)ident(new)operator(() ident(oracle_downcase)operator(()ident(row)operator([)stringoperator(])operator(\))operator(,) ident(row)operator([)stringoperator(])operator(,) ident(row)operator([)stringoperator(])operator(,) operator(()ident(l) operator(=) ident(row)operator([)stringoperator(])operator(\))operator(.)ident(nil?) operator(?) pre_constant(nil) operator(:) ident(l)operator(.)ident(to_i)operator(,) operator(()ident(s) operator(=) ident(row)operator([)stringoperator(])operator(\))operator(.)ident(nil?) operator(?) pre_constant(nil) operator(:) ident(s)operator(.)ident(to_i)operator(,) ident(row)operator([)stringoperator(]) operator(==) string operator(\)) reserved(end) reserved(end) reserved(def) method(create_table)operator(()ident(name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) reserved(super)operator(()ident(name)operator(,) ident(options)operator(\)) ident(execute) stringcontent(_seq START WITH 10000)delimiter(")> reserved(unless) ident(options)operator([)symbol(:id)operator(]) operator(==) pre_constant(false) reserved(end) reserved(def) method(rename_table)operator(()ident(name)operator(,) ident(new_name)operator(\)) comment(#:nodoc:) ident(execute) stringcontent( TO )inlinedelimiter(")> ident(execute) stringcontent(_seq TO )inlinecontent(_seq)delimiter(")> reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(drop_table)operator(()ident(name)operator(\)) comment(#:nodoc:) reserved(super)operator(()ident(name)operator(\)) ident(execute) stringcontent(_seq)delimiter(")> reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(remove_index)operator(()ident(table_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(execute) stringdelimiter(")> reserved(end) reserved(def) method(change_column_default)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(default)operator(\)) comment(#:nodoc:) ident(execute) stringcontent( MODIFY )inlinecontent( DEFAULT )inlinedelimiter(")> reserved(end) reserved(def) method(change_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(change_column_sql) operator(=) stringcontent( MODIFY )inlinecontent( )inlinedelimiter(")> ident(add_column_options!)operator(()ident(change_column_sql)operator(,) ident(options)operator(\)) ident(execute)operator(()ident(change_column_sql)operator(\)) reserved(end) reserved(def) method(rename_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(new_column_name)operator(\)) comment(#:nodoc:) ident(execute) stringcontent( RENAME COLUMN )inlinecontent( to )inlinedelimiter(")> reserved(end) reserved(def) method(remove_column)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) comment(#:nodoc:) ident(execute) stringcontent( DROP COLUMN )inlinedelimiter(")> reserved(end) reserved(def) method(structure_dump) comment(#:nodoc:) ident(s) operator(=) ident(select_all)operator(()stringoperator(\))operator(.)ident(inject)operator(()stringoperator(\)) reserved(do) operator(|)ident(structure)operator(,) ident(seq)operator(|) ident(structure) operator(<<) stringcontent(;)char(\\n)char(\\n)delimiter(")> reserved(end) ident(select_all)operator(()stringoperator(\))operator(.)ident(inject)operator(()ident(s)operator(\)) reserved(do) operator(|)ident(structure)operator(,) ident(table)operator(|) ident(ddl) operator(=) stringcontent( ()char(\\n)content( )delimiter(")> ident(cols) operator(=) ident(select_all)operator(()stringoperator(\))operator(.)ident(map) reserved(do) operator(|)ident(row)operator(|) ident(col) operator(=) stringoperator(])operator(.)ident(downcase)inline_delimiter(})>content( )inlineoperator(])operator(.)ident(downcase)inline_delimiter(})>delimiter(")> reserved(if) ident(row)operator([)stringoperator(]) operator(==)string reserved(and) operator(!)ident(row)operator([)stringoperator(])operator(.)ident(nil?) ident(col) operator(<<) stringoperator(])operator(.)ident(to_i)inline_delimiter(})>delimiter(")> ident(col) operator(<<) stringoperator(])operator(.)ident(to_i)inline_delimiter(})>delimiter(")> reserved(if) operator(!)ident(row)operator([)stringoperator(])operator(.)ident(nil?) ident(col) operator(<<) string reserved(elsif) ident(row)operator([)stringoperator(])operator(.)ident(include?)operator(()stringoperator(\)) ident(col) operator(<<) stringoperator(])operator(.)ident(to_i)inline_delimiter(})>content(\))delimiter(")> reserved(end) ident(col) operator(<<) stringoperator(])inline_delimiter(})>delimiter(")> reserved(if) operator(!)ident(row)operator([)stringoperator(])operator(.)ident(nil?) ident(col) operator(<<) string reserved(if) ident(row)operator([)stringoperator(]) operator(==) string ident(col) reserved(end) ident(ddl) operator(<<) ident(cols)operator(.)ident(join)operator(()stringoperator(\)) ident(ddl) operator(<<) string ident(structure) operator(<<) ident(ddl) reserved(end) reserved(end) reserved(def) method(structure_drop) comment(#:nodoc:) ident(s) operator(=) ident(select_all)operator(()stringoperator(\))operator(.)ident(inject)operator(()stringoperator(\)) reserved(do) operator(|)ident(drop)operator(,) ident(seq)operator(|) ident(drop) operator(<<) stringcontent(;)char(\\n)char(\\n)delimiter(")> reserved(end) ident(select_all)operator(()stringoperator(\))operator(.)ident(inject)operator(()ident(s)operator(\)) reserved(do) operator(|)ident(drop)operator(,) ident(table)operator(|) ident(drop) operator(<<) stringcontent( cascade constraints;)char(\\n)char(\\n)delimiter(")> reserved(end) reserved(end) ident(private) reserved(def) method(select)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(cursor) operator(=) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(cols) operator(=) ident(cursor)operator(.)ident(get_col_names)operator(.)ident(map) operator({) operator(|)ident(x)operator(|) ident(oracle_downcase)operator(()ident(x)operator(\)) operator(}) ident(rows) operator(=) operator([)operator(]) reserved(while) ident(row) operator(=) ident(cursor)operator(.)ident(fetch) ident(hash) operator(=) constant(Hash)operator(.)ident(new) ident(cols)operator(.)ident(each_with_index) reserved(do) operator(|)ident(col)operator(,) ident(i)operator(|) ident(hash)operator([)ident(col)operator(]) operator(=) reserved(case) ident(row)operator([)ident(i)operator(]) reserved(when) constant(OCI8)operator(::)constant(LOB) ident(name) operator(==) string operator(?) ident(row)operator([)ident(i)operator(])operator(:) ident(row)operator([)ident(i)operator(])operator(.)ident(read) reserved(when) constant(OraDate) operator(()ident(row)operator([)ident(i)operator(])operator(.)ident(hour) operator(==) integer(0) reserved(and) ident(row)operator([)ident(i)operator(])operator(.)ident(minute) operator(==) integer(0) reserved(and) ident(row)operator([)ident(i)operator(])operator(.)ident(second) operator(==) integer(0)operator(\)) operator(?) ident(row)operator([)ident(i)operator(])operator(.)ident(to_date) operator(:) ident(row)operator([)ident(i)operator(])operator(.)ident(to_time) reserved(else) ident(row)operator([)ident(i)operator(]) reserved(end) reserved(unless) ident(col) operator(==) string reserved(end) ident(rows) operator(<<) ident(hash) reserved(end) ident(rows) reserved(ensure) ident(cursor)operator(.)ident(close) reserved(if) ident(cursor) reserved(end) comment(# Oracle column names by default are case-insensitive, but treated as upcase;) comment(# for neatness, we'll downcase within Rails. EXCEPT that folks CAN quote) comment(# their column names when creating Oracle tables, which makes then case-sensitive.) comment(# I don't know anybody who does this, but we'll handle the theoretical case of a) comment(# camelCase column name. I imagine other dbs handle this different, since there's a) comment(# unit test that's currently failing test_oci.) reserved(def) method(oracle_downcase)operator(()ident(column_name)operator(\)) ident(column_name) operator(=)operator(~) regexp operator(?) ident(column_name) operator(:) ident(column_name)operator(.)ident(downcase) reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(OCI8) comment(#:nodoc:) comment(# This OCI8 patch may not longer be required with the upcoming) comment(# release of version 0.2.) reserved(class) class(Cursor) comment(#:nodoc:) reserved(alias) symbol(:define_a_column_pre_ar) symbol(:define_a_column) reserved(def) method(define_a_column)operator(()ident(i)operator(\)) reserved(case) ident(do_ocicall)operator(()instance_variable(@ctx)operator(\)) operator({) instance_variable(@parms)operator([)ident(i) operator(-) integer(1)operator(])operator(.)ident(attrGet)operator(()constant(OCI_ATTR_DATA_TYPE)operator(\)) operator(}) reserved(when) integer(8) operator(:) instance_variable(@stmt)operator(.)ident(defineByPos)operator(()ident(i)operator(,) constant(String)operator(,) integer(65535)operator(\)) comment(# Read LONG values) reserved(when) integer(187) operator(:) instance_variable(@stmt)operator(.)ident(defineByPos)operator(()ident(i)operator(,) constant(OraDate)operator(\)) comment(# Read TIMESTAMP values) reserved(when) integer(108) reserved(if) instance_variable(@parms)operator([)ident(i) operator(-) integer(1)operator(])operator(.)ident(attrGet)operator(()constant(OCI_ATTR_TYPE_NAME)operator(\)) operator(==) string instance_variable(@stmt)operator(.)ident(defineByPos)operator(()ident(i)operator(,) constant(String)operator(,) integer(65535)operator(\)) reserved(else) ident(raise) string reserved(end) reserved(else) ident(define_a_column_pre_ar) ident(i) reserved(end) reserved(end) reserved(end) comment(# missing constant from oci8 < 0.1.14) constant(OCI_PTYPE_UNK) operator(=) integer(0) reserved(unless) reserved(defined?)operator(()constant(OCI_PTYPE_UNK)operator(\)) comment(# Uses the describeAny OCI call to find the target owner and table_name) comment(# indicated by +name+, parsing through synonynms as necessary. Returns) comment(# an array of [owner, table_name].) reserved(def) method(describe)operator(()ident(name)operator(\)) instance_variable(@desc) operator(||=) class_variable(@@env)operator(.)ident(alloc)operator(()constant(OCIDescribe)operator(\)) instance_variable(@desc)operator(.)ident(attrSet)operator(()constant(OCI_ATTR_DESC_PUBLIC)operator(,) integer(-1)operator(\)) reserved(if) constant(VERSION) operator(>)operator(=) string instance_variable(@desc)operator(.)ident(describeAny)operator(()instance_variable(@svc)operator(,) ident(name)operator(.)ident(to_s)operator(,) constant(OCI_PTYPE_UNK)operator(\)) ident(info) operator(=) instance_variable(@desc)operator(.)ident(attrGet)operator(()constant(OCI_ATTR_PARAM)operator(\)) reserved(case) ident(info)operator(.)ident(attrGet)operator(()constant(OCI_ATTR_PTYPE)operator(\)) reserved(when) constant(OCI_PTYPE_TABLE)operator(,) constant(OCI_PTYPE_VIEW) ident(owner) operator(=) ident(info)operator(.)ident(attrGet)operator(()constant(OCI_ATTR_OBJ_SCHEMA)operator(\)) ident(table_name) operator(=) ident(info)operator(.)ident(attrGet)operator(()constant(OCI_ATTR_OBJ_NAME)operator(\)) operator([)ident(owner)operator(,) ident(table_name)operator(]) reserved(when) constant(OCI_PTYPE_SYN) ident(schema) operator(=) ident(info)operator(.)ident(attrGet)operator(()constant(OCI_ATTR_SCHEMA_NAME)operator(\)) ident(name) operator(=) ident(info)operator(.)ident(attrGet)operator(()constant(OCI_ATTR_NAME)operator(\)) ident(describe)operator(()ident(schema) operator(+) string operator(+) ident(name)operator(\)) reserved(end) reserved(end) reserved(end) comment(# The OracleConnectionFactory factors out the code necessary to connect and) comment(# configure an Oracle/OCI connection.) reserved(class) class(OracleConnectionFactory) comment(#:nodoc:) reserved(def) method(new_connection)operator(()ident(username)operator(,) ident(password)operator(,) ident(database)operator(\)) ident(conn) operator(=) constant(OCI8)operator(.)ident(new) ident(username)operator(,) ident(password)operator(,) ident(database) ident(conn)operator(.)ident(exec) string ident(conn)operator(.)ident(exec) string reserved(rescue) pre_constant(nil) ident(conn)operator(.)ident(autocommit) operator(=) pre_constant(true) ident(conn) reserved(end) reserved(end) comment(# The OCI8AutoRecover class enhances the OCI8 driver with auto-recover and) comment(# reset functionality. If a call to #exec fails, and autocommit is turned on) comment(# (ie., we're not in the middle of a longer transaction\), it will ) comment(# automatically reconnect and try again. If autocommit is turned off,) comment(# this would be dangerous (as the earlier part of the implied transaction) comment(# may have failed silently if the connection died\) -- so instead the ) comment(# connection is marked as dead, to be reconnected on it's next use.) reserved(class) class(OCI8AutoRecover) operator(<) ident(DelegateClass)operator(()constant(OCI8)operator(\)) comment(#:nodoc:) ident(attr_accessor) symbol(:active) reserved(alias) symbol(:active?) symbol(:active) ident(cattr_accessor) symbol(:auto_retry) reserved(class) operator(<<) class(self) reserved(alias) symbol(:auto_retry?) symbol(:auto_retry) reserved(end) class_variable(@@auto_retry) operator(=) pre_constant(false) reserved(def) method(initialize)operator(()ident(config)operator(,) ident(factory) operator(=) constant(OracleConnectionFactory)operator(.)ident(new)operator(\)) instance_variable(@active) operator(=) pre_constant(true) instance_variable(@username)operator(,) instance_variable(@password)operator(,) instance_variable(@database) operator(=) ident(config)operator([)symbol(:username)operator(])operator(,) ident(config)operator([)symbol(:password)operator(])operator(,) ident(config)operator([)symbol(:database)operator(]) instance_variable(@factory) operator(=) ident(factory) instance_variable(@connection) operator(=) instance_variable(@factory)operator(.)ident(new_connection) instance_variable(@username)operator(,) instance_variable(@password)operator(,) instance_variable(@database) reserved(super) instance_variable(@connection) reserved(end) comment(# Checks connection, returns true if active. Note that ping actively) comment(# checks the connection, while #active? simply returns the last) comment(# known state.) reserved(def) method(ping) instance_variable(@connection)operator(.)ident(exec)operator(()stringoperator(\)) operator({) operator(|)ident(r)operator(|) pre_constant(nil) operator(}) instance_variable(@active) operator(=) pre_constant(true) reserved(rescue) instance_variable(@active) operator(=) pre_constant(false) ident(raise) reserved(end) comment(# Resets connection, by logging off and creating a new connection.) reserved(def) method(reset!) ident(logoff) reserved(rescue) pre_constant(nil) reserved(begin) instance_variable(@connection) operator(=) instance_variable(@factory)operator(.)ident(new_connection) instance_variable(@username)operator(,) instance_variable(@password)operator(,) instance_variable(@database) ident(__setobj__) instance_variable(@connection) instance_variable(@active) operator(=) pre_constant(true) reserved(rescue) instance_variable(@active) operator(=) pre_constant(false) ident(raise) reserved(end) reserved(end) comment(# ORA-00028: your session has been killed) comment(# ORA-01012: not logged on ) comment(# ORA-03113: end-of-file on communication channel) comment(# ORA-03114: not connected to ORACLE) constant(LOST_CONNECTION_ERROR_CODES) operator(=) operator([) integer(28)operator(,) integer(1012)operator(,) integer(3113)operator(,) integer(3114) operator(]) comment(# Adds auto-recovery functionality.) comment(#) comment(# See: http://www.jiubao.org/ruby-oci8/api.en.html#label-11) reserved(def) method(exec)operator(()ident(sql)operator(,) operator(*)ident(bindvars)operator(\)) ident(should_retry) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(auto_retry?) operator(&&) ident(autocommit?) reserved(begin) instance_variable(@connection)operator(.)ident(exec)operator(()ident(sql)operator(,) operator(*)ident(bindvars)operator(\)) reserved(rescue) constant(OCIException) operator(=)operator(>) ident(e) ident(raise) reserved(unless) constant(LOST_CONNECTION_ERROR_CODES)operator(.)ident(include?)operator(()ident(e)operator(.)ident(code)operator(\)) instance_variable(@active) operator(=) pre_constant(false) ident(raise) reserved(unless) ident(should_retry) ident(should_retry) operator(=) pre_constant(false) ident(reset!) reserved(rescue) pre_constant(nil) reserved(retry) reserved(end) reserved(end) reserved(end) reserved(rescue) constant(LoadError) comment(# OCI8 driver is unavailable.) reserved(module) class(ActiveRecord) comment(# :nodoc:) reserved(class) class(Base) reserved(def) pre_constant(self)operator(.)method(oracle_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) comment(# Set up a reasonable error message) ident(raise) constant(LoadError)operator(,) string reserved(end) reserved(def) pre_constant(self)operator(.)method(oci_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) comment(# Set up a reasonable error message) ident(raise) constant(LoadError)operator(,) string reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveRecord) reserved(class) class(Base) comment(# Establishes a connection to the database that's used by all Active Record objects) reserved(def) pre_constant(self)operator(.)method(postgresql_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) ident(require_library_or_gem) string reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(const_defined?)operator(()symbol(:PGconn)operator(\)) ident(config) operator(=) ident(config)operator(.)ident(symbolize_keys) ident(host) operator(=) ident(config)operator([)symbol(:host)operator(]) ident(port) operator(=) ident(config)operator([)symbol(:port)operator(]) operator(||) integer(5432) reserved(unless) ident(host)operator(.)ident(nil?) ident(username) operator(=) ident(config)operator([)symbol(:username)operator(])operator(.)ident(to_s) ident(password) operator(=) ident(config)operator([)symbol(:password)operator(])operator(.)ident(to_s) ident(min_messages) operator(=) ident(config)operator([)symbol(:min_messages)operator(]) reserved(if) ident(config)operator(.)ident(has_key?)operator(()symbol(:database)operator(\)) ident(database) operator(=) ident(config)operator([)symbol(:database)operator(]) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(pga) operator(=) constant(ConnectionAdapters)operator(::)constant(PostgreSQLAdapter)operator(.)ident(new)operator(() constant(PGconn)operator(.)ident(connect)operator(()ident(host)operator(,) ident(port)operator(,) stringoperator(,) stringoperator(,) ident(database)operator(,) ident(username)operator(,) ident(password)operator(\))operator(,) ident(logger)operator(,) ident(config) operator(\)) constant(PGconn)operator(.)ident(translate_results) operator(=) pre_constant(false) reserved(if) constant(PGconn)operator(.)ident(respond_to?) symbol(:translate_results=) ident(pga)operator(.)ident(schema_search_path) operator(=) ident(config)operator([)symbol(:schema_search_path)operator(]) operator(||) ident(config)operator([)symbol(:schema_order)operator(]) ident(pga) reserved(end) reserved(end) reserved(module) class(ConnectionAdapters) comment(# The PostgreSQL adapter works both with the C-based (http://www.postgresql.jp/interfaces/ruby/\) and the Ruby-base) comment(# (available both as gem and from http://rubyforge.org/frs/?group_id=234&release_id=1145\) drivers.) comment(#) comment(# Options:) comment(#) comment(# * :host -- Defaults to localhost) comment(# * :port -- Defaults to 5432) comment(# * :username -- Defaults to nothing) comment(# * :password -- Defaults to nothing) comment(# * :database -- The name of the database. No default, must be provided.) comment(# * :schema_search_path -- An optional schema search path for the connection given as a string of comma-separated schema names. This is backward-compatible with the :schema_order option.) comment(# * :encoding -- An optional client encoding that is using in a SET client_encoding TO call on connection.) comment(# * :min_messages -- An optional client min messages that is using in a SET client_min_messages TO call on connection.) reserved(class) class(PostgreSQLAdapter) operator(<) constant(AbstractAdapter) reserved(def) method(adapter_name) string reserved(end) reserved(def) method(initialize)operator(()ident(connection)operator(,) ident(logger)operator(,) ident(config) operator(=) operator({)operator(})operator(\)) reserved(super)operator(()ident(connection)operator(,) ident(logger)operator(\)) instance_variable(@config) operator(=) ident(config) ident(configure_connection) reserved(end) comment(# Is this connection alive and ready for queries?) reserved(def) method(active?) reserved(if) instance_variable(@connection)operator(.)ident(respond_to?)operator(()symbol(:status)operator(\)) instance_variable(@connection)operator(.)ident(status) operator(==) constant(PGconn)operator(::)constant(CONNECTION_OK) reserved(else) instance_variable(@connection)operator(.)ident(query) string pre_constant(true) reserved(end) comment(# postgres-pr raises a NoMethodError when querying if no conn is available) reserved(rescue) constant(PGError)operator(,) constant(NoMethodError) pre_constant(false) reserved(end) comment(# Close then reopen the connection.) reserved(def) method(reconnect!) comment(# TODO: postgres-pr doesn't have PGconn#reset.) reserved(if) instance_variable(@connection)operator(.)ident(respond_to?)operator(()symbol(:reset)operator(\)) instance_variable(@connection)operator(.)ident(reset) ident(configure_connection) reserved(end) reserved(end) reserved(def) method(disconnect!) comment(# Both postgres and postgres-pr respond to :close) instance_variable(@connection)operator(.)ident(close) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(native_database_types) operator({) symbol(:primary_key) operator(=)operator(>) stringoperator(,) symbol(:string) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(255) operator(})operator(,) symbol(:text) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:integer) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:float) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:datetime) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:timestamp) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:time) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:date) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:binary) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:boolean) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(}) operator(}) reserved(end) reserved(def) method(supports_migrations?) pre_constant(true) reserved(end) reserved(def) method(table_alias_length) integer(63) reserved(end) comment(# QUOTING ==================================================) reserved(def) method(quote)operator(()ident(value)operator(,) ident(column) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(value)operator(.)ident(kind_of?)operator(()constant(String)operator(\)) operator(&&) ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:binary) stringcontent(')delimiter(")> reserved(else) reserved(super) reserved(end) reserved(end) reserved(def) method(quote_column_name)operator(()ident(name)operator(\)) stringcontent(")delimiter(\))> reserved(end) comment(# DATABASE STATEMENTS ======================================) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(result) operator(=) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(result)operator(.)ident(first) reserved(if) ident(result) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(table) operator(=) ident(sql)operator(.)ident(split)operator(()stringoperator(,) integer(4)operator(\))operator([)integer(2)operator(]) ident(id_value) operator(||) ident(last_insert_id)operator(()ident(table)operator(,) ident(sequence_name) operator(||) ident(default_sequence_name)operator(()ident(table)operator(,) ident(pk)operator(\))operator(\)) reserved(end) reserved(def) method(query)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(query)operator(()ident(sql)operator(\)) operator(}) reserved(end) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(exec)operator(()ident(sql)operator(\)) operator(}) reserved(end) reserved(def) method(update)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\))operator(.)ident(cmdtuples) reserved(end) ident(alias_method) symbol(:delete)operator(,) symbol(:update) comment(#:nodoc:) reserved(def) method(begin_db_transaction) comment(#:nodoc:) ident(execute) string reserved(end) reserved(def) method(commit_db_transaction) comment(#:nodoc:) ident(execute) string reserved(end) reserved(def) method(rollback_db_transaction) comment(#:nodoc:) ident(execute) string reserved(end) comment(# SCHEMA STATEMENTS ========================================) comment(# Return the list of all tables in the schema search path.) reserved(def) method(tables)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(schemas) operator(=) ident(schema_search_path)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(map) operator({) operator(|)ident(p)operator(|) ident(quote)operator(()ident(p)operator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) ident(query)operator(()stringoperator(,) ident(name)operator(\))operator(.)ident(map) operator({) operator(|)ident(row)operator(|) ident(row)operator([)integer(0)operator(]) operator(})stringcontent(\))delimiter( SQL)> reserved(end) reserved(def) method(indexes)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(result) operator(=) ident(query)operator(()stringoperator(,) ident(name)operator(\))string ident(current_index) operator(=) pre_constant(nil) ident(indexes) operator(=) operator([)operator(]) ident(result)operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) reserved(if) ident(current_index) operator(!=) ident(row)operator([)integer(0)operator(]) ident(indexes) operator(<<) constant(IndexDefinition)operator(.)ident(new)operator(()ident(table_name)operator(,) ident(row)operator([)integer(0)operator(])operator(,) ident(row)operator([)integer(1)operator(]) operator(==) stringoperator(,) operator([)operator(])operator(\)) ident(current_index) operator(=) ident(row)operator([)integer(0)operator(]) reserved(end) ident(indexes)operator(.)ident(last)operator(.)ident(columns) operator(<<) ident(row)operator([)integer(2)operator(]) reserved(end) ident(indexes) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(column_definitions)operator(()ident(table_name)operator(\))operator(.)ident(collect) reserved(do) operator(|)ident(name)operator(,) ident(type)operator(,) ident(default)operator(,) ident(notnull)operator(|) constant(Column)operator(.)ident(new)operator(()ident(name)operator(,) ident(default_value)operator(()ident(default)operator(\))operator(,) ident(translate_field_type)operator(()ident(type)operator(\))operator(,) ident(notnull) operator(==) stringoperator(\)) reserved(end) reserved(end) comment(# Set the schema search path to a string of comma-separated schema names.) comment(# Names beginning with $ are quoted (e.g. $user => '$user'\)) comment(# See http://www.postgresql.org/docs/8.0/interactive/ddl-schemas.html) reserved(def) method(schema_search_path=)operator(()ident(schema_csv)operator(\)) comment(#:nodoc:) reserved(if) ident(schema_csv) ident(execute) stringdelimiter(")> instance_variable(@schema_search_path) operator(=) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(schema_search_path) comment(#:nodoc:) instance_variable(@schema_search_path) operator(||=) ident(query)operator(()stringoperator(\))operator([)integer(0)operator(])operator([)integer(0)operator(]) reserved(end) reserved(def) method(default_sequence_name)operator(()ident(table_name)operator(,) ident(pk) operator(=) pre_constant(nil)operator(\)) ident(default_pk)operator(,) ident(default_seq) operator(=) ident(pk_and_sequence_for)operator(()ident(table_name)operator(\)) ident(default_seq) operator(||) stringcontent(_)inlineinline_delimiter(})>content(_seq)delimiter(")> reserved(end) comment(# Resets sequence to the max value of the table's pk if present.) reserved(def) method(reset_pk_sequence!)operator(()ident(table)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(sequence) operator(=) pre_constant(nil)operator(\)) reserved(unless) ident(pk) reserved(and) ident(sequence) ident(default_pk)operator(,) ident(default_sequence) operator(=) ident(pk_and_sequence_for)operator(()ident(table)operator(\)) ident(pk) operator(||=) ident(default_pk) ident(sequence) operator(||=) ident(default_sequence) reserved(end) reserved(if) ident(pk) reserved(if) ident(sequence) ident(select_value) stringoperator(,) stringstringcontent(', (SELECT COALESCE(MAX()inlinecontent(\)+(SELECT increment_by FROM )inlinecontent(\), (SELECT min_value FROM )inlinecontent(\)\) FROM )inlinecontent(\), false\))delimiter( end_sql)> reserved(else) instance_variable(@logger)operator(.)ident(warn) stringcontent( has primary key )inlinecontent( with no default sequence)delimiter(")> reserved(if) instance_variable(@logger) reserved(end) reserved(end) reserved(end) comment(# Find a table's primary key and sequence.) reserved(def) method(pk_and_sequence_for)operator(()ident(table)operator(\)) comment(# First try looking for a sequence with a dependency on the) comment(# given table's primary key.) ident(result) operator(=) ident(execute)operator(()stringoperator(,) stringoperator(\))operator([)integer(0)operator(])string reserved(if) ident(result)operator(.)ident(nil?) reserved(or) ident(result)operator(.)ident(empty?) comment(# If that fails, try parsing the primary key's default value.) comment(# Support the 7.x and 8.0 nextval('foo'::text\) as well as) comment(# the 8.1+ nextval('foo'::regclass\).) comment(# TODO: assumes sequence is in same schema as table.) ident(result) operator(=) ident(execute)operator(()stringoperator(,) stringoperator(\))operator([)integer(0)operator(])string reserved(end) comment(# check for existence of . in sequence name as in public.foo_sequence. if it does not exist, join the current namespace) ident(result)operator(.)ident(last)operator([)stringoperator(]) operator(?) operator([)ident(result)operator(.)ident(first)operator(,) ident(result)operator(.)ident(last)operator(]) operator(:) operator([)ident(result)operator(.)ident(first)operator(,) stringcontent(.)inlinedelimiter(")>operator(]) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(rename_table)operator(()ident(name)operator(,) ident(new_name)operator(\)) ident(execute) stringcontent( RENAME TO )inlinedelimiter(")> reserved(end) reserved(def) method(add_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(execute)operator(()stringcontent( ADD )inlinecontent( )inlinedelimiter(")>operator(\)) ident(execute)operator(()stringcontent( ALTER )inlinecontent( SET NOT NULL)delimiter(")>operator(\)) reserved(if) ident(options)operator([)symbol(:null)operator(]) operator(==) pre_constant(false) ident(change_column_default)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(options)operator([)symbol(:default)operator(])operator(\)) reserved(unless) ident(options)operator([)symbol(:default)operator(])operator(.)ident(nil?) reserved(end) reserved(def) method(change_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) reserved(begin) ident(execute) stringcontent( ALTER )inlinecontent( TYPE )inlinedelimiter(")> reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid) comment(# This is PG7, so we use a more arcane way of doing it.) ident(begin_db_transaction) ident(add_column)operator(()ident(table_name)operator(,) stringcontent(_ar_tmp)delimiter(")>operator(,) ident(type)operator(,) ident(options)operator(\)) ident(execute) stringcontent( SET )inlinecontent(_ar_tmp = CAST()inlinecontent( AS )inlinecontent(\))delimiter(")> ident(remove_column)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(rename_column)operator(()ident(table_name)operator(,) stringcontent(_ar_tmp)delimiter(")>operator(,) ident(column_name)operator(\)) ident(commit_db_transaction) reserved(end) ident(change_column_default)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(options)operator([)symbol(:default)operator(])operator(\)) reserved(unless) ident(options)operator([)symbol(:default)operator(])operator(.)ident(nil?) reserved(end) reserved(def) method(change_column_default)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(default)operator(\)) comment(#:nodoc:) ident(execute) stringcontent( ALTER COLUMN )inlinecontent( SET DEFAULT ')inlinecontent(')delimiter(")> reserved(end) reserved(def) method(rename_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(new_column_name)operator(\)) comment(#:nodoc:) ident(execute) stringcontent( RENAME COLUMN )inlinecontent( TO )inlinedelimiter(")> reserved(end) reserved(def) method(remove_index)operator(()ident(table_name)operator(,) ident(options)operator(\)) comment(#:nodoc:) ident(execute) stringdelimiter(")> reserved(end) ident(private) constant(BYTEA_COLUMN_TYPE_OID) operator(=) integer(17) constant(TIMESTAMPOID) operator(=) integer(1114) constant(TIMESTAMPTZOID) operator(=) integer(1184) reserved(def) method(configure_connection) reserved(if) instance_variable(@config)operator([)symbol(:encoding)operator(]) ident(execute)operator(()stringcontent(')delimiter(")>operator(\)) reserved(end) reserved(if) instance_variable(@config)operator([)symbol(:min_messages)operator(]) ident(execute)operator(()stringcontent(')delimiter(")>operator(\)) reserved(end) reserved(end) reserved(def) method(last_insert_id)operator(()ident(table)operator(,) ident(sequence_name)operator(\)) ident(Integer)operator(()ident(select_value)operator(()stringcontent('\))delimiter(")>operator(\))operator(\)) reserved(end) reserved(def) method(select)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(res) operator(=) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(results) operator(=) ident(res)operator(.)ident(result) ident(rows) operator(=) operator([)operator(]) reserved(if) ident(results)operator(.)ident(length) operator(>) integer(0) ident(fields) operator(=) ident(res)operator(.)ident(fields) ident(results)operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) ident(hashed_row) operator(=) operator({)operator(}) ident(row)operator(.)ident(each_index) reserved(do) operator(|)ident(cel_index)operator(|) ident(column) operator(=) ident(row)operator([)ident(cel_index)operator(]) reserved(case) ident(res)operator(.)ident(type)operator(()ident(cel_index)operator(\)) reserved(when) constant(BYTEA_COLUMN_TYPE_OID) ident(column) operator(=) ident(unescape_bytea)operator(()ident(column)operator(\)) reserved(when) constant(TIMESTAMPTZOID)operator(,) constant(TIMESTAMPOID) ident(column) operator(=) ident(cast_to_time)operator(()ident(column)operator(\)) reserved(end) ident(hashed_row)operator([)ident(fields)operator([)ident(cel_index)operator(])operator(]) operator(=) ident(column) reserved(end) ident(rows) operator(<<) ident(hashed_row) reserved(end) reserved(end) reserved(return) ident(rows) reserved(end) reserved(def) method(escape_bytea)operator(()ident(s)operator(\)) reserved(if) constant(PGconn)operator(.)ident(respond_to?) symbol(:escape_bytea) pre_constant(self)operator(.)ident(class)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:escape_bytea)operator(\)) reserved(do) operator(|)ident(s)operator(|) constant(PGconn)operator(.)ident(escape_bytea)operator(()ident(s)operator(\)) reserved(if) ident(s) reserved(end) reserved(else) pre_constant(self)operator(.)ident(class)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:escape_bytea)operator(\)) reserved(do) operator(|)ident(s)operator(|) reserved(if) ident(s) ident(result) operator(=) string ident(s)operator(.)ident(each_byte) operator({) operator(|)ident(c)operator(|) ident(result) operator(<<) ident(sprintf)operator(()stringoperator(,) ident(c)operator(\)) operator(}) ident(result) reserved(end) reserved(end) reserved(end) ident(escape_bytea)operator(()ident(s)operator(\)) reserved(end) reserved(def) method(unescape_bytea)operator(()ident(s)operator(\)) reserved(if) constant(PGconn)operator(.)ident(respond_to?) symbol(:unescape_bytea) pre_constant(self)operator(.)ident(class)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:unescape_bytea)operator(\)) reserved(do) operator(|)ident(s)operator(|) constant(PGconn)operator(.)ident(unescape_bytea)operator(()ident(s)operator(\)) reserved(if) ident(s) reserved(end) reserved(else) pre_constant(self)operator(.)ident(class)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:unescape_bytea)operator(\)) reserved(do) operator(|)ident(s)operator(|) reserved(if) ident(s) ident(result) operator(=) string ident(i)operator(,) ident(max) operator(=) integer(0)operator(,) ident(s)operator(.)ident(size) reserved(while) ident(i) operator(<) ident(max) ident(char) operator(=) ident(s)operator([)ident(i)operator(]) reserved(if) ident(char) operator(==) integer(?\\\\) reserved(if) ident(s)operator([)ident(i)operator(+)integer(1)operator(]) operator(==) integer(?\\\\) ident(char) operator(=) integer(?\\\\) ident(i) operator(+=) integer(1) reserved(else) ident(char) operator(=) ident(s)operator([)ident(i)operator(+)integer(1)operator(..)ident(i)operator(+)integer(3)operator(])operator(.)ident(oct) ident(i) operator(+=) integer(3) reserved(end) reserved(end) ident(result) operator(<<) ident(char) ident(i) operator(+=) integer(1) reserved(end) ident(result) reserved(end) reserved(end) reserved(end) ident(unescape_bytea)operator(()ident(s)operator(\)) reserved(end) comment(# Query a table's column names, default values, and types.) comment(#) comment(# The underlying query is roughly:) comment(# SELECT column.name, column.type, default.value) comment(# FROM column LEFT JOIN default) comment(# ON column.table_id = default.table_id) comment(# AND column.num = default.column_num) comment(# WHERE column.table_id = get_table_id('table_name'\)) comment(# AND column.num > 0) comment(# AND NOT column.is_dropped) comment(# ORDER BY column.num) comment(#) comment(# If the table name is not prefixed with a schema, the database will) comment(# take the first match from the schema search path.) comment(#) comment(# Query implementation notes:) comment(# - format_type includes the column size constraint, e.g. varchar(50\)) comment(# - ::regclass is a function that gives the id for a table name) reserved(def) method(column_definitions)operator(()ident(table_name)operator(\)) ident(query) stringstring 0 AND NOT a.attisdropped ORDER BY a.attnum)delimiter( end_sql)> reserved(end) comment(# Translate PostgreSQL-specific types into simplified SQL types.) comment(# These are special cases; standard types are handled by) comment(# ConnectionAdapters::Column#simplified_type.) reserved(def) method(translate_field_type)operator(()ident(field_type)operator(\)) comment(# Match the beginning of field_type since it may have a size constraint on the end.) reserved(case) ident(field_type) reserved(when) regexp reserved(then) string reserved(when) regexp reserved(then) string reserved(when) regexp reserved(then) string comment(# geometric types (the line type is currently not implemented in postgresql\)) reserved(when) regexp reserved(then) string reserved(when) regexp reserved(then) string reserved(else) ident(field_type) comment(# Pass through standard types.) reserved(end) reserved(end) reserved(def) method(default_value)operator(()ident(value)operator(\)) comment(# Boolean types) reserved(return) string reserved(if) ident(value) operator(=)operator(~) regexp reserved(return) string reserved(if) ident(value) operator(=)operator(~) regexp comment(# Char/String/Bytea type values) reserved(return) global_variable($1) reserved(if) ident(value) operator(=)operator(~) regexp comment(# Numeric values) reserved(return) ident(value) reserved(if) ident(value) operator(=)operator(~) regexp comment(# Fixed dates / times) reserved(return) global_variable($1) reserved(if) ident(value) operator(=)operator(~) regexp comment(# Anything else is blank, some user type, or some function) comment(# and we can't know the value of that, so return nil.) reserved(return) pre_constant(nil) reserved(end) comment(# Only needed for DateTime instances) reserved(def) method(cast_to_time)operator(()ident(value)operator(\)) reserved(return) ident(value) reserved(unless) ident(value)operator(.)ident(class) operator(==) constant(DateTime) ident(v) operator(=) ident(value) ident(time_array) operator(=) operator([)ident(v)operator(.)ident(year)operator(,) ident(v)operator(.)ident(month)operator(,) ident(v)operator(.)ident(day)operator(,) ident(v)operator(.)ident(hour)operator(,) ident(v)operator(.)ident(min)operator(,) ident(v)operator(.)ident(sec)operator(]) constant(Time)operator(.)ident(send)operator(()constant(Base)operator(.)ident(default_timezone)operator(,) operator(*)ident(time_array)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Author: Luke Holden ) comment(# Updated for SQLite3: Jamis Buck ) ident(require) string reserved(module) class(ActiveRecord) reserved(class) class(Base) reserved(class) operator(<<) class(self) comment(# sqlite3 adapter reuses sqlite_connection.) reserved(def) method(sqlite3_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) ident(parse_config!)operator(()ident(config)operator(\)) reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(const_defined?)operator(()symbol(:SQLite3)operator(\)) ident(require_library_or_gem)operator(()ident(config)operator([)symbol(:adapter)operator(])operator(\)) reserved(end) ident(db) operator(=) constant(SQLite3)operator(::)constant(Database)operator(.)ident(new)operator(() ident(config)operator([)symbol(:database)operator(])operator(,) symbol(:results_as_hash) operator(=)operator(>) pre_constant(true)operator(,) symbol(:type_translation) operator(=)operator(>) pre_constant(false) operator(\)) constant(ConnectionAdapters)operator(::)constant(SQLiteAdapter)operator(.)ident(new)operator(()ident(db)operator(,) ident(logger)operator(\)) reserved(end) comment(# Establishes a connection to the database that's used by all Active Record objects) reserved(def) method(sqlite_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) ident(parse_config!)operator(()ident(config)operator(\)) reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(const_defined?)operator(()symbol(:SQLite)operator(\)) ident(require_library_or_gem)operator(()ident(config)operator([)symbol(:adapter)operator(])operator(\)) ident(db) operator(=) constant(SQLite)operator(::)constant(Database)operator(.)ident(new)operator(()ident(config)operator([)symbol(:database)operator(])operator(,) integer(0)operator(\)) ident(db)operator(.)ident(show_datatypes) operator(=) string reserved(if) operator(!)reserved(defined?) constant(SQLite)operator(::)constant(Version) ident(db)operator(.)ident(results_as_hash) operator(=) pre_constant(true) reserved(if) reserved(defined?) constant(SQLite)operator(::)constant(Version) ident(db)operator(.)ident(type_translation) operator(=) pre_constant(false) comment(# "Downgrade" deprecated sqlite API) reserved(if) constant(SQLite)operator(.)ident(const_defined?)operator(()symbol(:Version)operator(\)) constant(ConnectionAdapters)operator(::)constant(SQLite2Adapter)operator(.)ident(new)operator(()ident(db)operator(,) ident(logger)operator(\)) reserved(else) constant(ConnectionAdapters)operator(::)constant(DeprecatedSQLiteAdapter)operator(.)ident(new)operator(()ident(db)operator(,) ident(logger)operator(\)) reserved(end) reserved(end) reserved(end) ident(private) reserved(def) method(parse_config!)operator(()ident(config)operator(\)) ident(config)operator([)symbol(:database)operator(]) operator(||=) ident(config)operator([)symbol(:dbfile)operator(]) comment(# Require database.) reserved(unless) ident(config)operator([)symbol(:database)operator(]) ident(raise) constant(ArgumentError)operator(,) string reserved(end) comment(# Allow database path relative to RAILS_ROOT, but only if) comment(# the database path is not the special path that tells) comment(# Sqlite build a database only in memory.) reserved(if) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:RAILS_ROOT)operator(\)) operator(&&) string operator(!=) ident(config)operator([)symbol(:database)operator(]) ident(config)operator([)symbol(:database)operator(]) operator(=) constant(File)operator(.)ident(expand_path)operator(()ident(config)operator([)symbol(:database)operator(])operator(,) constant(RAILS_ROOT)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ConnectionAdapters) comment(#:nodoc:) reserved(class) class(SQLiteColumn) operator(<) constant(Column) comment(#:nodoc:) reserved(class) operator(<<) class(self) reserved(def) method(string_to_binary)operator(()ident(value)operator(\)) ident(value)operator(.)ident(gsub)operator(()regexpoperator(\)) reserved(do) operator(|)ident(b)operator(|) reserved(case) ident(b) reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(end) reserved(end) reserved(end) reserved(def) method(binary_to_string)operator(()ident(value)operator(\)) ident(value)operator(.)ident(gsub)operator(()regexpoperator(\)) reserved(do) operator(|)ident(b)operator(|) reserved(case) ident(b) reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) comment(# The SQLite adapter works with both the 2.x and 3.x series of SQLite with the sqlite-ruby drivers (available both as gems and) comment(# from http://rubyforge.org/projects/sqlite-ruby/\).) comment(#) comment(# Options:) comment(#) comment(# * :database -- Path to the database file.) reserved(class) class(SQLiteAdapter) operator(<) constant(AbstractAdapter) reserved(def) method(adapter_name) comment(#:nodoc:) string reserved(end) reserved(def) method(supports_migrations?) comment(#:nodoc:) pre_constant(true) reserved(end) reserved(def) method(supports_count_distinct?) comment(#:nodoc:) pre_constant(false) reserved(end) reserved(def) method(native_database_types) comment(#:nodoc:) operator({) symbol(:primary_key) operator(=)operator(>) stringoperator(,) symbol(:string) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(255) operator(})operator(,) symbol(:text) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:integer) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:float) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:datetime) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:timestamp) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:time) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:date) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:binary) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:boolean) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(}) operator(}) reserved(end) comment(# QUOTING ==================================================) reserved(def) method(quote_string)operator(()ident(s)operator(\)) comment(#:nodoc:) instance_variable(@connection)operator(.)ident(class)operator(.)ident(quote)operator(()ident(s)operator(\)) reserved(end) reserved(def) method(quote_column_name)operator(()ident(name)operator(\)) comment(#:nodoc:) stringcontent(")delimiter(\))> reserved(end) comment(# DATABASE STATEMENTS ======================================) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(catch_schema_changes) operator({) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(execute)operator(()ident(sql)operator(\)) operator(}) operator(}) reserved(end) reserved(def) method(update)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) instance_variable(@connection)operator(.)ident(changes) reserved(end) reserved(def) method(delete)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(sql) operator(+=) string reserved(unless) ident(sql) operator(=)operator(~) regexp ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) instance_variable(@connection)operator(.)ident(changes) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(id_value) operator(||) instance_variable(@connection)operator(.)ident(last_insert_row_id) reserved(end) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\))operator(.)ident(map) reserved(do) operator(|)ident(row)operator(|) ident(record) operator(=) operator({)operator(}) ident(row)operator(.)ident(each_key) reserved(do) operator(|)ident(key)operator(|) reserved(if) ident(key)operator(.)ident(is_a?)operator(()constant(String)operator(\)) ident(record)operator([)ident(key)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\))operator(]) operator(=) ident(row)operator([)ident(key)operator(]) reserved(end) reserved(end) ident(record) reserved(end) reserved(end) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(result) operator(=) ident(select_all)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(result)operator(.)ident(nil?) operator(?) pre_constant(nil) operator(:) ident(result)operator(.)ident(first) reserved(end) reserved(def) method(begin_db_transaction) comment(#:nodoc:) ident(catch_schema_changes) operator({) instance_variable(@connection)operator(.)ident(transaction) operator(}) reserved(end) reserved(def) method(commit_db_transaction) comment(#:nodoc:) ident(catch_schema_changes) operator({) instance_variable(@connection)operator(.)ident(commit) operator(}) reserved(end) reserved(def) method(rollback_db_transaction) comment(#:nodoc:) ident(catch_schema_changes) operator({) instance_variable(@connection)operator(.)ident(rollback) operator(}) reserved(end) comment(# SCHEMA STATEMENTS ========================================) reserved(def) method(tables)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()stringoperator(,) ident(name)operator(\))operator(.)ident(map) reserved(do) operator(|)ident(row)operator(|) ident(row)operator([)integer(0)operator(]) reserved(end) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(table_structure)operator(()ident(table_name)operator(\))operator(.)ident(map) reserved(do) operator(|)ident(field)operator(|) constant(SQLiteColumn)operator(.)ident(new)operator(()ident(field)operator([)stringoperator(])operator(,) ident(field)operator([)stringoperator(])operator(,) ident(field)operator([)stringoperator(])operator(,) ident(field)operator([)stringoperator(]) operator(==) stringoperator(\)) reserved(end) reserved(end) reserved(def) method(indexes)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(execute)operator(()stringcontent(\))delimiter(")>operator(,) ident(name)operator(\))operator(.)ident(map) reserved(do) operator(|)ident(row)operator(|) ident(index) operator(=) constant(IndexDefinition)operator(.)ident(new)operator(()ident(table_name)operator(,) ident(row)operator([)stringoperator(])operator(\)) ident(index)operator(.)ident(unique) operator(=) ident(row)operator([)stringoperator(]) operator(!=) string ident(index)operator(.)ident(columns) operator(=) ident(execute)operator(()stringcontent('\))delimiter(")>operator(\))operator(.)ident(map) operator({) operator(|)ident(col)operator(|) ident(col)operator([)stringoperator(]) operator(}) ident(index) reserved(end) reserved(end) reserved(def) method(primary_key)operator(()ident(table_name)operator(\)) comment(#:nodoc:) ident(column) operator(=) ident(table_structure)operator(()ident(table_name)operator(\))operator(.)ident(find) operator({)operator(|)ident(field)operator(|) ident(field)operator([)stringoperator(])operator(.)ident(to_i) operator(==) integer(1)operator(}) ident(column) operator(?) ident(column)operator([)stringoperator(]) operator(:) pre_constant(nil) reserved(end) reserved(def) method(remove_index)operator(()ident(table_name)operator(,) ident(options)operator(=)operator({)operator(})operator(\)) comment(#:nodoc:) ident(execute) stringdelimiter(")> reserved(end) reserved(def) method(rename_table)operator(()ident(name)operator(,) ident(new_name)operator(\)) ident(move_table)operator(()ident(name)operator(,) ident(new_name)operator(\)) reserved(end) reserved(def) method(add_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(alter_table)operator(()ident(table_name)operator(\)) reserved(do) operator(|)ident(definition)operator(|) ident(definition)operator(.)ident(column)operator(()ident(column_name)operator(,) ident(type)operator(,) ident(options)operator(\)) reserved(end) reserved(end) reserved(def) method(remove_column)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) comment(#:nodoc:) ident(alter_table)operator(()ident(table_name)operator(\)) reserved(do) operator(|)ident(definition)operator(|) ident(definition)operator(.)ident(columns)operator(.)ident(delete)operator(()ident(definition)operator([)ident(column_name)operator(])operator(\)) reserved(end) reserved(end) reserved(def) method(change_column_default)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(default)operator(\)) comment(#:nodoc:) ident(alter_table)operator(()ident(table_name)operator(\)) reserved(do) operator(|)ident(definition)operator(|) ident(definition)operator([)ident(column_name)operator(])operator(.)ident(default) operator(=) ident(default) reserved(end) reserved(end) reserved(def) method(change_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(alter_table)operator(()ident(table_name)operator(\)) reserved(do) operator(|)ident(definition)operator(|) ident(definition)operator([)ident(column_name)operator(])operator(.)ident(instance_eval) reserved(do) pre_constant(self)operator(.)ident(type) operator(=) ident(type) pre_constant(self)operator(.)ident(limit) operator(=) ident(options)operator([)symbol(:limit)operator(]) reserved(if) ident(options)operator([)symbol(:limit)operator(]) pre_constant(self)operator(.)ident(default) operator(=) ident(options)operator([)symbol(:default)operator(]) reserved(if) ident(options)operator([)symbol(:default)operator(]) reserved(end) reserved(end) reserved(end) reserved(def) method(rename_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(new_column_name)operator(\)) comment(#:nodoc:) ident(alter_table)operator(()ident(table_name)operator(,) symbol(:rename) operator(=)operator(>) operator({)ident(column_name) operator(=)operator(>) ident(new_column_name)operator(})operator(\)) reserved(end) ident(protected) reserved(def) method(table_structure)operator(()ident(table_name)operator(\)) ident(returning) ident(structure) operator(=) ident(execute)operator(()stringcontent(\))delimiter(")>operator(\)) reserved(do) ident(raise) constant(ActiveRecord)operator(::)constant(StatementInvalid) reserved(if) ident(structure)operator(.)ident(empty?) reserved(end) reserved(end) reserved(def) method(alter_table)operator(()ident(table_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(altered_table_name) operator(=) stringdelimiter(")> ident(caller) operator(=) ident(lambda) operator({)operator(|)ident(definition)operator(|) reserved(yield) ident(definition) reserved(if) ident(block_given?)operator(}) ident(transaction) reserved(do) ident(move_table)operator(()ident(table_name)operator(,) ident(altered_table_name)operator(,) ident(options)operator(.)ident(merge)operator(()symbol(:temporary) operator(=)operator(>) pre_constant(true)operator(\))operator(\)) ident(move_table)operator(()ident(altered_table_name)operator(,) ident(table_name)operator(,) operator(&)ident(caller)operator(\)) reserved(end) reserved(end) reserved(def) method(move_table)operator(()ident(from)operator(,) ident(to)operator(,) ident(options) operator(=) operator({)operator(})operator(,) operator(&)ident(block)operator(\)) comment(#:nodoc:) ident(copy_table)operator(()ident(from)operator(,) ident(to)operator(,) ident(options)operator(,) operator(&)ident(block)operator(\)) ident(drop_table)operator(()ident(from)operator(\)) reserved(end) reserved(def) method(copy_table)operator(()ident(from)operator(,) ident(to)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(create_table)operator(()ident(to)operator(,) ident(options)operator(\)) reserved(do) operator(|)instance_variable(@definition)operator(|) ident(columns)operator(()ident(from)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(column)operator(|) ident(column_name) operator(=) ident(options)operator([)symbol(:rename)operator(]) operator(?) operator(()ident(options)operator([)symbol(:rename)operator(])operator([)ident(column)operator(.)ident(name)operator(]) operator(||) ident(options)operator([)symbol(:rename)operator(])operator([)ident(column)operator(.)ident(name)operator(.)ident(to_sym)operator(]) operator(||) ident(column)operator(.)ident(name)operator(\)) operator(:) ident(column)operator(.)ident(name) instance_variable(@definition)operator(.)ident(column)operator(()ident(column_name)operator(,) ident(column)operator(.)ident(type)operator(,) symbol(:limit) operator(=)operator(>) ident(column)operator(.)ident(limit)operator(,) symbol(:default) operator(=)operator(>) ident(column)operator(.)ident(default)operator(,) symbol(:null) operator(=)operator(>) ident(column)operator(.)ident(null)operator(\)) reserved(end) instance_variable(@definition)operator(.)ident(primary_key)operator(()ident(primary_key)operator(()ident(from)operator(\))operator(\)) reserved(yield) instance_variable(@definition) reserved(if) ident(block_given?) reserved(end) ident(copy_table_indexes)operator(()ident(from)operator(,) ident(to)operator(\)) ident(copy_table_contents)operator(()ident(from)operator(,) ident(to)operator(,) instance_variable(@definition)operator(.)ident(columns)operator(.)ident(map) operator({)operator(|)ident(column)operator(|) ident(column)operator(.)ident(name)operator(})operator(,) ident(options)operator([)symbol(:rename)operator(]) operator(||) operator({)operator(})operator(\)) reserved(end) reserved(def) method(copy_table_indexes)operator(()ident(from)operator(,) ident(to)operator(\)) comment(#:nodoc:) ident(indexes)operator(()ident(from)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(index)operator(|) ident(name) operator(=) ident(index)operator(.)ident(name) reserved(if) ident(to) operator(==) stringdelimiter(")> ident(name) operator(=) stringdelimiter(")> reserved(elsif) ident(from) operator(==) stringdelimiter(")> ident(name) operator(=) ident(name)operator([)integer(5)operator(..)integer(-1)operator(]) reserved(end) ident(opts) operator(=) operator({) symbol(:name) operator(=)operator(>) ident(name) operator(}) ident(opts)operator([)symbol(:unique)operator(]) operator(=) pre_constant(true) reserved(if) ident(index)operator(.)ident(unique) ident(add_index)operator(()ident(to)operator(,) ident(index)operator(.)ident(columns)operator(,) ident(opts)operator(\)) reserved(end) reserved(end) reserved(def) method(copy_table_contents)operator(()ident(from)operator(,) ident(to)operator(,) ident(columns)operator(,) ident(rename) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(column_mappings) operator(=) constant(Hash)operator([)operator(*)ident(columns)operator(.)ident(map) operator({)operator(|)ident(name)operator(|) operator([)ident(name)operator(,) ident(name)operator(])operator(})operator(.)ident(flatten)operator(]) ident(rename)operator(.)ident(inject)operator(()ident(column_mappings)operator(\)) operator({)operator(|)ident(map)operator(,) ident(a)operator(|) ident(map)operator([)ident(a)operator(.)ident(last)operator(]) operator(=) ident(a)operator(.)ident(first)operator(;) ident(map)operator(}) instance_variable(@connection)operator(.)ident(execute) stringdelimiter(")> reserved(do) operator(|)ident(row)operator(|) ident(sql) operator(=) stringcontent( VALUES ()delimiter(")> ident(sql) operator(<<) ident(columns)operator(.)ident(map) operator({)operator(|)ident(col)operator(|) ident(quote) ident(row)operator([)ident(column_mappings)operator([)ident(col)operator(])operator(])operator(}) operator(*) string ident(sql) operator(<<) string instance_variable(@connection)operator(.)ident(execute) ident(sql) reserved(end) reserved(end) reserved(def) method(catch_schema_changes) reserved(return) reserved(yield) reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid) operator(=)operator(>) ident(exception) reserved(if) ident(exception)operator(.)ident(message) operator(=)operator(~) regexp ident(reconnect!) reserved(retry) reserved(else) ident(raise) reserved(end) reserved(end) reserved(end) reserved(class) class(SQLite2Adapter) operator(<) constant(SQLiteAdapter) comment(# :nodoc:) comment(# SQLite 2 does not support COUNT(DISTINCT\) queries:) comment(#) comment(# select COUNT(DISTINCT ArtistID\) from CDs; ) comment(#) comment(# In order to get the number of artists we execute the following statement) comment(# ) comment(# SELECT COUNT(ArtistID\) FROM (SELECT DISTINCT ArtistID FROM CDs\);) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) reserved(super)operator(()ident(rewrite_count_distinct_queries)operator(()ident(sql)operator(\))operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(rewrite_count_distinct_queries)operator(()ident(sql)operator(\)) reserved(if) ident(sql) operator(=)operator(~) regexp ident(distinct_column) operator(=) global_variable($1) ident(distinct_query) operator(=) global_variable($3) ident(column_name) operator(=) ident(distinct_column)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last) stringcontent(\) FROM (SELECT DISTINCT )inlinecontent( )inlinecontent(\))delimiter(")> reserved(else) ident(sql) reserved(end) reserved(end) reserved(end) reserved(class) class(DeprecatedSQLiteAdapter) operator(<) constant(SQLite2Adapter) comment(# :nodoc:) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(\)) ident(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(id_value) operator(||) instance_variable(@connection)operator(.)ident(last_insert_rowid) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string comment(# sqlserver_adapter.rb -- ActiveRecord adapter for Microsoft SQL Server) comment(#) comment(# Author: Joey Gibson ) comment(# Date: 10/14/2004) comment(#) comment(# Modifications: DeLynn Berry ) comment(# Date: 3/22/2005) comment(#) comment(# Modifications (ODBC\): Mark Imbriaco ) comment(# Date: 6/26/2005) comment(#) comment(# Current maintainer: Ryan Tomayko ) comment(#) comment(# Modifications (Migrations\): Tom Ward ) comment(# Date: 27/10/2005) comment(#) reserved(module) class(ActiveRecord) reserved(class) class(Base) reserved(def) pre_constant(self)operator(.)method(sqlserver_connection)operator(()ident(config)operator(\)) comment(#:nodoc:) ident(require_library_or_gem) string reserved(unless) pre_constant(self)operator(.)ident(class)operator(.)ident(const_defined?)operator(()symbol(:DBI)operator(\)) ident(config) operator(=) ident(config)operator(.)ident(symbolize_keys) ident(mode) operator(=) ident(config)operator([)symbol(:mode)operator(]) operator(?) ident(config)operator([)symbol(:mode)operator(])operator(.)ident(to_s)operator(.)ident(upcase) operator(:) string ident(username) operator(=) ident(config)operator([)symbol(:username)operator(]) operator(?) ident(config)operator([)symbol(:username)operator(])operator(.)ident(to_s) operator(:) string ident(password) operator(=) ident(config)operator([)symbol(:password)operator(]) operator(?) ident(config)operator([)symbol(:password)operator(])operator(.)ident(to_s) operator(:) string ident(autocommit) operator(=) ident(config)operator(.)ident(key?)operator(()symbol(:autocommit)operator(\)) operator(?) ident(config)operator([)symbol(:autocommit)operator(]) operator(:) pre_constant(true) reserved(if) ident(mode) operator(==) string ident(raise) constant(ArgumentError)operator(,) string reserved(unless) ident(config)operator(.)ident(has_key?)operator(()symbol(:dsn)operator(\)) ident(dsn) operator(=) ident(config)operator([)symbol(:dsn)operator(]) ident(driver_url) operator(=) stringdelimiter(")> reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(unless) ident(config)operator(.)ident(has_key?)operator(()symbol(:database)operator(\)) ident(database) operator(=) ident(config)operator([)symbol(:database)operator(]) ident(host) operator(=) ident(config)operator([)symbol(:host)operator(]) operator(?) ident(config)operator([)symbol(:host)operator(])operator(.)ident(to_s) operator(:) string ident(driver_url) operator(=) stringcontent(;Initial Catalog=)inlinecontent(;User Id=)inlinecontent(;Password=)inlinecontent(;)delimiter(")> reserved(end) ident(conn) operator(=) constant(DBI)operator(.)ident(connect)operator(()ident(driver_url)operator(,) ident(username)operator(,) ident(password)operator(\)) ident(conn)operator([)stringoperator(]) operator(=) ident(autocommit) constant(ConnectionAdapters)operator(::)constant(SQLServerAdapter)operator(.)ident(new)operator(()ident(conn)operator(,) ident(logger)operator(,) operator([)ident(driver_url)operator(,) ident(username)operator(,) ident(password)operator(])operator(\)) reserved(end) reserved(end) comment(# class Base) reserved(module) class(ConnectionAdapters) reserved(class) class(ColumnWithIdentity) operator(<) constant(Column)comment(# :nodoc:) ident(attr_reader) symbol(:identity)operator(,) symbol(:is_special)operator(,) symbol(:scale) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(default)operator(,) ident(sql_type) operator(=) pre_constant(nil)operator(,) ident(is_identity) operator(=) pre_constant(false)operator(,) ident(null) operator(=) pre_constant(true)operator(,) ident(scale_value) operator(=) integer(0)operator(\)) reserved(super)operator(()ident(name)operator(,) ident(default)operator(,) ident(sql_type)operator(,) ident(null)operator(\)) instance_variable(@identity) operator(=) ident(is_identity) instance_variable(@is_special) operator(=) ident(sql_type) operator(=)operator(~) regexp operator(?) pre_constant(true) operator(:) pre_constant(false) instance_variable(@scale) operator(=) ident(scale_value) comment(# SQL Server only supports limits on *char and float types) instance_variable(@limit) operator(=) pre_constant(nil) reserved(unless) instance_variable(@type) operator(==) symbol(:float) reserved(or) instance_variable(@type) operator(==) symbol(:string) reserved(end) reserved(def) method(simplified_type)operator(()ident(field_type)operator(\)) reserved(case) ident(field_type) reserved(when) regexp reserved(then) symbol(:integer) reserved(when) regexp reserved(then) instance_variable(@scale) operator(==) integer(0) operator(?) symbol(:integer) operator(:) symbol(:float) reserved(when) regexp reserved(then) symbol(:datetime) reserved(when) regexp reserved(then) symbol(:timestamp) reserved(when) regexp reserved(then) symbol(:time) reserved(when) regexp reserved(then) symbol(:text) reserved(when) regexp reserved(then) symbol(:binary) reserved(when) regexp reserved(then) symbol(:string) reserved(when) regexp reserved(then) symbol(:boolean) reserved(when) regexp reserved(then) symbol(:string) reserved(end) reserved(end) reserved(def) method(type_cast)operator(()ident(value)operator(\)) reserved(return) pre_constant(nil) reserved(if) ident(value)operator(.)ident(nil?) operator(||) ident(value) operator(=)operator(~) regexp reserved(case) ident(type) reserved(when) symbol(:string) reserved(then) ident(value) reserved(when) symbol(:integer) reserved(then) ident(value) operator(==) pre_constant(true) operator(||) ident(value) operator(==) pre_constant(false) operator(?) ident(value) operator(==) pre_constant(true) operator(?) integer(1) operator(:) integer(0) operator(:) ident(value)operator(.)ident(to_i) reserved(when) symbol(:float) reserved(then) ident(value)operator(.)ident(to_f) reserved(when) symbol(:datetime) reserved(then) ident(cast_to_datetime)operator(()ident(value)operator(\)) reserved(when) symbol(:timestamp) reserved(then) ident(cast_to_time)operator(()ident(value)operator(\)) reserved(when) symbol(:time) reserved(then) ident(cast_to_time)operator(()ident(value)operator(\)) reserved(when) symbol(:date) reserved(then) ident(cast_to_datetime)operator(()ident(value)operator(\)) reserved(when) symbol(:boolean) reserved(then) ident(value) operator(==) pre_constant(true) reserved(or) operator(()ident(value) operator(=)operator(~) regexpoperator(\)) operator(==) integer(0) reserved(or) ident(value)operator(.)ident(to_s) operator(==) string reserved(else) ident(value) reserved(end) reserved(end) reserved(def) method(cast_to_time)operator(()ident(value)operator(\)) reserved(return) ident(value) reserved(if) ident(value)operator(.)ident(is_a?)operator(()constant(Time)operator(\)) ident(time_array) operator(=) constant(ParseDate)operator(.)ident(parsedate)operator(()ident(value)operator(\)) ident(time_array)operator([)integer(0)operator(]) operator(||=) integer(2000) ident(time_array)operator([)integer(1)operator(]) operator(||=) integer(1) ident(time_array)operator([)integer(2)operator(]) operator(||=) integer(1) constant(Time)operator(.)ident(send)operator(()constant(Base)operator(.)ident(default_timezone)operator(,) operator(*)ident(time_array)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(cast_to_datetime)operator(()ident(value)operator(\)) reserved(if) ident(value)operator(.)ident(is_a?)operator(()constant(Time)operator(\)) reserved(if) ident(value)operator(.)ident(year) operator(!=) integer(0) reserved(and) ident(value)operator(.)ident(month) operator(!=) integer(0) reserved(and) ident(value)operator(.)ident(day) operator(!=) integer(0) reserved(return) ident(value) reserved(else) reserved(return) constant(Time)operator(.)ident(mktime)operator(()integer(2000)operator(,) integer(1)operator(,) integer(1)operator(,) ident(value)operator(.)ident(hour)operator(,) ident(value)operator(.)ident(min)operator(,) ident(value)operator(.)ident(sec)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(return) ident(cast_to_time)operator(()ident(value)operator(\)) reserved(if) ident(value)operator(.)ident(is_a?)operator(()constant(Date)operator(\)) reserved(or) ident(value)operator(.)ident(is_a?)operator(()constant(String)operator(\)) reserved(rescue) pre_constant(nil) ident(value) reserved(end) comment(# These methods will only allow the adapter to insert binary data with a length of 7K or less) comment(# because of a SQL Server statement length policy.) reserved(def) pre_constant(self)operator(.)method(string_to_binary)operator(()ident(value)operator(\)) ident(value)operator(.)ident(gsub)operator(()regexpoperator(\)) reserved(do) reserved(case) global_variable($1) reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(end) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(binary_to_string)operator(()ident(value)operator(\)) ident(value)operator(.)ident(gsub)operator(()regexpoperator(\)) reserved(do) reserved(case) global_variable($1) reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(end) reserved(end) reserved(end) reserved(end) comment(# In ADO mode, this adapter will ONLY work on Windows systems, ) comment(# since it relies on Win32OLE, which, to my knowledge, is only ) comment(# available on Windows.) comment(#) comment(# This mode also relies on the ADO support in the DBI module. If you are using the) comment(# one-click installer of Ruby, then you already have DBI installed, but) comment(# the ADO module is *NOT* installed. You will need to get the latest) comment(# source distribution of Ruby-DBI from http://ruby-dbi.sourceforge.net/) comment(# unzip it, and copy the file ) comment(# src/lib/dbd_ado/ADO.rb ) comment(# to) comment(# X:/Ruby/lib/ruby/site_ruby/1.8/DBD/ADO/ADO.rb ) comment(# (you will more than likely need to create the ADO directory\).) comment(# Once you've installed that file, you are ready to go.) comment(#) comment(# In ODBC mode, the adapter requires the ODBC support in the DBI module which requires) comment(# the Ruby ODBC module. Ruby ODBC 0.996 was used in development and testing,) comment(# and it is available at http://www.ch-werner.de/rubyodbc/) comment(#) comment(# Options:) comment(#) comment(# * :mode -- ADO or ODBC. Defaults to ADO.) comment(# * :username -- Defaults to sa.) comment(# * :password -- Defaults to empty string.) comment(#) comment(# ADO specific options:) comment(#) comment(# * :host -- Defaults to localhost.) comment(# * :database -- The name of the database. No default, must be provided.) comment(#) comment(# ODBC specific options: ) comment(#) comment(# * :dsn -- Defaults to nothing.) comment(#) comment(# ADO code tested on Windows 2000 and higher systems,) comment(# running ruby 1.8.2 (2004-07-29\) [i386-mswin32], and SQL Server 2000 SP3.) comment(#) comment(# ODBC code tested on a Fedora Core 4 system, running FreeTDS 0.63, ) comment(# unixODBC 2.2.11, Ruby ODBC 0.996, Ruby DBI 0.0.23 and Ruby 1.8.2.) comment(# [Linux strongmad 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 i686 i386 GNU/Linux]) reserved(class) class(SQLServerAdapter) operator(<) constant(AbstractAdapter) reserved(def) method(initialize)operator(()ident(connection)operator(,) ident(logger)operator(,) ident(connection_options)operator(=)pre_constant(nil)operator(\)) reserved(super)operator(()ident(connection)operator(,) ident(logger)operator(\)) instance_variable(@connection_options) operator(=) ident(connection_options) reserved(end) reserved(def) method(native_database_types) operator({) symbol(:primary_key) operator(=)operator(>) stringoperator(,) symbol(:string) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(255) operator(})operator(,) symbol(:text) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:integer) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:float) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(8) operator(})operator(,) symbol(:datetime) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:timestamp) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:time) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:date) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:binary) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(})operator(,) symbol(:boolean) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(}) operator(}) reserved(end) reserved(def) method(adapter_name) string reserved(end) reserved(def) method(supports_migrations?) comment(#:nodoc:) pre_constant(true) reserved(end) comment(# CONNECTION MANAGEMENT ====================================#) comment(# Returns true if the connection is active.) reserved(def) method(active?) instance_variable(@connection)operator(.)ident(execute)operator(()stringoperator(\)) operator({) operator(}) pre_constant(true) reserved(rescue) constant(DBI)operator(::)constant(DatabaseError)operator(,) constant(DBI)operator(::)constant(InterfaceError) pre_constant(false) reserved(end) comment(# Reconnects to the database, returns false if no connection could be made.) reserved(def) method(reconnect!) ident(disconnect!) instance_variable(@connection) operator(=) constant(DBI)operator(.)ident(connect)operator(()operator(*)instance_variable(@connection_options)operator(\)) reserved(rescue) constant(DBI)operator(::)constant(DatabaseError) operator(=)operator(>) ident(e) instance_variable(@logger)operator(.)ident(warn) stringcontent( reconnection failed: )inlinedelimiter(")> reserved(if) instance_variable(@logger) pre_constant(false) reserved(end) comment(# Disconnects from the database) reserved(def) method(disconnect!) instance_variable(@connection)operator(.)ident(disconnect) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(add_limit!)operator(()ident(sql)operator(,) symbol(:limit) operator(=)operator(>) integer(1)operator(\)) ident(result) operator(=) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(result)operator(.)ident(nil?) operator(?) pre_constant(nil) operator(:) ident(result)operator(.)ident(first) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) reserved(return) operator([)operator(]) reserved(if) ident(table_name)operator(.)ident(blank?) ident(table_name) operator(=) ident(table_name)operator(.)ident(to_s) reserved(if) ident(table_name)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) ident(table_name) operator(=) ident(table_name)operator(.)ident(split)operator(()stringoperator(\))operator([)integer(-1)operator(]) reserved(unless) ident(table_name)operator(.)ident(nil?) ident(sql) operator(=) stringcontent(', COLUMN_NAME\) as Length, COLUMNPROPERTY(OBJECT_ID(')inlinecontent('\), COLUMN_NAME, 'IsIdentity'\) as IsIdentity, NUMERIC_SCALE as Scale FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ')inlinecontent(')delimiter(")> comment(# Comment out if you want to have the Columns select statment logged.) comment(# Personally, I think it adds unnecessary bloat to the log. ) comment(# If you do comment it out, make sure to un-comment the "result" line that follows) ident(result) operator(=) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(select_all)operator(()ident(sql)operator(\)) operator(}) comment(#result = @connection.select_all(sql\)) ident(columns) operator(=) operator([)operator(]) ident(result)operator(.)ident(each) reserved(do) operator(|)ident(field)operator(|) ident(default) operator(=) ident(field)operator([)symbol(:DefaultValue)operator(])operator(.)ident(to_s)operator(.)ident(gsub!)operator(()regexpoperator(,)stringoperator(\)) operator(=)operator(~) regexp operator(?) pre_constant(nil) operator(:) ident(field)operator([)symbol(:DefaultValue)operator(]) ident(type) operator(=) stringcontent(()inlinecontent(\))delimiter(")> ident(is_identity) operator(=) ident(field)operator([)symbol(:IsIdentity)operator(]) operator(==) integer(1) ident(is_nullable) operator(=) ident(field)operator([)symbol(:IsNullable)operator(]) operator(==) string ident(columns) operator(<<) constant(ColumnWithIdentity)operator(.)ident(new)operator(()ident(field)operator([)symbol(:ColName)operator(])operator(,) ident(default)operator(,) ident(type)operator(,) ident(is_identity)operator(,) ident(is_nullable)operator(,) ident(field)operator([)symbol(:Scale)operator(])operator(\)) reserved(end) ident(columns) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) reserved(begin) ident(table_name) operator(=) ident(get_table_name)operator(()ident(sql)operator(\)) ident(col) operator(=) ident(get_identity_column)operator(()ident(table_name)operator(\)) ident(ii_enabled) operator(=) pre_constant(false) reserved(if) ident(col) operator(!=) pre_constant(nil) reserved(if) ident(query_contains_identity_column)operator(()ident(sql)operator(,) ident(col)operator(\)) reserved(begin) ident(execute) ident(enable_identity_insert)operator(()ident(table_name)operator(,) pre_constant(true)operator(\)) ident(ii_enabled) operator(=) pre_constant(true) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(raise) constant(ActiveRecordError)operator(,) string reserved(end) reserved(end) reserved(end) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(do) instance_variable(@connection)operator(.)ident(execute)operator(()ident(sql)operator(\)) ident(id_value) operator(||) ident(select_one)operator(()stringoperator(\))operator([)stringoperator(]) reserved(end) reserved(ensure) reserved(if) ident(ii_enabled) reserved(begin) ident(execute) ident(enable_identity_insert)operator(()ident(table_name)operator(,) pre_constant(false)operator(\)) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(raise) constant(ActiveRecordError)operator(,) string reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(sql) operator(=)operator(~) regexp ident(insert)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(elsif) ident(sql) operator(=)operator(~) regexp ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(do) instance_variable(@connection)operator(.)ident(execute)operator(()ident(sql)operator(\)) ident(retVal) operator(=) ident(select_one)operator(()stringoperator(\))operator([)stringoperator(]) reserved(end) reserved(else) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) operator({) instance_variable(@connection)operator(.)ident(execute)operator(()ident(sql)operator(\)) operator(}) reserved(end) reserved(end) reserved(def) method(update)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) ident(alias_method) symbol(:delete)operator(,) symbol(:update) reserved(def) method(begin_db_transaction) instance_variable(@connection)operator([)stringoperator(]) operator(=) pre_constant(false) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) instance_variable(@connection)operator([)stringoperator(]) operator(=) pre_constant(true) reserved(end) reserved(def) method(commit_db_transaction) instance_variable(@connection)operator(.)ident(commit) reserved(ensure) instance_variable(@connection)operator([)stringoperator(]) operator(=) pre_constant(true) reserved(end) reserved(def) method(rollback_db_transaction) instance_variable(@connection)operator(.)ident(rollback) reserved(ensure) instance_variable(@connection)operator([)stringoperator(]) operator(=) pre_constant(true) reserved(end) reserved(def) method(quote)operator(()ident(value)operator(,) ident(column) operator(=) pre_constant(nil)operator(\)) reserved(case) ident(value) reserved(when) constant(String) reserved(if) ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:binary) operator(&&) ident(column)operator(.)ident(class)operator(.)ident(respond_to?)operator(()symbol(:string_to_binary)operator(\)) stringcontent(')delimiter(")> reserved(else) stringcontent(')delimiter(")> reserved(end) reserved(when) constant(NilClass) reserved(then) string reserved(when) constant(TrueClass) reserved(then) string reserved(when) constant(FalseClass) reserved(then) string reserved(when) constant(Float)operator(,) constant(Fixnum)operator(,) constant(Bignum) reserved(then) ident(value)operator(.)ident(to_s) reserved(when) constant(Date) reserved(then) stringcontent(')delimiter(")> reserved(when) constant(Time)operator(,) constant(DateTime) reserved(then) stringoperator(\))inline_delimiter(})>content(')delimiter(")> reserved(else) stringcontent(')delimiter(")> reserved(end) reserved(end) reserved(def) method(quote_string)operator(()ident(string)operator(\)) ident(string)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) method(quoted_true) string reserved(end) reserved(def) method(quoted_false) string reserved(end) reserved(def) method(quote_column_name)operator(()ident(name)operator(\)) stringcontent(])delimiter(")> reserved(end) reserved(def) method(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) reserved(if) ident(options)operator([)symbol(:limit)operator(]) reserved(and) ident(options)operator([)symbol(:offset)operator(]) ident(total_rows) operator(=) instance_variable(@connection)operator(.)ident(select_all)operator(()stringoperator(,) stringoperator(\))inline_delimiter(})>content(\) tally)delimiter(")>operator(\))operator([)integer(0)operator(])operator([)symbol(:TotalRows)operator(])operator(.)ident(to_i) reserved(if) operator(()ident(options)operator([)symbol(:limit)operator(]) operator(+) ident(options)operator([)symbol(:offset)operator(])operator(\)) operator(>)operator(=) ident(total_rows) ident(options)operator([)symbol(:limit)operator(]) operator(=) operator(()ident(total_rows) operator(-) ident(options)operator([)symbol(:offset)operator(]) operator(>)operator(=) integer(0)operator(\)) operator(?) operator(()ident(total_rows) operator(-) ident(options)operator([)symbol(:offset)operator(])operator(\)) operator(:) integer(0) reserved(end) ident(sql)operator(.)ident(sub!)operator(()regexpoperator(,) stringcontent( * FROM (SELECT TOP )inlinecontent( )delimiter(")>operator(\)) ident(sql) operator(<<) string reserved(if) ident(options)operator([)symbol(:order)operator(]) ident(options)operator([)symbol(:order)operator(]) operator(=) ident(options)operator([)symbol(:order)operator(])operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(map) reserved(do) operator(|)ident(field)operator(|) ident(parts) operator(=) ident(field)operator(.)ident(split)operator(()stringoperator(\)) ident(tc) operator(=) ident(parts)operator([)integer(0)operator(]) reserved(if) ident(sql) operator(=)operator(~) regexp reserved(and) ident(tc) operator(=)operator(~) regexp comment(# if column quoting used in query) ident(tc)operator(.)ident(gsub!)operator(()regexpoperator(,) stringoperator(\)) ident(tc) operator(<<) string reserved(end) reserved(if) ident(sql) operator(=)operator(~) regexpcontent( AS (t)char(\\d)content(_r)char(\\d)char(\\d)content(?\))delimiter(/)> ident(parts)operator([)integer(0)operator(]) operator(=) global_variable($1) reserved(end) ident(parts)operator(.)ident(join)operator(()stringoperator(\)) reserved(end)operator(.)ident(join)operator(()stringoperator(\)) ident(sql) operator(<<) stringcontent(\) AS tmp2 ORDER BY )inlinedelimiter(")> reserved(else) ident(sql) operator(<<) string reserved(end) reserved(elsif) ident(sql) operator(!)operator(~) regexp ident(sql)operator(.)ident(sub!)operator(()regexpoperator(\)) reserved(do) stringcontent( TOP )inlinedelimiter(")> reserved(end) reserved(unless) ident(options)operator([)symbol(:limit)operator(])operator(.)ident(nil?) reserved(end) reserved(end) reserved(def) method(recreate_database)operator(()ident(name)operator(\)) ident(drop_database)operator(()ident(name)operator(\)) ident(create_database)operator(()ident(name)operator(\)) reserved(end) reserved(def) method(drop_database)operator(()ident(name)operator(\)) ident(execute) stringdelimiter(")> reserved(end) reserved(def) method(create_database)operator(()ident(name)operator(\)) ident(execute) stringdelimiter(")> reserved(end) reserved(def) method(current_database) instance_variable(@connection)operator(.)ident(select_one)operator(()stringoperator(\))operator([)integer(0)operator(]) reserved(end) reserved(def) method(tables)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) ident(execute)operator(()stringoperator(,) ident(name)operator(\))operator(.)ident(inject)operator(()operator([)operator(])operator(\)) reserved(do) operator(|)ident(tables)operator(,) ident(field)operator(|) ident(table_name) operator(=) ident(field)operator([)integer(0)operator(]) ident(tables) operator(<<) ident(table_name) reserved(unless) ident(table_name) operator(==) string ident(tables) reserved(end) reserved(end) reserved(def) method(indexes)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(indexes) operator(=) operator([)operator(]) ident(execute)operator(()stringdelimiter(")>operator(,) ident(name)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(index)operator(|) ident(unique) operator(=) ident(index)operator([)integer(1)operator(]) operator(=)operator(~) regexp ident(primary) operator(=) ident(index)operator([)integer(1)operator(]) operator(=)operator(~) regexp reserved(if) operator(!)ident(primary) ident(indexes) operator(<<) constant(IndexDefinition)operator(.)ident(new)operator(()ident(table_name)operator(,) ident(index)operator([)integer(0)operator(])operator(,) ident(unique)operator(,) ident(index)operator([)integer(2)operator(])operator(.)ident(split)operator(()stringoperator(\))operator(\)) reserved(end) reserved(end) ident(indexes) reserved(end) reserved(def) method(rename_table)operator(()ident(name)operator(,) ident(new_name)operator(\)) ident(execute) stringcontent(', ')inlinecontent(')delimiter(")> reserved(end) reserved(def) method(remove_column)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(execute) stringcontent( DROP COLUMN )inlinedelimiter(")> reserved(end) reserved(def) method(rename_column)operator(()ident(table)operator(,) ident(column)operator(,) ident(new_column_name)operator(\)) ident(execute) stringcontent(.)inlinecontent(', ')inlinecontent(')delimiter(")> reserved(end) reserved(def) method(change_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(sql_commands) operator(=) operator([)stringcontent( ALTER COLUMN )inlinecontent( )inlinedelimiter(")>operator(]) reserved(if) ident(options)operator([)symbol(:default)operator(]) ident(remove_default_constraint)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(sql_commands) operator(<<) stringcontent( ADD CONSTRAINT DF_)inlinecontent(_)inlinecontent( DEFAULT )inlinecontent( FOR )inlinedelimiter(")> reserved(end) ident(sql_commands)operator(.)ident(each) operator({)operator(|)ident(c)operator(|) ident(execute)operator(()ident(c)operator(\)) operator(}) reserved(end) reserved(def) method(remove_column)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(remove_default_constraint)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(execute) stringcontent( DROP COLUMN )inlinedelimiter(")> reserved(end) reserved(def) method(remove_default_constraint)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(defaults) operator(=) ident(select) string ident(defaults)operator(.)ident(each) operator({)operator(|)ident(constraint)operator(|) ident(execute) stringcontent( DROP CONSTRAINT )inlineoperator(])inline_delimiter(})>delimiter(")> operator(}) reserved(end) reserved(def) method(remove_index)operator(()ident(table_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(execute) stringcontent(.)inlinedelimiter(")> reserved(end) reserved(def) method(type_to_sql)operator(()ident(type)operator(,) ident(limit) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) ident(native) operator(=) ident(native_database_types)operator([)ident(type)operator(]) comment(# if there's no :limit in the default type definition, assume that type doesn't support limits) ident(limit) operator(=) ident(limit) operator(||) ident(native)operator([)symbol(:limit)operator(]) ident(column_type_sql) operator(=) ident(native)operator([)symbol(:name)operator(]) ident(column_type_sql) operator(<<) stringcontent(\))delimiter(")> reserved(if) ident(limit) ident(column_type_sql) reserved(end) ident(private) reserved(def) method(select)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(rows) operator(=) operator([)operator(]) ident(repair_special_columns)operator(()ident(sql)operator(\)) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(do) instance_variable(@connection)operator(.)ident(select_all)operator(()ident(sql)operator(\)) reserved(do) operator(|)ident(row)operator(|) ident(record) operator(=) operator({)operator(}) ident(row)operator(.)ident(column_names)operator(.)ident(each) reserved(do) operator(|)ident(col)operator(|) ident(record)operator([)ident(col)operator(]) operator(=) ident(row)operator([)ident(col)operator(]) ident(record)operator([)ident(col)operator(]) operator(=) ident(record)operator([)ident(col)operator(])operator(.)ident(to_time) reserved(if) ident(record)operator([)ident(col)operator(])operator(.)ident(is_a?) constant(DBI)operator(::)constant(Timestamp) reserved(end) ident(rows) operator(<<) ident(record) reserved(end) reserved(end) ident(rows) reserved(end) reserved(def) method(enable_identity_insert)operator(()ident(table_name)operator(,) ident(enable) operator(=) pre_constant(true)operator(\)) reserved(if) ident(has_identity_column)operator(()ident(table_name)operator(\)) stringcontent( )inline operator(:) stringinline_delimiter(})>delimiter(")> reserved(end) reserved(end) reserved(def) method(get_table_name)operator(()ident(sql)operator(\)) reserved(if) ident(sql) operator(=)operator(~) regexp global_variable($1) reserved(elsif) ident(sql) operator(=)operator(~) regexp global_variable($1) reserved(else) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(has_identity_column)operator(()ident(table_name)operator(\)) operator(!)ident(get_identity_column)operator(()ident(table_name)operator(\))operator(.)ident(nil?) reserved(end) reserved(def) method(get_identity_column)operator(()ident(table_name)operator(\)) instance_variable(@table_columns) operator(=) operator({)operator(}) reserved(unless) instance_variable(@table_columns) instance_variable(@table_columns)operator([)ident(table_name)operator(]) operator(=) ident(columns)operator(()ident(table_name)operator(\)) reserved(if) instance_variable(@table_columns)operator([)ident(table_name)operator(]) operator(==) pre_constant(nil) instance_variable(@table_columns)operator([)ident(table_name)operator(])operator(.)ident(each) reserved(do) operator(|)ident(col)operator(|) reserved(return) ident(col)operator(.)ident(name) reserved(if) ident(col)operator(.)ident(identity) reserved(end) reserved(return) pre_constant(nil) reserved(end) reserved(def) method(query_contains_identity_column)operator(()ident(sql)operator(,) ident(col)operator(\)) ident(sql) operator(=)operator(~) regexpchar(\\])delimiter(/)> reserved(end) reserved(def) method(change_order_direction)operator(()ident(order)operator(\)) ident(order)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(collect) operator({)operator(|)ident(fragment)operator(|) reserved(case) ident(fragment) reserved(when) regexp reserved(then) ident(fragment)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(when) regexp reserved(then) ident(fragment)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(else) constant(String)operator(.)ident(new)operator(()ident(fragment)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(join)operator(()stringoperator(\)) operator(+) string reserved(end) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(get_special_columns)operator(()ident(table_name)operator(\)) ident(special) operator(=) operator([)operator(]) instance_variable(@table_columns) operator(||=) operator({)operator(}) instance_variable(@table_columns)operator([)ident(table_name)operator(]) operator(||=) ident(columns)operator(()ident(table_name)operator(\)) instance_variable(@table_columns)operator([)ident(table_name)operator(])operator(.)ident(each) reserved(do) operator(|)ident(col)operator(|) ident(special) operator(<<) ident(col)operator(.)ident(name) reserved(if) ident(col)operator(.)ident(is_special) reserved(end) ident(special) reserved(end) reserved(def) method(repair_special_columns)operator(()ident(sql)operator(\)) ident(special_cols) operator(=) ident(get_special_columns)operator(()ident(get_table_name)operator(()ident(sql)operator(\))operator(\)) reserved(for) ident(col) reserved(in) ident(special_cols)operator(.)ident(to_a) ident(sql)operator(.)ident(gsub!)operator(()constant(Regexp)operator(.)ident(new)operator(()stringcontent( = )delimiter(")>operator(\))operator(,) stringcontent( LIKE )delimiter(")>operator(\)) ident(sql)operator(.)ident(gsub!)operator(()regexpdelimiter(/)modifier(i)>operator(,) stringoperator(\)) reserved(end) ident(sql) reserved(end) reserved(end) comment(#class SQLServerAdapter < AbstractAdapter) reserved(end) comment(#module ConnectionAdapters) reserved(end) comment(#module ActiveRecord) comment(# sybase_adaptor.rb) comment(# Author: John Sheets ) comment(# Date: 01 Mar 2006) comment(#) comment(# Based on code from Will Sobel (http://dev.rubyonrails.org/ticket/2030\)) comment(#) comment(# 17 Mar 2006: Added support for migrations; fixed issues with :boolean columns.) comment(#) ident(require) string reserved(begin) ident(require) string reserved(module) class(ActiveRecord) reserved(class) class(Base) comment(# Establishes a connection to the database that's used by all Active Record objects) reserved(def) pre_constant(self)operator(.)method(sybase_connection)operator(()ident(config)operator(\)) comment(# :nodoc:) ident(config) operator(=) ident(config)operator(.)ident(symbolize_keys) ident(username) operator(=) ident(config)operator([)symbol(:username)operator(]) operator(?) ident(config)operator([)symbol(:username)operator(])operator(.)ident(to_s) operator(:) string ident(password) operator(=) ident(config)operator([)symbol(:password)operator(]) operator(?) ident(config)operator([)symbol(:password)operator(])operator(.)ident(to_s) operator(:) string reserved(if) ident(config)operator(.)ident(has_key?)operator(()symbol(:host)operator(\)) ident(host) operator(=) ident(config)operator([)symbol(:host)operator(]) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) reserved(if) ident(config)operator(.)ident(has_key?)operator(()symbol(:database)operator(\)) ident(database) operator(=) ident(config)operator([)symbol(:database)operator(]) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) constant(ConnectionAdapters)operator(::)constant(SybaseAdapter)operator(.)ident(new)operator(() constant(SybSQL)operator(.)ident(new)operator(()operator({)string operator(=)operator(>) ident(host)operator(,) string operator(=)operator(>) ident(username)operator(,) string operator(=)operator(>) ident(password)operator(})operator(,) constant(ConnectionAdapters)operator(::)constant(SybaseAdapterContext)operator(\))operator(,) ident(database)operator(,) ident(logger)operator(\)) reserved(end) reserved(end) comment(# class Base) reserved(module) class(ConnectionAdapters) comment(# ActiveRecord connection adapter for Sybase Open Client bindings) comment(# (see http://raa.ruby-lang.org/project/sybase-ctlib\).) comment(#) comment(# Options:) comment(#) comment(# * :host -- The name of the database server. No default, must be provided.) comment(# * :database -- The name of the database. No default, must be provided.) comment(# * :username -- Defaults to sa.) comment(# * :password -- Defaults to empty string.) comment(#) comment(# Usage Notes:) comment(#) comment(# * The sybase-ctlib bindings do not support the DATE SQL column type; use DATETIME instead.) comment(# * Table and column names are limited to 30 chars in Sybase 12.5) comment(# * :binary columns not yet supported) comment(# * :boolean columns use the BIT SQL type, which does not allow nulls or ) comment(# indexes. If a DEFAULT is not specified for ALTER TABLE commands, the) comment(# column will be declared with DEFAULT 0 (false\).) comment(#) comment(# Migrations:) comment(#) comment(# The Sybase adapter supports migrations, but for ALTER TABLE commands to) comment(# work, the database must have the database option 'select into' set to) comment(# 'true' with sp_dboption (see below\). The sp_helpdb command lists the current) comment(# options for all databases.) comment(#) comment(# 1> use mydb) comment(# 2> go) comment(# 1> master..sp_dboption mydb, "select into", true) comment(# 2> go) comment(# 1> checkpoint) comment(# 2> go) reserved(class) class(SybaseAdapter) operator(<) constant(AbstractAdapter) comment(# :nodoc:) reserved(class) class(ColumnWithIdentity) operator(<) constant(Column) ident(attr_reader) symbol(:identity)operator(,) symbol(:primary) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(default)operator(,) ident(sql_type) operator(=) pre_constant(nil)operator(,) ident(nullable) operator(=) pre_constant(nil)operator(,) ident(identity) operator(=) pre_constant(nil)operator(,) ident(primary) operator(=) pre_constant(nil)operator(\)) reserved(super)operator(()ident(name)operator(,) ident(default)operator(,) ident(sql_type)operator(,) ident(nullable)operator(\)) instance_variable(@default)operator(,) instance_variable(@identity)operator(,) instance_variable(@primary) operator(=) ident(type_cast)operator(()ident(default)operator(\))operator(,) ident(identity)operator(,) ident(primary) reserved(end) reserved(def) method(simplified_type)operator(()ident(field_type)operator(\)) reserved(case) ident(field_type) reserved(when) regexp reserved(then) symbol(:integer) reserved(when) regexp reserved(then) symbol(:float) reserved(when) regexp reserved(then) symbol(:text) reserved(when) regexp reserved(then) symbol(:binary) reserved(when) regexp reserved(then) symbol(:string) reserved(when) regexp reserved(then) symbol(:boolean) reserved(when) regexp reserved(then) symbol(:datetime) reserved(else) reserved(super) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(string_to_binary)operator(()ident(value)operator(\)) stringoperator(\))operator([)integer(0)operator(])inline_delimiter(})>delimiter(")> reserved(end) reserved(def) pre_constant(self)operator(.)method(binary_to_string)operator(()ident(value)operator(\)) comment(# FIXME: sybase-ctlib uses separate sql method for binary columns.) ident(value) reserved(end) reserved(end) comment(# class ColumnWithIdentity) comment(# Sybase adapter) reserved(def) method(initialize)operator(()ident(connection)operator(,) ident(database)operator(,) ident(logger) operator(=) pre_constant(nil)operator(\)) reserved(super)operator(()ident(connection)operator(,) ident(logger)operator(\)) ident(context) operator(=) ident(connection)operator(.)ident(context) ident(context)operator(.)ident(init)operator(()ident(logger)operator(\)) instance_variable(@limit) operator(=) instance_variable(@offset) operator(=) integer(0) reserved(unless) ident(connection)operator(.)ident(sql_norow)operator(()stringdelimiter(")>operator(\)) ident(raise) stringdelimiter(")> reserved(end) reserved(end) reserved(def) method(native_database_types) operator({) symbol(:primary_key) operator(=)operator(>) stringoperator(,) symbol(:string) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(255) operator(})operator(,) symbol(:text) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:integer) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:float) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(8) operator(})operator(,) symbol(:datetime) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:timestamp) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:time) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:date) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(,) symbol(:binary) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) stringoperator(})operator(,) symbol(:boolean) operator(=)operator(>) operator({) symbol(:name) operator(=)operator(>) string operator(}) operator(}) reserved(end) reserved(def) method(adapter_name) string reserved(end) reserved(def) method(active?) operator(!)operator(()instance_variable(@connection)operator(.)ident(connection)operator(.)ident(nil?) operator(||) instance_variable(@connection)operator(.)ident(connection_dead?)operator(\)) reserved(end) reserved(def) method(disconnect!) instance_variable(@connection)operator(.)ident(close) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(reconnect!) ident(raise) string comment(# disconnect!) comment(# connect! # Not yet implemented) reserved(end) reserved(def) method(table_alias_length) integer(30) reserved(end) comment(# Check for a limit statement and parse out the limit and) comment(# offset if specified. Remove the limit from the sql statement) comment(# and call select.) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) comment(# Remove limit clause from statement. This will almost always) comment(# contain LIMIT 1 from the caller. set the rowcount to 1 before) comment(# calling select.) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(result) operator(=) ident(select)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(result)operator(.)ident(nil?) operator(?) pre_constant(nil) operator(:) ident(result)operator(.)ident(first) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(table_structure)operator(()ident(table_name)operator(\))operator(.)ident(inject)operator(()operator([)operator(])operator(\)) reserved(do) operator(|)ident(columns)operator(,) ident(column)operator(|) ident(name)operator(,) ident(default)operator(,) ident(type)operator(,) ident(nullable)operator(,) ident(identity)operator(,) ident(primary) operator(=) ident(column) ident(columns) operator(<<) constant(ColumnWithIdentity)operator(.)ident(new)operator(()ident(name)operator(,) ident(default)operator(,) ident(type)operator(,) ident(nullable)operator(,) ident(identity)operator(,) ident(primary)operator(\)) ident(columns) reserved(end) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(,) ident(sequence_name) operator(=) pre_constant(nil)operator(\)) reserved(begin) ident(table_name) operator(=) ident(get_table_name)operator(()ident(sql)operator(\)) ident(col) operator(=) ident(get_identity_column)operator(()ident(table_name)operator(\)) ident(ii_enabled) operator(=) pre_constant(false) reserved(if) ident(col) operator(!=) pre_constant(nil) reserved(if) ident(query_contains_identity_column)operator(()ident(sql)operator(,) ident(col)operator(\)) reserved(begin) ident(execute) ident(enable_identity_insert)operator(()ident(table_name)operator(,) pre_constant(true)operator(\)) ident(ii_enabled) operator(=) pre_constant(true) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(raise) constant(ActiveRecordError)operator(,) string reserved(end) reserved(end) reserved(end) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(do) ident(execute)operator(()ident(sql)operator(,) ident(name)operator(\)) ident(ident) operator(=) ident(select_one)operator(()stringoperator(\))operator([)stringoperator(]) ident(id_value) operator(||) ident(ident) reserved(end) reserved(ensure) reserved(if) ident(ii_enabled) reserved(begin) ident(execute) ident(enable_identity_insert)operator(()ident(table_name)operator(,) pre_constant(false)operator(\)) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(raise) constant(ActiveRecordError)operator(,) string reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(do) instance_variable(@connection)operator(.)ident(context)operator(.)ident(reset) instance_variable(@connection)operator(.)ident(set_rowcount)operator(()instance_variable(@limit) operator(||) integer(0)operator(\)) instance_variable(@limit) operator(=) instance_variable(@offset) operator(=) pre_constant(nil) instance_variable(@connection)operator(.)ident(sql_norow)operator(()ident(sql)operator(\)) reserved(if) instance_variable(@connection)operator(.)ident(cmd_fail?) reserved(or) instance_variable(@connection)operator(.)ident(context)operator(.)ident(failed?) ident(raise) stringcontent(: )inlinechar(\\n)content(Message: )inlinedelimiter(")> reserved(end) reserved(end) comment(# Return rows affected) instance_variable(@connection)operator(.)ident(results)operator([)integer(0)operator(])operator(.)ident(row_count) reserved(end) ident(alias_method) symbol(:update)operator(,) symbol(:execute) ident(alias_method) symbol(:delete)operator(,) symbol(:execute) reserved(def) method(begin_db_transaction)operator(()operator(\)) ident(execute) string reserved(end) reserved(def) method(commit_db_transaction)operator(()operator(\)) ident(execute) string reserved(end) reserved(def) method(rollback_db_transaction)operator(()operator(\)) ident(execute) string reserved(end) reserved(def) method(tables)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) ident(tables) operator(=) operator([)operator(]) ident(select)operator(()stringoperator(,) ident(name)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) ident(tables) operator(<<) ident(row)operator([)stringoperator(]) reserved(end) ident(tables) reserved(end) reserved(def) method(indexes)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(indexes) operator(=) operator([)operator(]) ident(select)operator(()stringdelimiter(")>operator(,) ident(name)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(index)operator(|) ident(unique) operator(=) ident(index)operator([)stringoperator(]) operator(=)operator(~) regexp ident(primary) operator(=) ident(index)operator([)stringoperator(]) operator(=)operator(~) regexp reserved(if) operator(!)ident(primary) ident(cols) operator(=) ident(index)operator([)stringoperator(])operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(each) operator({) operator(|)ident(col)operator(|) ident(col)operator(.)ident(strip!) operator(}) ident(indexes) operator(<<) constant(IndexDefinition)operator(.)ident(new)operator(()ident(table_name)operator(,) ident(index)operator([)stringoperator(])operator(,) ident(unique)operator(,) ident(cols)operator(\)) reserved(end) reserved(end) ident(indexes) reserved(end) reserved(def) method(quoted_true) string reserved(end) reserved(def) method(quoted_false) string reserved(end) reserved(def) method(quote)operator(()ident(value)operator(,) ident(column) operator(=) pre_constant(nil)operator(\)) reserved(case) ident(value) reserved(when) constant(String) reserved(if) ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:binary) operator(&&) ident(column)operator(.)ident(class)operator(.)ident(respond_to?)operator(()symbol(:string_to_binary)operator(\)) stringdelimiter(")> reserved(elsif) ident(value) operator(=)operator(~) regexp ident(value) reserved(else) stringcontent(')delimiter(")> reserved(end) reserved(when) constant(NilClass) reserved(then) operator(()ident(column) operator(&&) ident(column)operator(.)ident(type) operator(==) symbol(:boolean)operator(\)) operator(?) string operator(:) string reserved(when) constant(TrueClass) reserved(then) string reserved(when) constant(FalseClass) reserved(then) string reserved(when) constant(Float)operator(,) constant(Fixnum)operator(,) constant(Bignum) reserved(then) ident(value)operator(.)ident(to_s) reserved(when) constant(Date) reserved(then) stringcontent(')delimiter(")> reserved(when) constant(Time)operator(,) constant(DateTime) reserved(then) stringoperator(\))inline_delimiter(})>content(')delimiter(")> reserved(else) stringcontent(')delimiter(")> reserved(end) reserved(end) reserved(def) method(quote_column)operator(()ident(type)operator(,) ident(value)operator(\)) reserved(case) ident(type) reserved(when) symbol(:boolean) reserved(case) ident(value) reserved(when) constant(String) reserved(then) ident(value) operator(=)operator(~) regexp operator(?) integer(1) operator(:) integer(0) reserved(when) pre_constant(true) reserved(then) integer(1) reserved(when) pre_constant(false) reserved(then) integer(0) reserved(else) ident(value)operator(.)ident(to_i) reserved(end) reserved(when) symbol(:integer) reserved(then) ident(value)operator(.)ident(to_i) reserved(when) symbol(:float) reserved(then) ident(value)operator(.)ident(to_f) reserved(when) symbol(:text)operator(,) symbol(:string)operator(,) symbol(:enum) reserved(case) ident(value) reserved(when) constant(String)operator(,) constant(Symbol)operator(,) constant(Fixnum)operator(,) constant(Float)operator(,) constant(Bignum)operator(,) constant(TrueClass)operator(,) constant(FalseClass) stringcontent(')delimiter(")> reserved(else) stringcontent(')delimiter(")> reserved(end) reserved(when) symbol(:date)operator(,) symbol(:datetime)operator(,) symbol(:time) reserved(case) ident(value) reserved(when) constant(Time)operator(,) constant(DateTime) reserved(then) stringoperator(\))inline_delimiter(})>content(')delimiter(")> reserved(when) constant(Date) reserved(then) stringcontent(')delimiter(")> reserved(else) stringcontent(')delimiter(")> reserved(end) reserved(else) stringcontent(')delimiter(")> reserved(end) reserved(end) reserved(def) method(quote_string)operator(()ident(s)operator(\)) ident(s)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) comment(# ' (for ruby-mode\)) reserved(end) reserved(def) method(quote_column_name)operator(()ident(name)operator(\)) stringcontent(])delimiter(")> reserved(end) reserved(def) method(add_limit_offset!)operator(()ident(sql)operator(,) ident(options)operator(\)) comment(# :nodoc:) instance_variable(@limit) operator(=) ident(options)operator([)symbol(:limit)operator(]) instance_variable(@offset) operator(=) ident(options)operator([)symbol(:offset)operator(]) reserved(if) operator(!)ident(normal_select?) comment(# Use temp table to hack offset with Sybase) ident(sql)operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) reserved(elsif) ident(zero_limit?) comment(# "SET ROWCOUNT 0" turns off limits, so we have) comment(# to use a cheap trick.) reserved(if) ident(sql) operator(=)operator(~) regexp ident(sql)operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) reserved(elsif) ident(sql) operator(=)operator(~) regexp ident(sql)operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) reserved(else) ident(sql) operator(<<) string reserved(end) reserved(end) reserved(end) reserved(def) method(supports_migrations?) comment(#:nodoc:) pre_constant(true) reserved(end) reserved(def) method(rename_table)operator(()ident(name)operator(,) ident(new_name)operator(\)) ident(execute) stringcontent(', ')inlinecontent(')delimiter(")> reserved(end) reserved(def) method(rename_column)operator(()ident(table)operator(,) ident(column)operator(,) ident(new_column_name)operator(\)) ident(execute) stringcontent(.)inlinecontent(', ')inlinecontent(')delimiter(")> reserved(end) reserved(def) method(change_column)operator(()ident(table_name)operator(,) ident(column_name)operator(,) ident(type)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) comment(#:nodoc:) ident(sql_commands) operator(=) operator([)stringcontent( MODIFY )inlinecontent( )inlinedelimiter(")>operator(]) reserved(if) ident(options)operator([)symbol(:default)operator(]) ident(remove_default_constraint)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(sql_commands) operator(<<) stringcontent( ADD CONSTRAINT DF_)inlinecontent(_)inlinecontent( DEFAULT )inlinecontent( FOR )inlinedelimiter(")> reserved(end) ident(sql_commands)operator(.)ident(each) operator({) operator(|)ident(c)operator(|) ident(execute)operator(()ident(c)operator(\)) operator(}) reserved(end) reserved(def) method(remove_column)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(remove_default_constraint)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(execute) stringcontent( DROP )inlinedelimiter(")> reserved(end) reserved(def) method(remove_default_constraint)operator(()ident(table_name)operator(,) ident(column_name)operator(\)) ident(defaults) operator(=) ident(select) string ident(defaults)operator(.)ident(each) operator({)operator(|)ident(constraint)operator(|) ident(execute) stringcontent( DROP CONSTRAINT )inlineoperator(])inline_delimiter(})>delimiter(")> operator(}) reserved(end) reserved(def) method(remove_index)operator(()ident(table_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(execute) stringcontent(.)inlinedelimiter(")> reserved(end) reserved(def) method(add_column_options!)operator(()ident(sql)operator(,) ident(options)operator(\)) comment(#:nodoc:) ident(sql) operator(<<) stringdelimiter(")> reserved(unless) ident(options)operator([)symbol(:default)operator(])operator(.)ident(nil?) reserved(if) ident(check_null_for_column?)operator(()ident(options)operator([)symbol(:column)operator(])operator(,) ident(sql)operator(\)) ident(sql) operator(<<) operator(()ident(options)operator([)symbol(:null)operator(]) operator(==) pre_constant(false) operator(?) string operator(:) stringoperator(\)) reserved(end) ident(sql) reserved(end) ident(private) reserved(def) method(check_null_for_column?)operator(()ident(col)operator(,) ident(sql)operator(\)) comment(# Sybase columns are NOT NULL by default, so explicitly set NULL) comment(# if :null option is omitted. Disallow NULLs for boolean.) ident(type) operator(=) ident(col)operator(.)ident(nil?) operator(?) string operator(:) ident(col)operator([)symbol(:type)operator(]) comment(# Ignore :null if a primary key) reserved(return) pre_constant(false) reserved(if) ident(type) operator(=)operator(~) regexp comment(# Ignore :null if a :boolean or BIT column) reserved(if) operator(()ident(sql) operator(=)operator(~) regexpoperator(\)) operator(||) ident(type) operator(==) symbol(:boolean) comment(# If no default clause found on a boolean column, add one.) ident(sql) operator(<<) string reserved(if) global_variable($1)operator(.)ident(nil?) reserved(return) pre_constant(false) reserved(end) pre_constant(true) reserved(end) comment(# Return the last value of the identity global value.) reserved(def) method(last_insert_id) instance_variable(@connection)operator(.)ident(sql)operator(()stringoperator(\)) reserved(unless) instance_variable(@connection)operator(.)ident(cmd_fail?) ident(id) operator(=) instance_variable(@connection)operator(.)ident(top_row_result)operator(.)ident(rows)operator(.)ident(first)operator(.)ident(first) reserved(if) ident(id) ident(id) operator(=) ident(id)operator(.)ident(to_i) ident(id) operator(=) pre_constant(nil) reserved(if) ident(id) operator(==) integer(0) reserved(end) reserved(else) ident(id) operator(=) pre_constant(nil) reserved(end) ident(id) reserved(end) reserved(def) method(affected_rows)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) instance_variable(@connection)operator(.)ident(sql)operator(()stringoperator(\)) reserved(unless) instance_variable(@connection)operator(.)ident(cmd_fail?) ident(count) operator(=) instance_variable(@connection)operator(.)ident(top_row_result)operator(.)ident(rows)operator(.)ident(first)operator(.)ident(first) ident(count) operator(=) ident(count)operator(.)ident(to_i) reserved(if) ident(count) reserved(else) integer(0) reserved(end) reserved(end) reserved(def) method(normal_select?) comment(# If limit is not set at all, we can ignore offset;) comment(# If limit *is* set but offset is zero, use normal select) comment(# with simple SET ROWCOUNT. Thus, only use the temp table) comment(# if limit is set and offset > 0.) ident(has_limit) operator(=) operator(!)instance_variable(@limit)operator(.)ident(nil?) ident(has_offset) operator(=) operator(!)instance_variable(@offset)operator(.)ident(nil?) operator(&&) instance_variable(@offset) operator(>) integer(0) operator(!)ident(has_limit) operator(||) operator(!)ident(has_offset) reserved(end) reserved(def) method(zero_limit?) operator(!)instance_variable(@limit)operator(.)ident(nil?) operator(&&) instance_variable(@limit) operator(==) integer(0) reserved(end) comment(# Select limit number of rows starting at optional offset.) reserved(def) method(select)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) instance_variable(@connection)operator(.)ident(context)operator(.)ident(reset) ident(log)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(do) reserved(if) ident(normal_select?) comment(# If limit is not explicitly set, return all results.) instance_variable(@logger)operator(.)ident(debug) stringinline_delimiter(})>content(\))delimiter(")> reserved(if) instance_variable(@logger) comment(# Run a normal select) instance_variable(@connection)operator(.)ident(set_rowcount)operator(()instance_variable(@limit) operator(||) integer(0)operator(\)) instance_variable(@connection)operator(.)ident(sql)operator(()ident(sql)operator(\)) reserved(else) comment(# Select into a temp table and prune results) instance_variable(@logger)operator(.)ident(debug) stringcontent( or fewer rows into #artemp)delimiter(")> reserved(if) instance_variable(@logger) instance_variable(@connection)operator(.)ident(set_rowcount)operator(()instance_variable(@limit) operator(+) operator(()instance_variable(@offset) operator(||) integer(0)operator(\))operator(\)) instance_variable(@connection)operator(.)ident(sql_norow)operator(()ident(sql)operator(\)) comment(# Select into temp table) instance_variable(@logger)operator(.)ident(debug) stringcontent( or fewer rows from #artemp)delimiter(")> reserved(if) instance_variable(@logger) instance_variable(@connection)operator(.)ident(set_rowcount)operator(()instance_variable(@offset) operator(||) integer(0)operator(\)) instance_variable(@connection)operator(.)ident(sql_norow)operator(()stringoperator(\)) comment(# Delete leading rows) instance_variable(@connection)operator(.)ident(set_rowcount)operator(()integer(0)operator(\)) instance_variable(@connection)operator(.)ident(sql)operator(()stringoperator(\)) comment(# Return the rest) reserved(end) reserved(end) ident(rows) operator(=) operator([)operator(]) reserved(if) instance_variable(@connection)operator(.)ident(context)operator(.)ident(failed?) reserved(or) instance_variable(@connection)operator(.)ident(cmd_fail?) ident(raise) constant(StatementInvalid)operator(,) stringcontent(: )inlinechar(\\n)content(Message: )inlinedelimiter(")> reserved(else) ident(results) operator(=) instance_variable(@connection)operator(.)ident(top_row_result) reserved(if) ident(results) operator(&&) ident(results)operator(.)ident(rows)operator(.)ident(length) operator(>) integer(0) ident(fields) operator(=) ident(fixup_column_names)operator(()ident(results)operator(.)ident(columns)operator(\)) ident(results)operator(.)ident(rows)operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) ident(hashed_row) operator(=) operator({)operator(}) ident(row)operator(.)ident(zip)operator(()ident(fields)operator(\)) operator({) operator(|)ident(cell)operator(,) ident(column)operator(|) ident(hashed_row)operator([)ident(column)operator(]) operator(=) ident(cell) operator(}) ident(rows) operator(<<) ident(hashed_row) reserved(end) reserved(end) reserved(end) instance_variable(@connection)operator(.)ident(sql_norow)operator(()stringoperator(\)) reserved(if) operator(!)ident(normal_select?) instance_variable(@limit) operator(=) instance_variable(@offset) operator(=) pre_constant(nil) reserved(return) ident(rows) reserved(end) reserved(def) method(enable_identity_insert)operator(()ident(table_name)operator(,) ident(enable) operator(=) pre_constant(true)operator(\)) reserved(if) ident(has_identity_column)operator(()ident(table_name)operator(\)) stringcontent( )inline operator(:) stringinline_delimiter(})>delimiter(")> reserved(end) reserved(end) reserved(def) method(get_table_name)operator(()ident(sql)operator(\)) reserved(if) ident(sql) operator(=)operator(~) regexp global_variable($1) reserved(elsif) ident(sql) operator(=)operator(~) regexp global_variable($1) reserved(else) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(has_identity_column)operator(()ident(table_name)operator(\)) operator(!)ident(get_identity_column)operator(()ident(table_name)operator(\))operator(.)ident(nil?) reserved(end) reserved(def) method(get_identity_column)operator(()ident(table_name)operator(\)) instance_variable(@table_columns) operator(=) operator({)operator(}) reserved(unless) instance_variable(@table_columns) instance_variable(@table_columns)operator([)ident(table_name)operator(]) operator(=) ident(columns)operator(()ident(table_name)operator(\)) reserved(if) instance_variable(@table_columns)operator([)ident(table_name)operator(]) operator(==) pre_constant(nil) instance_variable(@table_columns)operator([)ident(table_name)operator(])operator(.)ident(each) reserved(do) operator(|)ident(col)operator(|) reserved(return) ident(col)operator(.)ident(name) reserved(if) ident(col)operator(.)ident(identity) reserved(end) reserved(return) pre_constant(nil) reserved(end) reserved(def) method(query_contains_identity_column)operator(()ident(sql)operator(,) ident(col)operator(\)) ident(sql) operator(=)operator(~) regexpchar(\\])delimiter(/)> reserved(end) comment(# Remove trailing _ from names.) reserved(def) method(fixup_column_names)operator(()ident(columns)operator(\)) ident(columns)operator(.)ident(map) operator({) operator(|)ident(column)operator(|) ident(column)operator(.)ident(sub)operator(()regexpoperator(,) stringoperator(\)) operator(}) reserved(end) reserved(def) method(table_structure)operator(()ident(table_name)operator(\)) ident(sql) operator(=) stringstring ident(log)operator(()ident(sql)operator(,) stringoperator(\)) reserved(do) instance_variable(@connection)operator(.)ident(set_rowcount)operator(()integer(0)operator(\)) instance_variable(@connection)operator(.)ident(sql)operator(()ident(sql)operator(\)) reserved(end) reserved(if) instance_variable(@connection)operator(.)ident(context)operator(.)ident(failed?) ident(raise) stringcontent( failed)char(\\n)content(Message: )inlinedelimiter(")> reserved(elsif) operator(!)instance_variable(@connection)operator(.)ident(cmd_fail?) ident(columns) operator(=) operator([)operator(]) ident(results) operator(=) instance_variable(@connection)operator(.)ident(top_row_result) ident(results)operator(.)ident(rows)operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) ident(name)operator(,) ident(type)operator(,) ident(prec)operator(,) ident(scale)operator(,) ident(length)operator(,) ident(status)operator(,) ident(sysstat2)operator(,) ident(default) operator(=) ident(row) ident(type) operator(=) ident(normalize_type)operator(()ident(type)operator(,) ident(prec)operator(,) ident(scale)operator(,) ident(length)operator(\)) ident(default_value) operator(=) pre_constant(nil) ident(name)operator(.)ident(sub!)operator(()regexpoperator(,) stringoperator(\)) reserved(if) ident(default) operator(=)operator(~) regexp ident(default_value) operator(=) global_variable($1)operator(.)ident(strip) ident(default_value) operator(=) ident(default_value)operator([)integer(1)operator(...)integer(-1)operator(]) reserved(if) ident(default_value) operator(=)operator(~) regexp reserved(end) ident(nullable) operator(=) operator(()ident(status) operator(&) integer(8)operator(\)) operator(==) integer(8) ident(identity) operator(=) ident(status) operator(>)operator(=) integer(128) ident(primary) operator(=) operator(()ident(sysstat2) operator(&) integer(8)operator(\)) operator(==) integer(8) ident(columns) operator(<<) operator([)ident(name)operator(,) ident(default_value)operator(,) ident(type)operator(,) ident(nullable)operator(,) ident(identity)operator(,) ident(primary)operator(]) reserved(end) ident(columns) reserved(else) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(normalize_type)operator(()ident(field_type)operator(,) ident(prec)operator(,) ident(scale)operator(,) ident(length)operator(\)) reserved(if) ident(field_type) operator(=)operator(~) regexp reserved(and) operator(()ident(scale)operator(.)ident(nil?) reserved(or) ident(scale) operator(==) integer(0)operator(\)) ident(type) operator(=) string reserved(elsif) ident(field_type) operator(=)operator(~) regexp ident(type) operator(=) string reserved(else) ident(type) operator(=) ident(field_type) reserved(end) ident(size) operator(=) string reserved(if) ident(prec) ident(size) operator(=) stringcontent(\))delimiter(")> reserved(elsif) ident(length) ident(size) operator(=) stringcontent(\))delimiter(")> reserved(end) reserved(return) ident(type) operator(+) ident(size) reserved(end) reserved(def) method(default_value)operator(()ident(value)operator(\)) reserved(end) reserved(end) comment(# class SybaseAdapter) reserved(class) class(SybaseAdapterContext) operator(<) constant(SybSQLContext) constant(DEADLOCK) operator(=) integer(1205) ident(attr_reader) symbol(:message) reserved(def) method(init)operator(()ident(logger) operator(=) pre_constant(nil)operator(\)) instance_variable(@deadlocked) operator(=) pre_constant(false) instance_variable(@failed) operator(=) pre_constant(false) instance_variable(@logger) operator(=) ident(logger) instance_variable(@message) operator(=) pre_constant(nil) reserved(end) reserved(def) method(srvmsgCB)operator(()ident(con)operator(,) ident(msg)operator(\)) comment(# Do not log change of context messages.) reserved(if) ident(msg)operator([)stringoperator(]) operator(==) integer(10) reserved(or) ident(msg)operator([)stringoperator(]) operator(==) integer(0) reserved(return) pre_constant(true) reserved(end) reserved(if) ident(msg)operator([)stringoperator(]) operator(==) constant(DEADLOCK) instance_variable(@deadlocked) operator(=) pre_constant(true) reserved(else) instance_variable(@logger)operator(.)ident(info) string reserved(if) instance_variable(@logger) instance_variable(@failed) operator(=) pre_constant(true) reserved(end) reserved(if) instance_variable(@logger) instance_variable(@logger)operator(.)ident(error) string instance_variable(@logger)operator(.)ident(error) stringoperator(])inline_delimiter(})>content( Severity )inlineoperator(])inline_delimiter(})>content( State )inlineoperator(])inline_delimiter(})>content( Line )inlineoperator(])inline_delimiter(})>delimiter(")> instance_variable(@logger)operator(.)ident(error) stringoperator(])inline_delimiter(})>delimiter(")> instance_variable(@logger)operator(.)ident(error) stringoperator(])inline_delimiter(})>delimiter(")> instance_variable(@logger)operator(.)ident(error) stringoperator(])inline_delimiter(})>delimiter(")> reserved(end) instance_variable(@message) operator(=) ident(msg)operator([)stringoperator(]) pre_constant(true) reserved(end) reserved(def) method(deadlocked?) instance_variable(@deadlocked) reserved(end) reserved(def) method(failed?) instance_variable(@failed) reserved(end) reserved(def) method(reset) instance_variable(@deadlocked) operator(=) pre_constant(false) instance_variable(@failed) operator(=) pre_constant(false) instance_variable(@message) operator(=) pre_constant(nil) reserved(end) reserved(def) method(cltmsgCB)operator(()ident(con)operator(,) ident(msg)operator(\)) reserved(return) pre_constant(true) reserved(unless) operator(() ident(msg)operator(.)ident(kind_of?)operator(()constant(Hash)operator(\)) operator(\)) reserved(unless) operator(() ident(msg)operator([) string operator(]) operator(\)) reserved(then) reserved(return) pre_constant(true) reserved(end) reserved(if) instance_variable(@logger) instance_variable(@logger)operator(.)ident(error) string instance_variable(@logger)operator(.)ident(error) string operator(])inline_delimiter(})>content( ORIGIN=)inline operator(])inline_delimiter(})>content( SEVERITY=)inline operator(])inline_delimiter(})>content( NUMBER=)inline operator(])inline_delimiter(})>delimiter(")> instance_variable(@logger)operator(.)ident(error) stringoperator(])inline_delimiter(})>delimiter(")> instance_variable(@logger)operator(.)ident(error) stringoperator(])inline_delimiter(})>delimiter(")> instance_variable(@message) operator(=) ident(msg)operator([)stringoperator(]) reserved(end) instance_variable(@failed) operator(=) pre_constant(true) comment(# Not retry , CS_CV_RETRY_FAIL( probability TimeOut \) ) reserved(if)operator(() ident(msg)operator([) string operator(]) operator(==) string operator(\)) reserved(then) instance_variable(@timeout_p) operator(=) pre_constant(true) reserved(return) pre_constant(false) reserved(end) reserved(return) pre_constant(true) reserved(end) reserved(end) comment(# class SybaseAdapterContext) reserved(end) comment(# module ConnectionAdapters) reserved(end) comment(# module ActiveRecord) comment(# Allow identity inserts for fixtures.) ident(require) string reserved(class) class(Fixtures) reserved(alias) symbol(:original_insert_fixtures) symbol(:insert_fixtures) reserved(def) method(insert_fixtures) ident(values)operator(.)ident(each) reserved(do) operator(|)ident(fixture)operator(|) ident(allow_identity_inserts) ident(table_name)operator(,) pre_constant(true) instance_variable(@connection)operator(.)ident(execute) stringcontent( ()inlinecontent(\) VALUES ()inlinecontent(\))delimiter(")>operator(,) string ident(allow_identity_inserts) ident(table_name)operator(,) pre_constant(false) reserved(end) reserved(end) reserved(def) method(allow_identity_inserts)operator(()ident(table_name)operator(,) ident(enable)operator(\)) instance_variable(@connection)operator(.)ident(execute) stringcontent( )inline operator(:) stringinline_delimiter(})>delimiter(")> reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(rescue) constant(LoadError) operator(=)operator(>) ident(cannot_require_sybase) comment(# Couldn't load sybase adapter) ident(endmodule) constant(ActiveRecord) reserved(module) class(Associations) comment(# :nodoc:) reserved(module) class(ClassMethods) reserved(def) method(deprecated_collection_count_method)operator(()ident(collection_name)operator(\))comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent(_count(force_reload = false\) )inlinecontent(.reload if force_reload )inlinecontent(.size end)delimiter( end_eval)> reserved(end) reserved(def) method(deprecated_add_association_relation)operator(()ident(association_name)operator(\))comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent((*items\) )inlinecontent(.concat(items\) end)delimiter( end_eval)> reserved(end) reserved(def) method(deprecated_remove_association_relation)operator(()ident(association_name)operator(\))comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent((*items\) )inlinecontent(.delete(items\) end)delimiter( end_eval)> reserved(end) reserved(def) method(deprecated_has_collection_method)operator(()ident(collection_name)operator(\))comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent(?(force_reload = false\) !)inlinecontent((force_reload\).empty? end)delimiter( end_eval)> reserved(end) reserved(def) method(deprecated_find_in_collection_method)operator(()ident(collection_name)operator(\))comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent((association_id\) )inlinecontent(.find(association_id\) end)delimiter( end_eval)> reserved(end) reserved(def) method(deprecated_find_all_in_collection_method)operator(()ident(collection_name)operator(\))comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent((runtime_conditions = nil, orderings = nil, limit = nil, joins = nil\) )inlinecontent(.find_all(runtime_conditions, orderings, limit, joins\) end)delimiter( end_eval)> reserved(end) reserved(def) method(deprecated_collection_create_method)operator(()ident(collection_name)operator(\))comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent((attributes = {}\) )inlinecontent(.create(attributes\) end)delimiter( end_eval)> reserved(end) reserved(def) method(deprecated_collection_build_method)operator(()ident(collection_name)operator(\))comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent((attributes = {}\) )inlinecontent(.build(attributes\) end)delimiter( end_eval)> reserved(end) reserved(def) method(deprecated_association_comparison_method)operator(()ident(association_name)operator(,) ident(association_class_name)operator(\)) comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent(?(comparison_object, force_reload = false\) if comparison_object.kind_of?()inlinecontent(\) )inlinecontent((force_reload\) == comparison_object else raise "Comparison object is a )inlinecontent(, should have been )char(\\#)content({comparison_object.class.name}" end end)delimiter( end_eval)> reserved(end) reserved(def) method(deprecated_has_association_method)operator(()ident(association_name)operator(\)) comment(# :nodoc:) ident(module_eval) stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)stringcontent(?(force_reload = false\) !)inlinecontent((force_reload\).nil? end)delimiter( end_eval)> reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(class) class(Base) reserved(class) operator(<<) class(self) comment(# This method is deprecated in favor of find with the :conditions option.) comment(#) comment(# Works like find, but the record matching +id+ must also meet the +conditions+.) comment(# +RecordNotFound+ is raised if no record can be found matching the +id+ or meeting the condition.) comment(# Example:) comment(# Person.find_on_conditions 5, "first_name LIKE '%dav%' AND last_name = 'heinemeier'") reserved(def) method(find_on_conditions)operator(()ident(ids)operator(,) ident(conditions)operator(\)) comment(# :nodoc:) ident(find)operator(()ident(ids)operator(,) symbol(:conditions) operator(=)operator(>) ident(conditions)operator(\)) reserved(end) comment(# This method is deprecated in favor of find(:first, options\).) comment(#) comment(# Returns the object for the first record responding to the conditions in +conditions+, ) comment(# such as "group = 'master'". If more than one record is returned from the query, it's the first that'll) comment(# be used to create the object. In such cases, it might be beneficial to also specify ) comment(# +orderings+, like "income DESC, name", to control exactly which record is to be used. Example: ) comment(# Employee.find_first "income > 50000", "income DESC, name") reserved(def) method(find_first)operator(()ident(conditions) operator(=) pre_constant(nil)operator(,) ident(orderings) operator(=) pre_constant(nil)operator(,) ident(joins) operator(=) pre_constant(nil)operator(\)) comment(# :nodoc:) ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) ident(conditions)operator(,) symbol(:order) operator(=)operator(>) ident(orderings)operator(,) symbol(:joins) operator(=)operator(>) ident(joins)operator(\)) reserved(end) comment(# This method is deprecated in favor of find(:all, options\).) comment(#) comment(# Returns an array of all the objects that could be instantiated from the associated) comment(# table in the database. The +conditions+ can be used to narrow the selection of objects (WHERE-part\),) comment(# such as by "color = 'red'", and arrangement of the selection can be done through +orderings+ (ORDER BY-part\),) comment(# such as by "last_name, first_name DESC". A maximum of returned objects and their offset can be specified in ) comment(# +limit+ with either just a single integer as the limit or as an array with the first element as the limit, ) comment(# the second as the offset. Examples:) comment(# Project.find_all "category = 'accounts'", "last_accessed DESC", 15) comment(# Project.find_all ["category = ?", category_name], "created ASC", [15, 20]) reserved(def) method(find_all)operator(()ident(conditions) operator(=) pre_constant(nil)operator(,) ident(orderings) operator(=) pre_constant(nil)operator(,) ident(limit) operator(=) pre_constant(nil)operator(,) ident(joins) operator(=) pre_constant(nil)operator(\)) comment(# :nodoc:) ident(limit)operator(,) ident(offset) operator(=) ident(limit)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) operator(?) ident(limit) operator(:) operator([) ident(limit)operator(,) pre_constant(nil) operator(]) ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) ident(conditions)operator(,) symbol(:order) operator(=)operator(>) ident(orderings)operator(,) symbol(:joins) operator(=)operator(>) ident(joins)operator(,) symbol(:limit) operator(=)operator(>) ident(limit)operator(,) symbol(:offset) operator(=)operator(>) ident(offset)operator(\)) reserved(end) reserved(end) reserved(end) ident(endrequire) string ident(require) string ident(require) string reserved(module) class(YAML) comment(#:nodoc:) reserved(class) class(Omap) comment(#:nodoc:) reserved(def) method(keys)operator(;) ident(map) operator({) operator(|)ident(k)operator(,) ident(v)operator(|) ident(k) operator(}) reserved(end) reserved(def) method(values)operator(;) ident(map) operator({) operator(|)ident(k)operator(,) ident(v)operator(|) ident(v) operator(}) reserved(end) reserved(end) reserved(end) reserved(class) class(FixtureClassNotFound) operator(<) constant(ActiveRecord)operator(::)constant(ActiveRecordError) comment(#:nodoc:) reserved(end) comment(# Fixtures are a way of organizing data that you want to test against; in short, sample data. They come in 3 flavours:) comment(#) comment(# 1. YAML fixtures) comment(# 2. CSV fixtures) comment(# 3. Single-file fixtures) comment(#) comment(# = YAML fixtures) comment(#) comment(# This type of fixture is in YAML format and the preferred default. YAML is a file format which describes data structures) comment(# in a non-verbose, humanly-readable format. It ships with Ruby 1.8.1+.) comment(#) comment(# Unlike single-file fixtures, YAML fixtures are stored in a single file per model, which are placed in the directory appointed) comment(# by Test::Unit::TestCase.fixture_path=(path\) (this is automatically configured for Rails, so you can just) comment(# put your files in /test/fixtures/\). The fixture file ends with the .yml file extension (Rails example:) comment(# "/test/fixtures/web_sites.yml"\). The format of a YAML fixture file looks like this:) comment(#) comment(# rubyonrails:) comment(# id: 1) comment(# name: Ruby on Rails) comment(# url: http://www.rubyonrails.org) comment(#) comment(# google:) comment(# id: 2) comment(# name: Google) comment(# url: http://www.google.com) comment(#) comment(# This YAML fixture file includes two fixtures. Each YAML fixture (ie. record\) is given a name and is followed by an) comment(# indented list of key/value pairs in the "key: value" format. Records are separated by a blank line for your viewing) comment(# pleasure.) comment(#) comment(# Note that YAML fixtures are unordered. If you want ordered fixtures, use the omap YAML type. See http://yaml.org/type/omap.html) comment(# for the specification. You will need ordered fixtures when you have foreign key constraints on keys in the same table.) comment(# This is commonly needed for tree structures. Example:) comment(#) comment(# --- !omap) comment(# - parent:) comment(# id: 1) comment(# parent_id: NULL) comment(# title: Parent) comment(# - child:) comment(# id: 2) comment(# parent_id: 1) comment(# title: Child) comment(#) comment(# = CSV fixtures) comment(#) comment(# Fixtures can also be kept in the Comma Separated Value format. Akin to YAML fixtures, CSV fixtures are stored) comment(# in a single file, but instead end with the .csv file extension (Rails example: "/test/fixtures/web_sites.csv"\)) comment(#) comment(# The format of this type of fixture file is much more compact than the others, but also a little harder to read by us) comment(# humans. The first line of the CSV file is a comma-separated list of field names. The rest of the file is then comprised) comment(# of the actual data (1 per line\). Here's an example:) comment(#) comment(# id, name, url) comment(# 1, Ruby On Rails, http://www.rubyonrails.org) comment(# 2, Google, http://www.google.com) comment(#) comment(# Should you have a piece of data with a comma character in it, you can place double quotes around that value. If you) comment(# need to use a double quote character, you must escape it with another double quote.) comment(#) comment(# Another unique attribute of the CSV fixture is that it has *no* fixture name like the other two formats. Instead, the) comment(# fixture names are automatically generated by deriving the class name of the fixture file and adding an incrementing) comment(# number to the end. In our example, the 1st fixture would be called "web_site_1" and the 2nd one would be called) comment(# "web_site_2".) comment(#) comment(# Most databases and spreadsheets support exporting to CSV format, so this is a great format for you to choose if you) comment(# have existing data somewhere already.) comment(#) comment(# = Single-file fixtures) comment(#) comment(# This type of fixtures was the original format for Active Record that has since been deprecated in favor of the YAML and CSV formats.) comment(# Fixtures for this format are created by placing text files in a sub-directory (with the name of the model\) to the directory) comment(# appointed by Test::Unit::TestCase.fixture_path=(path\) (this is automatically configured for Rails, so you can just) comment(# put your files in /test/fixtures// -- like /test/fixtures/web_sites/ for the WebSite) comment(# model\).) comment(#) comment(# Each text file placed in this directory represents a "record". Usually these types of fixtures are named without) comment(# extensions, but if you are on a Windows machine, you might consider adding .txt as the extension. Here's what the) comment(# above example might look like:) comment(#) comment(# web_sites/google) comment(# web_sites/yahoo.txt) comment(# web_sites/ruby-on-rails) comment(#) comment(# The file format of a standard fixture is simple. Each line is a property (or column in db speak\) and has the syntax) comment(# of "name => value". Here's an example of the ruby-on-rails fixture above:) comment(#) comment(# id => 1) comment(# name => Ruby on Rails) comment(# url => http://www.rubyonrails.org) comment(#) comment(# = Using Fixtures) comment(#) comment(# Since fixtures are a testing construct, we use them in our unit and functional tests. There are two ways to use the) comment(# fixtures, but first let's take a look at a sample unit test found:) comment(#) comment(# require 'web_site') comment(#) comment(# class WebSiteTest < Test::Unit::TestCase) comment(# def test_web_site_count) comment(# assert_equal 2, WebSite.count) comment(# end) comment(# end) comment(#) comment(# As it stands, unless we pre-load the web_site table in our database with two records, this test will fail. Here's the) comment(# easiest way to add fixtures to the database:) comment(#) comment(# ...) comment(# class WebSiteTest < Test::Unit::TestCase) comment(# fixtures :web_sites # add more by separating the symbols with commas) comment(# ...) comment(#) comment(# By adding a "fixtures" method to the test case and passing it a list of symbols (only one is shown here tho\), we trigger) comment(# the testing environment to automatically load the appropriate fixtures into the database before each test. ) comment(# To ensure consistent data, the environment deletes the fixtures before running the load.) comment(#) comment(# In addition to being available in the database, the fixtures are also loaded into a hash stored in an instance variable) comment(# of the test case. It is named after the symbol... so, in our example, there would be a hash available called) comment(# @web_sites. This is where the "fixture name" comes into play.) comment(#) comment(# On top of that, each record is automatically "found" (using Model.find(id\)\) and placed in the instance variable of its name.) comment(# So for the YAML fixtures, we'd get @rubyonrails and @google, which could be interrogated using regular Active Record semantics:) comment(#) comment(# # test if the object created from the fixture data has the same attributes as the data itself) comment(# def test_find) comment(# assert_equal @web_sites["rubyonrails"]["name"], @rubyonrails.name) comment(# end) comment(#) comment(# As seen above, the data hash created from the YAML fixtures would have @web_sites["rubyonrails"]["url"] return) comment(# "http://www.rubyonrails.org" and @web_sites["google"]["name"] would return "Google". The same fixtures, but loaded) comment(# from a CSV fixture file, would be accessible via @web_sites["web_site_1"]["name"] == "Ruby on Rails" and have the individual) comment(# fixtures available as instance variables @web_site_1 and @web_site_2.) comment(#) comment(# If you do not wish to use instantiated fixtures (usually for performance reasons\) there are two options.) comment(#) comment(# - to completely disable instantiated fixtures:) comment(# self.use_instantiated_fixtures = false) comment(#) comment(# - to keep the fixture instance (@web_sites\) available, but do not automatically 'find' each instance:) comment(# self.use_instantiated_fixtures = :no_instances ) comment(#) comment(# Even if auto-instantiated fixtures are disabled, you can still access them) comment(# by name via special dynamic methods. Each method has the same name as the) comment(# model, and accepts the name of the fixture to instantiate:) comment(#) comment(# fixtures :web_sites) comment(#) comment(# def test_find) comment(# assert_equal "Ruby on Rails", web_sites(:rubyonrails\).name) comment(# end) comment(#) comment(# = Dynamic fixtures with ERb) comment(#) comment(# Some times you don't care about the content of the fixtures as much as you care about the volume. In these cases, you can) comment(# mix ERb in with your YAML or CSV fixtures to create a bunch of fixtures for load testing, like:) comment(#) comment(# <% for i in 1..1000 %>) comment(# fix_<%= i %>:) comment(# id: <%= i %>) comment(# name: guy_<%= 1 %>) comment(# <% end %>) comment(#) comment(# This will create 1000 very simple YAML fixtures.) comment(#) comment(# Using ERb, you can also inject dynamic values into your fixtures with inserts like <%= Date.today.strftime("%Y-%m-%d"\) %>.) comment(# This is however a feature to be used with some caution. The point of fixtures are that they're stable units of predictable) comment(# sample data. If you feel that you need to inject dynamic values, then perhaps you should reexamine whether your application) comment(# is properly testable. Hence, dynamic values in fixtures are to be considered a code smell.) comment(#) comment(# = Transactional fixtures) comment(#) comment(# TestCases can use begin+rollback to isolate their changes to the database instead of having to delete+insert for every test case. ) comment(# They can also turn off auto-instantiation of fixture data since the feature is costly and often unused.) comment(#) comment(# class FooTest < Test::Unit::TestCase) comment(# self.use_transactional_fixtures = true) comment(# self.use_instantiated_fixtures = false) comment(# ) comment(# fixtures :foos) comment(# ) comment(# def test_godzilla) comment(# assert !Foo.find(:all\).empty?) comment(# Foo.destroy_all) comment(# assert Foo.find(:all\).empty?) comment(# end) comment(# ) comment(# def test_godzilla_aftermath) comment(# assert !Foo.find(:all\).empty?) comment(# end) comment(# end) comment(# ) comment(# If you preload your test database with all fixture data (probably in the Rakefile task\) and use transactional fixtures, ) comment(# then you may omit all fixtures declarations in your test cases since all the data's already there and every case rolls back its changes.) comment(#) comment(# In order to use instantiated fixtures with preloaded data, set +self.pre_loaded_fixtures+ to true. This will provide ) comment(# access to fixture data for every table that has been loaded through fixtures (depending on the value of +use_instantiated_fixtures+\)) comment(#) comment(# When *not* to use transactional fixtures: ) comment(# 1. You're testing whether a transaction works correctly. Nested transactions don't commit until all parent transactions commit, ) comment(# particularly, the fixtures transaction which is begun in setup and rolled back in teardown. Thus, you won't be able to verify ) comment(# the results of your transaction until Active Record supports nested transactions or savepoints (in progress.\) ) comment(# 2. Your database does not support transactions. Every Active Record database supports transactions except MySQL MyISAM. ) comment(# Use InnoDB, MaxDB, or NDB instead.) reserved(class) class(Fixtures) operator(<) constant(YAML)operator(::)constant(Omap) constant(DEFAULT_FILTER_RE) operator(=) regexp reserved(def) pre_constant(self)operator(.)method(instantiate_fixtures)operator(()ident(object)operator(,) ident(table_name)operator(,) ident(fixtures)operator(,) ident(load_instances)operator(=)pre_constant(true)operator(\)) ident(object)operator(.)ident(instance_variable_set) stringoperator(,)stringoperator(\))inline_delimiter(})>delimiter(")>operator(,) ident(fixtures) reserved(if) ident(load_instances) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(silence) reserved(do) ident(fixtures)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(fixture)operator(|) reserved(begin) ident(object)operator(.)ident(instance_variable_set) stringdelimiter(")>operator(,) ident(fixture)operator(.)ident(find) reserved(rescue) constant(FixtureClassNotFound) pre_constant(nil) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(instantiate_all_loaded_fixtures)operator(()ident(object)operator(,) ident(load_instances)operator(=)pre_constant(true)operator(\)) ident(all_loaded_fixtures)operator(.)ident(each) reserved(do) operator(|)ident(table_name)operator(,) ident(fixtures)operator(|) constant(Fixtures)operator(.)ident(instantiate_fixtures)operator(()ident(object)operator(,) ident(table_name)operator(,) ident(fixtures)operator(,) ident(load_instances)operator(\)) reserved(end) reserved(end) ident(cattr_accessor) symbol(:all_loaded_fixtures) pre_constant(self)operator(.)ident(all_loaded_fixtures) operator(=) operator({)operator(}) reserved(def) pre_constant(self)operator(.)method(create_fixtures)operator(()ident(fixtures_directory)operator(,) ident(table_names)operator(,) ident(class_names) operator(=) operator({)operator(})operator(\)) ident(table_names) operator(=) operator([)ident(table_names)operator(])operator(.)ident(flatten)operator(.)ident(map) operator({) operator(|)ident(n)operator(|) ident(n)operator(.)ident(to_s) operator(}) ident(connection) operator(=) ident(block_given?) operator(?) reserved(yield) operator(:) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(silence) reserved(do) ident(fixtures_map) operator(=) operator({)operator(}) ident(fixtures) operator(=) ident(table_names)operator(.)ident(map) reserved(do) operator(|)ident(table_name)operator(|) ident(fixtures_map)operator([)ident(table_name)operator(]) operator(=) constant(Fixtures)operator(.)ident(new)operator(()ident(connection)operator(,) constant(File)operator(.)ident(split)operator(()ident(table_name)operator(.)ident(to_s)operator(\))operator(.)ident(last)operator(,) ident(class_names)operator([)ident(table_name)operator(.)ident(to_sym)operator(])operator(,) constant(File)operator(.)ident(join)operator(()ident(fixtures_directory)operator(,) ident(table_name)operator(.)ident(to_s)operator(\))operator(\)) reserved(end) ident(all_loaded_fixtures)operator(.)ident(merge!) ident(fixtures_map) ident(connection)operator(.)ident(transaction) reserved(do) ident(fixtures)operator(.)ident(reverse)operator(.)ident(each) operator({) operator(|)ident(fixture)operator(|) ident(fixture)operator(.)ident(delete_existing_fixtures) operator(}) ident(fixtures)operator(.)ident(each) operator({) operator(|)ident(fixture)operator(|) ident(fixture)operator(.)ident(insert_fixtures) operator(}) comment(# Cap primary key sequences to max(pk\).) reserved(if) ident(connection)operator(.)ident(respond_to?)operator(()symbol(:reset_pk_sequence!)operator(\)) ident(table_names)operator(.)ident(each) reserved(do) operator(|)ident(table_name)operator(|) ident(connection)operator(.)ident(reset_pk_sequence!)operator(()ident(table_name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(return) ident(fixtures)operator(.)ident(size) operator(>) integer(1) operator(?) ident(fixtures) operator(:) ident(fixtures)operator(.)ident(first) reserved(end) reserved(end) ident(attr_reader) symbol(:table_name) reserved(def) method(initialize)operator(()ident(connection)operator(,) ident(table_name)operator(,) ident(class_name)operator(,) ident(fixture_path)operator(,) ident(file_filter) operator(=) constant(DEFAULT_FILTER_RE)operator(\)) instance_variable(@connection)operator(,) instance_variable(@table_name)operator(,) instance_variable(@fixture_path)operator(,) instance_variable(@file_filter) operator(=) ident(connection)operator(,) ident(table_name)operator(,) ident(fixture_path)operator(,) ident(file_filter) instance_variable(@class_name) operator(=) ident(class_name) operator(||) operator(()constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(pluralize_table_names) operator(?) instance_variable(@table_name)operator(.)ident(singularize)operator(.)ident(camelize) operator(:) instance_variable(@table_name)operator(.)ident(camelize)operator(\)) instance_variable(@table_name) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(+) instance_variable(@table_name) operator(+) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) ident(read_fixture_files) reserved(end) reserved(def) method(delete_existing_fixtures) instance_variable(@connection)operator(.)ident(delete) stringdelimiter(")>operator(,) string reserved(end) reserved(def) method(insert_fixtures) ident(values)operator(.)ident(each) reserved(do) operator(|)ident(fixture)operator(|) instance_variable(@connection)operator(.)ident(execute) stringcontent( ()inlinecontent(\) VALUES ()inlinecontent(\))delimiter(")>operator(,) string reserved(end) reserved(end) ident(private) reserved(def) method(read_fixture_files) reserved(if) constant(File)operator(.)ident(file?)operator(()ident(yaml_file_path)operator(\)) comment(# YAML fixtures) reserved(begin) ident(yaml_string) operator(=) string constant(Dir)operator([)stringcontent(/**/*.yml)delimiter(")>operator(])operator(.)ident(select) operator({)operator(|)ident(f)operator(|) ident(test)operator(()integer(?f)operator(,)ident(f)operator(\)) operator(})operator(.)ident(each) reserved(do) operator(|)ident(subfixture_path)operator(|) ident(yaml_string) operator(<<) constant(IO)operator(.)ident(read)operator(()ident(subfixture_path)operator(\)) reserved(end) ident(yaml_string) operator(<<) constant(IO)operator(.)ident(read)operator(()ident(yaml_file_path)operator(\)) reserved(if) ident(yaml) operator(=) constant(YAML)operator(::)ident(load)operator(()ident(erb_render)operator(()ident(yaml_string)operator(\))operator(\)) ident(yaml) operator(=) ident(yaml)operator(.)ident(value) reserved(if) ident(yaml)operator(.)ident(respond_to?)operator(()symbol(:type_id)operator(\)) reserved(and) ident(yaml)operator(.)ident(respond_to?)operator(()symbol(:value)operator(\)) ident(yaml)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(data)operator(|) pre_constant(self)operator([)ident(name)operator(]) operator(=) constant(Fixture)operator(.)ident(new)operator(()ident(data)operator(,) instance_variable(@class_name)operator(\)) reserved(end) reserved(end) reserved(rescue) constant(Exception)operator(=)operator(>)ident(boom) ident(raise) constant(Fixture)operator(::)constant(FormatError)operator(,) stringcontent(. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html)char(\\n)content(The exact error was:)char(\\n)content( )inlinecontent(: )inlinedelimiter(")> reserved(end) reserved(elsif) constant(File)operator(.)ident(file?)operator(()ident(csv_file_path)operator(\)) comment(# CSV fixtures) ident(reader) operator(=) constant(CSV)operator(::)constant(Reader)operator(.)ident(create)operator(()ident(erb_render)operator(()constant(IO)operator(.)ident(read)operator(()ident(csv_file_path)operator(\))operator(\))operator(\)) ident(header) operator(=) ident(reader)operator(.)ident(shift) ident(i) operator(=) integer(0) ident(reader)operator(.)ident(each) reserved(do) operator(|)ident(row)operator(|) ident(data) operator(=) operator({)operator(}) ident(row)operator(.)ident(each_with_index) operator({) operator(|)ident(cell)operator(,) ident(j)operator(|) ident(data)operator([)ident(header)operator([)ident(j)operator(])operator(.)ident(to_s)operator(.)ident(strip)operator(]) operator(=) ident(cell)operator(.)ident(to_s)operator(.)ident(strip) operator(}) pre_constant(self)operator([)stringcontent(_)inlinedelimiter(")>operator(])operator(=) constant(Fixture)operator(.)ident(new)operator(()ident(data)operator(,) instance_variable(@class_name)operator(\)) reserved(end) reserved(elsif) constant(File)operator(.)ident(file?)operator(()ident(deprecated_yaml_file_path)operator(\)) ident(raise) constant(Fixture)operator(::)constant(FormatError)operator(,) stringcontent( to )inlinedelimiter(")> reserved(else) comment(# Standard fixtures) constant(Dir)operator(.)ident(entries)operator(()instance_variable(@fixture_path)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(file)operator(|) ident(path) operator(=) constant(File)operator(.)ident(join)operator(()instance_variable(@fixture_path)operator(,) ident(file)operator(\)) reserved(if) constant(File)operator(.)ident(file?)operator(()ident(path)operator(\)) reserved(and) ident(file) operator(!)operator(~) instance_variable(@file_filter) pre_constant(self)operator([)ident(file)operator(]) operator(=) constant(Fixture)operator(.)ident(new)operator(()ident(path)operator(,) instance_variable(@class_name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) method(yaml_file_path) stringcontent(.yml)delimiter(")> reserved(end) reserved(def) method(deprecated_yaml_file_path) stringcontent(.yaml)delimiter(")> reserved(end) reserved(def) method(csv_file_path) instance_variable(@fixture_path) operator(+) string reserved(end) reserved(def) method(yaml_fixtures_key)operator(()ident(path)operator(\)) constant(File)operator(.)ident(basename)operator(()instance_variable(@fixture_path)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(first) reserved(end) reserved(def) method(erb_render)operator(()ident(fixture_content)operator(\)) constant(ERB)operator(.)ident(new)operator(()ident(fixture_content)operator(\))operator(.)ident(result) reserved(end) reserved(end) reserved(class) class(Fixture) comment(#:nodoc:) ident(include) constant(Enumerable) reserved(class) class(FixtureError) operator(<) constant(StandardError)comment(#:nodoc:) reserved(end) reserved(class) class(FormatError) operator(<) constant(FixtureError)comment(#:nodoc:) reserved(end) reserved(def) method(initialize)operator(()ident(fixture)operator(,) ident(class_name)operator(\)) reserved(case) ident(fixture) reserved(when) constant(Hash)operator(,) constant(YAML)operator(::)constant(Omap) instance_variable(@fixture) operator(=) ident(fixture) reserved(when) constant(String) instance_variable(@fixture) operator(=) ident(read_fixture_file)operator(()ident(fixture)operator(\)) reserved(else) ident(raise) constant(ArgumentError)operator(,) stringdelimiter(")> reserved(end) instance_variable(@class_name) operator(=) ident(class_name) reserved(end) reserved(def) method(each) instance_variable(@fixture)operator(.)ident(each) operator({) operator(|)ident(item)operator(|) reserved(yield) ident(item) operator(}) reserved(end) reserved(def) method([])operator(()ident(key)operator(\)) instance_variable(@fixture)operator([)ident(key)operator(]) reserved(end) reserved(def) method(to_hash) instance_variable(@fixture) reserved(end) reserved(def) method(key_list) ident(columns) operator(=) instance_variable(@fixture)operator(.)ident(keys)operator(.)ident(collect)operator({) operator(|)ident(column_name)operator(|) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(quote_column_name)operator(()ident(column_name)operator(\)) operator(}) ident(columns)operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(value_list) instance_variable(@fixture)operator(.)ident(values)operator(.)ident(map) operator({) operator(|)ident(v)operator(|) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(quote)operator(()ident(v)operator(\))operator(.)ident(gsub)operator(()stringoperator(,) stringoperator(\))operator(.)ident(gsub)operator(()stringoperator(,) stringoperator(\)) operator(})operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(def) method(find) ident(klass) operator(=) instance_variable(@class_name)operator(.)ident(is_a?)operator(()constant(Class)operator(\)) operator(?) instance_variable(@class_name) operator(:) constant(Object)operator(.)ident(const_get)operator(()instance_variable(@class_name)operator(\)) reserved(rescue) pre_constant(nil) reserved(if) ident(klass) ident(klass)operator(.)ident(find)operator(()pre_constant(self)operator([)ident(klass)operator(.)ident(primary_key)operator(])operator(\)) reserved(else) ident(raise) constant(FixtureClassNotFound)operator(,) stringcontent( was not found.)delimiter(")> reserved(end) reserved(end) ident(private) reserved(def) method(read_fixture_file)operator(()ident(fixture_file_path)operator(\)) constant(IO)operator(.)ident(readlines)operator(()ident(fixture_file_path)operator(\))operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(fixture)operator(,) ident(line)operator(|) comment(# Mercifully skip empty lines.) reserved(next) reserved(if) ident(line) operator(=)operator(~) regexp comment(# Use the same regular expression for attributes as Active Record.) reserved(unless) ident(md) operator(=) regexp)char(\\s)content(*(.+\))char(\\s)content(*$)delimiter(/)>operator(.)ident(match)operator(()ident(line)operator(\)) ident(raise) constant(FormatError)operator(,) stringcontent(: fixture format error at ')inlinecontent('. Expecting 'key => value'.)delimiter(")> reserved(end) ident(key)operator(,) ident(value) operator(=) ident(md)operator(.)ident(captures) comment(# Disallow duplicate keys to catch typos.) ident(raise) constant(FormatError)operator(,) stringcontent(: duplicate ')inlinecontent(' in fixture.)delimiter(")> reserved(if) ident(fixture)operator([)ident(key)operator(]) ident(fixture)operator([)ident(key)operator(]) operator(=) ident(value)operator(.)ident(strip) ident(fixture) reserved(end) reserved(end) reserved(end) reserved(module) class(Test) comment(#:nodoc:) reserved(module) class(Unit) comment(#:nodoc:) reserved(class) class(TestCase) comment(#:nodoc:) ident(cattr_accessor) symbol(:fixture_path) ident(class_inheritable_accessor) symbol(:fixture_table_names) ident(class_inheritable_accessor) symbol(:fixture_class_names) ident(class_inheritable_accessor) symbol(:use_transactional_fixtures) ident(class_inheritable_accessor) symbol(:use_instantiated_fixtures) comment(# true, false, or :no_instances) ident(class_inheritable_accessor) symbol(:pre_loaded_fixtures) pre_constant(self)operator(.)ident(fixture_table_names) operator(=) operator([)operator(]) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) pre_constant(self)operator(.)ident(use_instantiated_fixtures) operator(=) pre_constant(true) pre_constant(self)operator(.)ident(pre_loaded_fixtures) operator(=) pre_constant(false) pre_constant(self)operator(.)ident(fixture_class_names) operator(=) operator({)operator(}) class_variable(@@already_loaded_fixtures) operator(=) operator({)operator(}) pre_constant(self)operator(.)ident(fixture_class_names) operator(=) operator({)operator(}) reserved(def) pre_constant(self)operator(.)method(set_fixture_class)operator(()ident(class_names) operator(=) operator({)operator(})operator(\)) pre_constant(self)operator(.)ident(fixture_class_names) operator(=) pre_constant(self)operator(.)ident(fixture_class_names)operator(.)ident(merge)operator(()ident(class_names)operator(\)) reserved(end) reserved(def) pre_constant(self)operator(.)method(fixtures)operator(()operator(*)ident(table_names)operator(\)) ident(table_names) operator(=) ident(table_names)operator(.)ident(flatten)operator(.)ident(map) operator({) operator(|)ident(n)operator(|) ident(n)operator(.)ident(to_s) operator(}) pre_constant(self)operator(.)ident(fixture_table_names) operator(|=) ident(table_names) ident(require_fixture_classes)operator(()ident(table_names)operator(\)) ident(setup_fixture_accessors)operator(()ident(table_names)operator(\)) reserved(end) reserved(def) pre_constant(self)operator(.)method(require_fixture_classes)operator(()ident(table_names)operator(=)pre_constant(nil)operator(\)) operator(()ident(table_names) operator(||) ident(fixture_table_names)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(table_name)operator(|) ident(file_name) operator(=) ident(table_name)operator(.)ident(to_s) ident(file_name) operator(=) ident(file_name)operator(.)ident(singularize) reserved(if) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(pluralize_table_names) reserved(begin) ident(require) ident(file_name) reserved(rescue) constant(LoadError) comment(# Let's hope the developer has included it himself) reserved(end) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(setup_fixture_accessors)operator(()ident(table_names)operator(=)pre_constant(nil)operator(\)) operator(()ident(table_names) operator(||) ident(fixture_table_names)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(table_name)operator(|) ident(table_name) operator(=) ident(table_name)operator(.)ident(to_s)operator(.)ident(tr)operator(()stringoperator(,)stringoperator(\)) ident(define_method)operator(()ident(table_name)operator(\)) reserved(do) operator(|)ident(fixture)operator(,) operator(*)ident(optionals)operator(|) ident(force_reload) operator(=) ident(optionals)operator(.)ident(shift) instance_variable(@fixture_cache)operator([)ident(table_name)operator(]) operator(||=) constant(Hash)operator(.)ident(new) instance_variable(@fixture_cache)operator([)ident(table_name)operator(])operator([)ident(fixture)operator(]) operator(=) pre_constant(nil) reserved(if) ident(force_reload) reserved(if) instance_variable(@loaded_fixtures)operator([)ident(table_name)operator(])operator([)ident(fixture)operator(.)ident(to_s)operator(]) instance_variable(@fixture_cache)operator([)ident(table_name)operator(])operator([)ident(fixture)operator(]) operator(||=) instance_variable(@loaded_fixtures)operator([)ident(table_name)operator(])operator([)ident(fixture)operator(.)ident(to_s)operator(])operator(.)ident(find) reserved(else) ident(raise) constant(StandardError)operator(,) stringcontent(' found for table ')inlinecontent(')delimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(uses_transaction)operator(()operator(*)ident(methods)operator(\)) instance_variable(@uses_transaction) operator(||=) operator([)operator(]) instance_variable(@uses_transaction)operator(.)ident(concat) ident(methods)operator(.)ident(map) operator({) operator(|)ident(m)operator(|) ident(m)operator(.)ident(to_s) operator(}) reserved(end) reserved(def) pre_constant(self)operator(.)method(uses_transaction?)operator(()ident(method)operator(\)) instance_variable(@uses_transaction) operator(&&) instance_variable(@uses_transaction)operator(.)ident(include?)operator(()ident(method)operator(.)ident(to_s)operator(\)) reserved(end) reserved(def) method(use_transactional_fixtures?) ident(use_transactional_fixtures) operator(&&) operator(!)pre_constant(self)operator(.)ident(class)operator(.)ident(uses_transaction?)operator(()ident(method_name)operator(\)) reserved(end) reserved(def) method(setup_with_fixtures) reserved(if) ident(pre_loaded_fixtures) operator(&&) operator(!)ident(use_transactional_fixtures) ident(raise) constant(RuntimeError)operator(,) string reserved(end) instance_variable(@fixture_cache) operator(=) constant(Hash)operator(.)ident(new) comment(# Load fixtures once and begin transaction.) reserved(if) ident(use_transactional_fixtures?) reserved(if) class_variable(@@already_loaded_fixtures)operator([)pre_constant(self)operator(.)ident(class)operator(]) instance_variable(@loaded_fixtures) operator(=) class_variable(@@already_loaded_fixtures)operator([)pre_constant(self)operator(.)ident(class)operator(]) reserved(else) ident(load_fixtures) class_variable(@@already_loaded_fixtures)operator([)pre_constant(self)operator(.)ident(class)operator(]) operator(=) instance_variable(@loaded_fixtures) reserved(end) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(lock_mutex) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(begin_db_transaction) comment(# Load fixtures for every test.) reserved(else) class_variable(@@already_loaded_fixtures)operator([)pre_constant(self)operator(.)ident(class)operator(]) operator(=) pre_constant(nil) ident(load_fixtures) reserved(end) comment(# Instantiate fixtures for every test if requested.) ident(instantiate_fixtures) reserved(if) ident(use_instantiated_fixtures) reserved(end) ident(alias_method) symbol(:setup)operator(,) symbol(:setup_with_fixtures) reserved(def) method(teardown_with_fixtures) comment(# Rollback changes.) reserved(if) ident(use_transactional_fixtures?) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(rollback_db_transaction) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(unlock_mutex) reserved(end) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(verify_active_connections!) reserved(end) ident(alias_method) symbol(:teardown)operator(,) symbol(:teardown_with_fixtures) reserved(def) pre_constant(self)operator(.)method(method_added)operator(()ident(method)operator(\)) reserved(case) ident(method)operator(.)ident(to_s) reserved(when) string reserved(unless) ident(method_defined?)operator(()symbol(:setup_without_fixtures)operator(\)) ident(alias_method) symbol(:setup_without_fixtures)operator(,) symbol(:setup) ident(define_method)operator(()symbol(:setup)operator(\)) reserved(do) ident(setup_with_fixtures) ident(setup_without_fixtures) reserved(end) reserved(end) reserved(when) string reserved(unless) ident(method_defined?)operator(()symbol(:teardown_without_fixtures)operator(\)) ident(alias_method) symbol(:teardown_without_fixtures)operator(,) symbol(:teardown) ident(define_method)operator(()symbol(:teardown)operator(\)) reserved(do) ident(teardown_without_fixtures) ident(teardown_with_fixtures) reserved(end) reserved(end) reserved(end) reserved(end) ident(private) reserved(def) method(load_fixtures) instance_variable(@loaded_fixtures) operator(=) operator({)operator(}) ident(fixtures) operator(=) constant(Fixtures)operator(.)ident(create_fixtures)operator(()ident(fixture_path)operator(,) ident(fixture_table_names)operator(,) ident(fixture_class_names)operator(\)) reserved(unless) ident(fixtures)operator(.)ident(nil?) reserved(if) ident(fixtures)operator(.)ident(instance_of?)operator(()constant(Fixtures)operator(\)) instance_variable(@loaded_fixtures)operator([)ident(fixtures)operator(.)ident(table_name)operator(]) operator(=) ident(fixtures) reserved(else) ident(fixtures)operator(.)ident(each) operator({) operator(|)ident(f)operator(|) instance_variable(@loaded_fixtures)operator([)ident(f)operator(.)ident(table_name)operator(]) operator(=) ident(f) operator(}) reserved(end) reserved(end) reserved(end) comment(# for pre_loaded_fixtures, only require the classes once. huge speed improvement) class_variable(@@required_fixture_classes) operator(=) pre_constant(false) reserved(def) method(instantiate_fixtures) reserved(if) ident(pre_loaded_fixtures) ident(raise) constant(RuntimeError)operator(,) string reserved(if) constant(Fixtures)operator(.)ident(all_loaded_fixtures)operator(.)ident(empty?) reserved(unless) class_variable(@@required_fixture_classes) pre_constant(self)operator(.)ident(class)operator(.)ident(require_fixture_classes) constant(Fixtures)operator(.)ident(all_loaded_fixtures)operator(.)ident(keys) class_variable(@@required_fixture_classes) operator(=) pre_constant(true) reserved(end) constant(Fixtures)operator(.)ident(instantiate_all_loaded_fixtures)operator(()pre_constant(self)operator(,) ident(load_instances?)operator(\)) reserved(else) ident(raise) constant(RuntimeError)operator(,) string reserved(if) instance_variable(@loaded_fixtures)operator(.)ident(nil?) instance_variable(@loaded_fixtures)operator(.)ident(each) reserved(do) operator(|)ident(table_name)operator(,) ident(fixtures)operator(|) constant(Fixtures)operator(.)ident(instantiate_fixtures)operator(()pre_constant(self)operator(,) ident(table_name)operator(,) ident(fixtures)operator(,) ident(load_instances?)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(load_instances?) ident(use_instantiated_fixtures) operator(!=) symbol(:no_instances) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) comment(# Active Records support optimistic locking if the field lock_version is present. Each update to the) comment(# record increments the lock_version column and the locking facilities ensure that records instantiated twice) comment(# will let the last one saved raise a StaleObjectError if the first was also updated. Example:) comment(#) comment(# p1 = Person.find(1\)) comment(# p2 = Person.find(1\)) comment(# ) comment(# p1.first_name = "Michael") comment(# p1.save) comment(# ) comment(# p2.first_name = "should fail") comment(# p2.save # Raises a ActiveRecord::StaleObjectError) comment(#) comment(# You're then responsible for dealing with the conflict by rescuing the exception and either rolling back, merging,) comment(# or otherwise apply the business logic needed to resolve the conflict.) comment(#) comment(# You must ensure that your database schema defaults the lock_version column to 0.) comment(#) comment(# This behavior can be turned off by setting ActiveRecord::Base.lock_optimistically = false.) comment(# To override the name of the lock_version column, invoke the set_locking_column method.) comment(# This method uses the same syntax as set_table_name) reserved(module) class(Locking) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:update_without_lock)operator(,) symbol(:update) ident(alias_method) symbol(:update)operator(,) symbol(:update_with_lock) reserved(end) reserved(end) reserved(def) method(update_with_lock) comment(#:nodoc:) reserved(return) ident(update_without_lock) reserved(unless) ident(locking_enabled?) ident(lock_col) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(locking_column) ident(previous_value) operator(=) ident(send)operator(()ident(lock_col)operator(\)) ident(send)operator(()ident(lock_col) operator(+) stringoperator(,) ident(previous_value) operator(+) integer(1)operator(\)) ident(affected_rows) operator(=) ident(connection)operator(.)ident(update)operator(()stringoperator(,) stringcontent( Update with optimistic locking)delimiter(")>operator(\))stringcontent( SET )inlinecontent( WHERE )inlinecontent( = )inlinecontent( AND )inlinecontent( = )inlinedelimiter( end_sql)> reserved(unless) ident(affected_rows) operator(==) integer(1) ident(raise) constant(ActiveRecord)operator(::)constant(StaleObjectError)operator(,) string reserved(end) reserved(return) pre_constant(true) reserved(end) reserved(end) reserved(class) class(Base) class_variable(@@lock_optimistically) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:lock_optimistically) reserved(def) method(locking_enabled?) comment(#:nodoc:) ident(lock_optimistically) operator(&&) ident(respond_to?)operator(()pre_constant(self)operator(.)ident(class)operator(.)ident(locking_column)operator(\)) reserved(end) reserved(class) operator(<<) class(self) reserved(def) method(set_locking_column)operator(()ident(value) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) ident(define_attr_method) symbol(:locking_column)operator(,) ident(value)operator(,) operator(&)ident(block) reserved(end) reserved(def) method(locking_column) comment(#:nodoc:) ident(reset_locking_column) reserved(end) reserved(def) method(reset_locking_column) comment(#:nodoc:) ident(default) operator(=) string ident(set_locking_column)operator(()ident(default)operator(\)) ident(default) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(class) class(IrreversibleMigration) operator(<) constant(ActiveRecordError)comment(#:nodoc:) reserved(end) reserved(class) class(DuplicateMigrationVersionError) operator(<) constant(ActiveRecordError)comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(version)operator(\)) reserved(super)operator(()stringdelimiter(")>operator(\)) reserved(end) reserved(end) comment(# Migrations can manage the evolution of a schema used by several physical databases. It's a solution) comment(# to the common problem of adding a field to make a new feature work in your local database, but being unsure of how to) comment(# push that change to other developers and to the production server. With migrations, you can describe the transformations) comment(# in self-contained classes that can be checked into version control systems and executed against another database that) comment(# might be one, two, or five versions behind.) comment(#) comment(# Example of a simple migration:) comment(#) comment(# class AddSsl < ActiveRecord::Migration) comment(# def self.up) comment(# add_column :accounts, :ssl_enabled, :boolean, :default => 1) comment(# end) comment(#) comment(# def self.down) comment(# remove_column :accounts, :ssl_enabled) comment(# end) comment(# end) comment(#) comment(# This migration will add a boolean flag to the accounts table and remove it again, if you're backing out of the migration.) comment(# It shows how all migrations have two class methods +up+ and +down+ that describes the transformations required to implement) comment(# or remove the migration. These methods can consist of both the migration specific methods, like add_column and remove_column,) comment(# but may also contain regular Ruby code for generating data needed for the transformations.) comment(#) comment(# Example of a more complex migration that also needs to initialize data:) comment(#) comment(# class AddSystemSettings < ActiveRecord::Migration) comment(# def self.up) comment(# create_table :system_settings do |t|) comment(# t.column :name, :string) comment(# t.column :label, :string) comment(# t.column :value, :text) comment(# t.column :type, :string) comment(# t.column :position, :integer) comment(# end) comment(#) comment(# SystemSetting.create :name => "notice", :label => "Use notice?", :value => 1) comment(# end) comment(#) comment(# def self.down) comment(# drop_table :system_settings) comment(# end) comment(# end) comment(#) comment(# This migration first adds the system_settings table, then creates the very first row in it using the Active Record model) comment(# that relies on the table. It also uses the more advanced create_table syntax where you can specify a complete table schema) comment(# in one block call.) comment(#) comment(# == Available transformations) comment(#) comment(# * create_table(name, options\) Creates a table called +name+ and makes the table object available to a block) comment(# that can then add columns to it, following the same format as add_column. See example above. The options hash is for) comment(# fragments like "DEFAULT CHARSET=UTF-8" that are appended to the create table definition.) comment(# * drop_table(name\): Drops the table called +name+.) comment(# * rename_table(old_name, new_name\): Renames the table called +old_name+ to +new_name+.) comment(# * add_column(table_name, column_name, type, options\): Adds a new column to the table called +table_name+) comment(# named +column_name+ specified to be one of the following types:) comment(# :string, :text, :integer, :float, :datetime, :timestamp, :time, :date, :binary, :boolean. A default value can be specified) comment(# by passing an +options+ hash like { :default => 11 }.) comment(# * rename_column(table_name, column_name, new_column_name\): Renames a column but keeps the type and content.) comment(# * change_column(table_name, column_name, type, options\): Changes the column to a different type using the same) comment(# parameters as add_column.) comment(# * remove_column(table_name, column_name\): Removes the column named +column_name+ from the table called +table_name+.) comment(# * add_index(table_name, column_names, index_type, index_name\): Add a new index with the name of the column, or +index_name+ (if specified\) on the column(s\). Specify an optional +index_type+ (e.g. UNIQUE\).) comment(# * remove_index(table_name, index_name\): Remove the index specified by +index_name+.) comment(#) comment(# == Irreversible transformations) comment(#) comment(# Some transformations are destructive in a manner that cannot be reversed. Migrations of that kind should raise) comment(# an IrreversibleMigration exception in their +down+ method.) comment(#) comment(# == Running migrations from within Rails) comment(#) comment(# The Rails package has several tools to help create and apply migrations.) comment(#) comment(# To generate a new migration, use script/generate migration MyNewMigration) comment(# where MyNewMigration is the name of your migration. The generator will) comment(# create a file nnn_my_new_migration.rb in the db/migrate/) comment(# directory, where nnn is the next largest migration number.) comment(# You may then edit the self.up and self.down methods of) comment(# n MyNewMigration.) comment(#) comment(# To run migrations against the currently configured database, use) comment(# rake migrate. This will update the database by running all of the) comment(# pending migrations, creating the schema_info table if missing.) comment(#) comment(# To roll the database back to a previous migration version, use) comment(# rake migrate VERSION=X where X is the version to which) comment(# you wish to downgrade. If any of the migrations throw an) comment(# IrreversibleMigration exception, that step will fail and you'll) comment(# have some manual work to do.) comment(#) comment(# == Database support) comment(#) comment(# Migrations are currently supported in MySQL, PostgreSQL, SQLite,) comment(# SQL Server, Sybase, and Oracle (all supported databases except DB2\).) comment(#) comment(# == More examples) comment(#) comment(# Not all migrations change the schema. Some just fix the data:) comment(#) comment(# class RemoveEmptyTags < ActiveRecord::Migration) comment(# def self.up) comment(# Tag.find(:all\).each { |tag| tag.destroy if tag.pages.empty? }) comment(# end) comment(#) comment(# def self.down) comment(# # not much we can do to restore deleted data) comment(# raise IrreversibleMigration) comment(# end) comment(# end) comment(#) comment(# Others remove columns when they migrate up instead of down:) comment(#) comment(# class RemoveUnnecessaryItemAttributes < ActiveRecord::Migration) comment(# def self.up) comment(# remove_column :items, :incomplete_items_count) comment(# remove_column :items, :completed_items_count) comment(# end) comment(#) comment(# def self.down) comment(# add_column :items, :incomplete_items_count) comment(# add_column :items, :completed_items_count) comment(# end) comment(# end) comment(#) comment(# And sometimes you need to do something in SQL not abstracted directly by migrations:) comment(#) comment(# class MakeJoinUnique < ActiveRecord::Migration) comment(# def self.up) comment(# execute "ALTER TABLE `pages_linked_pages` ADD UNIQUE `page_id_linked_page_id` (`page_id`,`linked_page_id`\)") comment(# end) comment(#) comment(# def self.down) comment(# execute "ALTER TABLE `pages_linked_pages` DROP INDEX `page_id_linked_page_id`") comment(# end) comment(# end) comment(#) comment(# == Using a model after changing its table) comment(#) comment(# Sometimes you'll want to add a column in a migration and populate it immediately after. In that case, you'll need) comment(# to make a call to Base#reset_column_information in order to ensure that the model has the latest column data from) comment(# after the new column was added. Example:) comment(#) comment(# class AddPeopleSalary < ActiveRecord::Migration) comment(# def self.up) comment(# add_column :people, :salary, :integer) comment(# Person.reset_column_information) comment(# Person.find(:all\).each do |p|) comment(# p.salary = SalaryCalculator.compute(p\)) comment(# end) comment(# end) comment(# end) comment(#) comment(# == Controlling verbosity) comment(#) comment(# By default, migrations will describe the actions they are taking, writing) comment(# them to the console as they happen, along with benchmarks describing how) comment(# long each step took.) comment(#) comment(# You can quiet them down by setting ActiveRecord::Migration.verbose = false.) comment(#) comment(# You can also insert your own messages and benchmarks by using the #say_with_time) comment(# method:) comment(#) comment(# def self.up) comment(# ...) comment(# say_with_time "Updating salaries..." do) comment(# Person.find(:all\).each do |p|) comment(# p.salary = SalaryCalculator.compute(p\)) comment(# end) comment(# end) comment(# ...) comment(# end) comment(#) comment(# The phrase "Updating salaries..." would then be printed, along with the) comment(# benchmark for the block when the block completes.) reserved(class) class(Migration) class_variable(@@verbose) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:verbose) reserved(class) operator(<<) class(self) reserved(def) method(up_using_benchmarks) comment(#:nodoc:) ident(migrate)operator(()symbol(:up)operator(\)) reserved(end) reserved(def) method(down_using_benchmarks) comment(#:nodoc:) ident(migrate)operator(()symbol(:down)operator(\)) reserved(end) comment(# Execute this migration in the named direction) reserved(def) method(migrate)operator(()ident(direction)operator(\)) reserved(return) reserved(unless) ident(respond_to?)operator(()ident(direction)operator(\)) reserved(case) ident(direction) reserved(when) symbol(:up) reserved(then) ident(announce) string reserved(when) symbol(:down) reserved(then) ident(announce) string reserved(end) ident(result) operator(=) pre_constant(nil) ident(time) operator(=) constant(Benchmark)operator(.)ident(measure) operator({) ident(result) operator(=) ident(send)operator(()stringdelimiter(")>operator(\)) operator(}) reserved(case) ident(direction) reserved(when) symbol(:up) reserved(then) ident(announce) string operator(%) ident(time)operator(.)ident(real)operator(;) ident(write) reserved(when) symbol(:down) reserved(then) ident(announce) string operator(%) ident(time)operator(.)ident(real)operator(;) ident(write) reserved(end) ident(result) reserved(end) comment(# Because the method added may do an alias_method, it can be invoked) comment(# recursively. We use @ignore_new_methods as a guard to indicate whether) comment(# it is safe for the call to proceed.) reserved(def) method(singleton_method_added)operator(()ident(sym)operator(\)) comment(#:nodoc:) reserved(return) reserved(if) instance_variable(@ignore_new_methods) reserved(begin) instance_variable(@ignore_new_methods) operator(=) pre_constant(true) reserved(case) ident(sym) reserved(when) symbol(:up)operator(,) symbol(:down) ident(klass) operator(=) operator(()reserved(class) operator(<<) class(self)operator(;) pre_constant(self)operator(;) reserved(end)operator(\)) ident(klass)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) stringdelimiter(")>operator(,) ident(sym)operator(\)) ident(klass)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) ident(sym)operator(,) stringcontent(_using_benchmarks)delimiter(")>operator(\)) reserved(end) reserved(ensure) instance_variable(@ignore_new_methods) operator(=) pre_constant(false) reserved(end) reserved(end) reserved(def) method(write)operator(()ident(text)operator(=)stringoperator(\)) ident(puts)operator(()ident(text)operator(\)) reserved(if) ident(verbose) reserved(end) reserved(def) method(announce)operator(()ident(message)operator(\)) ident(text) operator(=) stringcontent(: )inlinedelimiter(")> ident(length) operator(=) operator([)integer(0)operator(,) integer(75) operator(-) ident(text)operator(.)ident(length)operator(])operator(.)ident(max) ident(write) string operator(%) operator([)ident(text)operator(,) string operator(*) ident(length)operator(]) reserved(end) reserved(def) method(say)operator(()ident(message)operator(,) ident(subitem)operator(=)pre_constant(false)operator(\)) ident(write) string)delimiter(")> operator(:) stringinline_delimiter(})>content( )inlinedelimiter(")> reserved(end) reserved(def) method(say_with_time)operator(()ident(message)operator(\)) ident(say)operator(()ident(message)operator(\)) ident(result) operator(=) pre_constant(nil) ident(time) operator(=) constant(Benchmark)operator(.)ident(measure) operator({) ident(result) operator(=) reserved(yield) operator(}) ident(say) string operator(%) ident(time)operator(.)ident(real)operator(,) symbol(:subitem) ident(result) reserved(end) reserved(def) method(suppress_messages) ident(save) operator(=) ident(verbose) pre_constant(self)operator(.)ident(verbose) operator(=) pre_constant(false) reserved(yield) reserved(ensure) pre_constant(self)operator(.)ident(verbose) operator(=) ident(save) reserved(end) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(arguments)operator(,) operator(&)ident(block)operator(\)) ident(say_with_time) stringcontent(()inlineoperator(\))inline_delimiter(})>content(\))delimiter(")> reserved(do) ident(arguments)operator([)integer(0)operator(]) operator(=) constant(Migrator)operator(.)ident(proper_table_name)operator(()ident(arguments)operator(.)ident(first)operator(\)) reserved(unless) ident(arguments)operator(.)ident(empty?) operator(||) ident(method) operator(==) symbol(:execute) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(send)operator(()ident(method)operator(,) operator(*)ident(arguments)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(Migrator)comment(#:nodoc:) reserved(class) operator(<<) class(self) reserved(def) method(migrate)operator(()ident(migrations_path)operator(,) ident(target_version) operator(=) pre_constant(nil)operator(\)) constant(Base)operator(.)ident(connection)operator(.)ident(initialize_schema_information) reserved(case) reserved(when) ident(target_version)operator(.)ident(nil?)operator(,) ident(current_version) operator(<) ident(target_version) ident(up)operator(()ident(migrations_path)operator(,) ident(target_version)operator(\)) reserved(when) ident(current_version) operator(>) ident(target_version) ident(down)operator(()ident(migrations_path)operator(,) ident(target_version)operator(\)) reserved(when) ident(current_version) operator(==) ident(target_version) reserved(return) comment(# You're on the right version) reserved(end) reserved(end) reserved(def) method(up)operator(()ident(migrations_path)operator(,) ident(target_version) operator(=) pre_constant(nil)operator(\)) pre_constant(self)operator(.)ident(new)operator(()symbol(:up)operator(,) ident(migrations_path)operator(,) ident(target_version)operator(\))operator(.)ident(migrate) reserved(end) reserved(def) method(down)operator(()ident(migrations_path)operator(,) ident(target_version) operator(=) pre_constant(nil)operator(\)) pre_constant(self)operator(.)ident(new)operator(()symbol(:down)operator(,) ident(migrations_path)operator(,) ident(target_version)operator(\))operator(.)ident(migrate) reserved(end) reserved(def) method(schema_info_table_name) constant(Base)operator(.)ident(table_name_prefix) operator(+) string operator(+) constant(Base)operator(.)ident(table_name_suffix) reserved(end) reserved(def) method(current_version) operator(()constant(Base)operator(.)ident(connection)operator(.)ident(select_one)operator(()stringdelimiter(")>operator(\)) operator(||) operator({)string operator(=)operator(>) integer(0)operator(})operator(\))operator([)stringoperator(])operator(.)ident(to_i) reserved(end) reserved(def) method(proper_table_name)operator(()ident(name)operator(\)) comment(# Use the ActiveRecord objects own table_name, or pre/suffix from ActiveRecord::Base if name is a symbol/string) ident(name)operator(.)ident(table_name) reserved(rescue) stringinlineinlinedelimiter(")> reserved(end) reserved(end) reserved(def) method(initialize)operator(()ident(direction)operator(,) ident(migrations_path)operator(,) ident(target_version) operator(=) pre_constant(nil)operator(\)) ident(raise) constant(StandardError)operator(.)ident(new)operator(()stringoperator(\)) reserved(unless) constant(Base)operator(.)ident(connection)operator(.)ident(supports_migrations?) instance_variable(@direction)operator(,) instance_variable(@migrations_path)operator(,) instance_variable(@target_version) operator(=) ident(direction)operator(,) ident(migrations_path)operator(,) ident(target_version) constant(Base)operator(.)ident(connection)operator(.)ident(initialize_schema_information) reserved(end) reserved(def) method(current_version) pre_constant(self)operator(.)ident(class)operator(.)ident(current_version) reserved(end) reserved(def) method(migrate) ident(migration_classes)operator(.)ident(each) reserved(do) operator(|)operator(()ident(version)operator(,) ident(migration_class)operator(\))operator(|) constant(Base)operator(.)ident(logger)operator(.)ident(info)operator(()stringdelimiter(")>operator(\)) reserved(and) reserved(break) reserved(if) ident(reached_target_version?)operator(()ident(version)operator(\)) reserved(next) reserved(if) ident(irrelevant_migration?)operator(()ident(version)operator(\)) constant(Base)operator(.)ident(logger)operator(.)ident(info) stringcontent( ()inlinecontent(\))delimiter(")> ident(migration_class)operator(.)ident(migrate)operator(()instance_variable(@direction)operator(\)) ident(set_schema_version)operator(()ident(version)operator(\)) reserved(end) reserved(end) ident(private) reserved(def) method(migration_classes) ident(migrations) operator(=) ident(migration_files)operator(.)ident(inject)operator(()operator([)operator(])operator(\)) reserved(do) operator(|)ident(migrations)operator(,) ident(migration_file)operator(|) ident(load)operator(()ident(migration_file)operator(\)) ident(version)operator(,) ident(name) operator(=) ident(migration_version_and_name)operator(()ident(migration_file)operator(\)) ident(assert_unique_migration_version)operator(()ident(migrations)operator(,) ident(version)operator(.)ident(to_i)operator(\)) ident(migrations) operator(<<) operator([) ident(version)operator(.)ident(to_i)operator(,) ident(migration_class)operator(()ident(name)operator(\)) operator(]) reserved(end) ident(down?) operator(?) ident(migrations)operator(.)ident(sort)operator(.)ident(reverse) operator(:) ident(migrations)operator(.)ident(sort) reserved(end) reserved(def) method(assert_unique_migration_version)operator(()ident(migrations)operator(,) ident(version)operator(\)) reserved(if) operator(!)ident(migrations)operator(.)ident(empty?) operator(&&) ident(migrations)operator(.)ident(transpose)operator(.)ident(first)operator(.)ident(include?)operator(()ident(version)operator(\)) ident(raise) constant(DuplicateMigrationVersionError)operator(.)ident(new)operator(()ident(version)operator(\)) reserved(end) reserved(end) reserved(def) method(migration_files) ident(files) operator(=) constant(Dir)operator([)stringcontent(/[0-9]*_*.rb)delimiter(")>operator(])operator(.)ident(sort_by) reserved(do) operator(|)ident(f)operator(|) ident(migration_version_and_name)operator(()ident(f)operator(\))operator(.)ident(first)operator(.)ident(to_i) reserved(end) ident(down?) operator(?) ident(files)operator(.)ident(reverse) operator(:) ident(files) reserved(end) reserved(def) method(migration_class)operator(()ident(migration_name)operator(\)) ident(migration_name)operator(.)ident(camelize)operator(.)ident(constantize) reserved(end) reserved(def) method(migration_version_and_name)operator(()ident(migration_file)operator(\)) reserved(return) operator(*)ident(migration_file)operator(.)ident(scan)operator(()regexpoperator(\))operator(.)ident(first) reserved(end) reserved(def) method(set_schema_version)operator(()ident(version)operator(\)) constant(Base)operator(.)ident(connection)operator(.)ident(update)operator(()stringcontent( SET version = )inlinedelimiter(")>operator(\)) reserved(end) reserved(def) method(up?) instance_variable(@direction) operator(==) symbol(:up) reserved(end) reserved(def) method(down?) instance_variable(@direction) operator(==) symbol(:down) reserved(end) reserved(def) method(reached_target_version?)operator(()ident(version)operator(\)) operator(()ident(up?) operator(&&) ident(version)operator(.)ident(to_i) operator(-) integer(1) operator(==) instance_variable(@target_version)operator(\)) operator(||) operator(()ident(down?) operator(&&) ident(version)operator(.)ident(to_i) operator(==) instance_variable(@target_version)operator(\)) reserved(end) reserved(def) method(irrelevant_migration?)operator(()ident(version)operator(\)) operator(()ident(up?) operator(&&) ident(version)operator(.)ident(to_i) operator(<=) ident(current_version)operator(\)) operator(||) operator(()ident(down?) operator(&&) ident(version)operator(.)ident(to_i) operator(>) ident(current_version)operator(\)) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveRecord) reserved(module) class(Observing) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(# Activates the observers assigned. Examples:) comment(#) comment(# # Calls PersonObserver.instance) comment(# ActiveRecord::Base.observers = :person_observer) comment(#) comment(# # Calls Cacher.instance and GarbageCollector.instance ) comment(# ActiveRecord::Base.observers = :cacher, :garbage_collector) comment(#) comment(# # Same as above, just using explicit class references) comment(# ActiveRecord::Base.observers = Cacher, GarbageCollector) reserved(def) method(observers=)operator(()operator(*)ident(observers)operator(\)) ident(observers) operator(=) operator([) ident(observers) operator(])operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(observer)operator(|) ident(observer)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) operator(?) ident(observer)operator(.)ident(to_s)operator(.)ident(camelize)operator(.)ident(constantize)operator(.)ident(instance) operator(:) ident(observer)operator(.)ident(instance) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Observer classes respond to lifecycle callbacks to implement trigger-like) comment(# behavior outside the original class. This is a great way to reduce the) comment(# clutter that normally comes when the model class is burdened with) comment(# functionality that doesn't pertain to the core responsibility of the) comment(# class. Example:) comment(#) comment(# class CommentObserver < ActiveRecord::Observer) comment(# def after_save(comment\)) comment(# Notifications.deliver_comment("admin@do.com", "New comment was posted", comment\)) comment(# end) comment(# end) comment(#) comment(# This Observer sends an email when a Comment#save is finished.) comment(#) comment(# class ContactObserver < ActiveRecord::Observer) comment(# def after_create(contact\)) comment(# contact.logger.info('New contact added!'\)) comment(# end) comment(#) comment(# def after_destroy(contact\)) comment(# contact.logger.warn("Contact with an id of #{contact.id} was destroyed!"\)) comment(# end) comment(# end) comment(#) comment(# This Observer uses logger to log when specific callbacks are triggered.) comment(#) comment(# == Observing a class that can't be inferred) comment(#) comment(# Observers will by default be mapped to the class with which they share a name. So CommentObserver will) comment(# be tied to observing Comment, ProductManagerObserver to ProductManager, and so on. If you want to name your observer) comment(# differently than the class you're interested in observing, you can use the Observer.observe class method:) comment(#) comment(# class AuditObserver < ActiveRecord::Observer) comment(# observe Account) comment(#) comment(# def after_update(account\)) comment(# AuditTrail.new(account, "UPDATED"\)) comment(# end) comment(# end) comment(#) comment(# If the audit observer needs to watch more than one kind of object, this can be specified with multiple arguments:) comment(#) comment(# class AuditObserver < ActiveRecord::Observer) comment(# observe Account, Balance) comment(#) comment(# def after_update(record\)) comment(# AuditTrail.new(record, "UPDATED"\)) comment(# end) comment(# end) comment(#) comment(# The AuditObserver will now act on both updates to Account and Balance by treating them both as records.) comment(#) comment(# == Available callback methods) comment(#) comment(# The observer can implement callback methods for each of the methods described in the Callbacks module.) comment(#) comment(# == Storing Observers in Rails) comment(# ) comment(# If you're using Active Record within Rails, observer classes are usually stored in app/models with the) comment(# naming convention of app/models/audit_observer.rb.) comment(#) comment(# == Configuration) comment(# ) comment(# In order to activate an observer, list it in the config.active_record.observers configuration setting in your) comment(# config/environment.rb file.) comment(#) comment(# config.active_record.observers = :comment_observer, :signup_observer) comment(#) comment(# Observers will not be invoked unless you define these in your application configuration.) comment(#) reserved(class) class(Observer) ident(include) constant(Singleton) comment(# Observer subclasses should be reloaded by the dispatcher in Rails) comment(# when Dependencies.mechanism = :load.) ident(include) constant(Reloadable)operator(::)constant(Subclasses) comment(# Attaches the observer to the supplied model classes.) reserved(def) pre_constant(self)operator(.)method(observe)operator(()operator(*)ident(models)operator(\)) ident(define_method)operator(()symbol(:observed_class)operator(\)) operator({) ident(models) operator(}) reserved(end) reserved(def) method(initialize) ident(observed_classes) operator(=) operator([) ident(observed_class) operator(])operator(.)ident(flatten) ident(observed_subclasses_class) operator(=) ident(observed_classes)operator(.)ident(collect) operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(send)operator(()symbol(:subclasses)operator(\)) operator(})operator(.)ident(flatten!) operator(()ident(observed_classes) operator(+) ident(observed_subclasses_class)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(klass)operator(|) ident(klass)operator(.)ident(add_observer)operator(()pre_constant(self)operator(\)) ident(klass)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:after_find)operator(\)) reserved(unless) ident(klass)operator(.)ident(respond_to?)operator(()symbol(:after_find)operator(\)) reserved(end) reserved(end) reserved(def) method(update)operator(()ident(callback_method)operator(,) ident(object)operator(\)) comment(#:nodoc:) ident(send)operator(()ident(callback_method)operator(,) ident(object)operator(\)) reserved(if) ident(respond_to?)operator(()ident(callback_method)operator(\)) reserved(end) ident(private) reserved(def) method(observed_class) reserved(if) pre_constant(self)operator(.)ident(class)operator(.)ident(respond_to?) string pre_constant(self)operator(.)ident(class)operator(.)ident(observed_class) reserved(else) constant(Object)operator(.)ident(const_get)operator(()ident(infer_observed_class_name)operator(\)) reserved(end) reserved(end) reserved(def) method(infer_observed_class_name) pre_constant(self)operator(.)ident(class)operator(.)ident(name)operator(.)ident(scan)operator(()regexpoperator(\))operator([)integer(0)operator(])operator([)integer(0)operator(]) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(class) class(QueryCache) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(connection)operator(\)) instance_variable(@connection) operator(=) ident(connection) instance_variable(@query_cache) operator(=) operator({)operator(}) reserved(end) reserved(def) method(clear_query_cache) instance_variable(@query_cache) operator(=) operator({)operator(}) reserved(end) reserved(def) method(select_all)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) operator(()instance_variable(@query_cache)operator([)ident(sql)operator(]) operator(||=) instance_variable(@connection)operator(.)ident(select_all)operator(()ident(sql)operator(,) ident(name)operator(\))operator(\))operator(.)ident(dup) reserved(end) reserved(def) method(select_one)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) instance_variable(@query_cache)operator([)ident(sql)operator(]) operator(||=) instance_variable(@connection)operator(.)ident(select_one)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) instance_variable(@query_cache)operator([)stringdelimiter(")>operator(]) operator(||=) instance_variable(@connection)operator(.)ident(columns)operator(()ident(table_name)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(insert)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(,) ident(pk) operator(=) pre_constant(nil)operator(,) ident(id_value) operator(=) pre_constant(nil)operator(\)) ident(clear_query_cache) instance_variable(@connection)operator(.)ident(insert)operator(()ident(sql)operator(,) ident(name)operator(,) ident(pk)operator(,) ident(id_value)operator(\)) reserved(end) reserved(def) method(update)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(clear_query_cache) instance_variable(@connection)operator(.)ident(update)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(def) method(delete)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) ident(clear_query_cache) instance_variable(@connection)operator(.)ident(delete)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) ident(private) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(arguments)operator(,) operator(&)ident(proc)operator(\)) instance_variable(@connection)operator(.)ident(send)operator(()ident(method)operator(,) operator(*)ident(arguments)operator(,) operator(&)ident(proc)operator(\)) reserved(end) reserved(end) reserved(class) class(Base) comment(# Set the connection for the class with caching on) reserved(class) operator(<<) class(self) ident(alias_method) symbol(:connection_without_query_cache=)operator(,) symbol(:connection=) reserved(def) method(connection=)operator(()ident(spec)operator(\)) reserved(if) ident(spec)operator(.)ident(is_a?)operator(()constant(ConnectionSpecification)operator(\)) reserved(and) ident(spec)operator(.)ident(config)operator([)symbol(:query_cache)operator(]) ident(spec) operator(=) constant(QueryCache)operator(.)ident(new)operator(()pre_constant(self)operator(.)ident(send)operator(()ident(spec)operator(.)ident(adapter_method)operator(,) ident(spec)operator(.)ident(config)operator(\))operator(\)) reserved(end) pre_constant(self)operator(.)ident(connection_without_query_cache) operator(=) ident(spec) reserved(end) reserved(end) reserved(end) reserved(class) class(AbstractAdapter) comment(#:nodoc:) comment(# Stub method to be able to treat the connection the same whether the query cache has been turned on or not) reserved(def) method(clear_query_cache) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(Reflection) comment(# :nodoc:) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) comment(# Reflection allows you to interrogate Active Record classes and objects about their associations and aggregations.) comment(# This information can, for example, be used in a form builder that took an Active Record object and created input) comment(# fields for all of the attributes depending on their type and displayed the associations to other objects.) comment(#) comment(# You can find the interface for the AggregateReflection and AssociationReflection classes in the abstract MacroReflection class.) reserved(module) class(ClassMethods) reserved(def) method(create_reflection)operator(()ident(macro)operator(,) ident(name)operator(,) ident(options)operator(,) ident(active_record)operator(\)) reserved(case) ident(macro) reserved(when) symbol(:has_many)operator(,) symbol(:belongs_to)operator(,) symbol(:has_one)operator(,) symbol(:has_and_belongs_to_many) ident(reflection) operator(=) constant(AssociationReflection)operator(.)ident(new)operator(()ident(macro)operator(,) ident(name)operator(,) ident(options)operator(,) ident(active_record)operator(\)) reserved(when) symbol(:composed_of) ident(reflection) operator(=) constant(AggregateReflection)operator(.)ident(new)operator(()ident(macro)operator(,) ident(name)operator(,) ident(options)operator(,) ident(active_record)operator(\)) reserved(end) ident(write_inheritable_hash) symbol(:reflections)operator(,) ident(name) operator(=)operator(>) ident(reflection) ident(reflection) reserved(end) reserved(def) method(reflections) ident(read_inheritable_attribute)operator(()symbol(:reflections)operator(\)) reserved(or) ident(write_inheritable_attribute)operator(()symbol(:reflections)operator(,) operator({)operator(})operator(\)) reserved(end) comment(# Returns an array of AggregateReflection objects for all the aggregations in the class.) reserved(def) method(reflect_on_all_aggregations) ident(reflections)operator(.)ident(values)operator(.)ident(select) operator({) operator(|)ident(reflection)operator(|) ident(reflection)operator(.)ident(is_a?)operator(()constant(AggregateReflection)operator(\)) operator(}) reserved(end) comment(# Returns the AggregateReflection object for the named +aggregation+ (use the symbol\). Example:) comment(# Account.reflect_on_aggregation(:balance\) # returns the balance AggregateReflection) reserved(def) method(reflect_on_aggregation)operator(()ident(aggregation)operator(\)) ident(reflections)operator([)ident(aggregation)operator(])operator(.)ident(is_a?)operator(()constant(AggregateReflection)operator(\)) operator(?) ident(reflections)operator([)ident(aggregation)operator(]) operator(:) pre_constant(nil) reserved(end) comment(# Returns an array of AssociationReflection objects for all the aggregations in the class. If you only want to reflect on a) comment(# certain association type, pass in the symbol (:has_many, :has_one, :belongs_to\) for that as the first parameter. Example:) comment(# Account.reflect_on_all_associations # returns an array of all associations) comment(# Account.reflect_on_all_associations(:has_many\) # returns an array of all has_many associations) reserved(def) method(reflect_on_all_associations)operator(()ident(macro) operator(=) pre_constant(nil)operator(\)) ident(association_reflections) operator(=) ident(reflections)operator(.)ident(values)operator(.)ident(select) operator({) operator(|)ident(reflection)operator(|) ident(reflection)operator(.)ident(is_a?)operator(()constant(AssociationReflection)operator(\)) operator(}) ident(macro) operator(?) ident(association_reflections)operator(.)ident(select) operator({) operator(|)ident(reflection)operator(|) ident(reflection)operator(.)ident(macro) operator(==) ident(macro) operator(}) operator(:) ident(association_reflections) reserved(end) comment(# Returns the AssociationReflection object for the named +aggregation+ (use the symbol\). Example:) comment(# Account.reflect_on_association(:owner\) # returns the owner AssociationReflection) comment(# Invoice.reflect_on_association(:line_items\).macro # returns :has_many) reserved(def) method(reflect_on_association)operator(()ident(association)operator(\)) ident(reflections)operator([)ident(association)operator(])operator(.)ident(is_a?)operator(()constant(AssociationReflection)operator(\)) operator(?) ident(reflections)operator([)ident(association)operator(]) operator(:) pre_constant(nil) reserved(end) reserved(end) comment(# Abstract base class for AggregateReflection and AssociationReflection that describes the interface available for both of) comment(# those classes. Objects of AggregateReflection and AssociationReflection are returned by the Reflection::ClassMethods.) reserved(class) class(MacroReflection) ident(attr_reader) symbol(:active_record) reserved(def) method(initialize)operator(()ident(macro)operator(,) ident(name)operator(,) ident(options)operator(,) ident(active_record)operator(\)) instance_variable(@macro)operator(,) instance_variable(@name)operator(,) instance_variable(@options)operator(,) instance_variable(@active_record) operator(=) ident(macro)operator(,) ident(name)operator(,) ident(options)operator(,) ident(active_record) reserved(end) comment(# Returns the name of the macro, so it would return :balance for "composed_of :balance, :class_name => 'Money'" or) comment(# :clients for "has_many :clients".) reserved(def) method(name) instance_variable(@name) reserved(end) comment(# Returns the name of the macro, so it would return :composed_of for) comment(# "composed_of :balance, :class_name => 'Money'" or :has_many for "has_many :clients".) reserved(def) method(macro) instance_variable(@macro) reserved(end) comment(# Returns the hash of options used for the macro, so it would return { :class_name => "Money" } for) comment(# "composed_of :balance, :class_name => 'Money'" or {} for "has_many :clients".) reserved(def) method(options) instance_variable(@options) reserved(end) comment(# Returns the class for the macro, so "composed_of :balance, :class_name => 'Money'" would return the Money class and) comment(# "has_many :clients" would return the Client class.) reserved(def) method(klass)operator(()operator(\)) reserved(end) reserved(def) method(class_name) instance_variable(@class_name) operator(||=) ident(name_to_class_name)operator(()ident(name)operator(.)ident(id2name)operator(\)) reserved(end) reserved(def) method(==)operator(()ident(other_aggregation)operator(\)) ident(name) operator(==) ident(other_aggregation)operator(.)ident(name) operator(&&) ident(other_aggregation)operator(.)ident(options) operator(&&) ident(active_record) operator(==) ident(other_aggregation)operator(.)ident(active_record) reserved(end) reserved(end) comment(# Holds all the meta-data about an aggregation as it was specified in the Active Record class.) reserved(class) class(AggregateReflection) operator(<) constant(MacroReflection) comment(#:nodoc:) reserved(def) method(klass) instance_variable(@klass) operator(||=) constant(Object)operator(.)ident(const_get)operator(()ident(options)operator([)symbol(:class_name)operator(]) operator(||) ident(class_name)operator(\)) reserved(end) ident(private) reserved(def) method(name_to_class_name)operator(()ident(name)operator(\)) ident(name)operator(.)ident(capitalize)operator(.)ident(gsub)operator(()regexpoperator(\)) operator({) operator(|)ident(s)operator(|) global_variable($1)operator(.)ident(capitalize) operator(}) reserved(end) reserved(end) comment(# Holds all the meta-data about an association as it was specified in the Active Record class.) reserved(class) class(AssociationReflection) operator(<) constant(MacroReflection) comment(#:nodoc:) reserved(def) method(klass) instance_variable(@klass) operator(||=) ident(active_record)operator(.)ident(send)operator(()symbol(:compute_type)operator(,) ident(class_name)operator(\)) reserved(end) reserved(def) method(table_name) instance_variable(@table_name) operator(||=) ident(klass)operator(.)ident(table_name) reserved(end) reserved(def) method(primary_key_name) reserved(return) instance_variable(@primary_key_name) reserved(if) instance_variable(@primary_key_name) reserved(case) reserved(when) ident(macro) operator(==) symbol(:belongs_to) instance_variable(@primary_key_name) operator(=) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) ident(class_name)operator(.)ident(foreign_key) reserved(when) ident(options)operator([)symbol(:as)operator(]) instance_variable(@primary_key_name) operator(=) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) stringcontent(_id)delimiter(")> reserved(else) instance_variable(@primary_key_name) operator(=) ident(options)operator([)symbol(:foreign_key)operator(]) operator(||) ident(active_record)operator(.)ident(name)operator(.)ident(foreign_key) reserved(end) reserved(end) reserved(def) method(association_foreign_key) instance_variable(@association_foreign_key) operator(||=) instance_variable(@options)operator([)symbol(:association_foreign_key)operator(]) operator(||) ident(class_name)operator(.)ident(foreign_key) reserved(end) reserved(def) method(counter_cache_column) reserved(if) ident(options)operator([)symbol(:counter_cache)operator(]) operator(==) pre_constant(true) stringcontent(_count)delimiter(")> reserved(elsif) ident(options)operator([)symbol(:counter_cache)operator(]) ident(options)operator([)symbol(:counter_cache)operator(]) reserved(end) reserved(end) reserved(def) method(through_reflection) instance_variable(@through_reflection) operator(||=) ident(options)operator([)symbol(:through)operator(]) operator(?) ident(active_record)operator(.)ident(reflect_on_association)operator(()ident(options)operator([)symbol(:through)operator(])operator(\)) operator(:) pre_constant(false) reserved(end) comment(# Gets an array of possible :through source reflection names) comment(#) comment(# [singularized, pluralized]) reserved(def) method(source_reflection_names) instance_variable(@source_reflection_names) operator(||=) operator(()ident(options)operator([)symbol(:source)operator(]) operator(?) operator([)ident(options)operator([)symbol(:source)operator(])operator(]) operator(:) operator([)ident(name)operator(.)ident(to_s)operator(.)ident(singularize)operator(,) ident(name)operator(])operator(\))operator(.)ident(collect) operator({) operator(|)ident(n)operator(|) ident(n)operator(.)ident(to_sym) operator(}) reserved(end) comment(# Gets the source of the through reflection. It checks both a singularized and pluralized form for :belongs_to or :has_many.) comment(# (The :tags association on Tagging below\)) comment(# ) comment(# class Post) comment(# has_many :tags, :through => :taggings) comment(# end) comment(#) reserved(def) method(source_reflection) reserved(return) pre_constant(nil) reserved(unless) ident(through_reflection) instance_variable(@source_reflection) operator(||=) ident(source_reflection_names)operator(.)ident(collect) operator({) operator(|)ident(name)operator(|) ident(through_reflection)operator(.)ident(klass)operator(.)ident(reflect_on_association)operator(()ident(name)operator(\)) operator(})operator(.)ident(compact)operator(.)ident(first) reserved(end) reserved(def) method(check_validity!) reserved(if) ident(options)operator([)symbol(:through)operator(]) reserved(if) ident(through_reflection)operator(.)ident(nil?) ident(raise) constant(HasManyThroughAssociationNotFoundError)operator(.)ident(new)operator(()pre_constant(self)operator(\)) reserved(end) reserved(if) ident(source_reflection)operator(.)ident(nil?) ident(raise) constant(HasManyThroughSourceAssociationNotFoundError)operator(.)ident(new)operator(()pre_constant(self)operator(\)) reserved(end) reserved(if) ident(source_reflection)operator(.)ident(options)operator([)symbol(:polymorphic)operator(]) ident(raise) constant(HasManyThroughAssociationPolymorphicError)operator(.)ident(new)operator(()ident(class_name)operator(,) pre_constant(self)operator(,) ident(source_reflection)operator(\)) reserved(end) reserved(unless) operator([)symbol(:belongs_to)operator(,) symbol(:has_many)operator(])operator(.)ident(include?)operator(()ident(source_reflection)operator(.)ident(macro)operator(\)) operator(&&) ident(source_reflection)operator(.)ident(options)operator([)symbol(:through)operator(])operator(.)ident(nil?) ident(raise) constant(HasManyThroughSourceAssociationMacroError)operator(.)ident(new)operator(()pre_constant(self)operator(\)) reserved(end) reserved(end) reserved(end) ident(private) reserved(def) method(name_to_class_name)operator(()ident(name)operator(\)) reserved(if) ident(name) operator(=)operator(~) regexp ident(name) reserved(else) reserved(if) ident(options)operator([)symbol(:class_name)operator(]) ident(options)operator([)symbol(:class_name)operator(]) reserved(elsif) ident(through_reflection) comment(# get the class_name of the belongs_to association of the through reflection) ident(source_reflection)operator(.)ident(class_name) reserved(else) ident(class_name) operator(=) ident(name)operator(.)ident(to_s)operator(.)ident(camelize) ident(class_name) operator(=) ident(class_name)operator(.)ident(singularize) reserved(if) operator([) symbol(:has_many)operator(,) symbol(:has_and_belongs_to_many) operator(])operator(.)ident(include?)operator(()ident(macro)operator(\)) ident(class_name) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) comment(# Allows programmers to programmatically define a schema in a portable) comment(# DSL. This means you can define tables, indexes, etc. without using SQL) comment(# directly, so your applications can more easily support multiple) comment(# databases.) comment(#) comment(# Usage:) comment(#) comment(# ActiveRecord::Schema.define do) comment(# create_table :authors do |t|) comment(# t.column :name, :string, :null => false) comment(# end) comment(#) comment(# add_index :authors, :name, :unique) comment(#) comment(# create_table :posts do |t|) comment(# t.column :author_id, :integer, :null => false) comment(# t.column :subject, :string) comment(# t.column :body, :text) comment(# t.column :private, :boolean, :default => false) comment(# end) comment(#) comment(# add_index :posts, :author_id) comment(# end) comment(#) comment(# ActiveRecord::Schema is only supported by database adapters that also) comment(# support migrations, the two features being very similar.) reserved(class) class(Schema) operator(<) constant(Migration) ident(private_class_method) symbol(:new) comment(# Eval the given block. All methods available to the current connection) comment(# adapter are available within the block, so you can easily use the) comment(# database definition DSL to build up your schema (#create_table,) comment(# #add_index, etc.\).) comment(#) comment(# The +info+ hash is optional, and if given is used to define metadata) comment(# about the current schema (like the schema's version\):) comment(#) comment(# ActiveRecord::Schema.define(:version => 15\) do) comment(# ...) comment(# end) reserved(def) pre_constant(self)operator(.)method(define)operator(()ident(info)operator(=)operator({)operator(})operator(,) operator(&)ident(block)operator(\)) ident(instance_eval)operator(()operator(&)ident(block)operator(\)) reserved(unless) ident(info)operator(.)ident(empty?) ident(initialize_schema_information) ident(cols) operator(=) ident(columns)operator(()stringoperator(\)) ident(info) operator(=) ident(info)operator(.)ident(map) reserved(do) operator(|)ident(k)operator(,)ident(v)operator(|) ident(v) operator(=) constant(Base)operator(.)ident(connection)operator(.)ident(quote)operator(()ident(v)operator(,) ident(cols)operator(.)ident(detect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) ident(k)operator(.)ident(to_s) operator(})operator(\)) stringcontent( = )inlinedelimiter(")> reserved(end) constant(Base)operator(.)ident(connection)operator(.)ident(update) stringcontent( SET )inlineoperator(\))inline_delimiter(})>delimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) comment(# This class is used to dump the database schema for some connection to some) comment(# output format (i.e., ActiveRecord::Schema\).) reserved(class) class(SchemaDumper) comment(#:nodoc:) ident(private_class_method) symbol(:new) comment(# A list of tables which should not be dumped to the schema. ) comment(# Acceptable values are strings as well as regexp.) comment(# This setting is only used if ActiveRecord::Base.schema_format == :ruby) ident(cattr_accessor) symbol(:ignore_tables) class_variable(@@ignore_tables) operator(=) operator([)operator(]) reserved(def) pre_constant(self)operator(.)method(dump)operator(()ident(connection)operator(=)constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(,) ident(stream)operator(=)pre_constant(STDOUT)operator(\)) ident(new)operator(()ident(connection)operator(\))operator(.)ident(dump)operator(()ident(stream)operator(\)) ident(stream) reserved(end) reserved(def) method(dump)operator(()ident(stream)operator(\)) ident(header)operator(()ident(stream)operator(\)) ident(tables)operator(()ident(stream)operator(\)) ident(trailer)operator(()ident(stream)operator(\)) ident(stream) reserved(end) ident(private) reserved(def) method(initialize)operator(()ident(connection)operator(\)) instance_variable(@connection) operator(=) ident(connection) instance_variable(@types) operator(=) instance_variable(@connection)operator(.)ident(native_database_types) instance_variable(@info) operator(=) instance_variable(@connection)operator(.)ident(select_one)operator(()stringoperator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(header)operator(()ident(stream)operator(\)) ident(define_params) operator(=) instance_variable(@info) operator(?) string )inlineoperator(])inline_delimiter(})>delimiter(")> operator(:) string ident(stream)operator(.)ident(puts) stringstringcontent(\) do )delimiter( HEADER)> reserved(end) reserved(def) method(trailer)operator(()ident(stream)operator(\)) ident(stream)operator(.)ident(puts) string reserved(end) reserved(def) method(tables)operator(()ident(stream)operator(\)) instance_variable(@connection)operator(.)ident(tables)operator(.)ident(sort)operator(.)ident(each) reserved(do) operator(|)ident(tbl)operator(|) reserved(next) reserved(if) operator([)stringoperator(,) ident(ignore_tables)operator(])operator(.)ident(flatten)operator(.)ident(any?) reserved(do) operator(|)ident(ignored)operator(|) reserved(case) ident(ignored) reserved(when) constant(String)operator(:) ident(tbl) operator(==) ident(ignored) reserved(when) constant(Regexp)operator(:) ident(tbl) operator(=)operator(~) ident(ignored) reserved(else) ident(raise) constant(StandardError)operator(,) string reserved(end) reserved(end) ident(table)operator(()ident(tbl)operator(,) ident(stream)operator(\)) reserved(end) reserved(end) reserved(def) method(table)operator(()ident(table)operator(,) ident(stream)operator(\)) ident(columns) operator(=) instance_variable(@connection)operator(.)ident(columns)operator(()ident(table)operator(\)) reserved(begin) ident(tbl) operator(=) constant(StringIO)operator(.)ident(new) reserved(if) instance_variable(@connection)operator(.)ident(respond_to?)operator(()symbol(:pk_and_sequence_for)operator(\)) ident(pk)operator(,) ident(pk_seq) operator(=) instance_variable(@connection)operator(.)ident(pk_and_sequence_for)operator(()ident(table)operator(\)) reserved(end) ident(pk) operator(||=) string ident(tbl)operator(.)ident(print) stringdelimiter(")> reserved(if) ident(columns)operator(.)ident(detect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) ident(pk) operator(}) reserved(if) ident(pk) operator(!=) string ident(tbl)operator(.)ident(print) string ")inlinecontent(")delimiter(\))> reserved(end) reserved(else) ident(tbl)operator(.)ident(print) string false)delimiter(")> reserved(end) ident(tbl)operator(.)ident(print) string true)delimiter(")> ident(tbl)operator(.)ident(puts) string ident(columns)operator(.)ident(each) reserved(do) operator(|)ident(column)operator(|) ident(raise) constant(StandardError)operator(,) stringcontent(' for column ')inlinecontent(')delimiter(")> reserved(if) instance_variable(@types)operator([)ident(column)operator(.)ident(type)operator(])operator(.)ident(nil?) reserved(next) reserved(if) ident(column)operator(.)ident(name) operator(==) ident(pk) ident(tbl)operator(.)ident(print) stringcontent(, )inlinedelimiter(")> ident(tbl)operator(.)ident(print) string )inlinedelimiter(")> reserved(if) ident(column)operator(.)ident(limit) operator(!=) instance_variable(@types)operator([)ident(column)operator(.)ident(type)operator(])operator([)symbol(:limit)operator(]) ident(tbl)operator(.)ident(print) string )inlinedelimiter(")> reserved(if) operator(!)ident(column)operator(.)ident(default)operator(.)ident(nil?) ident(tbl)operator(.)ident(print) string false)delimiter(")> reserved(if) operator(!)ident(column)operator(.)ident(null) ident(tbl)operator(.)ident(puts) reserved(end) ident(tbl)operator(.)ident(puts) string ident(tbl)operator(.)ident(puts) ident(indexes)operator(()ident(table)operator(,) ident(tbl)operator(\)) ident(tbl)operator(.)ident(rewind) ident(stream)operator(.)ident(print) ident(tbl)operator(.)ident(read) reserved(rescue) operator(=)operator(>) ident(e) ident(stream)operator(.)ident(puts) stringcontent( because of following )inlinedelimiter(")> ident(stream)operator(.)ident(puts) stringdelimiter(")> ident(stream)operator(.)ident(puts) reserved(end) ident(stream) reserved(end) reserved(def) method(indexes)operator(()ident(table)operator(,) ident(stream)operator(\)) ident(indexes) operator(=) instance_variable(@connection)operator(.)ident(indexes)operator(()ident(table)operator(\)) ident(indexes)operator(.)ident(each) reserved(do) operator(|)ident(index)operator(|) ident(stream)operator(.)ident(print) stringcontent(, )inlinecontent(, :name => )inlinedelimiter(")> ident(stream)operator(.)ident(print) string true)delimiter(")> reserved(if) ident(index)operator(.)ident(unique) ident(stream)operator(.)ident(puts) reserved(end) ident(stream)operator(.)ident(puts) reserved(unless) ident(indexes)operator(.)ident(empty?) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) comment(# Active Records will automatically record creation and/or update timestamps of database objects) comment(# if fields of the names created_at/created_on or updated_at/updated_on are present. This module is) comment(# automatically included, so you don't need to do that manually.) comment(#) comment(# This behavior can be turned off by setting ActiveRecord::Base.record_timestamps = false.) comment(# This behavior by default uses local time, but can use UTC by setting ActiveRecord::Base.default_timezone = :utc) reserved(module) class(Timestamp) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(# :nodoc:) reserved(super) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:create_without_timestamps)operator(,) symbol(:create) ident(alias_method) symbol(:create)operator(,) symbol(:create_with_timestamps) ident(alias_method) symbol(:update_without_timestamps)operator(,) symbol(:update) ident(alias_method) symbol(:update)operator(,) symbol(:update_with_timestamps) reserved(end) reserved(end) reserved(def) method(create_with_timestamps) comment(#:nodoc:) reserved(if) ident(record_timestamps) ident(t) operator(=) operator(() pre_constant(self)operator(.)ident(class)operator(.)ident(default_timezone) operator(==) symbol(:utc) operator(?) constant(Time)operator(.)ident(now)operator(.)ident(utc) operator(:) constant(Time)operator(.)ident(now) operator(\)) ident(write_attribute)operator(()stringoperator(,) ident(t)operator(\)) reserved(if) ident(respond_to?)operator(()symbol(:created_at)operator(\)) operator(&&) ident(created_at)operator(.)ident(nil?) ident(write_attribute)operator(()stringoperator(,) ident(t)operator(\)) reserved(if) ident(respond_to?)operator(()symbol(:created_on)operator(\)) operator(&&) ident(created_on)operator(.)ident(nil?) ident(write_attribute)operator(()stringoperator(,) ident(t)operator(\)) reserved(if) ident(respond_to?)operator(()symbol(:updated_at)operator(\)) ident(write_attribute)operator(()stringoperator(,) ident(t)operator(\)) reserved(if) ident(respond_to?)operator(()symbol(:updated_on)operator(\)) reserved(end) ident(create_without_timestamps) reserved(end) reserved(def) method(update_with_timestamps) comment(#:nodoc:) reserved(if) ident(record_timestamps) ident(t) operator(=) operator(() pre_constant(self)operator(.)ident(class)operator(.)ident(default_timezone) operator(==) symbol(:utc) operator(?) constant(Time)operator(.)ident(now)operator(.)ident(utc) operator(:) constant(Time)operator(.)ident(now) operator(\)) ident(write_attribute)operator(()stringoperator(,) ident(t)operator(\)) reserved(if) ident(respond_to?)operator(()symbol(:updated_at)operator(\)) ident(write_attribute)operator(()stringoperator(,) ident(t)operator(\)) reserved(if) ident(respond_to?)operator(()symbol(:updated_on)operator(\)) reserved(end) ident(update_without_timestamps) reserved(end) reserved(end) reserved(class) class(Base) comment(# Records the creation date and possibly time in created_on (date only\) or created_at (date and time\) and the update date and possibly) comment(# time in updated_on and updated_at. This only happens if the object responds to either of these messages, which they will do automatically) comment(# if the table has columns of either of these names. This feature is turned on by default.) class_variable(@@record_timestamps) operator(=) pre_constant(true) ident(cattr_accessor) symbol(:record_timestamps) comment(# deprecated: use ActiveRecord::Base.default_timezone instead.) class_variable(@@timestamps_gmt) operator(=) pre_constant(false) reserved(def) pre_constant(self)operator(.)method(timestamps_gmt=)operator(() ident(gmt) operator(\)) comment(#:nodoc:) ident(warn) string pre_constant(self)operator(.)ident(default_timezone) operator(=) operator(() ident(gmt) operator(?) symbol(:utc) operator(:) symbol(:local) operator(\)) reserved(end) reserved(def) pre_constant(self)operator(.)method(timestamps_gmt) comment(#:nodoc:) ident(warn) string pre_constant(self)operator(.)ident(default_timezone) operator(==) symbol(:utc) reserved(end) reserved(end) reserved(end) ident(require) string constant(Transaction)operator(::)constant(Simple)operator(.)ident(send)operator(()symbol(:remove_method)operator(,) symbol(:transaction)operator(\)) ident(require) string reserved(module) class(ActiveRecord) reserved(module) class(Transactions) comment(# :nodoc:) constant(TRANSACTION_MUTEX) operator(=) constant(Mutex)operator(.)ident(new) reserved(class) class(TransactionError) operator(<) constant(ActiveRecordError) comment(# :nodoc:) reserved(end) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:destroy_without_transactions)operator(,) symbol(:destroy) ident(alias_method) symbol(:destroy)operator(,) symbol(:destroy_with_transactions) ident(alias_method) symbol(:save_without_transactions)operator(,) symbol(:save) ident(alias_method) symbol(:save)operator(,) symbol(:save_with_transactions) reserved(end) reserved(end) comment(# Transactions are protective blocks where SQL statements are only permanent if they can all succeed as one atomic action. ) comment(# The classic example is a transfer between two accounts where you can only have a deposit if the withdrawal succeeded and) comment(# vice versa. Transactions enforce the integrity of the database and guard the data against program errors or database break-downs.) comment(# So basically you should use transaction blocks whenever you have a number of statements that must be executed together or) comment(# not at all. Example:) comment(#) comment(# transaction do) comment(# david.withdrawal(100\)) comment(# mary.deposit(100\)) comment(# end) comment(#) comment(# This example will only take money from David and give to Mary if neither +withdrawal+ nor +deposit+ raises an exception.) comment(# Exceptions will force a ROLLBACK that returns the database to the state before the transaction was begun. Be aware, though,) comment(# that the objects by default will _not_ have their instance data returned to their pre-transactional state.) comment(#) comment(# == Transactions are not distributed across database connections) comment(#) comment(# A transaction acts on a single database connection. If you have) comment(# multiple class-specific databases, the transaction will not protect) comment(# interaction among them. One workaround is to begin a transaction) comment(# on each class whose models you alter:) comment(#) comment(# Student.transaction do) comment(# Course.transaction do) comment(# course.enroll(student\)) comment(# student.units += course.units) comment(# end) comment(# end) comment(#) comment(# This is a poor solution, but full distributed transactions are beyond) comment(# the scope of Active Record.) comment(#) comment(# == Save and destroy are automatically wrapped in a transaction) comment(#) comment(# Both Base#save and Base#destroy come wrapped in a transaction that ensures that whatever you do in validations or callbacks) comment(# will happen under the protected cover of a transaction. So you can use validations to check for values that the transaction) comment(# depend on or you can raise exceptions in the callbacks to rollback.) comment(#) comment(# == Object-level transactions) comment(#) comment(# You can enable object-level transactions for Active Record objects, though. You do this by naming each of the Active Records) comment(# that you want to enable object-level transactions for, like this:) comment(#) comment(# Account.transaction(david, mary\) do) comment(# david.withdrawal(100\)) comment(# mary.deposit(100\)) comment(# end) comment(#) comment(# If the transaction fails, David and Mary will be returned to their pre-transactional state. No money will have changed hands in) comment(# neither object nor database.) comment(#) comment(# == Exception handling) comment(#) comment(# Also have in mind that exceptions thrown within a transaction block will be propagated (after triggering the ROLLBACK\), so you) comment(# should be ready to catch those in your application code.) comment(#) comment(# Tribute: Object-level transactions are implemented by Transaction::Simple by Austin Ziegler.) reserved(module) class(ClassMethods) reserved(def) method(transaction)operator(()operator(*)ident(objects)operator(,) operator(&)ident(block)operator(\)) ident(previous_handler) operator(=) ident(trap)operator(()stringoperator(\)) operator({) ident(raise) constant(TransactionError)operator(,) string operator(}) ident(lock_mutex) reserved(begin) ident(objects)operator(.)ident(each) operator({) operator(|)ident(o)operator(|) ident(o)operator(.)ident(extend)operator(()constant(Transaction)operator(::)constant(Simple)operator(\)) operator(}) ident(objects)operator(.)ident(each) operator({) operator(|)ident(o)operator(|) ident(o)operator(.)ident(start_transaction) operator(}) ident(result) operator(=) ident(connection)operator(.)ident(transaction)operator(()constant(Thread)operator(.)ident(current)operator([)stringoperator(])operator(,) operator(&)ident(block)operator(\)) ident(objects)operator(.)ident(each) operator({) operator(|)ident(o)operator(|) ident(o)operator(.)ident(commit_transaction) operator(}) reserved(return) ident(result) reserved(rescue) constant(Exception) operator(=)operator(>) ident(object_transaction_rollback) ident(objects)operator(.)ident(each) operator({) operator(|)ident(o)operator(|) ident(o)operator(.)ident(abort_transaction) operator(}) ident(raise) reserved(ensure) ident(unlock_mutex) ident(trap)operator(()stringoperator(,) ident(previous_handler)operator(\)) reserved(end) reserved(end) reserved(def) method(lock_mutex)comment(#:nodoc:) constant(Thread)operator(.)ident(current)operator([)stringoperator(]) operator(||=) integer(0) constant(TRANSACTION_MUTEX)operator(.)ident(lock) reserved(if) constant(Thread)operator(.)ident(current)operator([)stringoperator(]) operator(==) integer(0) constant(Thread)operator(.)ident(current)operator([)stringoperator(]) operator(=) operator(()constant(Thread)operator(.)ident(current)operator([)stringoperator(]) operator(==) integer(0)operator(\)) constant(Thread)operator(.)ident(current)operator([)stringoperator(]) operator(+=) integer(1) reserved(end) reserved(def) method(unlock_mutex)comment(#:nodoc:) constant(Thread)operator(.)ident(current)operator([)stringoperator(]) operator(-=) integer(1) constant(TRANSACTION_MUTEX)operator(.)ident(unlock) reserved(if) constant(Thread)operator(.)ident(current)operator([)stringoperator(]) operator(==) integer(0) reserved(end) reserved(end) reserved(def) method(transaction)operator(()operator(*)ident(objects)operator(,) operator(&)ident(block)operator(\)) pre_constant(self)operator(.)ident(class)operator(.)ident(transaction)operator(()operator(*)ident(objects)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(destroy_with_transactions) comment(#:nodoc:) ident(transaction) operator({) ident(destroy_without_transactions) operator(}) reserved(end) reserved(def) method(save_with_transactions)operator(()ident(perform_validation) operator(=) pre_constant(true)operator(\)) comment(#:nodoc:) ident(transaction) operator({) ident(save_without_transactions)operator(()ident(perform_validation)operator(\)) operator(}) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveRecord) comment(# Raised by save! and create! when the record is invalid. Use the) comment(# record method to retrieve the record which did not validate.) comment(# begin) comment(# complex_operation_that_calls_save!_internally) comment(# rescue ActiveRecord::RecordInvalid => invalid) comment(# puts invalid.record.errors) comment(# end) reserved(class) class(RecordInvalid) operator(<) constant(ActiveRecordError) comment(#:nodoc:) ident(attr_reader) symbol(:record) reserved(def) method(initialize)operator(()ident(record)operator(\)) instance_variable(@record) operator(=) ident(record) reserved(super)operator(()stringoperator(\))inline_delimiter(})>delimiter(")>operator(\)) reserved(end) reserved(end) comment(# Active Record validation is reported to and from this object, which is used by Base#save to) comment(# determine whether the object in a valid state to be saved. See usage example in Validations.) reserved(class) class(Errors) ident(include) constant(Enumerable) reserved(def) method(initialize)operator(()ident(base)operator(\)) comment(# :nodoc:) instance_variable(@base)operator(,) instance_variable(@errors) operator(=) ident(base)operator(,) operator({)operator(}) reserved(end) class_variable(@@default_error_messages) operator(=) operator({) symbol(:inclusion) operator(=)operator(>) stringoperator(,) symbol(:exclusion) operator(=)operator(>) stringoperator(,) symbol(:invalid) operator(=)operator(>) stringoperator(,) symbol(:confirmation) operator(=)operator(>) stringoperator(,) symbol(:accepted) operator(=)operator(>) stringoperator(,) symbol(:empty) operator(=)operator(>) stringoperator(,) symbol(:blank) operator(=)operator(>) stringoperator(,) symbol(:too_long) operator(=)operator(>) stringoperator(,) symbol(:too_short) operator(=)operator(>) stringoperator(,) symbol(:wrong_length) operator(=)operator(>) stringoperator(,) symbol(:taken) operator(=)operator(>) stringoperator(,) symbol(:not_a_number) operator(=)operator(>) string operator(}) comment(# Holds a hash with all the default error messages, such that they can be replaced by your own copy or localizations.) ident(cattr_accessor) symbol(:default_error_messages) comment(# Adds an error to the base object instead of any particular attribute. This is used) comment(# to report errors that don't tie to any specific attribute, but rather to the object) comment(# as a whole. These error messages don't get prepended with any field name when iterating) comment(# with each_full, so they should be complete sentences.) reserved(def) method(add_to_base)operator(()ident(msg)operator(\)) ident(add)operator(()symbol(:base)operator(,) ident(msg)operator(\)) reserved(end) comment(# Adds an error message (+msg+\) to the +attribute+, which will be returned on a call to on(attribute\)) comment(# for the same attribute and ensure that this error object returns false when asked if empty?. More than one) comment(# error can be added to the same +attribute+ in which case an array will be returned on a call to on(attribute\).) comment(# If no +msg+ is supplied, "invalid" is assumed.) reserved(def) method(add)operator(()ident(attribute)operator(,) ident(msg) operator(=) class_variable(@@default_error_messages)operator([)symbol(:invalid)operator(])operator(\)) instance_variable(@errors)operator([)ident(attribute)operator(.)ident(to_s)operator(]) operator(=) operator([)operator(]) reserved(if) instance_variable(@errors)operator([)ident(attribute)operator(.)ident(to_s)operator(])operator(.)ident(nil?) instance_variable(@errors)operator([)ident(attribute)operator(.)ident(to_s)operator(]) operator(<<) ident(msg) reserved(end) comment(# Will add an error message to each of the attributes in +attributes+ that is empty.) reserved(def) method(add_on_empty)operator(()ident(attributes)operator(,) ident(msg) operator(=) class_variable(@@default_error_messages)operator([)symbol(:empty)operator(])operator(\)) reserved(for) ident(attr) reserved(in) operator([)ident(attributes)operator(])operator(.)ident(flatten) ident(value) operator(=) instance_variable(@base)operator(.)ident(respond_to?)operator(()ident(attr)operator(.)ident(to_s)operator(\)) operator(?) instance_variable(@base)operator(.)ident(send)operator(()ident(attr)operator(.)ident(to_s)operator(\)) operator(:) instance_variable(@base)operator([)ident(attr)operator(.)ident(to_s)operator(]) ident(is_empty) operator(=) ident(value)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(?) ident(value)operator(.)ident(empty?) operator(:) pre_constant(false) ident(add)operator(()ident(attr)operator(,) ident(msg)operator(\)) reserved(unless) operator(!)ident(value)operator(.)ident(nil?) operator(&&) operator(!)ident(is_empty) reserved(end) reserved(end) comment(# Will add an error message to each of the attributes in +attributes+ that is blank (using Object#blank?\).) reserved(def) method(add_on_blank)operator(()ident(attributes)operator(,) ident(msg) operator(=) class_variable(@@default_error_messages)operator([)symbol(:blank)operator(])operator(\)) reserved(for) ident(attr) reserved(in) operator([)ident(attributes)operator(])operator(.)ident(flatten) ident(value) operator(=) instance_variable(@base)operator(.)ident(respond_to?)operator(()ident(attr)operator(.)ident(to_s)operator(\)) operator(?) instance_variable(@base)operator(.)ident(send)operator(()ident(attr)operator(.)ident(to_s)operator(\)) operator(:) instance_variable(@base)operator([)ident(attr)operator(.)ident(to_s)operator(]) ident(add)operator(()ident(attr)operator(,) ident(msg)operator(\)) reserved(if) ident(value)operator(.)ident(blank?) reserved(end) reserved(end) comment(# Will add an error message to each of the attributes in +attributes+ that has a length outside of the passed boundary +range+.) comment(# If the length is above the boundary, the too_long_msg message will be used. If below, the too_short_msg.) reserved(def) method(add_on_boundary_breaking)operator(()ident(attributes)operator(,) ident(range)operator(,) ident(too_long_msg) operator(=) class_variable(@@default_error_messages)operator([)symbol(:too_long)operator(])operator(,) ident(too_short_msg) operator(=) class_variable(@@default_error_messages)operator([)symbol(:too_short)operator(])operator(\)) reserved(for) ident(attr) reserved(in) operator([)ident(attributes)operator(])operator(.)ident(flatten) ident(value) operator(=) instance_variable(@base)operator(.)ident(respond_to?)operator(()ident(attr)operator(.)ident(to_s)operator(\)) operator(?) instance_variable(@base)operator(.)ident(send)operator(()ident(attr)operator(.)ident(to_s)operator(\)) operator(:) instance_variable(@base)operator([)ident(attr)operator(.)ident(to_s)operator(]) ident(add)operator(()ident(attr)operator(,) ident(too_short_msg) operator(%) ident(range)operator(.)ident(begin)operator(\)) reserved(if) ident(value) operator(&&) ident(value)operator(.)ident(length) operator(<) ident(range)operator(.)ident(begin) ident(add)operator(()ident(attr)operator(,) ident(too_long_msg) operator(%) ident(range)operator(.)ident(end)operator(\)) reserved(if) ident(value) operator(&&) ident(value)operator(.)ident(length) operator(>) ident(range)operator(.)ident(end) reserved(end) reserved(end) reserved(alias) symbol(:add_on_boundry_breaking) symbol(:add_on_boundary_breaking) comment(# Returns true if the specified +attribute+ has errors associated with it.) reserved(def) method(invalid?)operator(()ident(attribute)operator(\)) operator(!)instance_variable(@errors)operator([)ident(attribute)operator(.)ident(to_s)operator(])operator(.)ident(nil?) reserved(end) comment(# * Returns nil, if no errors are associated with the specified +attribute+.) comment(# * Returns the error message, if one error is associated with the specified +attribute+.) comment(# * Returns an array of error messages, if more than one error is associated with the specified +attribute+.) reserved(def) method(on)operator(()ident(attribute)operator(\)) reserved(if) instance_variable(@errors)operator([)ident(attribute)operator(.)ident(to_s)operator(])operator(.)ident(nil?) pre_constant(nil) reserved(elsif) instance_variable(@errors)operator([)ident(attribute)operator(.)ident(to_s)operator(])operator(.)ident(length) operator(==) integer(1) instance_variable(@errors)operator([)ident(attribute)operator(.)ident(to_s)operator(])operator(.)ident(first) reserved(else) instance_variable(@errors)operator([)ident(attribute)operator(.)ident(to_s)operator(]) reserved(end) reserved(end) reserved(alias) symbol(:[]) symbol(:on) comment(# Returns errors assigned to base object through add_to_base according to the normal rules of on(attribute\).) reserved(def) method(on_base) ident(on)operator(()symbol(:base)operator(\)) reserved(end) comment(# Yields each attribute and associated message per error added.) reserved(def) method(each) instance_variable(@errors)operator(.)ident(each_key) operator({) operator(|)ident(attr)operator(|) instance_variable(@errors)operator([)ident(attr)operator(])operator(.)ident(each) operator({) operator(|)ident(msg)operator(|) reserved(yield) ident(attr)operator(,) ident(msg) operator(}) operator(}) reserved(end) comment(# Yields each full error message added. So Person.errors.add("first_name", "can't be empty"\) will be returned) comment(# through iteration as "First name can't be empty".) reserved(def) method(each_full) ident(full_messages)operator(.)ident(each) operator({) operator(|)ident(msg)operator(|) reserved(yield) ident(msg) operator(}) reserved(end) comment(# Returns all the full error messages in an array.) reserved(def) method(full_messages) ident(full_messages) operator(=) operator([)operator(]) instance_variable(@errors)operator(.)ident(each_key) reserved(do) operator(|)ident(attr)operator(|) instance_variable(@errors)operator([)ident(attr)operator(])operator(.)ident(each) reserved(do) operator(|)ident(msg)operator(|) reserved(next) reserved(if) ident(msg)operator(.)ident(nil?) reserved(if) ident(attr) operator(==) string ident(full_messages) operator(<<) ident(msg) reserved(else) ident(full_messages) operator(<<) instance_variable(@base)operator(.)ident(class)operator(.)ident(human_attribute_name)operator(()ident(attr)operator(\)) operator(+) string operator(+) ident(msg) reserved(end) reserved(end) reserved(end) reserved(return) ident(full_messages) reserved(end) comment(# Returns true if no errors have been added.) reserved(def) method(empty?) reserved(return) instance_variable(@errors)operator(.)ident(empty?) reserved(end) comment(# Removes all the errors that have been added.) reserved(def) method(clear) instance_variable(@errors) operator(=) operator({)operator(}) reserved(end) comment(# Returns the total number of errors added. Two errors added to the same attribute will be counted as such) comment(# with this as well.) reserved(def) method(size) ident(error_count) operator(=) integer(0) instance_variable(@errors)operator(.)ident(each_value) operator({) operator(|)ident(attribute)operator(|) ident(error_count) operator(+=) ident(attribute)operator(.)ident(length) operator(}) ident(error_count) reserved(end) ident(alias_method) symbol(:count)operator(,) symbol(:size) ident(alias_method) symbol(:length)operator(,) symbol(:size) reserved(end) comment(# Active Records implement validation by overwriting Base#validate (or the variations, +validate_on_create+ and) comment(# +validate_on_update+\). Each of these methods can inspect the state of the object, which usually means ensuring) comment(# that a number of attributes have a certain value (such as not empty, within a given range, matching a certain regular expression\).) comment(#) comment(# Example:) comment(#) comment(# class Person < ActiveRecord::Base) comment(# protected) comment(# def validate) comment(# errors.add_on_empty %w( first_name last_name \)) comment(# errors.add("phone_number", "has invalid format"\) unless phone_number =~ /[0-9]*/) comment(# end) comment(#) comment(# def validate_on_create # is only run the first time a new object is saved) comment(# unless valid_discount?(membership_discount\)) comment(# errors.add("membership_discount", "has expired"\)) comment(# end) comment(# end) comment(#) comment(# def validate_on_update) comment(# errors.add_to_base("No changes have occurred"\) if unchanged_attributes?) comment(# end) comment(# end) comment(#) comment(# person = Person.new("first_name" => "David", "phone_number" => "what?"\)) comment(# person.save # => false (and doesn't do the save\)) comment(# person.errors.empty? # => false) comment(# person.errors.count # => 2) comment(# person.errors.on "last_name" # => "can't be empty") comment(# person.errors.on "phone_number" # => "has invalid format") comment(# person.errors.each_full { |msg| puts msg }) comment(# # => "Last name can't be empty\\n" +) comment(# "Phone number has invalid format") comment(#) comment(# person.attributes = { "last_name" => "Heinemeier", "phone_number" => "555-555" }) comment(# person.save # => true (and person is now saved in the database\)) comment(#) comment(# An +Errors+ object is automatically created for every Active Record.) comment(#) comment(# Please do have a look at ActiveRecord::Validations::ClassMethods for a higher level of validations.) reserved(module) class(Validations) constant(VALIDATIONS) operator(=) string reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(# :nodoc:) reserved(super) ident(base)operator(.)ident(extend) constant(ClassMethods) ident(base)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:save_without_validation)operator(,) symbol(:save) ident(alias_method) symbol(:save)operator(,) symbol(:save_with_validation) ident(alias_method) symbol(:save_without_validation!)operator(,) symbol(:save!) ident(alias_method) symbol(:save!)operator(,) symbol(:save_with_validation!) ident(alias_method) symbol(:update_attribute_without_validation_skipping)operator(,) symbol(:update_attribute) ident(alias_method) symbol(:update_attribute)operator(,) symbol(:update_attribute_with_validation_skipping) reserved(end) reserved(end) comment(# All of the following validations are defined in the class scope of the model that you're interested in validating.) comment(# They offer a more declarative way of specifying when the model is valid and when it is not. It is recommended to use) comment(# these over the low-level calls to validate and validate_on_create when possible.) reserved(module) class(ClassMethods) constant(DEFAULT_VALIDATION_OPTIONS) operator(=) operator({) symbol(:on) operator(=)operator(>) symbol(:save)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(false)operator(,) symbol(:message) operator(=)operator(>) pre_constant(nil) operator(})operator(.)ident(freeze) constant(ALL_RANGE_OPTIONS) operator(=) operator([) symbol(:is)operator(,) symbol(:within)operator(,) symbol(:in)operator(,) symbol(:minimum)operator(,) symbol(:maximum) operator(])operator(.)ident(freeze) reserved(def) method(validate)operator(()operator(*)ident(methods)operator(,) operator(&)ident(block)operator(\)) ident(methods) operator(<<) ident(block) reserved(if) ident(block_given?) ident(write_inheritable_set)operator(()symbol(:validate)operator(,) ident(methods)operator(\)) reserved(end) reserved(def) method(validate_on_create)operator(()operator(*)ident(methods)operator(,) operator(&)ident(block)operator(\)) ident(methods) operator(<<) ident(block) reserved(if) ident(block_given?) ident(write_inheritable_set)operator(()symbol(:validate_on_create)operator(,) ident(methods)operator(\)) reserved(end) reserved(def) method(validate_on_update)operator(()operator(*)ident(methods)operator(,) operator(&)ident(block)operator(\)) ident(methods) operator(<<) ident(block) reserved(if) ident(block_given?) ident(write_inheritable_set)operator(()symbol(:validate_on_update)operator(,) ident(methods)operator(\)) reserved(end) reserved(def) method(condition_block?)operator(()ident(condition)operator(\)) ident(condition)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(&&) operator(()ident(condition)operator(.)ident(arity) operator(==) integer(1) operator(||) ident(condition)operator(.)ident(arity) operator(==) integer(-1)operator(\)) reserved(end) comment(# Determine from the given condition (whether a block, procedure, method or string\)) comment(# whether or not to validate the record. See #validates_each.) reserved(def) method(evaluate_condition)operator(()ident(condition)operator(,) ident(record)operator(\)) reserved(case) ident(condition) reserved(when) constant(Symbol)operator(:) ident(record)operator(.)ident(send)operator(()ident(condition)operator(\)) reserved(when) constant(String)operator(:) ident(eval)operator(()ident(condition)operator(,) ident(binding)operator(\)) reserved(else) reserved(if) ident(condition_block?)operator(()ident(condition)operator(\)) ident(condition)operator(.)ident(call)operator(()ident(record)operator(\)) reserved(else) ident(raise)operator(() constant(ActiveRecordError)operator(,) string operator(+) string operator(\)) reserved(end) reserved(end) reserved(end) comment(# Validates each attribute against a block.) comment(#) comment(# class Person < ActiveRecord::Base) comment(# validates_each :first_name, :last_name do |record, attr, value|) comment(# record.errors.add attr, 'starts with z.' if value[0] == ?z) comment(# end) comment(# end) comment(#) comment(# Options:) comment(# * on - Specifies when this validation is active (default is :save, other options :create, :update\)) comment(# * allow_nil - Skip validation if attribute is nil.) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_each)operator(()operator(*)ident(attrs)operator(\)) ident(options) operator(=) ident(attrs)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(attrs)operator(.)ident(pop)operator(.)ident(symbolize_keys) operator(:) operator({)operator(}) ident(attrs) operator(=) ident(attrs)operator(.)ident(flatten) comment(# Declare the validation.) ident(send)operator(()ident(validation_method)operator(()ident(options)operator([)symbol(:on)operator(]) operator(||) symbol(:save)operator(\))operator(\)) reserved(do) operator(|)ident(record)operator(|) comment(# Don't validate when there is an :if condition and that condition is false) reserved(unless) ident(options)operator([)symbol(:if)operator(]) operator(&&) operator(!)ident(evaluate_condition)operator(()ident(options)operator([)symbol(:if)operator(])operator(,) ident(record)operator(\)) ident(attrs)operator(.)ident(each) reserved(do) operator(|)ident(attr)operator(|) ident(value) operator(=) ident(record)operator(.)ident(send)operator(()ident(attr)operator(\)) reserved(next) reserved(if) ident(value)operator(.)ident(nil?) operator(&&) ident(options)operator([)symbol(:allow_nil)operator(]) reserved(yield) ident(record)operator(,) ident(attr)operator(,) ident(value) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Encapsulates the pattern of wanting to validate a password or email address field with a confirmation. Example:) comment(#) comment(# Model:) comment(# class Person < ActiveRecord::Base) comment(# validates_confirmation_of :user_name, :password) comment(# validates_confirmation_of :email_address, :message => "should match confirmation") comment(# end) comment(#) comment(# View:) comment(# <%= password_field "person", "password" %>) comment(# <%= password_field "person", "password_confirmation" %>) comment(#) comment(# The person has to already have a password attribute (a column in the people table\), but the password_confirmation is virtual.) comment(# It exists only as an in-memory variable for validating the password. This check is performed only if password_confirmation) comment(# is not nil and by default on save.) comment(#) comment(# Configuration options:) comment(# * message - A custom error message (default is: "doesn't match confirmation"\)) comment(# * on - Specifies when this validation is active (default is :save, other options :create, :update\)) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_confirmation_of)operator(()operator(*)ident(attr_names)operator(\)) ident(configuration) operator(=) operator({) symbol(:message) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:confirmation)operator(])operator(,) symbol(:on) operator(=)operator(>) symbol(:save) operator(}) ident(configuration)operator(.)ident(update)operator(()ident(attr_names)operator(.)ident(pop)operator(\)) reserved(if) ident(attr_names)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(attr_accessor) operator(*)operator(()ident(attr_names)operator(.)ident(map) operator({) operator(|)ident(n)operator(|) stringcontent(_confirmation)delimiter(")> operator(})operator(\)) ident(validates_each)operator(()ident(attr_names)operator(,) ident(configuration)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr_name)operator(,) ident(value)operator(|) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr_name)operator(,) ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(unless) ident(record)operator(.)ident(send)operator(()stringcontent(_confirmation)delimiter(")>operator(\))operator(.)ident(nil?) reserved(or) ident(value) operator(==) ident(record)operator(.)ident(send)operator(()stringcontent(_confirmation)delimiter(")>operator(\)) reserved(end) reserved(end) comment(# Encapsulates the pattern of wanting to validate the acceptance of a terms of service check box (or similar agreement\). Example:) comment(#) comment(# class Person < ActiveRecord::Base) comment(# validates_acceptance_of :terms_of_service) comment(# validates_acceptance_of :eula, :message => "must be abided") comment(# end) comment(#) comment(# The terms_of_service attribute is entirely virtual. No database column is needed. This check is performed only if) comment(# terms_of_service is not nil and by default on save.) comment(#) comment(# Configuration options:) comment(# * message - A custom error message (default is: "must be accepted"\)) comment(# * on - Specifies when this validation is active (default is :save, other options :create, :update\)) comment(# * accept - Specifies value that is considered accepted. The default value is a string "1", which) comment(# makes it easy to relate to an HTML checkbox.) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_acceptance_of)operator(()operator(*)ident(attr_names)operator(\)) ident(configuration) operator(=) operator({) symbol(:message) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:accepted)operator(])operator(,) symbol(:on) operator(=)operator(>) symbol(:save)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(true)operator(,) symbol(:accept) operator(=)operator(>) string operator(}) ident(configuration)operator(.)ident(update)operator(()ident(attr_names)operator(.)ident(pop)operator(\)) reserved(if) ident(attr_names)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(attr_accessor) operator(*)ident(attr_names) ident(validates_each)operator(()ident(attr_names)operator(,)ident(configuration)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr_name)operator(,) ident(value)operator(|) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr_name)operator(,) ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(unless) ident(value) operator(==) ident(configuration)operator([)symbol(:accept)operator(]) reserved(end) reserved(end) comment(# Validates that the specified attributes are not blank (as defined by Object#blank?\). Happens by default on save. Example:) comment(#) comment(# class Person < ActiveRecord::Base) comment(# validates_presence_of :first_name) comment(# end) comment(#) comment(# The first_name attribute must be in the object and it cannot be blank.) comment(# ) comment(# Configuration options:) comment(# * message - A custom error message (default is: "can't be blank"\)) comment(# * on - Specifies when this validation is active (default is :save, other options :create, :update\)) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) comment(#) comment(# === Warning) comment(# Validate the presence of the foreign key, not the instance variable itself.) comment(# Do this:) comment(# validate_presence_of :invoice_id) comment(#) comment(# Not this:) comment(# validate_presence_of :invoice) comment(#) comment(# If you validate the presence of the associated object, you will get) comment(# failures on saves when both the parent object and the child object are) comment(# new.) reserved(def) method(validates_presence_of)operator(()operator(*)ident(attr_names)operator(\)) ident(configuration) operator(=) operator({) symbol(:message) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:blank)operator(])operator(,) symbol(:on) operator(=)operator(>) symbol(:save) operator(}) ident(configuration)operator(.)ident(update)operator(()ident(attr_names)operator(.)ident(pop)operator(\)) reserved(if) ident(attr_names)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) comment(# can't use validates_each here, because it cannot cope with nonexistent attributes,) comment(# while errors.add_on_empty can) ident(attr_names)operator(.)ident(each) reserved(do) operator(|)ident(attr_name)operator(|) ident(send)operator(()ident(validation_method)operator(()ident(configuration)operator([)symbol(:on)operator(])operator(\))operator(\)) reserved(do) operator(|)ident(record)operator(|) reserved(unless) ident(configuration)operator([)symbol(:if)operator(]) reserved(and) reserved(not) ident(evaluate_condition)operator(()ident(configuration)operator([)symbol(:if)operator(])operator(,) ident(record)operator(\)) ident(record)operator(.)ident(errors)operator(.)ident(add_on_blank)operator(()ident(attr_name)operator(,)ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Validates that the specified attribute matches the length restrictions supplied. Only one option can be used at a time:) comment(#) comment(# class Person < ActiveRecord::Base) comment(# validates_length_of :first_name, :maximum=>30) comment(# validates_length_of :last_name, :maximum=>30, :message=>"less than %d if you don't mind") comment(# validates_length_of :fax, :in => 7..32, :allow_nil => true) comment(# validates_length_of :user_name, :within => 6..20, :too_long => "pick a shorter name", :too_short => "pick a longer name") comment(# validates_length_of :fav_bra_size, :minimum=>1, :too_short=>"please enter at least %d character") comment(# validates_length_of :smurf_leader, :is=>4, :message=>"papa is spelled with %d characters... don't play me.") comment(# end) comment(#) comment(# Configuration options:) comment(# * minimum - The minimum size of the attribute) comment(# * maximum - The maximum size of the attribute) comment(# * is - The exact size of the attribute) comment(# * within - A range specifying the minimum and maximum size of the attribute) comment(# * in - A synonym(or alias\) for :within) comment(# * allow_nil - Attribute may be nil; skip validation.) comment(#) comment(# * too_long - The error message if the attribute goes over the maximum (default is: "is too long (maximum is %d characters\)"\)) comment(# * too_short - The error message if the attribute goes under the minimum (default is: "is too short (min is %d characters\)"\)) comment(# * wrong_length - The error message if using the :is method and the attribute is the wrong size (default is: "is the wrong length (should be %d characters\)"\)) comment(# * message - The error message to use for a :minimum, :maximum, or :is violation. An alias of the appropriate too_long/too_short/wrong_length message) comment(# * on - Specifies when this validation is active (default is :save, other options :create, :update\)) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_length_of)operator(()operator(*)ident(attrs)operator(\)) comment(# Merge given options with defaults.) ident(options) operator(=) operator({) symbol(:too_long) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:too_long)operator(])operator(,) symbol(:too_short) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:too_short)operator(])operator(,) symbol(:wrong_length) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:wrong_length)operator(]) operator(})operator(.)ident(merge)operator(()constant(DEFAULT_VALIDATION_OPTIONS)operator(\)) ident(options)operator(.)ident(update)operator(()ident(attrs)operator(.)ident(pop)operator(.)ident(symbolize_keys)operator(\)) reserved(if) ident(attrs)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) comment(# Ensure that one and only one range option is specified.) ident(range_options) operator(=) constant(ALL_RANGE_OPTIONS) operator(&) ident(options)operator(.)ident(keys) reserved(case) ident(range_options)operator(.)ident(size) reserved(when) integer(0) ident(raise) constant(ArgumentError)operator(,) string reserved(when) integer(1) comment(# Valid number of options; do nothing.) reserved(else) ident(raise) constant(ArgumentError)operator(,) string reserved(end) comment(# Get range option and value.) ident(option) operator(=) ident(range_options)operator(.)ident(first) ident(option_value) operator(=) ident(options)operator([)ident(range_options)operator(.)ident(first)operator(]) reserved(case) ident(option) reserved(when) symbol(:within)operator(,) symbol(:in) ident(raise) constant(ArgumentError)operator(,) stringcontent( must be a Range)delimiter(")> reserved(unless) ident(option_value)operator(.)ident(is_a?)operator(()constant(Range)operator(\)) ident(too_short) operator(=) ident(options)operator([)symbol(:too_short)operator(]) operator(%) ident(option_value)operator(.)ident(begin) ident(too_long) operator(=) ident(options)operator([)symbol(:too_long)operator(]) operator(%) ident(option_value)operator(.)ident(end) ident(validates_each)operator(()ident(attrs)operator(,) ident(options)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr)operator(,) ident(value)operator(|) reserved(if) ident(value)operator(.)ident(nil?) reserved(or) ident(value)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(size) operator(<) ident(option_value)operator(.)ident(begin) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr)operator(,) ident(too_short)operator(\)) reserved(elsif) ident(value)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(size) operator(>) ident(option_value)operator(.)ident(end) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr)operator(,) ident(too_long)operator(\)) reserved(end) reserved(end) reserved(when) symbol(:is)operator(,) symbol(:minimum)operator(,) symbol(:maximum) ident(raise) constant(ArgumentError)operator(,) stringcontent( must be a nonnegative Integer)delimiter(")> reserved(unless) ident(option_value)operator(.)ident(is_a?)operator(()constant(Integer)operator(\)) reserved(and) ident(option_value) operator(>)operator(=) integer(0) comment(# Declare different validations per option.) ident(validity_checks) operator(=) operator({) symbol(:is) operator(=)operator(>) stringoperator(,) symbol(:minimum) operator(=)operator(>) string=)delimiter(")>operator(,) symbol(:maximum) operator(=)operator(>) string operator(}) ident(message_options) operator(=) operator({) symbol(:is) operator(=)operator(>) symbol(:wrong_length)operator(,) symbol(:minimum) operator(=)operator(>) symbol(:too_short)operator(,) symbol(:maximum) operator(=)operator(>) symbol(:too_long) operator(}) ident(message) operator(=) operator(()ident(options)operator([)symbol(:message)operator(]) operator(||) ident(options)operator([)ident(message_options)operator([)ident(option)operator(])operator(])operator(\)) operator(%) ident(option_value) ident(validates_each)operator(()ident(attrs)operator(,) ident(options)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr)operator(,) ident(value)operator(|) reserved(if) ident(value)operator(.)ident(kind_of?)operator(()constant(String)operator(\)) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr)operator(,) ident(message)operator(\)) reserved(unless) operator(!)ident(value)operator(.)ident(nil?) reserved(and) ident(value)operator(.)ident(split)operator(()regexpoperator(\))operator(.)ident(size)operator(.)ident(method)operator(()ident(validity_checks)operator([)ident(option)operator(])operator(\))operator([)ident(option_value)operator(]) reserved(else) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr)operator(,) ident(message)operator(\)) reserved(unless) operator(!)ident(value)operator(.)ident(nil?) reserved(and) ident(value)operator(.)ident(size)operator(.)ident(method)operator(()ident(validity_checks)operator([)ident(option)operator(])operator(\))operator([)ident(option_value)operator(]) reserved(end) reserved(end) reserved(end) reserved(end) ident(alias_method) symbol(:validates_size_of)operator(,) symbol(:validates_length_of) comment(# Validates whether the value of the specified attributes are unique across the system. Useful for making sure that only one user) comment(# can be named "davidhh".) comment(#) comment(# class Person < ActiveRecord::Base) comment(# validates_uniqueness_of :user_name, :scope => :account_id) comment(# end) comment(#) comment(# It can also validate whether the value of the specified attributes are unique based on multiple scope parameters. For example,) comment(# making sure that a teacher can only be on the schedule once per semester for a particular class. ) comment(#) comment(# class TeacherSchedule < ActiveRecord::Base) comment(# validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id] ) comment(# end) comment(#) comment(# When the record is created, a check is performed to make sure that no record exists in the database with the given value for the specified) comment(# attribute (that maps to a column\). When the record is updated, the same check is made but disregarding the record itself.) comment(#) comment(# Configuration options:) comment(# * message - Specifies a custom error message (default is: "has already been taken"\)) comment(# * scope - One or more columns by which to limit the scope of the uniquness constraint.) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_uniqueness_of)operator(()operator(*)ident(attr_names)operator(\)) ident(configuration) operator(=) operator({) symbol(:message) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:taken)operator(]) operator(}) ident(configuration)operator(.)ident(update)operator(()ident(attr_names)operator(.)ident(pop)operator(\)) reserved(if) ident(attr_names)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(validates_each)operator(()ident(attr_names)operator(,)ident(configuration)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr_name)operator(,) ident(value)operator(|) ident(condition_sql) operator(=) stringcontent(.)inlinecontent( )inlinedelimiter(")> ident(condition_params) operator(=) operator([)ident(value)operator(]) reserved(if) ident(scope) operator(=) ident(configuration)operator([)symbol(:scope)operator(]) ident(Array)operator(()ident(scope)operator(\))operator(.)ident(map) reserved(do) operator(|)ident(scope_item)operator(|) ident(scope_value) operator(=) ident(record)operator(.)ident(send)operator(()ident(scope_item)operator(\)) ident(condition_sql) operator(<<) stringcontent(.)inlinecontent( )inlinedelimiter(")> ident(condition_params) operator(<<) ident(scope_value) reserved(end) reserved(end) reserved(unless) ident(record)operator(.)ident(new_record?) ident(condition_sql) operator(<<) stringcontent(.)inlinecontent( <> ?)delimiter(")> ident(condition_params) operator(<<) ident(record)operator(.)ident(send)operator(()symbol(:id)operator(\)) reserved(end) reserved(if) ident(record)operator(.)ident(class)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)ident(condition_sql)operator(,) operator(*)ident(condition_params)operator(])operator(\)) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr_name)operator(,) ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(end) reserved(end) reserved(end) comment(# Validates whether the value of the specified attribute is of the correct form by matching it against the regular expression) comment(# provided.) comment(#) comment(# class Person < ActiveRecord::Base) comment(# validates_format_of :email, :with => /^([^@\\s]+\)@((?:[-a-z0-9]+\\.\)+[a-z]{2,}\)$/i, :on => :create) comment(# end) comment(#) comment(# A regular expression must be provided or else an exception will be raised.) comment(#) comment(# Configuration options:) comment(# * message - A custom error message (default is: "is invalid"\)) comment(# * with - The regular expression used to validate the format with (note: must be supplied!\)) comment(# * on Specifies when this validation is active (default is :save, other options :create, :update\)) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_format_of)operator(()operator(*)ident(attr_names)operator(\)) ident(configuration) operator(=) operator({) symbol(:message) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:invalid)operator(])operator(,) symbol(:on) operator(=)operator(>) symbol(:save)operator(,) symbol(:with) operator(=)operator(>) pre_constant(nil) operator(}) ident(configuration)operator(.)ident(update)operator(()ident(attr_names)operator(.)ident(pop)operator(\)) reserved(if) ident(attr_names)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(raise)operator(()constant(ArgumentError)operator(,) stringoperator(\)) reserved(unless) ident(configuration)operator([)symbol(:with)operator(])operator(.)ident(is_a?)operator(()constant(Regexp)operator(\)) ident(validates_each)operator(()ident(attr_names)operator(,) ident(configuration)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr_name)operator(,) ident(value)operator(|) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr_name)operator(,) ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(unless) ident(value)operator(.)ident(to_s) operator(=)operator(~) ident(configuration)operator([)symbol(:with)operator(]) reserved(end) reserved(end) comment(# Validates whether the value of the specified attribute is available in a particular enumerable object.) comment(#) comment(# class Person < ActiveRecord::Base) comment(# validates_inclusion_of :gender, :in=>%w( m f \), :message=>"woah! what are you then!??!!") comment(# validates_inclusion_of :age, :in=>0..99) comment(# end) comment(#) comment(# Configuration options:) comment(# * in - An enumerable object of available items) comment(# * message - Specifies a customer error message (default is: "is not included in the list"\)) comment(# * allow_nil - If set to true, skips this validation if the attribute is null (default is: false\)) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_inclusion_of)operator(()operator(*)ident(attr_names)operator(\)) ident(configuration) operator(=) operator({) symbol(:message) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:inclusion)operator(])operator(,) symbol(:on) operator(=)operator(>) symbol(:save) operator(}) ident(configuration)operator(.)ident(update)operator(()ident(attr_names)operator(.)ident(pop)operator(\)) reserved(if) ident(attr_names)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(enum) operator(=) ident(configuration)operator([)symbol(:in)operator(]) operator(||) ident(configuration)operator([)symbol(:within)operator(]) ident(raise)operator(()constant(ArgumentError)operator(,) stringoperator(\)) reserved(unless) ident(enum)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(validates_each)operator(()ident(attr_names)operator(,) ident(configuration)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr_name)operator(,) ident(value)operator(|) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr_name)operator(,) ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(unless) ident(enum)operator(.)ident(include?)operator(()ident(value)operator(\)) reserved(end) reserved(end) comment(# Validates that the value of the specified attribute is not in a particular enumerable object.) comment(#) comment(# class Person < ActiveRecord::Base) comment(# validates_exclusion_of :username, :in => %w( admin superuser \), :message => "You don't belong here") comment(# validates_exclusion_of :age, :in => 30..60, :message => "This site is only for under 30 and over 60") comment(# end) comment(#) comment(# Configuration options:) comment(# * in - An enumerable object of items that the value shouldn't be part of) comment(# * message - Specifies a customer error message (default is: "is reserved"\)) comment(# * allow_nil - If set to true, skips this validation if the attribute is null (default is: false\)) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_exclusion_of)operator(()operator(*)ident(attr_names)operator(\)) ident(configuration) operator(=) operator({) symbol(:message) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:exclusion)operator(])operator(,) symbol(:on) operator(=)operator(>) symbol(:save) operator(}) ident(configuration)operator(.)ident(update)operator(()ident(attr_names)operator(.)ident(pop)operator(\)) reserved(if) ident(attr_names)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(enum) operator(=) ident(configuration)operator([)symbol(:in)operator(]) operator(||) ident(configuration)operator([)symbol(:within)operator(]) ident(raise)operator(()constant(ArgumentError)operator(,) stringoperator(\)) reserved(unless) ident(enum)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(validates_each)operator(()ident(attr_names)operator(,) ident(configuration)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr_name)operator(,) ident(value)operator(|) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr_name)operator(,) ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(if) ident(enum)operator(.)ident(include?)operator(()ident(value)operator(\)) reserved(end) reserved(end) comment(# Validates whether the associated object or objects are all valid themselves. Works with any kind of association.) comment(#) comment(# class Book < ActiveRecord::Base) comment(# has_many :pages) comment(# belongs_to :library) comment(#) comment(# validates_associated :pages, :library) comment(# end) comment(#) comment(# Warning: If, after the above definition, you then wrote:) comment(#) comment(# class Page < ActiveRecord::Base) comment(# belongs_to :book) comment(#) comment(# validates_associated :book) comment(# end) comment(#) comment(# ...this would specify a circular dependency and cause infinite recursion.) comment(#) comment(# NOTE: This validation will not fail if the association hasn't been assigned. If you want to ensure that the association) comment(# is both present and guaranteed to be valid, you also need to use validates_presence_of.) comment(#) comment(# Configuration options:) comment(# * on Specifies when this validation is active (default is :save, other options :create, :update\)) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_associated)operator(()operator(*)ident(attr_names)operator(\)) ident(configuration) operator(=) operator({) symbol(:message) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:invalid)operator(])operator(,) symbol(:on) operator(=)operator(>) symbol(:save) operator(}) ident(configuration)operator(.)ident(update)operator(()ident(attr_names)operator(.)ident(pop)operator(\)) reserved(if) ident(attr_names)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) ident(validates_each)operator(()ident(attr_names)operator(,) ident(configuration)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr_name)operator(,) ident(value)operator(|) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr_name)operator(,) ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(unless) operator(()ident(value)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) operator(?) ident(value) operator(:) operator([)ident(value)operator(])operator(\))operator(.)ident(all?) operator({) operator(|)ident(r)operator(|) ident(r)operator(.)ident(nil?) reserved(or) ident(r)operator(.)ident(valid?) operator(}) reserved(end) reserved(end) comment(# Validates whether the value of the specified attribute is numeric by trying to convert it to) comment(# a float with Kernel.Float (if integer is false\) or applying it to the regular expression) comment(# /^[\\+\\-]?\\d+$/ (if integer is set to true\).) comment(#) comment(# class Person < ActiveRecord::Base) comment(# validates_numericality_of :value, :on => :create) comment(# end) comment(#) comment(# Configuration options:) comment(# * message - A custom error message (default is: "is not a number"\)) comment(# * on Specifies when this validation is active (default is :save, other options :create, :update\)) comment(# * only_integer Specifies whether the value has to be an integer, e.g. an integral value (default is false\)) comment(# * allow_nil Skip validation if attribute is nil (default is false\). Notice that for fixnum and float columns empty strings are converted to nil) comment(# * if - Specifies a method, proc or string to call to determine if the validation should) comment(# occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }\). The) comment(# method, proc or string should return or evaluate to a true or false value.) reserved(def) method(validates_numericality_of)operator(()operator(*)ident(attr_names)operator(\)) ident(configuration) operator(=) operator({) symbol(:message) operator(=)operator(>) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:not_a_number)operator(])operator(,) symbol(:on) operator(=)operator(>) symbol(:save)operator(,) symbol(:only_integer) operator(=)operator(>) pre_constant(false)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(false) operator(}) ident(configuration)operator(.)ident(update)operator(()ident(attr_names)operator(.)ident(pop)operator(\)) reserved(if) ident(attr_names)operator(.)ident(last)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) reserved(if) ident(configuration)operator([)symbol(:only_integer)operator(]) ident(validates_each)operator(()ident(attr_names)operator(,)ident(configuration)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr_name)operator(,)ident(value)operator(|) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr_name)operator(,) ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(unless) ident(record)operator(.)ident(send)operator(()stringcontent(_before_type_cast)delimiter(")>operator(\))operator(.)ident(to_s) operator(=)operator(~) regexp reserved(end) reserved(else) ident(validates_each)operator(()ident(attr_names)operator(,)ident(configuration)operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr_name)operator(,)ident(value)operator(|) reserved(next) reserved(if) ident(configuration)operator([)symbol(:allow_nil)operator(]) reserved(and) ident(record)operator(.)ident(send)operator(()stringcontent(_before_type_cast)delimiter(")>operator(\))operator(.)ident(nil?) reserved(begin) constant(Kernel)operator(.)ident(Float)operator(()ident(record)operator(.)ident(send)operator(()stringcontent(_before_type_cast)delimiter(")>operator(\))operator(.)ident(to_s)operator(\)) reserved(rescue) constant(ArgumentError)operator(,) constant(TypeError) ident(record)operator(.)ident(errors)operator(.)ident(add)operator(()ident(attr_name)operator(,) ident(configuration)operator([)symbol(:message)operator(])operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) comment(# Creates an object just like Base.create but calls save! instead of save) comment(# so an exception is raised if the record is invalid.) reserved(def) method(create!)operator(()ident(attributes) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(attributes)operator(.)ident(is_a?)operator(()constant(Array)operator(\)) ident(attributes)operator(.)ident(collect) operator({) operator(|)ident(attr)operator(|) ident(create!)operator(()ident(attr)operator(\)) operator(}) reserved(else) ident(attributes)operator(.)ident(reverse_merge!)operator(()ident(scope)operator(()symbol(:create)operator(\))operator(\)) reserved(if) ident(scoped?)operator(()symbol(:create)operator(\)) ident(object) operator(=) ident(new)operator(()ident(attributes)operator(\)) ident(object)operator(.)ident(save!) ident(object) reserved(end) reserved(end) ident(private) reserved(def) method(write_inheritable_set)operator(()ident(key)operator(,) ident(methods)operator(\)) ident(existing_methods) operator(=) ident(read_inheritable_attribute)operator(()ident(key)operator(\)) operator(||) operator([)operator(]) ident(write_inheritable_attribute)operator(()ident(key)operator(,) ident(methods) operator(|) ident(existing_methods)operator(\)) reserved(end) reserved(def) method(validation_method)operator(()ident(on)operator(\)) reserved(case) ident(on) reserved(when) symbol(:save) reserved(then) symbol(:validate) reserved(when) symbol(:create) reserved(then) symbol(:validate_on_create) reserved(when) symbol(:update) reserved(then) symbol(:validate_on_update) reserved(end) reserved(end) reserved(end) comment(# The validation process on save can be skipped by passing false. The regular Base#save method is) comment(# replaced with this when the validations module is mixed in, which it is by default.) reserved(def) method(save_with_validation)operator(()ident(perform_validation) operator(=) pre_constant(true)operator(\)) reserved(if) ident(perform_validation) operator(&&) ident(valid?) operator(||) operator(!)ident(perform_validation) ident(save_without_validation) reserved(else) pre_constant(false) reserved(end) reserved(end) comment(# Attempts to save the record just like Base#save but will raise a RecordInvalid exception instead of returning false) comment(# if the record is not valid.) reserved(def) method(save_with_validation!) reserved(if) ident(valid?) ident(save_without_validation!) reserved(else) ident(raise) constant(RecordInvalid)operator(.)ident(new)operator(()pre_constant(self)operator(\)) reserved(end) reserved(end) comment(# Updates a single attribute and saves the record without going through the normal validation procedure.) comment(# This is especially useful for boolean flags on existing records. The regular +update_attribute+ method) comment(# in Base is replaced with this when the validations module is mixed in, which it is by default.) reserved(def) method(update_attribute_with_validation_skipping)operator(()ident(name)operator(,) ident(value)operator(\)) ident(send)operator(()ident(name)operator(.)ident(to_s) operator(+) stringoperator(,) ident(value)operator(\)) ident(save)operator(()pre_constant(false)operator(\)) reserved(end) comment(# Runs validate and validate_on_create or validate_on_update and returns true if no errors were added otherwise false.) reserved(def) method(valid?) ident(errors)operator(.)ident(clear) ident(run_validations)operator(()symbol(:validate)operator(\)) ident(validate) reserved(if) ident(new_record?) ident(run_validations)operator(()symbol(:validate_on_create)operator(\)) ident(validate_on_create) reserved(else) ident(run_validations)operator(()symbol(:validate_on_update)operator(\)) ident(validate_on_update) reserved(end) ident(errors)operator(.)ident(empty?) reserved(end) comment(# Returns the Errors object that holds all information about attribute error messages.) reserved(def) method(errors) instance_variable(@errors) operator(||=) constant(Errors)operator(.)ident(new)operator(()pre_constant(self)operator(\)) reserved(end) ident(protected) comment(# Overwrite this method for validation checks on all saves and use Errors.add(field, msg\) for invalid attributes.) reserved(def) method(validate) comment(#:doc:) reserved(end) comment(# Overwrite this method for validation checks used only on creation.) reserved(def) method(validate_on_create) comment(#:doc:) reserved(end) comment(# Overwrite this method for validation checks used only on updates.) reserved(def) method(validate_on_update) comment(# :doc:) reserved(end) ident(private) reserved(def) method(run_validations)operator(()ident(validation_method)operator(\)) ident(validations) operator(=) pre_constant(self)operator(.)ident(class)operator(.)ident(read_inheritable_attribute)operator(()ident(validation_method)operator(.)ident(to_sym)operator(\)) reserved(if) ident(validations)operator(.)ident(nil?) reserved(then) reserved(return) reserved(end) ident(validations)operator(.)ident(each) reserved(do) operator(|)ident(validation)operator(|) reserved(if) ident(validation)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) pre_constant(self)operator(.)ident(send)operator(()ident(validation)operator(\)) reserved(elsif) ident(validation)operator(.)ident(is_a?)operator(()constant(String)operator(\)) ident(eval)operator(()ident(validation)operator(,) ident(binding)operator(\)) reserved(elsif) ident(validation_block?)operator(()ident(validation)operator(\)) ident(validation)operator(.)ident(call)operator(()pre_constant(self)operator(\)) reserved(elsif) ident(validation_class?)operator(()ident(validation)operator(,) ident(validation_method)operator(\)) ident(validation)operator(.)ident(send)operator(()ident(validation_method)operator(,) pre_constant(self)operator(\)) reserved(else) ident(raise)operator(() constant(ActiveRecordError)operator(,) string operator(+) string operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(validation_block?)operator(()ident(validation)operator(\)) ident(validation)operator(.)ident(respond_to?)operator(()stringoperator(\)) operator(&&) operator(()ident(validation)operator(.)ident(arity) operator(==) integer(1) operator(||) ident(validation)operator(.)ident(arity) operator(==) integer(-1)operator(\)) reserved(end) reserved(def) method(validation_class?)operator(()ident(validation)operator(,) ident(validation_method)operator(\)) ident(validation)operator(.)ident(respond_to?)operator(()ident(validation_method)operator(\)) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(DB2) reserved(module) class(DB2Util) ident(include) constant(DB2CLI) reserved(def) method(free)operator(()operator(\)) ident(SQLFreeHandle)operator(()instance_variable(@handle_type)operator(,) instance_variable(@handle)operator(\))operator(;) reserved(end) reserved(def) method(handle)operator(()operator(\)) instance_variable(@handle)operator(;) reserved(end) reserved(def) method(check_rc)operator(()ident(rc)operator(\)) reserved(if) operator(!)operator([)constant(SQL_SUCCESS)operator(,) constant(SQL_SUCCESS_WITH_INFO)operator(,) constant(SQL_NO_DATA_FOUND)operator(])operator(.)ident(include?)operator(()ident(rc)operator(\)) ident(rec) operator(=) integer(1) ident(msg) operator(=) string ident(loop) reserved(do) ident(a) operator(=) ident(SQLGetDiagRec)operator(()instance_variable(@handle_type)operator(,) instance_variable(@handle)operator(,) ident(rec)operator(,) integer(500)operator(\)) reserved(break) reserved(if) ident(a)operator([)integer(0)operator(]) operator(!=) constant(SQL_SUCCESS) ident(msg) operator(<<) ident(a)operator([)integer(3)operator(]) reserved(if) operator(!)ident(a)operator([)integer(3)operator(])operator(.)ident(nil?) reserved(and) ident(a)operator([)integer(3)operator(]) operator(!=) string comment(# Create message.) ident(rec) operator(+=) integer(1) reserved(end) ident(raise) stringdelimiter(")> reserved(end) reserved(end) reserved(end) reserved(class) class(Environment) ident(include) constant(DB2Util) reserved(def) method(initialize) instance_variable(@handle_type) operator(=) constant(SQL_HANDLE_ENV) ident(rc)operator(,) instance_variable(@handle) operator(=) ident(SQLAllocHandle)operator(()instance_variable(@handle_type)operator(,) constant(SQL_NULL_HANDLE)operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) reserved(end) reserved(def) method(data_sources)operator(()ident(buffer_length) operator(=) integer(1024)operator(\)) ident(retval) operator(=) operator([)operator(]) ident(max_buffer_length) operator(=) ident(buffer_length) ident(a) operator(=) ident(SQLDataSources)operator(()instance_variable(@handle)operator(,) constant(SQL_FETCH_FIRST)operator(,) constant(SQL_MAX_DSN_LENGTH) operator(+) integer(1)operator(,) ident(buffer_length)operator(\)) ident(retval) operator(<<) operator([)ident(a)operator([)integer(1)operator(])operator(,) ident(a)operator([)integer(3)operator(])operator(]) ident(max_buffer_length) operator(=) operator([)ident(max_buffer_length)operator(,) ident(a)operator([)integer(4)operator(])operator(])operator(.)ident(max) ident(loop) reserved(do) ident(a) operator(=) ident(SQLDataSources)operator(()instance_variable(@handle)operator(,) constant(SQL_FETCH_NEXT)operator(,) constant(SQL_MAX_DSN_LENGTH) operator(+) integer(1)operator(,) ident(buffer_length)operator(\)) reserved(break) reserved(if) ident(a)operator([)integer(0)operator(]) operator(==) constant(SQL_NO_DATA_FOUND) ident(retval) operator(<<) operator([)ident(a)operator([)integer(1)operator(])operator(,) ident(a)operator([)integer(3)operator(])operator(]) ident(max_buffer_length) operator(=) operator([)ident(max_buffer_length)operator(,) ident(a)operator([)integer(4)operator(])operator(])operator(.)ident(max) reserved(end) reserved(if) ident(max_buffer_length) operator(>) ident(buffer_length) ident(get_data_sources)operator(()ident(max_buffer_length)operator(\)) reserved(else) ident(retval) reserved(end) reserved(end) reserved(end) reserved(class) class(Connection) ident(include) constant(DB2Util) reserved(def) method(initialize)operator(()ident(environment)operator(\)) instance_variable(@env) operator(=) ident(environment) instance_variable(@handle_type) operator(=) constant(SQL_HANDLE_DBC) ident(rc)operator(,) instance_variable(@handle) operator(=) ident(SQLAllocHandle)operator(()instance_variable(@handle_type)operator(,) instance_variable(@env)operator(.)ident(handle)operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) reserved(end) reserved(def) method(connect)operator(()ident(server_name)operator(,) ident(user_name) operator(=) stringoperator(,) ident(auth) operator(=) stringoperator(\)) ident(check_rc)operator(()ident(SQLConnect)operator(()instance_variable(@handle)operator(,) ident(server_name)operator(,) ident(user_name)operator(.)ident(to_s)operator(,) ident(auth)operator(.)ident(to_s)operator(\))operator(\)) reserved(end) reserved(def) method(set_connect_attr)operator(()ident(attr)operator(,) ident(value)operator(\)) ident(value) operator(+=) string reserved(if) ident(value)operator(.)ident(class) operator(==) constant(String) ident(check_rc)operator(()ident(SQLSetConnectAttr)operator(()instance_variable(@handle)operator(,) ident(attr)operator(,) ident(value)operator(\))operator(\)) reserved(end) reserved(def) method(set_auto_commit_on) ident(set_connect_attr)operator(()constant(SQL_ATTR_AUTOCOMMIT)operator(,) constant(SQL_AUTOCOMMIT_ON)operator(\)) reserved(end) reserved(def) method(set_auto_commit_off) ident(set_connect_attr)operator(()constant(SQL_ATTR_AUTOCOMMIT)operator(,) constant(SQL_AUTOCOMMIT_OFF)operator(\)) reserved(end) reserved(def) method(disconnect) ident(check_rc)operator(()ident(SQLDisconnect)operator(()instance_variable(@handle)operator(\))operator(\)) reserved(end) reserved(def) method(rollback) ident(check_rc)operator(()ident(SQLEndTran)operator(()instance_variable(@handle_type)operator(,) instance_variable(@handle)operator(,) constant(SQL_ROLLBACK)operator(\))operator(\)) reserved(end) reserved(def) method(commit) ident(check_rc)operator(()ident(SQLEndTran)operator(()instance_variable(@handle_type)operator(,) instance_variable(@handle)operator(,) constant(SQL_COMMIT)operator(\))operator(\)) reserved(end) reserved(end) reserved(class) class(Statement) ident(include) constant(DB2Util) reserved(def) method(initialize)operator(()ident(connection)operator(\)) instance_variable(@conn) operator(=) ident(connection) instance_variable(@handle_type) operator(=) constant(SQL_HANDLE_STMT) instance_variable(@parms) operator(=) operator([)operator(]) comment(#yun) instance_variable(@sql) operator(=) string comment(#yun) instance_variable(@numParms) operator(=) integer(0) comment(#yun) instance_variable(@prepared) operator(=) pre_constant(false) comment(#yun) instance_variable(@parmArray) operator(=) operator([)operator(]) comment(#yun. attributes of the parameter markers) ident(rc)operator(,) instance_variable(@handle) operator(=) ident(SQLAllocHandle)operator(()instance_variable(@handle_type)operator(,) instance_variable(@conn)operator(.)ident(handle)operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) reserved(end) reserved(def) method(columns)operator(()ident(table_name)operator(,) ident(schema_name) operator(=) stringoperator(\)) ident(check_rc)operator(()ident(SQLColumns)operator(()instance_variable(@handle)operator(,) stringoperator(,) ident(schema_name)operator(.)ident(upcase)operator(,) ident(table_name)operator(.)ident(upcase)operator(,) stringoperator(\))operator(\)) ident(fetch_all) reserved(end) reserved(def) method(tables)operator(()ident(schema_name) operator(=) stringoperator(\)) ident(check_rc)operator(()ident(SQLTables)operator(()instance_variable(@handle)operator(,) stringoperator(,) ident(schema_name)operator(.)ident(upcase)operator(,) stringoperator(,) stringoperator(\))operator(\)) ident(fetch_all) reserved(end) reserved(def) method(indexes)operator(()ident(table_name)operator(,) ident(schema_name) operator(=) stringoperator(\)) ident(check_rc)operator(()ident(SQLStatistics)operator(()instance_variable(@handle)operator(,) stringoperator(,) ident(schema_name)operator(.)ident(upcase)operator(,) ident(table_name)operator(.)ident(upcase)operator(,) constant(SQL_INDEX_ALL)operator(,) constant(SQL_ENSURE)operator(\))operator(\)) ident(fetch_all) reserved(end) reserved(def) method(prepare)operator(()ident(sql)operator(\)) instance_variable(@sql) operator(=) ident(sql) ident(check_rc)operator(()ident(SQLPrepare)operator(()instance_variable(@handle)operator(,) ident(sql)operator(\))operator(\)) ident(rc)operator(,) instance_variable(@numParms) operator(=) ident(SQLNumParams)operator(()instance_variable(@handle)operator(\)) comment(#number of question marks) ident(check_rc)operator(()ident(rc)operator(\)) comment(#--------------------------------------------------------------------------) comment(# parameter attributes are stored in instance variable @parmArray so that) comment(# they are available when execute method is called.) comment(#--------------------------------------------------------------------------) reserved(if) instance_variable(@numParms) operator(>) integer(0) comment(# get parameter marker attributes) integer(1)operator(.)ident(upto)operator(()instance_variable(@numParms)operator(\)) reserved(do) operator(|)ident(i)operator(|) comment(# parameter number starts from 1) ident(rc)operator(,) ident(type)operator(,) ident(size)operator(,) ident(decimalDigits) operator(=) ident(SQLDescribeParam)operator(()instance_variable(@handle)operator(,) ident(i)operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) instance_variable(@parmArray) operator(<<) constant(Parameter)operator(.)ident(new)operator(()ident(type)operator(,) ident(size)operator(,) ident(decimalDigits)operator(\)) reserved(end) reserved(end) instance_variable(@prepared) operator(=) pre_constant(true) pre_constant(self) reserved(end) reserved(def) method(execute)operator(()operator(*)ident(parms)operator(\)) ident(raise) string reserved(if) instance_variable(@prepared) operator(==) pre_constant(false) reserved(if) ident(parms)operator(.)ident(size) operator(==) integer(1) reserved(and) ident(parms)operator([)integer(0)operator(])operator(.)ident(class) operator(==) constant(Array) ident(parms) operator(=) ident(parms)operator([)integer(0)operator(]) reserved(end) reserved(if) instance_variable(@numParms) operator(!=) ident(parms)operator(.)ident(size) ident(raise) string reserved(end) reserved(if) instance_variable(@numParms) operator(>) integer(0) comment(#need to bind parameters) comment(#--------------------------------------------------------------------) comment(#calling bindParms may not be safe. Look comment below.) comment(#--------------------------------------------------------------------) comment(#bindParms(parms\)) ident(valueArray) operator(=) operator([)operator(]) integer(1)operator(.)ident(upto)operator(()instance_variable(@numParms)operator(\)) reserved(do) operator(|)ident(i)operator(|) comment(# parameter number starts from 1) ident(type) operator(=) instance_variable(@parmArray)operator([)ident(i) operator(-) integer(1)operator(])operator(.)ident(class) ident(size) operator(=) instance_variable(@parmArray)operator([)ident(i) operator(-) integer(1)operator(])operator(.)ident(size) ident(decimalDigits) operator(=) instance_variable(@parmArray)operator([)ident(i) operator(-) integer(1)operator(])operator(.)ident(decimalDigits) reserved(if) ident(parms)operator([)ident(i) operator(-) integer(1)operator(])operator(.)ident(class) operator(==) constant(String) ident(valueArray) operator(<<) ident(parms)operator([)ident(i) operator(-) integer(1)operator(]) reserved(else) ident(valueArray) operator(<<) ident(parms)operator([)ident(i) operator(-) integer(1)operator(])operator(.)ident(to_s) reserved(end) ident(rc) operator(=) ident(SQLBindParameter)operator(()instance_variable(@handle)operator(,) ident(i)operator(,) ident(type)operator(,) ident(size)operator(,) ident(decimalDigits)operator(,) ident(valueArray)operator([)ident(i) operator(-) integer(1)operator(])operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) reserved(end) reserved(end) ident(check_rc)operator(()ident(SQLExecute)operator(()instance_variable(@handle)operator(\))operator(\)) reserved(if) instance_variable(@numParms) operator(!=) integer(0) ident(check_rc)operator(()ident(SQLFreeStmt)operator(()instance_variable(@handle)operator(,) constant(SQL_RESET_PARAMS)operator(\))operator(\)) comment(# Reset parameters) reserved(end) pre_constant(self) reserved(end) comment(#-------------------------------------------------------------------------------) comment(# The last argument(value\) to SQLBindParameter is a deferred argument, that is,) comment(# it should be available when SQLExecute is called. Even though "value" is) comment(# local to bindParms method, it seems that it is available when SQLExecute) comment(# is called. I am not sure whether it would still work if garbage collection) comment(# is done between bindParms call and SQLExecute call inside the execute method) comment(# above.) comment(#-------------------------------------------------------------------------------) reserved(def) method(bindParms)operator(()ident(parms)operator(\)) comment(# This is the real thing. It uses SQLBindParms) integer(1)operator(.)ident(upto)operator(()instance_variable(@numParms)operator(\)) reserved(do) operator(|)ident(i)operator(|) comment(# parameter number starts from 1) ident(rc)operator(,) ident(dataType)operator(,) ident(parmSize)operator(,) ident(decimalDigits) operator(=) ident(SQLDescribeParam)operator(()instance_variable(@handle)operator(,) ident(i)operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) reserved(if) ident(parms)operator([)ident(i) operator(-) integer(1)operator(])operator(.)ident(class) operator(==) constant(String) ident(value) operator(=) ident(parms)operator([)ident(i) operator(-) integer(1)operator(]) reserved(else) ident(value) operator(=) ident(parms)operator([)ident(i) operator(-) integer(1)operator(])operator(.)ident(to_s) reserved(end) ident(rc) operator(=) ident(SQLBindParameter)operator(()instance_variable(@handle)operator(,) ident(i)operator(,) ident(dataType)operator(,) ident(parmSize)operator(,) ident(decimalDigits)operator(,) ident(value)operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) reserved(end) reserved(end) comment(#------------------------------------------------------------------------------) comment(# bind method does not use DB2's SQLBindParams, but replaces "?" in the) comment(# SQL statement with the value before passing the SQL statement to DB2.) comment(# It is not efficient and can handle only strings since it puts everything in) comment(# quotes.) comment(#------------------------------------------------------------------------------) reserved(def) method(bind)operator(()ident(sql)operator(,) ident(args)operator(\)) comment(#does not use SQLBindParams) ident(arg_index) operator(=) integer(0) ident(result) operator(=) string ident(tokens)operator(()ident(sql)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(part)operator(|) reserved(case) ident(part) reserved(when) string ident(result) operator(<<) string operator(+) operator(()ident(args)operator([)ident(arg_index)operator(])operator(\)) operator(+) string comment(#put it into quotes) ident(arg_index) operator(+=) integer(1) reserved(when) string ident(result) operator(<<) string reserved(else) ident(result) operator(<<) ident(part) reserved(end) reserved(end) reserved(if) ident(arg_index) operator(<) ident(args)operator(.)ident(size) ident(raise) string reserved(elsif) ident(arg_index) operator(>) ident(args)operator(.)ident(size) ident(raise) string reserved(end) ident(result) reserved(end) comment(## Break the sql string into parts.) comment(#) comment(# This is NOT a full lexer for SQL. It just breaks up the SQL) comment(# string enough so that question marks, double question marks and) comment(# quoted strings are separated. This is used when binding) comment(# arguments to "?" in the SQL string. Note: comments are not) comment(# handled.) comment(#) reserved(def) method(tokens)operator(()ident(sql)operator(\)) ident(toks) operator(=) ident(sql)operator(.)ident(scan)operator(()regexpoperator(\)) ident(toks)operator(.)ident(collect) operator({) operator(|)ident(t)operator(|) ident(t)operator([)integer(0)operator(]) operator(}) reserved(end) reserved(def) method(exec_direct)operator(()ident(sql)operator(\)) ident(check_rc)operator(()ident(SQLExecDirect)operator(()instance_variable(@handle)operator(,) ident(sql)operator(\))operator(\)) pre_constant(self) reserved(end) reserved(def) method(set_cursor_name)operator(()ident(name)operator(\)) ident(check_rc)operator(()ident(SQLSetCursorName)operator(()instance_variable(@handle)operator(,) ident(name)operator(\))operator(\)) pre_constant(self) reserved(end) reserved(def) method(get_cursor_name) ident(rc)operator(,) ident(name) operator(=) ident(SQLGetCursorName)operator(()instance_variable(@handle)operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) ident(name) reserved(end) reserved(def) method(row_count) ident(rc)operator(,) ident(rowcount) operator(=) ident(SQLRowCount)operator(()instance_variable(@handle)operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) ident(rowcount) reserved(end) reserved(def) method(num_result_cols) ident(rc)operator(,) ident(cols) operator(=) ident(SQLNumResultCols)operator(()instance_variable(@handle)operator(\)) ident(check_rc)operator(()ident(rc)operator(\)) ident(cols) reserved(end) reserved(def) method(fetch_all) reserved(if) ident(block_given?) reserved(while) ident(row) operator(=) ident(fetch) reserved(do) reserved(yield) ident(row) reserved(end) reserved(else) ident(res) operator(=) operator([)operator(]) reserved(while) ident(row) operator(=) ident(fetch) reserved(do) ident(res) operator(<<) ident(row) reserved(end) ident(res) reserved(end) reserved(end) reserved(def) method(fetch) ident(cols) operator(=) ident(get_col_desc) ident(rc) operator(=) ident(SQLFetch)operator(()instance_variable(@handle)operator(\)) reserved(if) ident(rc) operator(==) constant(SQL_NO_DATA_FOUND) ident(SQLFreeStmt)operator(()instance_variable(@handle)operator(,) constant(SQL_CLOSE)operator(\)) comment(# Close cursor) ident(SQLFreeStmt)operator(()instance_variable(@handle)operator(,) constant(SQL_RESET_PARAMS)operator(\)) comment(# Reset parameters) reserved(return) pre_constant(nil) reserved(end) ident(raise) string reserved(unless) ident(rc) operator(==) constant(SQL_SUCCESS) ident(retval) operator(=) operator([)operator(]) ident(cols)operator(.)ident(each_with_index) reserved(do) operator(|)ident(c)operator(,) ident(i)operator(|) ident(rc)operator(,) ident(content) operator(=) ident(SQLGetData)operator(()instance_variable(@handle)operator(,) ident(i) operator(+) integer(1)operator(,) ident(c)operator([)integer(1)operator(])operator(,) ident(c)operator([)integer(2)operator(]) operator(+) integer(1)operator(\)) comment(#yun added 1 to c[2]) ident(retval) operator(<<) ident(adjust_content)operator(()ident(content)operator(\)) reserved(end) ident(retval) reserved(end) reserved(def) method(fetch_as_hash) ident(cols) operator(=) ident(get_col_desc) ident(rc) operator(=) ident(SQLFetch)operator(()instance_variable(@handle)operator(\)) reserved(if) ident(rc) operator(==) constant(SQL_NO_DATA_FOUND) ident(SQLFreeStmt)operator(()instance_variable(@handle)operator(,) constant(SQL_CLOSE)operator(\)) comment(# Close cursor) ident(SQLFreeStmt)operator(()instance_variable(@handle)operator(,) constant(SQL_RESET_PARAMS)operator(\)) comment(# Reset parameters) reserved(return) pre_constant(nil) reserved(end) ident(raise) string reserved(unless) ident(rc) operator(==) constant(SQL_SUCCESS) ident(retval) operator(=) operator({)operator(}) ident(cols)operator(.)ident(each_with_index) reserved(do) operator(|)ident(c)operator(,) ident(i)operator(|) ident(rc)operator(,) ident(content) operator(=) ident(SQLGetData)operator(()instance_variable(@handle)operator(,) ident(i) operator(+) integer(1)operator(,) ident(c)operator([)integer(1)operator(])operator(,) ident(c)operator([)integer(2)operator(]) operator(+) integer(1)operator(\)) comment(#yun added 1 to c[2]) ident(retval)operator([)ident(c)operator([)integer(0)operator(])operator(]) operator(=) ident(adjust_content)operator(()ident(content)operator(\)) reserved(end) ident(retval) reserved(end) reserved(def) method(get_col_desc) ident(rc)operator(,) ident(nr_cols) operator(=) ident(SQLNumResultCols)operator(()instance_variable(@handle)operator(\)) ident(cols) operator(=) operator(()integer(1)operator(..)ident(nr_cols)operator(\))operator(.)ident(collect) reserved(do) operator(|)ident(c)operator(|) ident(rc)operator(,) ident(name)operator(,) ident(bl)operator(,) ident(type)operator(,) ident(col_sz) operator(=) ident(SQLDescribeCol)operator(()instance_variable(@handle)operator(,) ident(c)operator(,) integer(1024)operator(\)) operator([)ident(name)operator(.)ident(downcase)operator(,) ident(type)operator(,) ident(col_sz)operator(]) reserved(end) reserved(end) reserved(def) method(adjust_content)operator(()ident(c)operator(\)) reserved(case) ident(c)operator(.)ident(class)operator(.)ident(to_s) reserved(when) string reserved(return) pre_constant(nil) reserved(when) string string operator(%) operator([)ident(c)operator(.)ident(hour)operator(,) ident(c)operator(.)ident(minute)operator(,) ident(c)operator(.)ident(second)operator(]) reserved(when) string string operator(%) operator([)ident(c)operator(.)ident(year)operator(,) ident(c)operator(.)ident(month)operator(,) ident(c)operator(.)ident(day)operator(]) reserved(when) string string operator(%) operator([)ident(c)operator(.)ident(year)operator(,) ident(c)operator(.)ident(month)operator(,) ident(c)operator(.)ident(day)operator(,) ident(c)operator(.)ident(hour)operator(,) ident(c)operator(.)ident(minute)operator(,) ident(c)operator(.)ident(second)operator(]) reserved(else) reserved(return) ident(c) reserved(end) reserved(end) reserved(end) reserved(class) class(Parameter) ident(attr_reader) symbol(:type)operator(,) symbol(:size)operator(,) symbol(:decimalDigits) reserved(def) method(initialize)operator(()ident(type)operator(,) ident(size)operator(,) ident(decimalDigits)operator(\)) instance_variable(@type)operator(,) instance_variable(@size)operator(,) instance_variable(@decimalDigits) operator(=) ident(type)operator(,) ident(size)operator(,) ident(decimalDigits) reserved(end) reserved(end) reserved(end) comment(# $Id: mysql.rb,v 1.24 2005/02/12 11:37:15 tommy Exp $) comment(#) comment(# Copyright (C\) 2003-2005 TOMITA Masahiro) comment(# tommy@tmtm.org) comment(#) reserved(class) class(Mysql) constant(VERSION) operator(=) string ident(require) string ident(require) string constant(MAX_PACKET_LENGTH) operator(=) integer(256)operator(*)integer(256)operator(*)integer(256)operator(-)integer(1) constant(MAX_ALLOWED_PACKET) operator(=) integer(1024)operator(*)integer(1024)operator(*)integer(1024) constant(MYSQL_UNIX_ADDR) operator(=) string constant(MYSQL_PORT) operator(=) integer(3306) constant(PROTOCOL_VERSION) operator(=) integer(10) comment(# Command) constant(COM_SLEEP) operator(=) integer(0) constant(COM_QUIT) operator(=) integer(1) constant(COM_INIT_DB) operator(=) integer(2) constant(COM_QUERY) operator(=) integer(3) constant(COM_FIELD_LIST) operator(=) integer(4) constant(COM_CREATE_DB) operator(=) integer(5) constant(COM_DROP_DB) operator(=) integer(6) constant(COM_REFRESH) operator(=) integer(7) constant(COM_SHUTDOWN) operator(=) integer(8) constant(COM_STATISTICS) operator(=) integer(9) constant(COM_PROCESS_INFO) operator(=) integer(10) constant(COM_CONNECT) operator(=) integer(11) constant(COM_PROCESS_KILL) operator(=) integer(12) constant(COM_DEBUG) operator(=) integer(13) constant(COM_PING) operator(=) integer(14) constant(COM_TIME) operator(=) integer(15) constant(COM_DELAYED_INSERT) operator(=) integer(16) constant(COM_CHANGE_USER) operator(=) integer(17) constant(COM_BINLOG_DUMP) operator(=) integer(18) constant(COM_TABLE_DUMP) operator(=) integer(19) constant(COM_CONNECT_OUT) operator(=) integer(20) constant(COM_REGISTER_SLAVE) operator(=) integer(21) comment(# Client flag) constant(CLIENT_LONG_PASSWORD) operator(=) integer(1) constant(CLIENT_FOUND_ROWS) operator(=) integer(1) operator(<<) integer(1) constant(CLIENT_LONG_FLAG) operator(=) integer(1) operator(<<) integer(2) constant(CLIENT_CONNECT_WITH_DB)operator(=) integer(1) operator(<<) integer(3) constant(CLIENT_NO_SCHEMA) operator(=) integer(1) operator(<<) integer(4) constant(CLIENT_COMPRESS) operator(=) integer(1) operator(<<) integer(5) constant(CLIENT_ODBC) operator(=) integer(1) operator(<<) integer(6) constant(CLIENT_LOCAL_FILES) operator(=) integer(1) operator(<<) integer(7) constant(CLIENT_IGNORE_SPACE) operator(=) integer(1) operator(<<) integer(8) constant(CLIENT_PROTOCOL_41) operator(=) integer(1) operator(<<) integer(9) constant(CLIENT_INTERACTIVE) operator(=) integer(1) operator(<<) integer(10) constant(CLIENT_SSL) operator(=) integer(1) operator(<<) integer(11) constant(CLIENT_IGNORE_SIGPIPE) operator(=) integer(1) operator(<<) integer(12) constant(CLIENT_TRANSACTIONS) operator(=) integer(1) operator(<<) integer(13) constant(CLIENT_RESERVED) operator(=) integer(1) operator(<<) integer(14) constant(CLIENT_SECURE_CONNECTION) operator(=) integer(1) operator(<<) integer(15) constant(CLIENT_CAPABILITIES) operator(=) constant(CLIENT_LONG_PASSWORD)operator(|)constant(CLIENT_LONG_FLAG)operator(|)constant(CLIENT_TRANSACTIONS) constant(PROTO_AUTH41) operator(=) constant(CLIENT_PROTOCOL_41) operator(|) constant(CLIENT_SECURE_CONNECTION) comment(# Connection Option) constant(OPT_CONNECT_TIMEOUT) operator(=) integer(0) constant(OPT_COMPRESS) operator(=) integer(1) constant(OPT_NAMED_PIPE) operator(=) integer(2) constant(INIT_COMMAND) operator(=) integer(3) constant(READ_DEFAULT_FILE) operator(=) integer(4) constant(READ_DEFAULT_GROUP) operator(=) integer(5) constant(SET_CHARSET_DIR) operator(=) integer(6) constant(SET_CHARSET_NAME) operator(=) integer(7) constant(OPT_LOCAL_INFILE) operator(=) integer(8) comment(# Server Status) constant(SERVER_STATUS_IN_TRANS) operator(=) integer(1) constant(SERVER_STATUS_AUTOCOMMIT) operator(=) integer(2) comment(# Refresh parameter) constant(REFRESH_GRANT) operator(=) integer(1) constant(REFRESH_LOG) operator(=) integer(2) constant(REFRESH_TABLES) operator(=) integer(4) constant(REFRESH_HOSTS) operator(=) integer(8) constant(REFRESH_STATUS) operator(=) integer(16) constant(REFRESH_THREADS) operator(=) integer(32) constant(REFRESH_SLAVE) operator(=) integer(64) constant(REFRESH_MASTER) operator(=) integer(128) reserved(def) method(initialize)operator(()operator(*)ident(args)operator(\)) instance_variable(@client_flag) operator(=) integer(0) instance_variable(@max_allowed_packet) operator(=) constant(MAX_ALLOWED_PACKET) instance_variable(@query_with_result) operator(=) pre_constant(true) instance_variable(@status) operator(=) symbol(:STATUS_READY) reserved(if) ident(args)operator([)integer(0)operator(]) operator(!=) symbol(:INIT) reserved(then) ident(real_connect)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(end) reserved(def) method(real_connect)operator(()ident(host)operator(=)pre_constant(nil)operator(,) ident(user)operator(=)pre_constant(nil)operator(,) ident(passwd)operator(=)pre_constant(nil)operator(,) ident(db)operator(=)pre_constant(nil)operator(,) ident(port)operator(=)pre_constant(nil)operator(,) ident(socket)operator(=)pre_constant(nil)operator(,) ident(flag)operator(=)pre_constant(nil)operator(\)) instance_variable(@server_status) operator(=) constant(SERVER_STATUS_AUTOCOMMIT) reserved(if) operator(()ident(host) operator(==) pre_constant(nil) reserved(or) ident(host) operator(==) stringoperator(\)) reserved(and) reserved(defined?) constant(UNIXSocket) reserved(then) ident(unix_socket) operator(=) ident(socket) operator(||) pre_constant(ENV)operator([)stringoperator(]) operator(||) constant(MYSQL_UNIX_ADDR) ident(sock) operator(=) constant(UNIXSocket)operator(::)ident(new)operator(()ident(unix_socket)operator(\)) instance_variable(@host_info) operator(=) constant(Error)operator(::)ident(err)operator(()constant(Error)operator(::)constant(CR_LOCALHOST_CONNECTION)operator(\)) instance_variable(@unix_socket) operator(=) ident(unix_socket) reserved(else) ident(sock) operator(=) constant(TCPSocket)operator(::)ident(new)operator(()ident(host)operator(,) ident(port)operator(||)pre_constant(ENV)operator([)stringoperator(])operator(||)operator(()constant(Socket)operator(::)ident(getservbyname)operator(()stringoperator(,)stringoperator(\)) reserved(rescue) constant(MYSQL_PORT)operator(\))operator(\)) instance_variable(@host_info) operator(=) ident(sprintf) constant(Error)operator(::)ident(err)operator(()constant(Error)operator(::)constant(CR_TCP_CONNECTION)operator(\))operator(,) ident(host) reserved(end) instance_variable(@host) operator(=) ident(host) operator(?) ident(host)operator(.)ident(dup) operator(:) pre_constant(nil) ident(sock)operator(.)ident(setsockopt) constant(Socket)operator(::)constant(SOL_SOCKET)operator(,) constant(Socket)operator(::)constant(SO_KEEPALIVE)operator(,) pre_constant(true) instance_variable(@net) operator(=) constant(Net)operator(::)ident(new) ident(sock) ident(a) operator(=) ident(read) instance_variable(@protocol_version) operator(=) ident(a)operator(.)ident(slice!)operator(()integer(0)operator(\)) instance_variable(@server_version)operator(,) ident(a) operator(=) ident(a)operator(.)ident(split)operator(()regexpoperator(,)integer(2)operator(\)) instance_variable(@thread_id)operator(,) instance_variable(@scramble_buff) operator(=) ident(a)operator(.)ident(slice!)operator(()integer(0)operator(,)integer(13)operator(\))operator(.)ident(unpack)operator(()stringoperator(\)) reserved(if) ident(a)operator(.)ident(size) operator(>)operator(=) integer(2) reserved(then) instance_variable(@server_capabilities)operator(,) operator(=) ident(a)operator(.)ident(slice!)operator(()integer(0)operator(,)integer(2)operator(\))operator(.)ident(unpack)operator(()stringoperator(\)) reserved(end) reserved(if) ident(a)operator(.)ident(size) operator(>)operator(=) integer(16) reserved(then) instance_variable(@server_language)operator(,) instance_variable(@server_status) operator(=) ident(a)operator(.)ident(slice!)operator(()integer(0)operator(,)integer(3)operator(\))operator(.)ident(unpack)operator(()stringoperator(\)) reserved(end) ident(flag) operator(=) integer(0) reserved(if) ident(flag) operator(==) pre_constant(nil) ident(flag) operator(|=) instance_variable(@client_flag) operator(|) constant(CLIENT_CAPABILITIES) ident(flag) operator(|=) constant(CLIENT_CONNECT_WITH_DB) reserved(if) ident(db) instance_variable(@pre_411) operator(=) operator(()integer(0) operator(==) instance_variable(@server_capabilities) operator(&) constant(PROTO_AUTH41)operator(\)) reserved(if) instance_variable(@pre_411) ident(data) operator(=) constant(Net)operator(::)ident(int2str)operator(()ident(flag)operator(\))operator(+)constant(Net)operator(::)ident(int3str)operator(()instance_variable(@max_allowed_packet)operator(\))operator(+) operator(()ident(user)operator(||)stringoperator(\))operator(+)stringoperator(+) ident(scramble)operator(()ident(passwd)operator(,) instance_variable(@scramble_buff)operator(,) instance_variable(@protocol_version)operator(==)integer(9)operator(\)) reserved(else) ident(dummy)operator(,) instance_variable(@salt2) operator(=) ident(a)operator(.)ident(unpack)operator(()stringoperator(\)) instance_variable(@scramble_buff) operator(+=) instance_variable(@salt2) ident(flag) operator(|=) constant(PROTO_AUTH41) ident(data) operator(=) constant(Net)operator(::)ident(int4str)operator(()ident(flag)operator(\)) operator(+) constant(Net)operator(::)ident(int4str)operator(()instance_variable(@max_allowed_packet)operator(\)) operator(+) operator(()operator([)integer(8)operator(]) operator(+) constant(Array)operator(.)ident(new)operator(()integer(23)operator(,) integer(0)operator(\))operator(\))operator(.)ident(pack)operator(()stringoperator(\)) operator(+) operator(()ident(user)operator(||)stringoperator(\))operator(+)stringoperator(+) ident(scramble41)operator(()ident(passwd)operator(,) instance_variable(@scramble_buff)operator(\)) reserved(end) reserved(if) ident(db) reserved(and) instance_variable(@server_capabilities) operator(&) constant(CLIENT_CONNECT_WITH_DB) operator(!=) integer(0) ident(data) operator(<<) string reserved(if) instance_variable(@pre_411) ident(data) operator(<<) ident(db) instance_variable(@db) operator(=) ident(db)operator(.)ident(dup) reserved(end) ident(write) ident(data) ident(read) constant(ObjectSpace)operator(.)ident(define_finalizer)operator(()pre_constant(self)operator(,) constant(Mysql)operator(.)ident(finalizer)operator(()instance_variable(@net)operator(\))operator(\)) pre_constant(self) reserved(end) reserved(alias) symbol(:connect) symbol(:real_connect) reserved(def) method(escape_string)operator(()ident(str)operator(\)) constant(Mysql)operator(::)ident(escape_string) ident(str) reserved(end) reserved(alias) symbol(:quote) symbol(:escape_string) reserved(def) method(get_client_info)operator(()operator(\)) constant(VERSION) reserved(end) reserved(alias) symbol(:client_info) symbol(:get_client_info) reserved(def) method(options)operator(()ident(option)operator(,) ident(arg)operator(=)pre_constant(nil)operator(\)) reserved(if) ident(option) operator(==) constant(OPT_LOCAL_INFILE) reserved(then) reserved(if) ident(arg) operator(==) pre_constant(false) reserved(or) ident(arg) operator(==) integer(0) reserved(then) instance_variable(@client_flag) operator(&=) operator(~)constant(CLIENT_LOCAL_FILES) reserved(else) instance_variable(@client_flag) operator(|=) constant(CLIENT_LOCAL_FILES) reserved(end) reserved(else) ident(raise) string reserved(end) reserved(end) reserved(def) method(real_query)operator(()ident(query)operator(\)) ident(command) constant(COM_QUERY)operator(,) ident(query)operator(,) pre_constant(true) ident(read_query_result) pre_constant(self) reserved(end) reserved(def) method(use_result)operator(()operator(\)) reserved(if) instance_variable(@status) operator(!=) symbol(:STATUS_GET_RESULT) reserved(then) ident(error) constant(Error)operator(::)constant(CR_COMMANDS_OUT_OF_SYNC) reserved(end) ident(res) operator(=) constant(Result)operator(::)ident(new) pre_constant(self)operator(,) instance_variable(@fields)operator(,) instance_variable(@field_count) instance_variable(@status) operator(=) symbol(:STATUS_USE_RESULT) ident(res) reserved(end) reserved(def) method(store_result)operator(()operator(\)) reserved(if) instance_variable(@status) operator(!=) symbol(:STATUS_GET_RESULT) reserved(then) ident(error) constant(Error)operator(::)constant(CR_COMMANDS_OUT_OF_SYNC) reserved(end) instance_variable(@status) operator(=) symbol(:STATUS_READY) ident(data) operator(=) ident(read_rows) instance_variable(@field_count) ident(res) operator(=) constant(Result)operator(::)ident(new) pre_constant(self)operator(,) instance_variable(@fields)operator(,) instance_variable(@field_count)operator(,) ident(data) instance_variable(@fields) operator(=) pre_constant(nil) instance_variable(@affected_rows) operator(=) ident(data)operator(.)ident(length) ident(res) reserved(end) reserved(def) method(change_user)operator(()ident(user)operator(=)stringoperator(,) ident(passwd)operator(=)stringoperator(,) ident(db)operator(=)stringoperator(\)) reserved(if) instance_variable(@pre_411) ident(data) operator(=) ident(user)operator(+)stringoperator(+)ident(scramble)operator(()ident(passwd)operator(,) instance_variable(@scramble_buff)operator(,) instance_variable(@protocol_version)operator(==)integer(9)operator(\))operator(+)stringoperator(+)ident(db) reserved(else) ident(data) operator(=) ident(user)operator(+)stringoperator(+)ident(scramble41)operator(()ident(passwd)operator(,) instance_variable(@scramble_buff)operator(\))operator(+)ident(db) reserved(end) ident(command) constant(COM_CHANGE_USER)operator(,) ident(data) instance_variable(@user) operator(=) ident(user) instance_variable(@passwd) operator(=) ident(passwd) instance_variable(@db) operator(=) ident(db) reserved(end) reserved(def) method(character_set_name)operator(()operator(\)) ident(raise) string reserved(end) reserved(def) method(close)operator(()operator(\)) instance_variable(@status) operator(=) symbol(:STATUS_READY) ident(command) constant(COM_QUIT)operator(,) pre_constant(nil)operator(,) pre_constant(true) instance_variable(@net)operator(.)ident(close) pre_constant(self) reserved(end) reserved(def) method(create_db)operator(()ident(db)operator(\)) ident(command) constant(COM_CREATE_DB)operator(,) ident(db) pre_constant(self) reserved(end) reserved(def) method(drop_db)operator(()ident(db)operator(\)) ident(command) constant(COM_DROP_DB)operator(,) ident(db) pre_constant(self) reserved(end) reserved(def) method(dump_debug_info)operator(()operator(\)) ident(command) constant(COM_DEBUG) pre_constant(self) reserved(end) reserved(def) method(get_host_info)operator(()operator(\)) instance_variable(@host_info) reserved(end) reserved(alias) symbol(:host_info) symbol(:get_host_info) reserved(def) method(get_proto_info)operator(()operator(\)) instance_variable(@protocol_version) reserved(end) reserved(alias) symbol(:proto_info) symbol(:get_proto_info) reserved(def) method(get_server_info)operator(()operator(\)) instance_variable(@server_version) reserved(end) reserved(alias) symbol(:server_info) symbol(:get_server_info) reserved(def) method(kill)operator(()ident(id)operator(\)) ident(command) constant(COM_PROCESS_KILL)operator(,) constant(Net)operator(::)ident(int4str)operator(()ident(id)operator(\)) pre_constant(self) reserved(end) reserved(def) method(list_dbs)operator(()ident(db)operator(=)pre_constant(nil)operator(\)) ident(real_query) stringdelimiter(")> instance_variable(@status) operator(=) symbol(:STATUS_READY) ident(read_rows)operator(()integer(1)operator(\))operator(.)ident(flatten) reserved(end) reserved(def) method(list_fields)operator(()ident(table)operator(,) ident(field)operator(=)pre_constant(nil)operator(\)) ident(command) constant(COM_FIELD_LIST)operator(,) stringchar(\\0)inlinedelimiter(")>operator(,) pre_constant(true) reserved(if) instance_variable(@pre_411) ident(f) operator(=) ident(read_rows) integer(6) reserved(else) ident(f) operator(=) ident(read_rows) integer(7) reserved(end) ident(fields) operator(=) ident(unpack_fields)operator(()ident(f)operator(,) instance_variable(@server_capabilities) operator(&) constant(CLIENT_LONG_FLAG) operator(!=) integer(0)operator(\)) ident(res) operator(=) constant(Result)operator(::)ident(new) pre_constant(self)operator(,) ident(fields)operator(,) ident(f)operator(.)ident(length) ident(res)operator(.)ident(eof) operator(=) pre_constant(true) ident(res) reserved(end) reserved(def) method(list_processes)operator(()operator(\)) ident(data) operator(=) ident(command) constant(COM_PROCESS_INFO) instance_variable(@field_count) operator(=) ident(get_length) ident(data) reserved(if) instance_variable(@pre_411) ident(fields) operator(=) ident(read_rows) integer(5) reserved(else) ident(fields) operator(=) ident(read_rows) integer(7) reserved(end) instance_variable(@fields) operator(=) ident(unpack_fields)operator(()ident(fields)operator(,) instance_variable(@server_capabilities) operator(&) constant(CLIENT_LONG_FLAG) operator(!=) integer(0)operator(\)) instance_variable(@status) operator(=) symbol(:STATUS_GET_RESULT) ident(store_result) reserved(end) reserved(def) method(list_tables)operator(()ident(table)operator(=)pre_constant(nil)operator(\)) ident(real_query) stringdelimiter(")> instance_variable(@status) operator(=) symbol(:STATUS_READY) ident(read_rows)operator(()integer(1)operator(\))operator(.)ident(flatten) reserved(end) reserved(def) method(ping)operator(()operator(\)) ident(command) constant(COM_PING) pre_constant(self) reserved(end) reserved(def) method(query)operator(()ident(query)operator(\)) ident(real_query) ident(query) reserved(if) reserved(not) instance_variable(@query_with_result) reserved(then) reserved(return) pre_constant(self) reserved(end) reserved(if) instance_variable(@field_count) operator(==) integer(0) reserved(then) reserved(return) pre_constant(nil) reserved(end) ident(store_result) reserved(end) reserved(def) method(refresh)operator(()ident(r)operator(\)) ident(command) constant(COM_REFRESH)operator(,) ident(r)operator(.)ident(chr) pre_constant(self) reserved(end) reserved(def) method(reload)operator(()operator(\)) ident(refresh) constant(REFRESH_GRANT) pre_constant(self) reserved(end) reserved(def) method(select_db)operator(()ident(db)operator(\)) ident(command) constant(COM_INIT_DB)operator(,) ident(db) instance_variable(@db) operator(=) ident(db) pre_constant(self) reserved(end) reserved(def) method(shutdown)operator(()operator(\)) ident(command) constant(COM_SHUTDOWN) pre_constant(self) reserved(end) reserved(def) method(stat)operator(()operator(\)) ident(command) constant(COM_STATISTICS) reserved(end) ident(attr_reader) symbol(:info)operator(,) symbol(:insert_id)operator(,) symbol(:affected_rows)operator(,) symbol(:field_count)operator(,) symbol(:thread_id) ident(attr_accessor) symbol(:query_with_result)operator(,) symbol(:status) reserved(def) method(read_one_row)operator(()ident(field_count)operator(\)) ident(data) operator(=) ident(read) reserved(if) ident(data)operator([)integer(0)operator(]) operator(==) integer(254) reserved(and) ident(data)operator(.)ident(length) operator(==) integer(1) comment(## EOF) reserved(return) reserved(elsif) ident(data)operator([)integer(0)operator(]) operator(==) integer(254) reserved(and) ident(data)operator(.)ident(length) operator(==) integer(5) reserved(return) reserved(end) ident(rec) operator(=) operator([)operator(]) ident(field_count)operator(.)ident(times) reserved(do) ident(len) operator(=) ident(get_length) ident(data) reserved(if) ident(len) operator(==) pre_constant(nil) reserved(then) ident(rec) operator(<<) ident(len) reserved(else) ident(rec) operator(<<) ident(data)operator(.)ident(slice!)operator(()integer(0)operator(,)ident(len)operator(\)) reserved(end) reserved(end) ident(rec) reserved(end) reserved(def) method(skip_result)operator(()operator(\)) reserved(if) instance_variable(@status) operator(==) symbol(:STATUS_USE_RESULT) reserved(then) ident(loop) reserved(do) ident(data) operator(=) ident(read) reserved(break) reserved(if) ident(data)operator([)integer(0)operator(]) operator(==) integer(254) reserved(and) ident(data)operator(.)ident(length) operator(==) integer(1) reserved(end) instance_variable(@status) operator(=) symbol(:STATUS_READY) reserved(end) reserved(end) reserved(def) method(inspect)operator(()operator(\)) stringcontent(>)delimiter(")> reserved(end) ident(private) reserved(def) method(read_query_result)operator(()operator(\)) ident(data) operator(=) ident(read) instance_variable(@field_count) operator(=) ident(get_length)operator(()ident(data)operator(\)) reserved(if) instance_variable(@field_count) operator(==) pre_constant(nil) reserved(then) comment(# LOAD DATA LOCAL INFILE) constant(File)operator(::)ident(open)operator(()ident(data)operator(\)) reserved(do) operator(|)ident(f)operator(|) ident(write) ident(f)operator(.)ident(read) reserved(end) ident(write) string comment(# mark EOF) ident(data) operator(=) ident(read) instance_variable(@field_count) operator(=) ident(get_length)operator(()ident(data)operator(\)) reserved(end) reserved(if) instance_variable(@field_count) operator(==) integer(0) reserved(then) instance_variable(@affected_rows) operator(=) ident(get_length)operator(()ident(data)operator(,) pre_constant(true)operator(\)) instance_variable(@insert_id) operator(=) ident(get_length)operator(()ident(data)operator(,) pre_constant(true)operator(\)) reserved(if) instance_variable(@server_capabilities) operator(&) constant(CLIENT_TRANSACTIONS) operator(!=) integer(0) reserved(then) ident(a) operator(=) ident(data)operator(.)ident(slice!)operator(()integer(0)operator(,)integer(2)operator(\)) instance_variable(@server_status) operator(=) ident(a)operator([)integer(0)operator(])operator(+)ident(a)operator([)integer(1)operator(])operator(*)integer(256) reserved(end) reserved(if) ident(data)operator(.)ident(size) operator(>) integer(0) reserved(and) ident(get_length)operator(()ident(data)operator(\)) reserved(then) instance_variable(@info) operator(=) ident(data) reserved(end) reserved(else) instance_variable(@extra_info) operator(=) ident(get_length)operator(()ident(data)operator(,) pre_constant(true)operator(\)) reserved(if) instance_variable(@pre_411) ident(fields) operator(=) ident(read_rows)operator(()integer(5)operator(\)) reserved(else) ident(fields) operator(=) ident(read_rows)operator(()integer(7)operator(\)) reserved(end) instance_variable(@fields) operator(=) ident(unpack_fields)operator(()ident(fields)operator(,) instance_variable(@server_capabilities) operator(&) constant(CLIENT_LONG_FLAG) operator(!=) integer(0)operator(\)) instance_variable(@status) operator(=) symbol(:STATUS_GET_RESULT) reserved(end) pre_constant(self) reserved(end) reserved(def) method(unpack_fields)operator(()ident(data)operator(,) ident(long_flag_protocol)operator(\)) ident(ret) operator(=) operator([)operator(]) ident(data)operator(.)ident(each) reserved(do) operator(|)ident(f)operator(|) reserved(if) instance_variable(@pre_411) ident(table) operator(=) ident(org_table) operator(=) ident(f)operator([)integer(0)operator(]) ident(name) operator(=) ident(f)operator([)integer(1)operator(]) ident(length) operator(=) ident(f)operator([)integer(2)operator(])operator([)integer(0)operator(])operator(+)ident(f)operator([)integer(2)operator(])operator([)integer(1)operator(])operator(*)integer(256)operator(+)ident(f)operator([)integer(2)operator(])operator([)integer(2)operator(])operator(*)integer(256)operator(*)integer(256) ident(type) operator(=) ident(f)operator([)integer(3)operator(])operator([)integer(0)operator(]) reserved(if) ident(long_flag_protocol) reserved(then) ident(flags) operator(=) ident(f)operator([)integer(4)operator(])operator([)integer(0)operator(])operator(+)ident(f)operator([)integer(4)operator(])operator([)integer(1)operator(])operator(*)integer(256) ident(decimals) operator(=) ident(f)operator([)integer(4)operator(])operator([)integer(2)operator(]) reserved(else) ident(flags) operator(=) ident(f)operator([)integer(4)operator(])operator([)integer(0)operator(]) ident(decimals) operator(=) ident(f)operator([)integer(4)operator(])operator([)integer(1)operator(]) reserved(end) ident(def_value) operator(=) ident(f)operator([)integer(5)operator(]) ident(max_length) operator(=) integer(0) reserved(else) ident(catalog) operator(=) ident(f)operator([)integer(0)operator(]) ident(db) operator(=) ident(f)operator([)integer(1)operator(]) ident(table) operator(=) ident(f)operator([)integer(2)operator(]) ident(org_table) operator(=) ident(f)operator([)integer(3)operator(]) ident(name) operator(=) ident(f)operator([)integer(4)operator(]) ident(org_name) operator(=) ident(f)operator([)integer(5)operator(]) ident(length) operator(=) ident(f)operator([)integer(6)operator(])operator([)integer(2)operator(])operator(+)ident(f)operator([)integer(6)operator(])operator([)integer(3)operator(])operator(*)integer(256)operator(+)ident(f)operator([)integer(6)operator(])operator([)integer(4)operator(])operator(*)integer(256)operator(*)integer(256) ident(type) operator(=) ident(f)operator([)integer(6)operator(])operator([)integer(6)operator(]) ident(flags) operator(=) ident(f)operator([)integer(6)operator(])operator([)integer(7)operator(])operator(+)ident(f)operator([)integer(6)operator(])operator([)integer(8)operator(])operator(*)integer(256) ident(decimals) operator(=) ident(f)operator([)integer(6)operator(])operator([)integer(9)operator(]) ident(def_value) operator(=) string ident(max_length) operator(=) integer(0) reserved(end) ident(ret) operator(<<) constant(Field)operator(::)ident(new)operator(()ident(table)operator(,) ident(org_table)operator(,) ident(name)operator(,) ident(length)operator(,) ident(type)operator(,) ident(flags)operator(,) ident(decimals)operator(,) ident(def_value)operator(,) ident(max_length)operator(\)) reserved(end) ident(ret) reserved(end) reserved(def) method(read_rows)operator(()ident(field_count)operator(\)) ident(ret) operator(=) operator([)operator(]) reserved(while) ident(rec) operator(=) ident(read_one_row)operator(()ident(field_count)operator(\)) reserved(do) ident(ret) operator(<<) ident(rec) reserved(end) ident(ret) reserved(end) reserved(def) method(get_length)operator(()ident(data)operator(,) ident(longlong)operator(=)pre_constant(nil)operator(\)) reserved(return) reserved(if) ident(data)operator(.)ident(length) operator(==) integer(0) ident(c) operator(=) ident(data)operator(.)ident(slice!)operator(()integer(0)operator(\)) reserved(case) ident(c) reserved(when) integer(251) reserved(return) pre_constant(nil) reserved(when) integer(252) ident(a) operator(=) ident(data)operator(.)ident(slice!)operator(()integer(0)operator(,)integer(2)operator(\)) reserved(return) ident(a)operator([)integer(0)operator(])operator(+)ident(a)operator([)integer(1)operator(])operator(*)integer(256) reserved(when) integer(253) ident(a) operator(=) ident(data)operator(.)ident(slice!)operator(()integer(0)operator(,)integer(3)operator(\)) reserved(return) ident(a)operator([)integer(0)operator(])operator(+)ident(a)operator([)integer(1)operator(])operator(*)integer(256)operator(+)ident(a)operator([)integer(2)operator(])operator(*)integer(256)operator(**)integer(2) reserved(when) integer(254) ident(a) operator(=) ident(data)operator(.)ident(slice!)operator(()integer(0)operator(,)integer(8)operator(\)) reserved(if) ident(longlong) reserved(then) reserved(return) ident(a)operator([)integer(0)operator(])operator(+)ident(a)operator([)integer(1)operator(])operator(*)integer(256)operator(+)ident(a)operator([)integer(2)operator(])operator(*)integer(256)operator(**)integer(2)operator(+)ident(a)operator([)integer(3)operator(])operator(*)integer(256)operator(**)integer(3)operator(+) ident(a)operator([)integer(4)operator(])operator(*)integer(256)operator(**)integer(4)operator(+)ident(a)operator([)integer(5)operator(])operator(*)integer(256)operator(**)integer(5)operator(+)ident(a)operator([)integer(6)operator(])operator(*)integer(256)operator(**)integer(6)operator(+)ident(a)operator([)integer(7)operator(])operator(*)integer(256)operator(**)integer(7) reserved(else) reserved(return) ident(a)operator([)integer(0)operator(])operator(+)ident(a)operator([)integer(1)operator(])operator(*)integer(256)operator(+)ident(a)operator([)integer(2)operator(])operator(*)integer(256)operator(**)integer(2)operator(+)ident(a)operator([)integer(3)operator(])operator(*)integer(256)operator(**)integer(3) reserved(end) reserved(else) ident(c) reserved(end) reserved(end) reserved(def) method(command)operator(()ident(cmd)operator(,) ident(arg)operator(=)pre_constant(nil)operator(,) ident(skip_check)operator(=)pre_constant(nil)operator(\)) reserved(unless) instance_variable(@net) reserved(then) ident(error) constant(Error)operator(::)constant(CR_SERVER_GONE_ERROR) reserved(end) reserved(if) instance_variable(@status) operator(!=) symbol(:STATUS_READY) reserved(then) ident(error) constant(Error)operator(::)constant(CR_COMMANDS_OUT_OF_SYNC) reserved(end) instance_variable(@net)operator(.)ident(clear) ident(write) ident(cmd)operator(.)ident(chr)operator(+)operator(()ident(arg)operator(||)stringoperator(\)) ident(read) reserved(unless) ident(skip_check) reserved(end) reserved(def) method(read)operator(()operator(\)) reserved(unless) instance_variable(@net) reserved(then) ident(error) constant(Error)operator(::)constant(CR_SERVER_GONE_ERROR) reserved(end) ident(a) operator(=) instance_variable(@net)operator(.)ident(read) reserved(if) ident(a)operator([)integer(0)operator(]) operator(==) integer(255) reserved(then) reserved(if) ident(a)operator(.)ident(length) operator(>) integer(3) reserved(then) instance_variable(@errno) operator(=) ident(a)operator([)integer(1)operator(])operator(+)ident(a)operator([)integer(2)operator(])operator(*)integer(256) instance_variable(@error) operator(=) ident(a)operator([)integer(3) operator(..) integer(-1)operator(]) reserved(else) instance_variable(@errno) operator(=) constant(Error)operator(::)constant(CR_UNKNOWN_ERROR) instance_variable(@error) operator(=) constant(Error)operator(::)ident(err) instance_variable(@errno) reserved(end) ident(raise) constant(Error)operator(::)ident(new)operator(()instance_variable(@errno)operator(,) instance_variable(@error)operator(\)) reserved(end) ident(a) reserved(end) reserved(def) method(write)operator(()ident(arg)operator(\)) reserved(unless) instance_variable(@net) reserved(then) ident(error) constant(Error)operator(::)constant(CR_SERVER_GONE_ERROR) reserved(end) instance_variable(@net)operator(.)ident(write) ident(arg) reserved(end) reserved(def) method(hash_password)operator(()ident(password)operator(\)) ident(nr) operator(=) integer(1345345333) ident(add) operator(=) integer(7) ident(nr2) operator(=) integer(0x12345671) ident(password)operator(.)ident(each_byte) reserved(do) operator(|)ident(i)operator(|) reserved(next) reserved(if) ident(i) operator(==) integer(0x20) reserved(or) ident(i) operator(==) integer(9) ident(nr) operator(^=) operator(()operator(()operator(()ident(nr) operator(&) integer(63)operator(\)) operator(+) ident(add)operator(\)) operator(*) ident(i)operator(\)) operator(+) operator(()ident(nr) operator(<<) integer(8)operator(\)) ident(nr2) operator(+=) operator(()ident(nr2) operator(<<) integer(8)operator(\)) operator(^) ident(nr) ident(add) operator(+=) ident(i) reserved(end) operator([)ident(nr) operator(&) operator(()operator(()integer(1) operator(<<) integer(31)operator(\)) operator(-) integer(1)operator(\))operator(,) ident(nr2) operator(&) operator(()operator(()integer(1) operator(<<) integer(31)operator(\)) operator(-) integer(1)operator(\))operator(]) reserved(end) reserved(def) method(scramble)operator(()ident(password)operator(,) ident(message)operator(,) ident(old_ver)operator(\)) reserved(return) string reserved(if) ident(password) operator(==) pre_constant(nil) reserved(or) ident(password) operator(==) string ident(raise) string reserved(if) ident(old_ver) ident(hash_pass) operator(=) ident(hash_password) ident(password) ident(hash_message) operator(=) ident(hash_password) ident(message) ident(rnd) operator(=) constant(Random)operator(::)ident(new) ident(hash_pass)operator([)integer(0)operator(]) operator(^) ident(hash_message)operator([)integer(0)operator(])operator(,) ident(hash_pass)operator([)integer(1)operator(]) operator(^) ident(hash_message)operator([)integer(1)operator(]) ident(to) operator(=) operator([)operator(]) integer(1)operator(.)ident(upto)operator(()ident(message)operator(.)ident(length)operator(\)) reserved(do) ident(to) operator(<<) operator(()operator(()ident(rnd)operator(.)ident(rnd)operator(*)integer(31)operator(\))operator(+)integer(64)operator(\))operator(.)ident(floor) reserved(end) ident(extra) operator(=) operator(()ident(rnd)operator(.)ident(rnd)operator(*)integer(31)operator(\))operator(.)ident(floor) ident(to)operator(.)ident(map!) reserved(do) operator(|)ident(t)operator(|) operator(()ident(t) operator(^) ident(extra)operator(\))operator(.)ident(chr) reserved(end) ident(to)operator(.)ident(join) reserved(end) reserved(def) method(scramble41)operator(()ident(password)operator(,) ident(message)operator(\)) reserved(return) integer(0x00)operator(.)ident(chr) reserved(if) ident(password)operator(.)ident(nil?) reserved(or) ident(password)operator(.)ident(empty?) ident(buf) operator(=) operator([)integer(0x14)operator(]) ident(s1) operator(=) constant(Digest)operator(::)constant(SHA1)operator(.)ident(new)operator(()ident(password)operator(\))operator(.)ident(digest) ident(s2) operator(=) constant(Digest)operator(::)constant(SHA1)operator(.)ident(new)operator(()ident(s1)operator(\))operator(.)ident(digest) ident(x) operator(=) constant(Digest)operator(::)constant(SHA1)operator(.)ident(new)operator(()ident(message) operator(+) ident(s2)operator(\))operator(.)ident(digest) operator(()integer(0)operator(..)ident(s1)operator(.)ident(length) operator(-) integer(1)operator(\))operator(.)ident(each) operator({)operator(|)ident(i)operator(|) ident(buf)operator(.)ident(push)operator(()ident(s1)operator([)ident(i)operator(]) operator(^) ident(x)operator([)ident(i)operator(])operator(\))operator(}) ident(buf)operator(.)ident(pack)operator(()stringoperator(\)) reserved(end) reserved(def) method(error)operator(()ident(errno)operator(\)) instance_variable(@errno) operator(=) ident(errno) instance_variable(@error) operator(=) constant(Error)operator(::)ident(err) ident(errno) ident(raise) constant(Error)operator(::)ident(new)operator(()instance_variable(@errno)operator(,) instance_variable(@error)operator(\)) reserved(end) reserved(class) class(Result) reserved(def) method(initialize)operator(()ident(mysql)operator(,) ident(fields)operator(,) ident(field_count)operator(,) ident(data)operator(=)pre_constant(nil)operator(\)) instance_variable(@handle) operator(=) ident(mysql) instance_variable(@fields) operator(=) ident(fields) instance_variable(@field_count) operator(=) ident(field_count) instance_variable(@data) operator(=) ident(data) instance_variable(@current_field) operator(=) integer(0) instance_variable(@current_row) operator(=) integer(0) instance_variable(@eof) operator(=) pre_constant(false) instance_variable(@row_count) operator(=) integer(0) reserved(end) ident(attr_accessor) symbol(:eof) reserved(def) method(data_seek)operator(()ident(n)operator(\)) instance_variable(@current_row) operator(=) ident(n) reserved(end) reserved(def) method(fetch_field)operator(()operator(\)) reserved(return) reserved(if) instance_variable(@current_field) operator(>)operator(=) instance_variable(@field_count) ident(f) operator(=) instance_variable(@fields)operator([)instance_variable(@current_field)operator(]) instance_variable(@current_field) operator(+=) integer(1) ident(f) reserved(end) reserved(def) method(fetch_fields)operator(()operator(\)) instance_variable(@fields) reserved(end) reserved(def) method(fetch_field_direct)operator(()ident(n)operator(\)) instance_variable(@fields)operator([)ident(n)operator(]) reserved(end) reserved(def) method(fetch_lengths)operator(()operator(\)) instance_variable(@data) operator(?) instance_variable(@data)operator([)instance_variable(@current_row)operator(])operator(.)ident(map)operator({)operator(|)ident(i)operator(|) ident(i) operator(?) ident(i)operator(.)ident(length) operator(:) integer(0)operator(}) operator(:) instance_variable(@lengths) reserved(end) reserved(def) method(fetch_row)operator(()operator(\)) reserved(if) instance_variable(@data) reserved(then) reserved(if) instance_variable(@current_row) operator(>)operator(=) instance_variable(@data)operator(.)ident(length) reserved(then) instance_variable(@handle)operator(.)ident(status) operator(=) symbol(:STATUS_READY) reserved(return) reserved(end) ident(ret) operator(=) instance_variable(@data)operator([)instance_variable(@current_row)operator(]) instance_variable(@current_row) operator(+=) integer(1) reserved(else) reserved(return) reserved(if) instance_variable(@eof) ident(ret) operator(=) instance_variable(@handle)operator(.)ident(read_one_row) instance_variable(@field_count) reserved(if) ident(ret) operator(==) pre_constant(nil) reserved(then) instance_variable(@eof) operator(=) pre_constant(true) reserved(return) reserved(end) instance_variable(@lengths) operator(=) ident(ret)operator(.)ident(map)operator({)operator(|)ident(i)operator(|) ident(i) operator(?) ident(i)operator(.)ident(length) operator(:) integer(0)operator(}) instance_variable(@row_count) operator(+=) integer(1) reserved(end) ident(ret) reserved(end) reserved(def) method(fetch_hash)operator(()ident(with_table)operator(=)pre_constant(nil)operator(\)) ident(row) operator(=) ident(fetch_row) reserved(return) reserved(if) ident(row) operator(==) pre_constant(nil) ident(hash) operator(=) operator({)operator(}) instance_variable(@fields)operator(.)ident(each_index) reserved(do) operator(|)ident(i)operator(|) ident(f) operator(=) ident(with_table) operator(?) instance_variable(@fields)operator([)ident(i)operator(])operator(.)ident(table)operator(+)stringoperator(+)instance_variable(@fields)operator([)ident(i)operator(])operator(.)ident(name) operator(:) instance_variable(@fields)operator([)ident(i)operator(])operator(.)ident(name) ident(hash)operator([)ident(f)operator(]) operator(=) ident(row)operator([)ident(i)operator(]) reserved(end) ident(hash) reserved(end) reserved(def) method(field_seek)operator(()ident(n)operator(\)) instance_variable(@current_field) operator(=) ident(n) reserved(end) reserved(def) method(field_tell)operator(()operator(\)) instance_variable(@current_field) reserved(end) reserved(def) method(free)operator(()operator(\)) instance_variable(@handle)operator(.)ident(skip_result) instance_variable(@handle) operator(=) instance_variable(@fields) operator(=) instance_variable(@data) operator(=) pre_constant(nil) reserved(end) reserved(def) method(num_fields)operator(()operator(\)) instance_variable(@field_count) reserved(end) reserved(def) method(num_rows)operator(()operator(\)) instance_variable(@data) operator(?) instance_variable(@data)operator(.)ident(length) operator(:) instance_variable(@row_count) reserved(end) reserved(def) method(row_seek)operator(()ident(n)operator(\)) instance_variable(@current_row) operator(=) ident(n) reserved(end) reserved(def) method(row_tell)operator(()operator(\)) instance_variable(@current_row) reserved(end) reserved(def) method(each)operator(()operator(\)) reserved(while) ident(row) operator(=) ident(fetch_row) reserved(do) reserved(yield) ident(row) reserved(end) reserved(end) reserved(def) method(each_hash)operator(()ident(with_table)operator(=)pre_constant(nil)operator(\)) reserved(while) ident(hash) operator(=) ident(fetch_hash)operator(()ident(with_table)operator(\)) reserved(do) reserved(yield) ident(hash) reserved(end) reserved(end) reserved(def) method(inspect)operator(()operator(\)) stringcontent(>)delimiter(")> reserved(end) reserved(end) reserved(class) class(Field) comment(# Field type) constant(TYPE_DECIMAL) operator(=) integer(0) constant(TYPE_TINY) operator(=) integer(1) constant(TYPE_SHORT) operator(=) integer(2) constant(TYPE_LONG) operator(=) integer(3) constant(TYPE_FLOAT) operator(=) integer(4) constant(TYPE_DOUBLE) operator(=) integer(5) constant(TYPE_NULL) operator(=) integer(6) constant(TYPE_TIMESTAMP) operator(=) integer(7) constant(TYPE_LONGLONG) operator(=) integer(8) constant(TYPE_INT24) operator(=) integer(9) constant(TYPE_DATE) operator(=) integer(10) constant(TYPE_TIME) operator(=) integer(11) constant(TYPE_DATETIME) operator(=) integer(12) constant(TYPE_YEAR) operator(=) integer(13) constant(TYPE_NEWDATE) operator(=) integer(14) constant(TYPE_ENUM) operator(=) integer(247) constant(TYPE_SET) operator(=) integer(248) constant(TYPE_TINY_BLOB) operator(=) integer(249) constant(TYPE_MEDIUM_BLOB) operator(=) integer(250) constant(TYPE_LONG_BLOB) operator(=) integer(251) constant(TYPE_BLOB) operator(=) integer(252) constant(TYPE_VAR_STRING) operator(=) integer(253) constant(TYPE_STRING) operator(=) integer(254) constant(TYPE_GEOMETRY) operator(=) integer(255) constant(TYPE_CHAR) operator(=) constant(TYPE_TINY) constant(TYPE_INTERVAL) operator(=) constant(TYPE_ENUM) comment(# Flag) constant(NOT_NULL_FLAG) operator(=) integer(1) constant(PRI_KEY_FLAG) operator(=) integer(2) constant(UNIQUE_KEY_FLAG) operator(=) integer(4) constant(MULTIPLE_KEY_FLAG) operator(=) integer(8) constant(BLOB_FLAG) operator(=) integer(16) constant(UNSIGNED_FLAG) operator(=) integer(32) constant(ZEROFILL_FLAG) operator(=) integer(64) constant(BINARY_FLAG) operator(=) integer(128) constant(ENUM_FLAG) operator(=) integer(256) constant(AUTO_INCREMENT_FLAG) operator(=) integer(512) constant(TIMESTAMP_FLAG) operator(=) integer(1024) constant(SET_FLAG) operator(=) integer(2048) constant(NUM_FLAG) operator(=) integer(32768) constant(PART_KEY_FLAG) operator(=) integer(16384) constant(GROUP_FLAG) operator(=) integer(32768) constant(UNIQUE_FLAG) operator(=) integer(65536) reserved(def) method(initialize)operator(()ident(table)operator(,) ident(org_table)operator(,) ident(name)operator(,) ident(length)operator(,) ident(type)operator(,) ident(flags)operator(,) ident(decimals)operator(,) ident(def_value)operator(,) ident(max_length)operator(\)) instance_variable(@table) operator(=) ident(table) instance_variable(@org_table) operator(=) ident(org_table) instance_variable(@name) operator(=) ident(name) instance_variable(@length) operator(=) ident(length) instance_variable(@type) operator(=) ident(type) instance_variable(@flags) operator(=) ident(flags) instance_variable(@decimals) operator(=) ident(decimals) instance_variable(@def) operator(=) ident(def_value) instance_variable(@max_length) operator(=) ident(max_length) reserved(if) operator(()ident(type) operator(<=) constant(TYPE_INT24) reserved(and) operator(()ident(type) operator(!=) constant(TYPE_TIMESTAMP) reserved(or) ident(length) operator(==) integer(14) reserved(or) ident(length) operator(==) integer(8)operator(\))operator(\)) reserved(or) ident(type) operator(==) constant(TYPE_YEAR) reserved(then) instance_variable(@flags) operator(|=) constant(NUM_FLAG) reserved(end) reserved(end) ident(attr_reader) symbol(:table)operator(,) symbol(:org_table)operator(,) symbol(:name)operator(,) symbol(:length)operator(,) symbol(:type)operator(,) symbol(:flags)operator(,) symbol(:decimals)operator(,) symbol(:def)operator(,) symbol(:max_length) reserved(def) method(inspect)operator(()operator(\)) stringcontent(:)inlinecontent(>)delimiter(")> reserved(end) reserved(end) reserved(class) class(Error) operator(<) constant(StandardError) comment(# Server Error) constant(ER_HASHCHK) operator(=) integer(1000) constant(ER_NISAMCHK) operator(=) integer(1001) constant(ER_NO) operator(=) integer(1002) constant(ER_YES) operator(=) integer(1003) constant(ER_CANT_CREATE_FILE) operator(=) integer(1004) constant(ER_CANT_CREATE_TABLE) operator(=) integer(1005) constant(ER_CANT_CREATE_DB) operator(=) integer(1006) constant(ER_DB_CREATE_EXISTS) operator(=) integer(1007) constant(ER_DB_DROP_EXISTS) operator(=) integer(1008) constant(ER_DB_DROP_DELETE) operator(=) integer(1009) constant(ER_DB_DROP_RMDIR) operator(=) integer(1010) constant(ER_CANT_DELETE_FILE) operator(=) integer(1011) constant(ER_CANT_FIND_SYSTEM_REC) operator(=) integer(1012) constant(ER_CANT_GET_STAT) operator(=) integer(1013) constant(ER_CANT_GET_WD) operator(=) integer(1014) constant(ER_CANT_LOCK) operator(=) integer(1015) constant(ER_CANT_OPEN_FILE) operator(=) integer(1016) constant(ER_FILE_NOT_FOUND) operator(=) integer(1017) constant(ER_CANT_READ_DIR) operator(=) integer(1018) constant(ER_CANT_SET_WD) operator(=) integer(1019) constant(ER_CHECKREAD) operator(=) integer(1020) constant(ER_DISK_FULL) operator(=) integer(1021) constant(ER_DUP_KEY) operator(=) integer(1022) constant(ER_ERROR_ON_CLOSE) operator(=) integer(1023) constant(ER_ERROR_ON_READ) operator(=) integer(1024) constant(ER_ERROR_ON_RENAME) operator(=) integer(1025) constant(ER_ERROR_ON_WRITE) operator(=) integer(1026) constant(ER_FILE_USED) operator(=) integer(1027) constant(ER_FILSORT_ABORT) operator(=) integer(1028) constant(ER_FORM_NOT_FOUND) operator(=) integer(1029) constant(ER_GET_ERRNO) operator(=) integer(1030) constant(ER_ILLEGAL_HA) operator(=) integer(1031) constant(ER_KEY_NOT_FOUND) operator(=) integer(1032) constant(ER_NOT_FORM_FILE) operator(=) integer(1033) constant(ER_NOT_KEYFILE) operator(=) integer(1034) constant(ER_OLD_KEYFILE) operator(=) integer(1035) constant(ER_OPEN_AS_READONLY) operator(=) integer(1036) constant(ER_OUTOFMEMORY) operator(=) integer(1037) constant(ER_OUT_OF_SORTMEMORY) operator(=) integer(1038) constant(ER_UNEXPECTED_EOF) operator(=) integer(1039) constant(ER_CON_COUNT_ERROR) operator(=) integer(1040) constant(ER_OUT_OF_RESOURCES) operator(=) integer(1041) constant(ER_BAD_HOST_ERROR) operator(=) integer(1042) constant(ER_HANDSHAKE_ERROR) operator(=) integer(1043) constant(ER_DBACCESS_DENIED_ERROR) operator(=) integer(1044) constant(ER_ACCESS_DENIED_ERROR) operator(=) integer(1045) constant(ER_NO_DB_ERROR) operator(=) integer(1046) constant(ER_UNKNOWN_COM_ERROR) operator(=) integer(1047) constant(ER_BAD_NULL_ERROR) operator(=) integer(1048) constant(ER_BAD_DB_ERROR) operator(=) integer(1049) constant(ER_TABLE_EXISTS_ERROR) operator(=) integer(1050) constant(ER_BAD_TABLE_ERROR) operator(=) integer(1051) constant(ER_NON_UNIQ_ERROR) operator(=) integer(1052) constant(ER_SERVER_SHUTDOWN) operator(=) integer(1053) constant(ER_BAD_FIELD_ERROR) operator(=) integer(1054) constant(ER_WRONG_FIELD_WITH_GROUP) operator(=) integer(1055) constant(ER_WRONG_GROUP_FIELD) operator(=) integer(1056) constant(ER_WRONG_SUM_SELECT) operator(=) integer(1057) constant(ER_WRONG_VALUE_COUNT) operator(=) integer(1058) constant(ER_TOO_LONG_IDENT) operator(=) integer(1059) constant(ER_DUP_FIELDNAME) operator(=) integer(1060) constant(ER_DUP_KEYNAME) operator(=) integer(1061) constant(ER_DUP_ENTRY) operator(=) integer(1062) constant(ER_WRONG_FIELD_SPEC) operator(=) integer(1063) constant(ER_PARSE_ERROR) operator(=) integer(1064) constant(ER_EMPTY_QUERY) operator(=) integer(1065) constant(ER_NONUNIQ_TABLE) operator(=) integer(1066) constant(ER_INVALID_DEFAULT) operator(=) integer(1067) constant(ER_MULTIPLE_PRI_KEY) operator(=) integer(1068) constant(ER_TOO_MANY_KEYS) operator(=) integer(1069) constant(ER_TOO_MANY_KEY_PARTS) operator(=) integer(1070) constant(ER_TOO_LONG_KEY) operator(=) integer(1071) constant(ER_KEY_COLUMN_DOES_NOT_EXITS) operator(=) integer(1072) constant(ER_BLOB_USED_AS_KEY) operator(=) integer(1073) constant(ER_TOO_BIG_FIELDLENGTH) operator(=) integer(1074) constant(ER_WRONG_AUTO_KEY) operator(=) integer(1075) constant(ER_READY) operator(=) integer(1076) constant(ER_NORMAL_SHUTDOWN) operator(=) integer(1077) constant(ER_GOT_SIGNAL) operator(=) integer(1078) constant(ER_SHUTDOWN_COMPLETE) operator(=) integer(1079) constant(ER_FORCING_CLOSE) operator(=) integer(1080) constant(ER_IPSOCK_ERROR) operator(=) integer(1081) constant(ER_NO_SUCH_INDEX) operator(=) integer(1082) constant(ER_WRONG_FIELD_TERMINATORS) operator(=) integer(1083) constant(ER_BLOBS_AND_NO_TERMINATED) operator(=) integer(1084) constant(ER_TEXTFILE_NOT_READABLE) operator(=) integer(1085) constant(ER_FILE_EXISTS_ERROR) operator(=) integer(1086) constant(ER_LOAD_INFO) operator(=) integer(1087) constant(ER_ALTER_INFO) operator(=) integer(1088) constant(ER_WRONG_SUB_KEY) operator(=) integer(1089) constant(ER_CANT_REMOVE_ALL_FIELDS) operator(=) integer(1090) constant(ER_CANT_DROP_FIELD_OR_KEY) operator(=) integer(1091) constant(ER_INSERT_INFO) operator(=) integer(1092) constant(ER_INSERT_TABLE_USED) operator(=) integer(1093) constant(ER_NO_SUCH_THREAD) operator(=) integer(1094) constant(ER_KILL_DENIED_ERROR) operator(=) integer(1095) constant(ER_NO_TABLES_USED) operator(=) integer(1096) constant(ER_TOO_BIG_SET) operator(=) integer(1097) constant(ER_NO_UNIQUE_LOGFILE) operator(=) integer(1098) constant(ER_TABLE_NOT_LOCKED_FOR_WRITE) operator(=) integer(1099) constant(ER_TABLE_NOT_LOCKED) operator(=) integer(1100) constant(ER_BLOB_CANT_HAVE_DEFAULT) operator(=) integer(1101) constant(ER_WRONG_DB_NAME) operator(=) integer(1102) constant(ER_WRONG_TABLE_NAME) operator(=) integer(1103) constant(ER_TOO_BIG_SELECT) operator(=) integer(1104) constant(ER_UNKNOWN_ERROR) operator(=) integer(1105) constant(ER_UNKNOWN_PROCEDURE) operator(=) integer(1106) constant(ER_WRONG_PARAMCOUNT_TO_PROCEDURE) operator(=) integer(1107) constant(ER_WRONG_PARAMETERS_TO_PROCEDURE) operator(=) integer(1108) constant(ER_UNKNOWN_TABLE) operator(=) integer(1109) constant(ER_FIELD_SPECIFIED_TWICE) operator(=) integer(1110) constant(ER_INVALID_GROUP_FUNC_USE) operator(=) integer(1111) constant(ER_UNSUPPORTED_EXTENSION) operator(=) integer(1112) constant(ER_TABLE_MUST_HAVE_COLUMNS) operator(=) integer(1113) constant(ER_RECORD_FILE_FULL) operator(=) integer(1114) constant(ER_UNKNOWN_CHARACTER_SET) operator(=) integer(1115) constant(ER_TOO_MANY_TABLES) operator(=) integer(1116) constant(ER_TOO_MANY_FIELDS) operator(=) integer(1117) constant(ER_TOO_BIG_ROWSIZE) operator(=) integer(1118) constant(ER_STACK_OVERRUN) operator(=) integer(1119) constant(ER_WRONG_OUTER_JOIN) operator(=) integer(1120) constant(ER_NULL_COLUMN_IN_INDEX) operator(=) integer(1121) constant(ER_CANT_FIND_UDF) operator(=) integer(1122) constant(ER_CANT_INITIALIZE_UDF) operator(=) integer(1123) constant(ER_UDF_NO_PATHS) operator(=) integer(1124) constant(ER_UDF_EXISTS) operator(=) integer(1125) constant(ER_CANT_OPEN_LIBRARY) operator(=) integer(1126) constant(ER_CANT_FIND_DL_ENTRY) operator(=) integer(1127) constant(ER_FUNCTION_NOT_DEFINED) operator(=) integer(1128) constant(ER_HOST_IS_BLOCKED) operator(=) integer(1129) constant(ER_HOST_NOT_PRIVILEGED) operator(=) integer(1130) constant(ER_PASSWORD_ANONYMOUS_USER) operator(=) integer(1131) constant(ER_PASSWORD_NOT_ALLOWED) operator(=) integer(1132) constant(ER_PASSWORD_NO_MATCH) operator(=) integer(1133) constant(ER_UPDATE_INFO) operator(=) integer(1134) constant(ER_CANT_CREATE_THREAD) operator(=) integer(1135) constant(ER_WRONG_VALUE_COUNT_ON_ROW) operator(=) integer(1136) constant(ER_CANT_REOPEN_TABLE) operator(=) integer(1137) constant(ER_INVALID_USE_OF_NULL) operator(=) integer(1138) constant(ER_REGEXP_ERROR) operator(=) integer(1139) constant(ER_MIX_OF_GROUP_FUNC_AND_FIELDS) operator(=) integer(1140) constant(ER_NONEXISTING_GRANT) operator(=) integer(1141) constant(ER_TABLEACCESS_DENIED_ERROR) operator(=) integer(1142) constant(ER_COLUMNACCESS_DENIED_ERROR) operator(=) integer(1143) constant(ER_ILLEGAL_GRANT_FOR_TABLE) operator(=) integer(1144) constant(ER_GRANT_WRONG_HOST_OR_USER) operator(=) integer(1145) constant(ER_NO_SUCH_TABLE) operator(=) integer(1146) constant(ER_NONEXISTING_TABLE_GRANT) operator(=) integer(1147) constant(ER_NOT_ALLOWED_COMMAND) operator(=) integer(1148) constant(ER_SYNTAX_ERROR) operator(=) integer(1149) constant(ER_DELAYED_CANT_CHANGE_LOCK) operator(=) integer(1150) constant(ER_TOO_MANY_DELAYED_THREADS) operator(=) integer(1151) constant(ER_ABORTING_CONNECTION) operator(=) integer(1152) constant(ER_NET_PACKET_TOO_LARGE) operator(=) integer(1153) constant(ER_NET_READ_ERROR_FROM_PIPE) operator(=) integer(1154) constant(ER_NET_FCNTL_ERROR) operator(=) integer(1155) constant(ER_NET_PACKETS_OUT_OF_ORDER) operator(=) integer(1156) constant(ER_NET_UNCOMPRESS_ERROR) operator(=) integer(1157) constant(ER_NET_READ_ERROR) operator(=) integer(1158) constant(ER_NET_READ_INTERRUPTED) operator(=) integer(1159) constant(ER_NET_ERROR_ON_WRITE) operator(=) integer(1160) constant(ER_NET_WRITE_INTERRUPTED) operator(=) integer(1161) constant(ER_TOO_LONG_STRING) operator(=) integer(1162) constant(ER_TABLE_CANT_HANDLE_BLOB) operator(=) integer(1163) constant(ER_TABLE_CANT_HANDLE_AUTO_INCREMENT) operator(=) integer(1164) constant(ER_DELAYED_INSERT_TABLE_LOCKED) operator(=) integer(1165) constant(ER_WRONG_COLUMN_NAME) operator(=) integer(1166) constant(ER_WRONG_KEY_COLUMN) operator(=) integer(1167) constant(ER_WRONG_MRG_TABLE) operator(=) integer(1168) constant(ER_DUP_UNIQUE) operator(=) integer(1169) constant(ER_BLOB_KEY_WITHOUT_LENGTH) operator(=) integer(1170) constant(ER_PRIMARY_CANT_HAVE_NULL) operator(=) integer(1171) constant(ER_TOO_MANY_ROWS) operator(=) integer(1172) constant(ER_REQUIRES_PRIMARY_KEY) operator(=) integer(1173) constant(ER_NO_RAID_COMPILED) operator(=) integer(1174) constant(ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE) operator(=) integer(1175) constant(ER_KEY_DOES_NOT_EXITS) operator(=) integer(1176) constant(ER_CHECK_NO_SUCH_TABLE) operator(=) integer(1177) constant(ER_CHECK_NOT_IMPLEMENTED) operator(=) integer(1178) constant(ER_CANT_DO_THIS_DURING_AN_TRANSACTION) operator(=) integer(1179) constant(ER_ERROR_DURING_COMMIT) operator(=) integer(1180) constant(ER_ERROR_DURING_ROLLBACK) operator(=) integer(1181) constant(ER_ERROR_DURING_FLUSH_LOGS) operator(=) integer(1182) constant(ER_ERROR_DURING_CHECKPOINT) operator(=) integer(1183) constant(ER_NEW_ABORTING_CONNECTION) operator(=) integer(1184) constant(ER_DUMP_NOT_IMPLEMENTED) operator(=) integer(1185) constant(ER_FLUSH_MASTER_BINLOG_CLOSED) operator(=) integer(1186) constant(ER_INDEX_REBUILD) operator(=) integer(1187) constant(ER_MASTER) operator(=) integer(1188) constant(ER_MASTER_NET_READ) operator(=) integer(1189) constant(ER_MASTER_NET_WRITE) operator(=) integer(1190) constant(ER_FT_MATCHING_KEY_NOT_FOUND) operator(=) integer(1191) constant(ER_LOCK_OR_ACTIVE_TRANSACTION) operator(=) integer(1192) constant(ER_UNKNOWN_SYSTEM_VARIABLE) operator(=) integer(1193) constant(ER_CRASHED_ON_USAGE) operator(=) integer(1194) constant(ER_CRASHED_ON_REPAIR) operator(=) integer(1195) constant(ER_WARNING_NOT_COMPLETE_ROLLBACK) operator(=) integer(1196) constant(ER_TRANS_CACHE_FULL) operator(=) integer(1197) constant(ER_SLAVE_MUST_STOP) operator(=) integer(1198) constant(ER_SLAVE_NOT_RUNNING) operator(=) integer(1199) constant(ER_BAD_SLAVE) operator(=) integer(1200) constant(ER_MASTER_INFO) operator(=) integer(1201) constant(ER_SLAVE_THREAD) operator(=) integer(1202) constant(ER_TOO_MANY_USER_CONNECTIONS) operator(=) integer(1203) constant(ER_SET_CONSTANTS_ONLY) operator(=) integer(1204) constant(ER_LOCK_WAIT_TIMEOUT) operator(=) integer(1205) constant(ER_LOCK_TABLE_FULL) operator(=) integer(1206) constant(ER_READ_ONLY_TRANSACTION) operator(=) integer(1207) constant(ER_DROP_DB_WITH_READ_LOCK) operator(=) integer(1208) constant(ER_CREATE_DB_WITH_READ_LOCK) operator(=) integer(1209) constant(ER_WRONG_ARGUMENTS) operator(=) integer(1210) constant(ER_NO_PERMISSION_TO_CREATE_USER) operator(=) integer(1211) constant(ER_UNION_TABLES_IN_DIFFERENT_DIR) operator(=) integer(1212) constant(ER_LOCK_DEADLOCK) operator(=) integer(1213) constant(ER_TABLE_CANT_HANDLE_FULLTEXT) operator(=) integer(1214) constant(ER_CANNOT_ADD_FOREIGN) operator(=) integer(1215) constant(ER_NO_REFERENCED_ROW) operator(=) integer(1216) constant(ER_ROW_IS_REFERENCED) operator(=) integer(1217) constant(ER_CONNECT_TO_MASTER) operator(=) integer(1218) constant(ER_QUERY_ON_MASTER) operator(=) integer(1219) constant(ER_ERROR_WHEN_EXECUTING_COMMAND) operator(=) integer(1220) constant(ER_WRONG_USAGE) operator(=) integer(1221) constant(ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT) operator(=) integer(1222) constant(ER_CANT_UPDATE_WITH_READLOCK) operator(=) integer(1223) constant(ER_MIXING_NOT_ALLOWED) operator(=) integer(1224) constant(ER_DUP_ARGUMENT) operator(=) integer(1225) constant(ER_USER_LIMIT_REACHED) operator(=) integer(1226) constant(ER_SPECIFIC_ACCESS_DENIED_ERROR) operator(=) integer(1227) constant(ER_LOCAL_VARIABLE) operator(=) integer(1228) constant(ER_GLOBAL_VARIABLE) operator(=) integer(1229) constant(ER_NO_DEFAULT) operator(=) integer(1230) constant(ER_WRONG_VALUE_FOR_VAR) operator(=) integer(1231) constant(ER_WRONG_TYPE_FOR_VAR) operator(=) integer(1232) constant(ER_VAR_CANT_BE_READ) operator(=) integer(1233) constant(ER_CANT_USE_OPTION_HERE) operator(=) integer(1234) constant(ER_NOT_SUPPORTED_YET) operator(=) integer(1235) constant(ER_MASTER_FATAL_ERROR_READING_BINLOG) operator(=) integer(1236) constant(ER_SLAVE_IGNORED_TABLE) operator(=) integer(1237) constant(ER_ERROR_MESSAGES) operator(=) integer(238) comment(# Client Error) constant(CR_MIN_ERROR) operator(=) integer(2000) constant(CR_MAX_ERROR) operator(=) integer(2999) constant(CR_UNKNOWN_ERROR) operator(=) integer(2000) constant(CR_SOCKET_CREATE_ERROR) operator(=) integer(2001) constant(CR_CONNECTION_ERROR) operator(=) integer(2002) constant(CR_CONN_HOST_ERROR) operator(=) integer(2003) constant(CR_IPSOCK_ERROR) operator(=) integer(2004) constant(CR_UNKNOWN_HOST) operator(=) integer(2005) constant(CR_SERVER_GONE_ERROR) operator(=) integer(2006) constant(CR_VERSION_ERROR) operator(=) integer(2007) constant(CR_OUT_OF_MEMORY) operator(=) integer(2008) constant(CR_WRONG_HOST_INFO) operator(=) integer(2009) constant(CR_LOCALHOST_CONNECTION) operator(=) integer(2010) constant(CR_TCP_CONNECTION) operator(=) integer(2011) constant(CR_SERVER_HANDSHAKE_ERR) operator(=) integer(2012) constant(CR_SERVER_LOST) operator(=) integer(2013) constant(CR_COMMANDS_OUT_OF_SYNC) operator(=) integer(2014) constant(CR_NAMEDPIPE_CONNECTION) operator(=) integer(2015) constant(CR_NAMEDPIPEWAIT_ERROR) operator(=) integer(2016) constant(CR_NAMEDPIPEOPEN_ERROR) operator(=) integer(2017) constant(CR_NAMEDPIPESETSTATE_ERROR) operator(=) integer(2018) constant(CR_CANT_READ_CHARSET) operator(=) integer(2019) constant(CR_NET_PACKET_TOO_LARGE) operator(=) integer(2020) constant(CR_EMBEDDED_CONNECTION) operator(=) integer(2021) constant(CR_PROBE_SLAVE_STATUS) operator(=) integer(2022) constant(CR_PROBE_SLAVE_HOSTS) operator(=) integer(2023) constant(CR_PROBE_SLAVE_CONNECT) operator(=) integer(2024) constant(CR_PROBE_MASTER_CONNECT) operator(=) integer(2025) constant(CR_SSL_CONNECTION_ERROR) operator(=) integer(2026) constant(CR_MALFORMED_PACKET) operator(=) integer(2027) constant(CLIENT_ERRORS) operator(=) operator([) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(]) reserved(def) method(initialize)operator(()ident(errno)operator(,) ident(error)operator(\)) instance_variable(@errno) operator(=) ident(errno) instance_variable(@error) operator(=) ident(error) reserved(super) ident(error) reserved(end) ident(attr_reader) symbol(:errno)operator(,) symbol(:error) reserved(def) constant(Error)operator(::)method(err)operator(()ident(errno)operator(\)) constant(CLIENT_ERRORS)operator([)ident(errno) operator(-) constant(Error)operator(::)constant(CR_MIN_ERROR)operator(]) reserved(end) reserved(end) reserved(class) class(Net) reserved(def) method(initialize)operator(()ident(sock)operator(\)) instance_variable(@sock) operator(=) ident(sock) instance_variable(@pkt_nr) operator(=) integer(0) reserved(end) reserved(def) method(clear)operator(()operator(\)) instance_variable(@pkt_nr) operator(=) integer(0) reserved(end) reserved(def) method(read)operator(()operator(\)) ident(buf) operator(=) operator([)operator(]) ident(len) operator(=) pre_constant(nil) instance_variable(@sock)operator(.)ident(sync) operator(=) pre_constant(false) reserved(while) ident(len) operator(==) pre_constant(nil) reserved(or) ident(len) operator(==) constant(MAX_PACKET_LENGTH) reserved(do) ident(a) operator(=) instance_variable(@sock)operator(.)ident(read)operator(()integer(4)operator(\)) ident(len) operator(=) ident(a)operator([)integer(0)operator(])operator(+)ident(a)operator([)integer(1)operator(])operator(*)integer(256)operator(+)ident(a)operator([)integer(2)operator(])operator(*)integer(256)operator(*)integer(256) ident(pkt_nr) operator(=) ident(a)operator([)integer(3)operator(]) reserved(if) instance_variable(@pkt_nr) operator(!=) ident(pkt_nr) reserved(then) ident(raise) stringcontent(<>)inlinedelimiter(")> reserved(end) instance_variable(@pkt_nr) operator(=) instance_variable(@pkt_nr) operator(+) integer(1) operator(&) integer(0xff) ident(buf) operator(<<) instance_variable(@sock)operator(.)ident(read)operator(()ident(len)operator(\)) reserved(end) instance_variable(@sock)operator(.)ident(sync) operator(=) pre_constant(true) ident(buf)operator(.)ident(join) reserved(rescue) ident(errno) operator(=) constant(Error)operator(::)constant(CR_SERVER_LOST) ident(raise) constant(Error)operator(::)ident(new)operator(()ident(errno)operator(,) constant(Error)operator(::)ident(err)operator(()ident(errno)operator(\))operator(\)) reserved(end) reserved(def) method(write)operator(()ident(data)operator(\)) reserved(if) ident(data)operator(.)ident(is_a?) constant(Array) reserved(then) ident(data) operator(=) ident(data)operator(.)ident(join) reserved(end) instance_variable(@sock)operator(.)ident(sync) operator(=) pre_constant(false) ident(ptr) operator(=) integer(0) reserved(while) ident(data)operator(.)ident(length) operator(>)operator(=) constant(MAX_PACKET_LENGTH) reserved(do) instance_variable(@sock)operator(.)ident(write) constant(Net)operator(::)ident(int3str)operator(()constant(MAX_PACKET_LENGTH)operator(\))operator(+)instance_variable(@pkt_nr)operator(.)ident(chr)operator(+)ident(data)operator([)ident(ptr)operator(,) constant(MAX_PACKET_LENGTH)operator(]) instance_variable(@pkt_nr) operator(=) instance_variable(@pkt_nr) operator(+) integer(1) operator(&) integer(0xff) ident(ptr) operator(+=) constant(MAX_PACKET_LENGTH) reserved(end) instance_variable(@sock)operator(.)ident(write) constant(Net)operator(::)ident(int3str)operator(()ident(data)operator(.)ident(length)operator(-)ident(ptr)operator(\))operator(+)instance_variable(@pkt_nr)operator(.)ident(chr)operator(+)ident(data)operator([)ident(ptr) operator(..) integer(-1)operator(]) instance_variable(@pkt_nr) operator(=) instance_variable(@pkt_nr) operator(+) integer(1) operator(&) integer(0xff) instance_variable(@sock)operator(.)ident(sync) operator(=) pre_constant(true) instance_variable(@sock)operator(.)ident(flush) reserved(rescue) ident(errno) operator(=) constant(Error)operator(::)constant(CR_SERVER_LOST) ident(raise) constant(Error)operator(::)ident(new)operator(()ident(errno)operator(,) constant(Error)operator(::)ident(err)operator(()ident(errno)operator(\))operator(\)) reserved(end) reserved(def) method(close)operator(()operator(\)) instance_variable(@sock)operator(.)ident(close) reserved(end) reserved(def) constant(Net)operator(::)method(int2str)operator(()ident(n)operator(\)) operator([)ident(n)operator(])operator(.)ident(pack)operator(()stringoperator(\)) reserved(end) reserved(def) constant(Net)operator(::)method(int3str)operator(()ident(n)operator(\)) operator([)ident(n)operator(%)integer(256)operator(,) ident(n)operator(>>)integer(8)operator(])operator(.)ident(pack)operator(()stringoperator(\)) reserved(end) reserved(def) constant(Net)operator(::)method(int4str)operator(()ident(n)operator(\)) operator([)ident(n)operator(])operator(.)ident(pack)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(class) class(Random) reserved(def) method(initialize)operator(()ident(seed1)operator(,) ident(seed2)operator(\)) instance_variable(@max_value) operator(=) integer(0x3FFFFFFF) instance_variable(@seed1) operator(=) ident(seed1) operator(%) instance_variable(@max_value) instance_variable(@seed2) operator(=) ident(seed2) operator(%) instance_variable(@max_value) reserved(end) reserved(def) method(rnd)operator(()operator(\)) instance_variable(@seed1) operator(=) operator(()instance_variable(@seed1)operator(*)integer(3)operator(+)instance_variable(@seed2)operator(\)) operator(%) instance_variable(@max_value) instance_variable(@seed2) operator(=) operator(()instance_variable(@seed1)operator(+)instance_variable(@seed2)operator(+)integer(33)operator(\)) operator(%) instance_variable(@max_value) instance_variable(@seed1)operator(.)ident(to_f) operator(/) instance_variable(@max_value) reserved(end) reserved(end) reserved(end) reserved(class) operator(<<) class(Mysql) reserved(def) method(init)operator(()operator(\)) constant(Mysql)operator(::)ident(new) symbol(:INIT) reserved(end) reserved(def) method(real_connect)operator(()operator(*)ident(args)operator(\)) constant(Mysql)operator(::)ident(new)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(alias) symbol(:connect) symbol(:real_connect) reserved(def) method(finalizer)operator(()ident(net)operator(\)) ident(proc) operator({) ident(net)operator(.)ident(clear) ident(net)operator(.)ident(write) constant(Mysql)operator(::)constant(COM_QUIT)operator(.)ident(chr) operator(}) reserved(end) reserved(def) method(escape_string)operator(()ident(str)operator(\)) ident(str)operator(.)ident(gsub)operator(()regexpoperator(\)) reserved(do) reserved(case) global_variable($1) reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(when) string reserved(then) string reserved(else) stringoperator(+)global_variable($1) reserved(end) reserved(end) reserved(end) reserved(alias) symbol(:quote) symbol(:escape_string) reserved(def) method(get_client_info)operator(()operator(\)) constant(Mysql)operator(::)constant(VERSION) reserved(end) reserved(alias) symbol(:client_info) symbol(:get_client_info) reserved(def) method(debug)operator(()ident(str)operator(\)) ident(raise) string reserved(end) reserved(end) comment(#) comment(# for compatibility) comment(#) constant(MysqlRes) operator(=) constant(Mysql)operator(::)constant(Result) constant(MysqlField) operator(=) constant(Mysql)operator(::)constant(Field) constant(MysqlError) operator(=) constant(Mysql)operator(::)constant(Error) comment(# :title: Transaction::Simple -- Active Object Transaction Support for Ruby) comment(# :main: Transaction::Simple) comment(#) comment(# == Licence) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining a) comment(# copy of this software and associated documentation files (the "Software"\),) comment(# to deal in the Software without restriction, including without limitation) comment(# the rights to use, copy, modify, merge, publish, distribute, sublicense,) comment(# and/or sell copies of the Software, and to permit persons to whom the) comment(# Software is furnished to do so, subject to the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be included in) comment(# all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR) comment(# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,) comment(# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL) comment(# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER) comment(# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING) comment(# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER) comment(# DEALINGS IN THE SOFTWARE.) comment(#--) comment(# Transaction::Simple) comment(# Simple object transaction support for Ruby) comment(# Version 1.3.0) comment(#) comment(# Copyright (c\) 2003 - 2005 Austin Ziegler) comment(#) comment(# $Id: simple.rb,v 1.5 2005/05/05 16:16:49 austin Exp $) comment(#++) comment(# The "Transaction" namespace can be used for additional transaction) comment(# support objects and modules.) reserved(module) class(Transaction) comment(# A standard exception for transaction errors.) reserved(class) class(TransactionError) operator(<) constant(StandardError)operator(;) reserved(end) comment(# The TransactionAborted exception is used to indicate when a) comment(# transaction has been aborted in the block form.) reserved(class) class(TransactionAborted) operator(<) constant(Exception)operator(;) reserved(end) comment(# The TransactionCommitted exception is used to indicate when a) comment(# transaction has been committed in the block form.) reserved(class) class(TransactionCommitted) operator(<) constant(Exception)operator(;) reserved(end) ident(te) operator(=) string constant(Messages) operator(=) operator({) symbol(:bad_debug_object) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:unique_names) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:no_transaction_open) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_rewind_no_transaction) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_rewind_named_transaction) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_rewind_transaction_before_block) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_abort_no_transaction) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_abort_transaction_before_block) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_abort_named_transaction) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_commit_no_transaction) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_commit_transaction_before_block) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_commit_named_transaction) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_start_empty_block_transaction) operator(=)operator(>) ident(te) operator(%) stringoperator(,) symbol(:cannot_obtain_transaction_lock) operator(=)operator(>) ident(te) operator(%) stringoperator(,) operator(}) comment(# = Transaction::Simple for Ruby) comment(# Simple object transaction support for Ruby) comment(#) comment(# == Introduction) comment(# Transaction::Simple provides a generic way to add active transaction) comment(# support to objects. The transaction methods added by this module will) comment(# work with most objects, excluding those that cannot be) comment(# Marshaled (bindings, procedure objects, IO instances, or) comment(# singleton objects\).) comment(#) comment(# The transactions supported by Transaction::Simple are not backed) comment(# transactions; they are not associated with any sort of data store.) comment(# They are "live" transactions occurring in memory and in the object) comment(# itself. This is to allow "test" changes to be made to an object) comment(# before making the changes permanent.) comment(#) comment(# Transaction::Simple can handle an "infinite" number of transaction) comment(# levels (limited only by memory\). If I open two transactions, commit) comment(# the second, but abort the first, the object will revert to the) comment(# original version.) comment(# ) comment(# Transaction::Simple supports "named" transactions, so that multiple) comment(# levels of transactions can be committed, aborted, or rewound by) comment(# referring to the appropriate name of the transaction. Names may be any) comment(# object *except* +nil+. As with Hash keys, String names will be) comment(# duplicated and frozen before using.) comment(#) comment(# Copyright:: Copyright © 2003 - 2005 by Austin Ziegler) comment(# Version:: 1.3.0) comment(# Licence:: MIT-Style) comment(#) comment(# Thanks to David Black for help with the initial concept that led to) comment(# this library.) comment(#) comment(# == Usage) comment(# include 'transaction/simple') comment(#) comment(# v = "Hello, you." # -> "Hello, you.") comment(# v.extend(Transaction::Simple\) # -> "Hello, you.") comment(#) comment(# v.start_transaction # -> ... (a Marshal string\)) comment(# v.transaction_open? # -> true) comment(# v.gsub!(/you/, "world"\) # -> "Hello, world.") comment(#) comment(# v.rewind_transaction # -> "Hello, you.") comment(# v.transaction_open? # -> true) comment(#) comment(# v.gsub!(/you/, "HAL"\) # -> "Hello, HAL.") comment(# v.abort_transaction # -> "Hello, you.") comment(# v.transaction_open? # -> false) comment(#) comment(# v.start_transaction # -> ... (a Marshal string\)) comment(# v.start_transaction # -> ... (a Marshal string\)) comment(#) comment(# v.transaction_open? # -> true) comment(# v.gsub!(/you/, "HAL"\) # -> "Hello, HAL.") comment(#) comment(# v.commit_transaction # -> "Hello, HAL.") comment(# v.transaction_open? # -> true) comment(# v.abort_transaction # -> "Hello, you.") comment(# v.transaction_open? # -> false) comment(#) comment(# == Named Transaction Usage) comment(# v = "Hello, you." # -> "Hello, you.") comment(# v.extend(Transaction::Simple\) # -> "Hello, you.") comment(# ) comment(# v.start_transaction(:first\) # -> ... (a Marshal string\)) comment(# v.transaction_open? # -> true) comment(# v.transaction_open?(:first\) # -> true) comment(# v.transaction_open?(:second\) # -> false) comment(# v.gsub!(/you/, "world"\) # -> "Hello, world.") comment(# ) comment(# v.start_transaction(:second\) # -> ... (a Marshal string\)) comment(# v.gsub!(/world/, "HAL"\) # -> "Hello, HAL.") comment(# v.rewind_transaction(:first\) # -> "Hello, you.") comment(# v.transaction_open? # -> true) comment(# v.transaction_open?(:first\) # -> true) comment(# v.transaction_open?(:second\) # -> false) comment(# ) comment(# v.gsub!(/you/, "world"\) # -> "Hello, world.") comment(# v.start_transaction(:second\) # -> ... (a Marshal string\)) comment(# v.gsub!(/world/, "HAL"\) # -> "Hello, HAL.") comment(# v.transaction_name # -> :second) comment(# v.abort_transaction(:first\) # -> "Hello, you.") comment(# v.transaction_open? # -> false) comment(# ) comment(# v.start_transaction(:first\) # -> ... (a Marshal string\)) comment(# v.gsub!(/you/, "world"\) # -> "Hello, world.") comment(# v.start_transaction(:second\) # -> ... (a Marshal string\)) comment(# v.gsub!(/world/, "HAL"\) # -> "Hello, HAL.") comment(# ) comment(# v.commit_transaction(:first\) # -> "Hello, HAL.") comment(# v.transaction_open? # -> false) comment(#) comment(# == Block Usage) comment(# v = "Hello, you." # -> "Hello, you.") comment(# Transaction::Simple.start(v\) do |tv|) comment(# # v has been extended with Transaction::Simple and an unnamed) comment(# # transaction has been started.) comment(# tv.transaction_open? # -> true) comment(# tv.gsub!(/you/, "world"\) # -> "Hello, world.") comment(#) comment(# tv.rewind_transaction # -> "Hello, you.") comment(# tv.transaction_open? # -> true) comment(#) comment(# tv.gsub!(/you/, "HAL"\) # -> "Hello, HAL.") comment(# # The following breaks out of the transaction block after) comment(# # aborting the transaction.) comment(# tv.abort_transaction # -> "Hello, you.") comment(# end) comment(# # v still has Transaction::Simple applied from here on out.) comment(# v.transaction_open? # -> false) comment(#) comment(# Transaction::Simple.start(v\) do |tv|) comment(# tv.start_transaction # -> ... (a Marshal string\)) comment(#) comment(# tv.transaction_open? # -> true) comment(# tv.gsub!(/you/, "HAL"\) # -> "Hello, HAL.") comment(#) comment(# # If #commit_transaction were called without having started a) comment(# # second transaction, then it would break out of the transaction) comment(# # block after committing the transaction.) comment(# tv.commit_transaction # -> "Hello, HAL.") comment(# tv.transaction_open? # -> true) comment(# tv.abort_transaction # -> "Hello, you.") comment(# end) comment(# v.transaction_open? # -> false) comment(#) comment(# == Named Transaction Usage) comment(# v = "Hello, you." # -> "Hello, you.") comment(# v.extend(Transaction::Simple\) # -> "Hello, you.") comment(# ) comment(# v.start_transaction(:first\) # -> ... (a Marshal string\)) comment(# v.transaction_open? # -> true) comment(# v.transaction_open?(:first\) # -> true) comment(# v.transaction_open?(:second\) # -> false) comment(# v.gsub!(/you/, "world"\) # -> "Hello, world.") comment(# ) comment(# v.start_transaction(:second\) # -> ... (a Marshal string\)) comment(# v.gsub!(/world/, "HAL"\) # -> "Hello, HAL.") comment(# v.rewind_transaction(:first\) # -> "Hello, you.") comment(# v.transaction_open? # -> true) comment(# v.transaction_open?(:first\) # -> true) comment(# v.transaction_open?(:second\) # -> false) comment(# ) comment(# v.gsub!(/you/, "world"\) # -> "Hello, world.") comment(# v.start_transaction(:second\) # -> ... (a Marshal string\)) comment(# v.gsub!(/world/, "HAL"\) # -> "Hello, HAL.") comment(# v.transaction_name # -> :second) comment(# v.abort_transaction(:first\) # -> "Hello, you.") comment(# v.transaction_open? # -> false) comment(# ) comment(# v.start_transaction(:first\) # -> ... (a Marshal string\)) comment(# v.gsub!(/you/, "world"\) # -> "Hello, world.") comment(# v.start_transaction(:second\) # -> ... (a Marshal string\)) comment(# v.gsub!(/world/, "HAL"\) # -> "Hello, HAL.") comment(# ) comment(# v.commit_transaction(:first\) # -> "Hello, HAL.") comment(# v.transaction_open? # -> false) comment(#) comment(# == Thread Safety) comment(# Threadsafe version of Transaction::Simple and) comment(# Transaction::Simple::Group exist; these are loaded from) comment(# 'transaction/simple/threadsafe' and) comment(# 'transaction/simple/threadsafe/group', respectively, and are) comment(# represented in Ruby code as Transaction::Simple::ThreadSafe and) comment(# Transaction::Simple::ThreadSafe::Group, respectively.) comment(#) comment(# == Contraindications) comment(# While Transaction::Simple is very useful, it has some severe) comment(# limitations that must be understood. Transaction::Simple:) comment(#) comment(# * uses Marshal. Thus, any object which cannot be Marshaled) comment(# cannot use Transaction::Simple. In my experience, this affects) comment(# singleton objects more often than any other object. It may be that) comment(# Ruby 2.0 will solve this problem.) comment(# * does not manage resources. Resources external to the object and its) comment(# instance variables are not managed at all. However, all instance) comment(# variables and objects "belonging" to those instance variables are) comment(# managed. If there are object reference counts to be handled,) comment(# Transaction::Simple will probably cause problems.) comment(# * is not inherently thread-safe. In the ACID ("atomic, consistent,) comment(# isolated, durable"\) test, Transaction::Simple provides CD, but it is) comment(# up to the user of Transaction::Simple to provide isolation and) comment(# atomicity. Transactions should be considered "critical sections" in) comment(# multi-threaded applications. If thread safety and atomicity is) comment(# absolutely required, use Transaction::Simple::ThreadSafe, which uses) comment(# a Mutex object to synchronize the accesses on the object during the) comment(# transaction operations.) comment(# * does not necessarily maintain Object#__id__ values on rewind or) comment(# abort. This may change for future versions that will be Ruby 1.8 or) comment(# better *only*. Certain objects that support #replace will maintain) comment(# Object#__id__.) comment(# * Can be a memory hog if you use many levels of transactions on many) comment(# objects.) comment(#) reserved(module) class(Simple) constant(TRANSACTION_SIMPLE_VERSION) operator(=) string comment(# Sets the Transaction::Simple debug object. It must respond to #<<.) comment(# Sets the transaction debug object. Debugging will be performed) comment(# automatically if there's a debug object. The generic transaction) comment(# error class.) reserved(def) pre_constant(self)operator(.)method(debug_io=)operator(()ident(io)operator(\)) reserved(if) ident(io)operator(.)ident(nil?) instance_variable(@tdi) operator(=) pre_constant(nil) instance_variable(@debugging) operator(=) pre_constant(false) reserved(else) reserved(unless) ident(io)operator(.)ident(respond_to?)operator(()symbol(:<<)operator(\)) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:bad_debug_object)operator(]) reserved(end) instance_variable(@tdi) operator(=) ident(io) instance_variable(@debugging) operator(=) pre_constant(true) reserved(end) reserved(end) comment(# Returns +true+ if we are debugging.) reserved(def) pre_constant(self)operator(.)method(debugging?) instance_variable(@debugging) reserved(end) comment(# Returns the Transaction::Simple debug object. It must respond to) comment(# #<<.) reserved(def) pre_constant(self)operator(.)method(debug_io) instance_variable(@tdi) operator(||=) string instance_variable(@tdi) reserved(end) comment(# If +name+ is +nil+ (default\), then returns +true+ if there is) comment(# currently a transaction open.) comment(#) comment(# If +name+ is specified, then returns +true+ if there is currently a) comment(# transaction that responds to +name+ open.) reserved(def) method(transaction_open?)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) reserved(if) ident(name)operator(.)ident(nil?) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) string operator(<<) string operator(:) stringinline_delimiter(})>content(])char(\\n)delimiter(")> reserved(end) reserved(return) operator(()reserved(not) instance_variable(@__transaction_checkpoint__)operator(.)ident(nil?)operator(\)) reserved(else) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) stringcontent(\) )delimiter(")> operator(<<) string operator(:) stringinline_delimiter(})>content(])char(\\n)delimiter(")> reserved(end) reserved(return) operator(()operator(()reserved(not) instance_variable(@__transaction_checkpoint__)operator(.)ident(nil?)operator(\)) reserved(and) instance_variable(@__transaction_names__)operator(.)ident(include?)operator(()ident(name)operator(\))operator(\)) reserved(end) reserved(end) comment(# Returns the current name of the transaction. Transactions not) comment(# explicitly named are named +nil+.) reserved(def) method(transaction_name) reserved(if) instance_variable(@__transaction_checkpoint__)operator(.)ident(nil?) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:no_transaction_open)operator(]) reserved(end) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) string operator(*) instance_variable(@__transaction_level__)inline_delimiter(})>content( )delimiter(")> operator(<<) stringchar(\\n)delimiter(")> reserved(end) reserved(if) instance_variable(@__transaction_names__)operator([)integer(-1)operator(])operator(.)ident(kind_of?)operator(()constant(String)operator(\)) instance_variable(@__transaction_names__)operator([)integer(-1)operator(])operator(.)ident(dup) reserved(else) instance_variable(@__transaction_names__)operator([)integer(-1)operator(]) reserved(end) reserved(end) comment(# Starts a transaction. Stores the current object state. If a) comment(# transaction name is specified, the transaction will be named.) comment(# Transaction names must be unique. Transaction names of +nil+ will be) comment(# treated as unnamed transactions.) reserved(def) method(start_transaction)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) instance_variable(@__transaction_level__) operator(||=) integer(0) instance_variable(@__transaction_names__) operator(||=) operator([)operator(]) reserved(if) ident(name)operator(.)ident(nil?) instance_variable(@__transaction_names__) operator(<<) pre_constant(nil) ident(ss) operator(=) string reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) reserved(else) reserved(if) instance_variable(@__transaction_names__)operator(.)ident(include?)operator(()ident(name)operator(\)) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:unique_names)operator(]) reserved(end) ident(name) operator(=) ident(name)operator(.)ident(dup)operator(.)ident(freeze) reserved(if) ident(name)operator(.)ident(kind_of?)operator(()constant(String)operator(\)) instance_variable(@__transaction_names__) operator(<<) ident(name) ident(ss) operator(=) stringcontent(\))delimiter(")> reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) reserved(end) instance_variable(@__transaction_level__) operator(+=) integer(1) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) string)delimiter(')> operator(*) instance_variable(@__transaction_level__)inline_delimiter(})>content( )delimiter(")> operator(<<) stringchar(\\n)delimiter(")> reserved(end) instance_variable(@__transaction_checkpoint__) operator(=) constant(Marshal)operator(.)ident(dump)operator(()pre_constant(self)operator(\)) reserved(end) comment(# Rewinds the transaction. If +name+ is specified, then the) comment(# intervening transactions will be aborted and the named transaction) comment(# will be rewound. Otherwise, only the current transaction is rewound.) reserved(def) method(rewind_transaction)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) reserved(if) instance_variable(@__transaction_checkpoint__)operator(.)ident(nil?) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_rewind_no_transaction)operator(]) reserved(end) comment(# Check to see if we are trying to rewind a transaction that is) comment(# outside of the current transaction block.) reserved(if) instance_variable(@__transaction_block__) reserved(and) ident(name) ident(nix) operator(=) instance_variable(@__transaction_names__)operator(.)ident(index)operator(()ident(name)operator(\)) operator(+) integer(1) reserved(if) ident(nix) operator(<) instance_variable(@__transaction_block__) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_rewind_transaction_before_block)operator(]) reserved(end) reserved(end) reserved(if) ident(name)operator(.)ident(nil?) ident(__rewind_this_transaction) ident(ss) operator(=) string reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) reserved(else) reserved(unless) instance_variable(@__transaction_names__)operator(.)ident(include?)operator(()ident(name)operator(\)) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_rewind_named_transaction)operator(]) operator(%) ident(name)operator(.)ident(inspect) reserved(end) ident(ss) operator(=) stringcontent(\))delimiter(")> reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) reserved(while) instance_variable(@__transaction_names__)operator([)integer(-1)operator(]) operator(!=) ident(name) instance_variable(@__transaction_checkpoint__) operator(=) ident(__rewind_this_transaction) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) string operator(*) instance_variable(@__transaction_level__)inline_delimiter(})>content( )delimiter(")> operator(<<) stringchar(\\n)delimiter(")> reserved(end) instance_variable(@__transaction_level__) operator(-=) integer(1) instance_variable(@__transaction_names__)operator(.)ident(pop) reserved(end) ident(__rewind_this_transaction) reserved(end) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) string operator(*) instance_variable(@__transaction_level__)inline_delimiter(})>content( )delimiter(")> operator(<<) stringchar(\\n)delimiter(")> reserved(end) pre_constant(self) reserved(end) comment(# Aborts the transaction. Resets the object state to what it was) comment(# before the transaction was started and closes the transaction. If) comment(# +name+ is specified, then the intervening transactions and the named) comment(# transaction will be aborted. Otherwise, only the current transaction) comment(# is aborted.) comment(#) comment(# If the current or named transaction has been started by a block) comment(# (Transaction::Simple.start\), then the execution of the block will be) comment(# halted with +break+ +self+.) reserved(def) method(abort_transaction)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) reserved(if) instance_variable(@__transaction_checkpoint__)operator(.)ident(nil?) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_abort_no_transaction)operator(]) reserved(end) comment(# Check to see if we are trying to abort a transaction that is) comment(# outside of the current transaction block. Otherwise, raise) comment(# TransactionAborted if they are the same.) reserved(if) instance_variable(@__transaction_block__) reserved(and) ident(name) ident(nix) operator(=) instance_variable(@__transaction_names__)operator(.)ident(index)operator(()ident(name)operator(\)) operator(+) integer(1) reserved(if) ident(nix) operator(<) instance_variable(@__transaction_block__) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_abort_transaction_before_block)operator(]) reserved(end) ident(raise) constant(TransactionAborted) reserved(if) instance_variable(@__transaction_block__) operator(==) ident(nix) reserved(end) ident(raise) constant(TransactionAborted) reserved(if) instance_variable(@__transaction_block__) operator(==) instance_variable(@__transaction_level__) reserved(if) ident(name)operator(.)ident(nil?) ident(__abort_transaction)operator(()ident(name)operator(\)) reserved(else) reserved(unless) instance_variable(@__transaction_names__)operator(.)ident(include?)operator(()ident(name)operator(\)) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_abort_named_transaction)operator(]) operator(%) ident(name)operator(.)ident(inspect) reserved(end) ident(__abort_transaction)operator(()ident(name)operator(\)) reserved(while) instance_variable(@__transaction_names__)operator(.)ident(include?)operator(()ident(name)operator(\)) reserved(end) pre_constant(self) reserved(end) comment(# If +name+ is +nil+ (default\), the current transaction level is) comment(# closed out and the changes are committed.) comment(#) comment(# If +name+ is specified and +name+ is in the list of named) comment(# transactions, then all transactions are closed and committed until) comment(# the named transaction is reached.) reserved(def) method(commit_transaction)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) reserved(if) instance_variable(@__transaction_checkpoint__)operator(.)ident(nil?) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_commit_no_transaction)operator(]) reserved(end) instance_variable(@__transaction_block__) operator(||=) pre_constant(nil) comment(# Check to see if we are trying to commit a transaction that is) comment(# outside of the current transaction block. Otherwise, raise) comment(# TransactionCommitted if they are the same.) reserved(if) instance_variable(@__transaction_block__) reserved(and) ident(name) ident(nix) operator(=) instance_variable(@__transaction_names__)operator(.)ident(index)operator(()ident(name)operator(\)) operator(+) integer(1) reserved(if) ident(nix) operator(<) instance_variable(@__transaction_block__) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_commit_transaction_before_block)operator(]) reserved(end) ident(raise) constant(TransactionCommitted) reserved(if) instance_variable(@__transaction_block__) operator(==) ident(nix) reserved(end) ident(raise) constant(TransactionCommitted) reserved(if) instance_variable(@__transaction_block__) operator(==) instance_variable(@__transaction_level__) reserved(if) ident(name)operator(.)ident(nil?) ident(ss) operator(=) string reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) ident(__commit_transaction) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) string operator(*) instance_variable(@__transaction_level__)inline_delimiter(})>content( )delimiter(")> operator(<<) stringchar(\\n)delimiter(")> reserved(end) reserved(else) reserved(unless) instance_variable(@__transaction_names__)operator(.)ident(include?)operator(()ident(name)operator(\)) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_commit_named_transaction)operator(]) operator(%) ident(name)operator(.)ident(inspect) reserved(end) ident(ss) operator(=) stringcontent(\))delimiter(")> reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) reserved(while) instance_variable(@__transaction_names__)operator([)integer(-1)operator(]) operator(!=) ident(name) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) string operator(*) instance_variable(@__transaction_level__)inline_delimiter(})>content( )delimiter(")> operator(<<) stringchar(\\n)delimiter(")> reserved(end) ident(__commit_transaction) reserved(end) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) string operator(*) instance_variable(@__transaction_level__)inline_delimiter(})>content( )delimiter(")> operator(<<) stringchar(\\n)delimiter(")> reserved(end) ident(__commit_transaction) reserved(end) pre_constant(self) reserved(end) comment(# Alternative method for calling the transaction methods. An optional) comment(# name can be specified for named transaction support.) comment(#) comment(# #transaction(:start\):: #start_transaction) comment(# #transaction(:rewind\):: #rewind_transaction) comment(# #transaction(:abort\):: #abort_transaction) comment(# #transaction(:commit\):: #commit_transaction) comment(# #transaction(:name\):: #transaction_name) comment(# #transaction:: #transaction_open?) reserved(def) method(transaction)operator(()ident(action) operator(=) pre_constant(nil)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) reserved(case) ident(action) reserved(when) symbol(:start) ident(start_transaction)operator(()ident(name)operator(\)) reserved(when) symbol(:rewind) ident(rewind_transaction)operator(()ident(name)operator(\)) reserved(when) symbol(:abort) ident(abort_transaction)operator(()ident(name)operator(\)) reserved(when) symbol(:commit) ident(commit_transaction)operator(()ident(name)operator(\)) reserved(when) symbol(:name) ident(transaction_name) reserved(when) pre_constant(nil) ident(transaction_open?)operator(()ident(name)operator(\)) reserved(end) reserved(end) comment(# Allows specific variables to be excluded from transaction support.) comment(# Must be done after extending the object but before starting the) comment(# first transaction on the object.) comment(#) comment(# vv.transaction_exclusions << "@io") reserved(def) method(transaction_exclusions) instance_variable(@transaction_exclusions) operator(||=) operator([)operator(]) reserved(end) reserved(class) operator(<<) class(self) reserved(def) method(__common_start)operator(()ident(name)operator(,) ident(vars)operator(,) operator(&)ident(block)operator(\)) reserved(if) ident(vars)operator(.)ident(empty?) ident(raise) constant(TransactionError)operator(,) constant(Messages)operator([)symbol(:cannot_start_empty_block_transaction)operator(]) reserved(end) reserved(if) ident(block) reserved(begin) ident(vlevel) operator(=) operator({)operator(}) ident(vars)operator(.)ident(each) reserved(do) operator(|)ident(vv)operator(|) ident(vv)operator(.)ident(extend)operator(()constant(Transaction)operator(::)constant(Simple)operator(\)) ident(vv)operator(.)ident(start_transaction)operator(()ident(name)operator(\)) ident(vlevel)operator([)ident(vv)operator(.)ident(__id__)operator(]) operator(=) ident(vv)operator(.)ident(instance_variable_get)operator(()symbol(:@__transaction_level__)operator(\)) ident(vv)operator(.)ident(instance_variable_set)operator(()symbol(:@__transaction_block__)operator(,) ident(vlevel)operator([)ident(vv)operator(.)ident(__id__)operator(])operator(\)) reserved(end) reserved(yield)operator(()operator(*)ident(vars)operator(\)) reserved(rescue) constant(TransactionAborted) ident(vars)operator(.)ident(each) reserved(do) operator(|)ident(vv)operator(|) reserved(if) ident(name)operator(.)ident(nil?) reserved(and) ident(vv)operator(.)ident(transaction_open?) ident(loop) reserved(do) ident(tlevel) operator(=) ident(vv)operator(.)ident(instance_variable_get)operator(()symbol(:@__transaction_level__)operator(\)) operator(||) integer(-1) ident(vv)operator(.)ident(instance_variable_set)operator(()symbol(:@__transaction_block__)operator(,) integer(-1)operator(\)) reserved(break) reserved(if) ident(tlevel) operator(<) ident(vlevel)operator([)ident(vv)operator(.)ident(__id__)operator(]) ident(vv)operator(.)ident(abort_transaction) reserved(if) ident(vv)operator(.)ident(transaction_open?) reserved(end) reserved(elsif) ident(vv)operator(.)ident(transaction_open?)operator(()ident(name)operator(\)) ident(vv)operator(.)ident(instance_variable_set)operator(()symbol(:@__transaction_block__)operator(,) integer(-1)operator(\)) ident(vv)operator(.)ident(abort_transaction)operator(()ident(name)operator(\)) reserved(end) reserved(end) reserved(rescue) constant(TransactionCommitted) pre_constant(nil) reserved(ensure) ident(vars)operator(.)ident(each) reserved(do) operator(|)ident(vv)operator(|) reserved(if) ident(name)operator(.)ident(nil?) reserved(and) ident(vv)operator(.)ident(transaction_open?) ident(loop) reserved(do) ident(tlevel) operator(=) ident(vv)operator(.)ident(instance_variable_get)operator(()symbol(:@__transaction_level__)operator(\)) operator(||) integer(-1) reserved(break) reserved(if) ident(tlevel) operator(<) ident(vlevel)operator([)ident(vv)operator(.)ident(__id__)operator(]) ident(vv)operator(.)ident(instance_variable_set)operator(()symbol(:@__transaction_block__)operator(,) integer(-1)operator(\)) ident(vv)operator(.)ident(commit_transaction) reserved(if) ident(vv)operator(.)ident(transaction_open?) reserved(end) reserved(elsif) ident(vv)operator(.)ident(transaction_open?)operator(()ident(name)operator(\)) ident(vv)operator(.)ident(instance_variable_set)operator(()symbol(:@__transaction_block__)operator(,) integer(-1)operator(\)) ident(vv)operator(.)ident(commit_transaction)operator(()ident(name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(else) ident(vars)operator(.)ident(each) reserved(do) operator(|)ident(vv)operator(|) ident(vv)operator(.)ident(extend)operator(()constant(Transaction)operator(::)constant(Simple)operator(\)) ident(vv)operator(.)ident(start_transaction)operator(()ident(name)operator(\)) reserved(end) reserved(end) reserved(end) ident(private) symbol(:__common_start) reserved(def) method(start_named)operator(()ident(name)operator(,) operator(*)ident(vars)operator(,) operator(&)ident(block)operator(\)) ident(__common_start)operator(()ident(name)operator(,) ident(vars)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(start)operator(()operator(*)ident(vars)operator(,) operator(&)ident(block)operator(\)) ident(__common_start)operator(()pre_constant(nil)operator(,) ident(vars)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(def) method(__abort_transaction)operator(()ident(name) operator(=) pre_constant(nil)operator(\)) comment(#:nodoc:) instance_variable(@__transaction_checkpoint__) operator(=) ident(__rewind_this_transaction) reserved(if) ident(name)operator(.)ident(nil?) ident(ss) operator(=) string reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) reserved(else) ident(ss) operator(=) stringcontent(\))delimiter(")> reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) reserved(end) reserved(if) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debugging?) constant(Transaction)operator(::)constant(Simple)operator(.)ident(debug_io) operator(<<) string operator(*) instance_variable(@__transaction_level__)inline_delimiter(})>content( )delimiter(")> operator(<<) stringchar(\\n)delimiter(")> reserved(end) instance_variable(@__transaction_level__) operator(-=) integer(1) instance_variable(@__transaction_names__)operator(.)ident(pop) reserved(if) instance_variable(@__transaction_level__) operator(<) integer(1) instance_variable(@__transaction_level__) operator(=) integer(0) instance_variable(@__transaction_names__) operator(=) operator([)operator(]) reserved(end) reserved(end) constant(TRANSACTION_CHECKPOINT) operator(=) string comment(#:nodoc:) constant(SKIP_TRANSACTION_VARS) operator(=) operator([)constant(TRANSACTION_CHECKPOINT)operator(,) stringoperator(]) comment(#:nodoc:) reserved(def) method(__rewind_this_transaction) comment(#:nodoc:) ident(rr) operator(=) constant(Marshal)operator(.)ident(restore)operator(()instance_variable(@__transaction_checkpoint__)operator(\)) reserved(begin) pre_constant(self)operator(.)ident(replace)operator(()ident(rr)operator(\)) reserved(if) ident(respond_to?)operator(()symbol(:replace)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) ident(rr)operator(.)ident(instance_variables)operator(.)ident(each) reserved(do) operator(|)ident(vv)operator(|) reserved(next) reserved(if) constant(SKIP_TRANSACTION_VARS)operator(.)ident(include?)operator(()ident(vv)operator(\)) reserved(next) reserved(if) pre_constant(self)operator(.)ident(transaction_exclusions)operator(.)ident(include?)operator(()ident(vv)operator(\)) reserved(if) ident(respond_to?)operator(()symbol(:instance_variable_get)operator(\)) ident(instance_variable_set)operator(()ident(vv)operator(,) ident(rr)operator(.)ident(instance_variable_get)operator(()ident(vv)operator(\))operator(\)) reserved(else) ident(instance_eval)operator(()stringoperator(\)) reserved(end) reserved(end) ident(new_ivar) operator(=) ident(instance_variables) operator(-) ident(rr)operator(.)ident(instance_variables) operator(-) constant(SKIP_TRANSACTION_VARS) ident(new_ivar)operator(.)ident(each) reserved(do) operator(|)ident(vv)operator(|) reserved(if) ident(respond_to?)operator(()symbol(:instance_variable_set)operator(\)) ident(instance_variable_set)operator(()ident(vv)operator(,) pre_constant(nil)operator(\)) reserved(else) ident(instance_eval)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(if) ident(respond_to?)operator(()symbol(:instance_variable_get)operator(\)) ident(rr)operator(.)ident(instance_variable_get)operator(()constant(TRANSACTION_CHECKPOINT)operator(\)) reserved(else) ident(rr)operator(.)ident(instance_eval)operator(()constant(TRANSACTION_CHECKPOINT)operator(\)) reserved(end) reserved(end) reserved(def) method(__commit_transaction) comment(#:nodoc:) reserved(if) ident(respond_to?)operator(()symbol(:instance_variable_get)operator(\)) instance_variable(@__transaction_checkpoint__) operator(=) constant(Marshal)operator(.)ident(restore)operator(()instance_variable(@__transaction_checkpoint__)operator(\))operator(.)ident(instance_variable_get)operator(()constant(TRANSACTION_CHECKPOINT)operator(\)) reserved(else) instance_variable(@__transaction_checkpoint__) operator(=) constant(Marshal)operator(.)ident(restore)operator(()instance_variable(@__transaction_checkpoint__)operator(\))operator(.)ident(instance_eval)operator(()constant(TRANSACTION_CHECKPOINT)operator(\)) reserved(end) instance_variable(@__transaction_level__) operator(-=) integer(1) instance_variable(@__transaction_names__)operator(.)ident(pop) reserved(if) instance_variable(@__transaction_level__) operator(<) integer(1) instance_variable(@__transaction_level__) operator(=) integer(0) instance_variable(@__transaction_names__) operator(=) operator([)operator(]) reserved(end) reserved(end) ident(private) symbol(:__abort_transaction) ident(private) symbol(:__rewind_this_transaction) ident(private) symbol(:__commit_transaction) reserved(end) reserved(end) reserved(module) class(ActiveRecord) reserved(module) class(VERSION) comment(#:nodoc:) constant(MAJOR) operator(=) integer(1) constant(MINOR) operator(=) integer(14) constant(TINY) operator(=) integer(4) constant(STRING) operator(=) operator([)constant(MAJOR)operator(,) constant(MINOR)operator(,) constant(TINY)operator(])operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveRecord) reserved(module) class(Wrappings) comment(#:nodoc:) reserved(class) class(YamlWrapper) operator(<) constant(AbstractWrapper) comment(#:nodoc:) reserved(def) method(wrap)operator(()ident(attribute)operator(\)) ident(attribute)operator(.)ident(to_yaml) reserved(end) reserved(def) method(unwrap)operator(()ident(attribute)operator(\)) constant(YAML)operator(::)ident(load)operator(()ident(attribute)operator(\)) reserved(end) reserved(end) reserved(module) class(ClassMethods) comment(#:nodoc:) comment(# Wraps the attribute in Yaml encoding) reserved(def) method(wrap_in_yaml)operator(()operator(*)ident(attributes)operator(\)) ident(wrap_with)operator(()constant(YamlWrapper)operator(,) ident(attributes)operator(\)) reserved(end) reserved(end) reserved(end) ident(endmodule) constant(ActiveRecord) comment(# A plugin framework for wrapping attribute values before they go in and unwrapping them after they go out of the database.) comment(# This was intended primarily for YAML wrapping of arrays and hashes, but this behavior is now native in the Base class.) comment(# So for now this framework is laying dormant until a need pops up.) reserved(module) class(Wrappings) comment(#:nodoc:) reserved(module) class(ClassMethods) comment(#:nodoc:) reserved(def) method(wrap_with)operator(()ident(wrapper)operator(,) operator(*)ident(attributes)operator(\)) operator([) ident(attributes) operator(])operator(.)ident(flat)operator(.)ident(each) operator({) operator(|)ident(attribute)operator(|) ident(wrapper)operator(.)ident(wrap)operator(()ident(attribute)operator(\)) operator(}) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) reserved(class) class(AbstractWrapper) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(wrap)operator(()ident(attribute)operator(,) ident(record_binding)operator(\)) comment(#:nodoc:) stringoperator(.)ident(each) reserved(do) operator(|)ident(callback)operator(|) ident(eval) stringcontent( )inlinecontent(.new(')inlinecontent('\))delimiter(")>operator(,) ident(record_binding) reserved(end) reserved(end) reserved(def) method(initialize)operator(()ident(attribute)operator(\)) comment(#:nodoc:) instance_variable(@attribute) operator(=) ident(attribute) reserved(end) reserved(def) method(save_wrapped_attribute)operator(()ident(record)operator(\)) comment(#:nodoc:) reserved(if) ident(record)operator(.)ident(attribute_present?)operator(()instance_variable(@attribute)operator(\)) ident(record)operator(.)ident(send)operator(() stringoperator(,) instance_variable(@attribute)operator(,) ident(wrap)operator(()ident(record)operator(.)ident(send)operator(()stringoperator(,) instance_variable(@attribute)operator(\))operator(\)) operator(\)) reserved(end) reserved(end) reserved(def) method(load_wrapped_attribute)operator(()ident(record)operator(\)) comment(#:nodoc:) reserved(if) ident(record)operator(.)ident(attribute_present?)operator(()instance_variable(@attribute)operator(\)) ident(record)operator(.)ident(send)operator(() stringoperator(,) instance_variable(@attribute)operator(,) ident(unwrap)operator(()ident(record)operator(.)ident(send)operator(()stringoperator(,) instance_variable(@attribute)operator(\))operator(\)) operator(\)) reserved(end) reserved(end) ident(alias_method) symbol(:before_save)operator(,) symbol(:save_wrapped_attribute) comment(#:nodoc:) ident(alias_method) symbol(:after_save)operator(,) symbol(:load_wrapped_attribute) comment(#:nodoc:) ident(alias_method) symbol(:after_initialize)operator(,) symbol(:after_save) comment(#:nodoc:) comment(# Overwrite to implement the logic that'll take the regular attribute and wrap it.) reserved(def) method(wrap)operator(()ident(attribute)operator(\)) reserved(end) comment(# Overwrite to implement the logic that'll take the wrapped attribute and unwrap it.) reserved(def) method(unwrap)operator(()ident(attribute)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) comment(#--) comment(# Copyright (c\) 2004 David Heinemeier Hansson) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#++) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(\)) reserved(unless) global_variable($:)operator(.)ident(include?)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(\)) operator(||) global_variable($:)operator(.)ident(include?)operator(()constant(File)operator(.)ident(expand_path)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(\))operator(\)) reserved(unless) reserved(defined?)operator(()constant(ActiveSupport)operator(\)) reserved(begin) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string reserved(rescue) constant(LoadError) ident(require) string ident(require_gem) string reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(class_eval) reserved(do) ident(include) constant(ActiveRecord)operator(::)constant(Validations) ident(include) constant(ActiveRecord)operator(::)constant(Locking) ident(include) constant(ActiveRecord)operator(::)constant(Callbacks) ident(include) constant(ActiveRecord)operator(::)constant(Observing) ident(include) constant(ActiveRecord)operator(::)constant(Timestamp) ident(include) constant(ActiveRecord)operator(::)constant(Associations) ident(include) constant(ActiveRecord)operator(::)constant(Aggregations) ident(include) constant(ActiveRecord)operator(::)constant(Transactions) ident(include) constant(ActiveRecord)operator(::)constant(Reflection) ident(include) constant(ActiveRecord)operator(::)constant(Acts)operator(::)constant(Tree) ident(include) constant(ActiveRecord)operator(::)constant(Acts)operator(::)constant(List) ident(include) constant(ActiveRecord)operator(::)constant(Acts)operator(::)constant(NestedSet) ident(include) constant(ActiveRecord)operator(::)constant(Calculations) reserved(end) reserved(unless) reserved(defined?)operator(()constant(RAILS_CONNECTION_ADAPTERS)operator(\)) constant(RAILS_CONNECTION_ADAPTERS) operator(=) string reserved(end) constant(RAILS_CONNECTION_ADAPTERS)operator(.)ident(each) reserved(do) operator(|)ident(adapter)operator(|) ident(require) string operator(+) ident(adapter) operator(+) string reserved(end) ident(require) string ident(require) string comment(# The filename begins with "aaa" to ensure this is the first test.) ident(require) string reserved(class) class(AAACreateTablesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) reserved(def) method(setup) instance_variable(@base_path) operator(=) stringcontent(/fixtures/db_definitions)delimiter(")> reserved(end) reserved(def) method(test_drop_and_create_main_tables) ident(recreate) constant(ActiveRecord)operator(::)constant(Base) ident(assert) pre_constant(true) reserved(end) reserved(def) method(test_load_schema) ident(eval)operator(()constant(File)operator(.)ident(read)operator(()stringcontent(/fixtures/db_definitions/schema.rb)delimiter(")>operator(\))operator(\)) ident(assert) pre_constant(true) reserved(end) reserved(def) method(test_drop_and_create_courses_table) ident(recreate) constant(Course)operator(,) string ident(assert) pre_constant(true) reserved(end) ident(private) reserved(def) method(recreate)operator(()ident(base)operator(,) ident(suffix) operator(=) pre_constant(nil)operator(\)) ident(connection) operator(=) ident(base)operator(.)ident(connection) ident(adapter_name) operator(=) ident(connection)operator(.)ident(adapter_name)operator(.)ident(downcase) operator(+) ident(suffix)operator(.)ident(to_s) ident(execute_sql_file) stringcontent(/)inlinecontent(.drop.sql)delimiter(")>operator(,) ident(connection) ident(execute_sql_file) stringcontent(/)inlinecontent(.sql)delimiter(")>operator(,) ident(connection) reserved(end) reserved(def) method(execute_sql_file)operator(()ident(path)operator(,) ident(connection)operator(\)) comment(# OpenBase has a different format for sql files) reserved(if) ident(current_adapter?)operator(()symbol(:OpenBaseAdapter)operator(\)) reserved(then) constant(File)operator(.)ident(read)operator(()ident(path)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(each_with_index) reserved(do) operator(|)ident(sql)operator(,) ident(i)operator(|) reserved(begin) comment(# OpenBase does not support comments embedded in sql) ident(connection)operator(.)ident(execute)operator(()ident(sql)operator(,)stringdelimiter(")>operator(\)) reserved(unless) ident(sql)operator(.)ident(blank?) reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid) comment(#$stderr.puts "warning: #{$!}") reserved(end) reserved(end) reserved(else) constant(File)operator(.)ident(read)operator(()ident(path)operator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(each_with_index) reserved(do) operator(|)ident(sql)operator(,) ident(i)operator(|) reserved(begin) ident(connection)operator(.)ident(execute)operator(()stringchar(\\n)inlinechar(\\n)delimiter(")>operator(\)) reserved(unless) ident(sql)operator(.)ident(blank?) reserved(rescue) constant(ActiveRecord)operator(::)constant(StatementInvalid) comment(#$stderr.puts "warning: #{$!}") reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string constant(QUOTED_TYPE) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(quote_column_name)operator(()stringoperator(\)) reserved(unless) constant(Object)operator(.)ident(const_defined?)operator(()symbol(:QUOTED_TYPE)operator(\)) reserved(class) class(Test::Unit::TestCase) comment(#:nodoc:) pre_constant(self)operator(.)ident(fixture_path) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string pre_constant(self)operator(.)ident(use_instantiated_fixtures) operator(=) pre_constant(false) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) operator(()pre_constant(ENV)operator([)stringoperator(]) operator(!=) stringoperator(\)) reserved(def) method(create_fixtures)operator(()operator(*)ident(table_names)operator(,) operator(&)ident(block)operator(\)) constant(Fixtures)operator(.)ident(create_fixtures)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) ident(table_names)operator(,) operator({)operator(})operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(assert_date_from_db)operator(()ident(expected)operator(,) ident(actual)operator(,) ident(message) operator(=) pre_constant(nil)operator(\)) comment(# SQL Server doesn't have a separate column type just for dates, ) comment(# so the time is in the string and incorrectly formatted) reserved(if) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) ident(assert_equal) ident(expected)operator(.)ident(strftime)operator(()stringoperator(\))operator(,) ident(actual)operator(.)ident(strftime)operator(()stringoperator(\)) reserved(elsif) ident(current_adapter?)operator(()symbol(:SybaseAdapter)operator(\)) ident(assert_equal) ident(expected)operator(.)ident(to_s)operator(,) ident(actual)operator(.)ident(to_date)operator(.)ident(to_s)operator(,) ident(message) reserved(else) ident(assert_equal) ident(expected)operator(.)ident(to_s)operator(,) ident(actual)operator(.)ident(to_s)operator(,) ident(message) reserved(end) reserved(end) reserved(def) method(assert_queries)operator(()ident(num) operator(=) integer(1)operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(class)operator(.)ident(class_eval) reserved(do) pre_constant(self)operator(.)ident(query_count) operator(=) integer(0) ident(alias_method) symbol(:execute)operator(,) symbol(:execute_with_query_counting) reserved(end) reserved(yield) reserved(ensure) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(class)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:execute)operator(,) symbol(:execute_without_query_counting) reserved(end) ident(assert_equal) ident(num)operator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(query_count)operator(,) stringcontent( instead of )inlinecontent( queries were executed.)delimiter(")> reserved(end) reserved(def) method(assert_no_queries)operator(()operator(&)ident(block)operator(\)) ident(assert_queries)operator(()integer(0)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(def) method(current_adapter?)operator(()ident(type)operator(\)) constant(ActiveRecord)operator(::)constant(ConnectionAdapters)operator(.)ident(const_defined?)operator(()ident(type)operator(\)) operator(&&) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(instance_of?)operator(()constant(ActiveRecord)operator(::)constant(ConnectionAdapters)operator(.)ident(const_get)operator(()ident(type)operator(\))operator(\)) reserved(end) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(class)operator(.)ident(class_eval) reserved(do) ident(cattr_accessor) symbol(:query_count) ident(alias_method) symbol(:execute_without_query_counting)operator(,) symbol(:execute) reserved(def) method(execute_with_query_counting)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) pre_constant(self)operator(.)ident(query_count) operator(+=) integer(1) ident(execute_without_query_counting)operator(()ident(sql)operator(,) ident(name)operator(\)) reserved(end) reserved(end) comment(#ActiveRecord::Base.logger = Logger.new(STDOUT\)) comment(#ActiveRecord::Base.colorize_logging = false) ident(require) string reserved(class) class(ActiveSchemaTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) constant(ActiveRecord)operator(::)constant(ConnectionAdapters)operator(::)constant(MysqlAdapter)operator(.)ident(class_eval) reserved(do) ident(alias_method) symbol(:real_execute)operator(,) symbol(:execute) reserved(def) method(execute)operator(()ident(sql)operator(,) ident(name) operator(=) pre_constant(nil)operator(\)) reserved(return) ident(sql) reserved(end) reserved(end) reserved(end) reserved(def) method(teardown) constant(ActiveRecord)operator(::)constant(ConnectionAdapters)operator(::)constant(MysqlAdapter)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) symbol(:execute)operator(,) symbol(:real_execute)operator(\)) reserved(end) reserved(def) method(test_drop_table) ident(assert_equal) stringoperator(,) ident(drop_table)operator(()symbol(:people)operator(\)) reserved(end) reserved(def) method(test_add_column) ident(assert_equal) stringoperator(,) ident(add_column)operator(()symbol(:people)operator(,) symbol(:last_name)operator(,) symbol(:string)operator(\)) reserved(end) reserved(def) method(test_add_column_with_limit) ident(assert_equal) stringoperator(,) ident(add_column)operator(()symbol(:people)operator(,) symbol(:key)operator(,) symbol(:string)operator(,) symbol(:limit) operator(=)operator(>) integer(32)operator(\)) reserved(end) ident(private) reserved(def) method(method_missing)operator(()ident(method_symbol)operator(,) operator(*)ident(arguments)operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(send)operator(()ident(method_symbol)operator(,) operator(*)ident(arguments)operator(\)) reserved(end) ident(endrequire) string reserved(class) class(AdapterTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(setup) instance_variable(@connection) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) reserved(end) reserved(def) method(test_tables) reserved(if) instance_variable(@connection)operator(.)ident(respond_to?)operator(()symbol(:tables)operator(\)) ident(tables) operator(=) instance_variable(@connection)operator(.)ident(tables) ident(assert) ident(tables)operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(tables)operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(tables)operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(tables)operator(.)ident(include?)operator(()stringoperator(\)) reserved(else) ident(warn) stringcontent( does not respond to #tables)delimiter(")> reserved(end) reserved(end) reserved(def) method(test_indexes) ident(idx_name) operator(=) string reserved(if) instance_variable(@connection)operator(.)ident(respond_to?)operator(()symbol(:indexes)operator(\)) ident(indexes) operator(=) instance_variable(@connection)operator(.)ident(indexes)operator(()stringoperator(\)) ident(assert) ident(indexes)operator(.)ident(empty?) instance_variable(@connection)operator(.)ident(add_index) symbol(:accounts)operator(,) symbol(:firm_id)operator(,) symbol(:name) operator(=)operator(>) ident(idx_name) ident(indexes) operator(=) instance_variable(@connection)operator(.)ident(indexes)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) ident(indexes)operator(.)ident(first)operator(.)ident(table) comment(# OpenBase does not have the concept of a named index) comment(# Indexes are merely properties of columns.) ident(assert_equal) ident(idx_name)operator(,) ident(indexes)operator(.)ident(first)operator(.)ident(name) reserved(unless) ident(current_adapter?)operator(()symbol(:OpenBaseAdapter)operator(\)) ident(assert) operator(!)ident(indexes)operator(.)ident(first)operator(.)ident(unique) ident(assert_equal) operator([)stringoperator(])operator(,) ident(indexes)operator(.)ident(first)operator(.)ident(columns) reserved(else) ident(warn) stringcontent( does not respond to #indexes)delimiter(")> reserved(end) reserved(ensure) instance_variable(@connection)operator(.)ident(remove_index)operator(()symbol(:accounts)operator(,) symbol(:name) operator(=)operator(>) ident(idx_name)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(test_current_database) reserved(if) instance_variable(@connection)operator(.)ident(respond_to?)operator(()symbol(:current_database)operator(\)) ident(assert_equal) pre_constant(ENV)operator([)stringoperator(]) operator(||) stringoperator(,) instance_variable(@connection)operator(.)ident(current_database) reserved(end) reserved(end) reserved(def) method(test_table_alias) reserved(def) instance_variable(@connection)operator(.)method(test_table_alias_length)operator(()operator(\)) integer(10)operator(;) reserved(end) reserved(class) operator(<<) instance_variable(@connection) ident(alias_method) symbol(:old_table_alias_length)operator(,) symbol(:table_alias_length) ident(alias_method) symbol(:table_alias_length)operator(,) symbol(:test_table_alias_length) reserved(end) ident(assert_equal) stringoperator(,) instance_variable(@connection)operator(.)ident(table_alias_for)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) instance_variable(@connection)operator(.)ident(table_alias_for)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) instance_variable(@connection)operator(.)ident(table_alias_for)operator(()stringoperator(\)) reserved(class) operator(<<) instance_variable(@connection) ident(alias_method) symbol(:table_alias_length)operator(,) symbol(:old_table_alias_length) reserved(end) reserved(end) comment(# test resetting sequences in odd tables in postgreSQL) reserved(if) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(respond_to?)operator(()symbol(:reset_pk_sequence!)operator(\)) ident(require) string ident(require) string reserved(def) method(test_reset_empty_table_with_custom_pk) constant(Movie)operator(.)ident(delete_all) constant(Movie)operator(.)ident(connection)operator(.)ident(reset_pk_sequence!) string ident(assert_equal) integer(1)operator(,) constant(Movie)operator(.)ident(create)operator(()symbol(:name) operator(=)operator(>) stringoperator(\))operator(.)ident(id) reserved(end) reserved(def) method(test_reset_table_with_non_integer_pk) constant(Subscriber)operator(.)ident(delete_all) constant(Subscriber)operator(.)ident(connection)operator(.)ident(reset_pk_sequence!) string ident(sub) operator(=) constant(Subscriber)operator(.)ident(new)operator(()symbol(:name) operator(=)operator(>) stringoperator(\)) ident(sub)operator(.)ident(id) operator(=) string ident(assert_nothing_raised) operator({) ident(sub)operator(.)ident(save!) operator(}) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string reserved(class) class(AggregationsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:customers) reserved(def) method(test_find_single_value_object) ident(assert_equal) integer(50)operator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(balance)operator(.)ident(amount) ident(assert_kind_of) constant(Money)operator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(balance) ident(assert_equal) integer(300)operator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(balance)operator(.)ident(exchange_to)operator(()stringoperator(\))operator(.)ident(amount) reserved(end) reserved(def) method(test_find_multiple_value_object) ident(assert_equal) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(address_street)operator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(address)operator(.)ident(street) ident(assert)operator(() ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(address)operator(.)ident(close_to?)operator(()constant(Address)operator(.)ident(new)operator(()stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(address_city)operator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(address_country)operator(\))operator(\)) operator(\)) reserved(end) reserved(def) method(test_change_single_value_object) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(balance) operator(=) constant(Money)operator(.)ident(new)operator(()integer(100)operator(\)) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(save) ident(assert_equal) integer(100)operator(,) constant(Customer)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(balance)operator(.)ident(amount) reserved(end) reserved(def) method(test_immutable_value_objects) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(balance) operator(=) constant(Money)operator(.)ident(new)operator(()integer(100)operator(\)) ident(assert_raises)operator(()constant(TypeError)operator(\)) operator({) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(balance)operator(.)ident(instance_eval) operator({) instance_variable(@amount) operator(=) integer(20) operator(}) operator(}) reserved(end) reserved(def) method(test_inferred_mapping) ident(assert_equal) stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location)operator(.)ident(latitude) ident(assert_equal) stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location)operator(.)ident(longitude) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location) operator(=) constant(GpsLocation)operator(.)ident(new)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location)operator(.)ident(latitude) ident(assert_equal) stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location)operator(.)ident(longitude) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(save) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(reload) ident(assert_equal) stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location)operator(.)ident(latitude) ident(assert_equal) stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location)operator(.)ident(longitude) reserved(end) reserved(def) method(test_reloaded_instance_refreshes_aggregations) ident(assert_equal) stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location)operator(.)ident(latitude) ident(assert_equal) stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location)operator(.)ident(longitude) constant(Customer)operator(.)ident(update_all)operator(()stringoperator(\)) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(reload) ident(assert_equal) stringoperator(,) ident(customers)operator(()symbol(:david)operator(\))operator([)stringoperator(]) ident(assert_equal) constant(GpsLocation)operator(.)ident(new)operator(()stringoperator(\))operator(,) ident(customers)operator(()symbol(:david)operator(\))operator(.)ident(gps_location) reserved(end) reserved(def) method(test_gps_equality) ident(assert) constant(GpsLocation)operator(.)ident(new)operator(()stringoperator(\)) operator(==) constant(GpsLocation)operator(.)ident(new)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_gps_inequality) ident(assert) constant(GpsLocation)operator(.)ident(new)operator(()stringoperator(\)) operator(!=) constant(GpsLocation)operator(.)ident(new)operator(()stringoperator(\)) reserved(end) reserved(end) ident(require) string ident(require) stringcontent(/../lib/active_record/schema)delimiter(")> reserved(if) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(supports_migrations?) reserved(class) class(ActiveRecordSchemaTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) reserved(def) method(setup) instance_variable(@connection) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) reserved(end) reserved(def) method(teardown) instance_variable(@connection)operator(.)ident(drop_table) symbol(:fruits) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(test_schema_define) constant(ActiveRecord)operator(::)constant(Schema)operator(.)ident(define)operator(()symbol(:version) operator(=)operator(>) integer(7)operator(\)) reserved(do) ident(create_table) symbol(:fruits) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:color)operator(,) symbol(:string) ident(t)operator(.)ident(column) symbol(:fruit_size)operator(,) symbol(:string) comment(# NOTE: "size" is reserved in Oracle) ident(t)operator(.)ident(column) symbol(:texture)operator(,) symbol(:string) ident(t)operator(.)ident(column) symbol(:flavor)operator(,) symbol(:string) reserved(end) reserved(end) ident(assert_nothing_raised) operator({) instance_variable(@connection)operator(.)ident(select_all) string operator(}) ident(assert_nothing_raised) operator({) instance_variable(@connection)operator(.)ident(select_all) string operator(}) ident(assert_equal) integer(7)operator(,) instance_variable(@connection)operator(.)ident(select_one)operator(()stringoperator(\))operator([)stringoperator(])operator(.)ident(to_i) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(AssociationCallbacksTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:posts)operator(,) symbol(:authors)operator(,) symbol(:projects)operator(,) symbol(:developers) reserved(def) method(setup) instance_variable(@david) operator(=) ident(authors)operator(()symbol(:david)operator(\)) instance_variable(@thinking) operator(=) ident(posts)operator(()symbol(:thinking)operator(\)) instance_variable(@authorless) operator(=) ident(posts)operator(()symbol(:authorless)operator(\)) ident(assert) instance_variable(@david)operator(.)ident(post_log)operator(.)ident(empty?) reserved(end) reserved(def) method(test_adding_macro_callbacks) instance_variable(@david)operator(.)ident(posts_with_callbacks) operator(<<) instance_variable(@thinking) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) instance_variable(@david)operator(.)ident(posts_with_callbacks) operator(<<) instance_variable(@thinking) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) reserved(end) reserved(def) method(test_adding_with_proc_callbacks) instance_variable(@david)operator(.)ident(posts_with_proc_callbacks) operator(<<) instance_variable(@thinking) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) instance_variable(@david)operator(.)ident(posts_with_proc_callbacks) operator(<<) instance_variable(@thinking) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) reserved(end) reserved(def) method(test_removing_with_macro_callbacks) ident(first_post)operator(,) ident(second_post) operator(=) instance_variable(@david)operator(.)ident(posts_with_callbacks)operator([)integer(0)operator(,) integer(2)operator(]) instance_variable(@david)operator(.)ident(posts_with_callbacks)operator(.)ident(delete)operator(()ident(first_post)operator(\)) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) instance_variable(@david)operator(.)ident(posts_with_callbacks)operator(.)ident(delete)operator(()ident(second_post)operator(\)) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) reserved(end) reserved(def) method(test_removing_with_proc_callbacks) ident(first_post)operator(,) ident(second_post) operator(=) instance_variable(@david)operator(.)ident(posts_with_callbacks)operator([)integer(0)operator(,) integer(2)operator(]) instance_variable(@david)operator(.)ident(posts_with_proc_callbacks)operator(.)ident(delete)operator(()ident(first_post)operator(\)) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) instance_variable(@david)operator(.)ident(posts_with_proc_callbacks)operator(.)ident(delete)operator(()ident(second_post)operator(\)) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) reserved(end) reserved(def) method(test_multiple_callbacks) instance_variable(@david)operator(.)ident(posts_with_multiple_callbacks) operator(<<) instance_variable(@thinking) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) instance_variable(@david)operator(.)ident(posts_with_multiple_callbacks) operator(<<) instance_variable(@thinking) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) instance_variable(@david)operator(.)ident(post_log) reserved(end) reserved(def) method(test_has_and_belongs_to_many_add_callback) ident(david) operator(=) ident(developers)operator(()symbol(:david)operator(\)) ident(ar) operator(=) ident(projects)operator(()symbol(:active_record)operator(\)) ident(assert) ident(ar)operator(.)ident(developers_log)operator(.)ident(empty?) ident(ar)operator(.)ident(developers_with_callbacks) operator(<<) ident(david) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) ident(ar)operator(.)ident(developers_log) ident(ar)operator(.)ident(developers_with_callbacks) operator(<<) ident(david) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) ident(ar)operator(.)ident(developers_log) reserved(end) reserved(def) method(test_has_and_belongs_to_many_remove_callback) ident(david) operator(=) ident(developers)operator(()symbol(:david)operator(\)) ident(jamis) operator(=) ident(developers)operator(()symbol(:jamis)operator(\)) ident(activerecord) operator(=) ident(projects)operator(()symbol(:active_record)operator(\)) ident(assert) ident(activerecord)operator(.)ident(developers_log)operator(.)ident(empty?) ident(activerecord)operator(.)ident(developers_with_callbacks)operator(.)ident(delete)operator(()ident(david)operator(\)) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) ident(activerecord)operator(.)ident(developers_log) ident(activerecord)operator(.)ident(developers_with_callbacks)operator(.)ident(delete)operator(()ident(jamis)operator(\)) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) ident(activerecord)operator(.)ident(developers_log) reserved(end) reserved(def) method(test_has_and_belongs_to_many_remove_callback_on_clear) ident(activerecord) operator(=) ident(projects)operator(()symbol(:active_record)operator(\)) ident(assert) ident(activerecord)operator(.)ident(developers_log)operator(.)ident(empty?) reserved(if) ident(activerecord)operator(.)ident(developers_with_callbacks)operator(.)ident(size) operator(==) integer(0) ident(activerecord)operator(.)ident(developers) operator(<<) ident(developers)operator(()symbol(:david)operator(\)) ident(activerecord)operator(.)ident(developers) operator(<<) ident(developers)operator(()symbol(:jamis)operator(\)) ident(activerecord)operator(.)ident(reload) ident(assert) ident(activerecord)operator(.)ident(developers_with_callbacks)operator(.)ident(size) operator(==) integer(2) reserved(end) ident(log_array) operator(=) ident(activerecord)operator(.)ident(developers_with_callbacks)operator(.)ident(collect) operator({)operator(|)ident(d)operator(|) operator([)stringdelimiter(")>operator(,)stringdelimiter(")>operator(])operator(})operator(.)ident(flatten)operator(.)ident(sort) ident(assert) ident(activerecord)operator(.)ident(developers_with_callbacks)operator(.)ident(clear) ident(assert_equal) ident(log_array)operator(,) ident(activerecord)operator(.)ident(developers_log)operator(.)ident(sort) reserved(end) reserved(def) method(test_dont_add_if_before_callback_raises_exception) ident(assert) operator(!)instance_variable(@david)operator(.)ident(unchangable_posts)operator(.)ident(include?)operator(()instance_variable(@authorless)operator(\)) reserved(begin) instance_variable(@david)operator(.)ident(unchangable_posts) operator(<<) instance_variable(@authorless) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) reserved(end) ident(assert) instance_variable(@david)operator(.)ident(post_log)operator(.)ident(empty?) ident(assert) operator(!)instance_variable(@david)operator(.)ident(unchangable_posts)operator(.)ident(include?)operator(()instance_variable(@authorless)operator(\)) instance_variable(@david)operator(.)ident(reload) ident(assert) operator(!)instance_variable(@david)operator(.)ident(unchangable_posts)operator(.)ident(include?)operator(()instance_variable(@authorless)operator(\)) reserved(end) reserved(def) method(test_push_with_attributes) ident(david) operator(=) ident(developers)operator(()symbol(:david)operator(\)) ident(activerecord) operator(=) ident(projects)operator(()symbol(:active_record)operator(\)) ident(assert) ident(activerecord)operator(.)ident(developers_log)operator(.)ident(empty?) ident(activerecord)operator(.)ident(developers_with_callbacks)operator(.)ident(push_with_attributes)operator(()ident(david)operator(,) operator({)operator(})operator(\)) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) ident(activerecord)operator(.)ident(developers_log) ident(activerecord)operator(.)ident(developers_with_callbacks)operator(.)ident(push_with_attributes)operator(()ident(david)operator(,) operator({)operator(})operator(\)) ident(assert_equal) operator([)stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(,) stringdelimiter(")>operator(])operator(,) ident(activerecord)operator(.)ident(developers_log) reserved(end) reserved(end) ident(require) string ident(require) string reserved(class) class(AssociationInheritanceReloadTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:companies) reserved(def) method(test_set_attributes) ident(assert_equal) operator([)stringoperator(])operator(,) constant(Firm)operator(.)ident(read_inheritable_attribute)operator(()stringoperator(\))operator(,) string comment(# ActiveRecord::Base.reset_column_information_and_inheritable_attributes_for_all_subclasses) ident(remove_subclass_of)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(\)) ident(load) string ident(assert_equal) operator([)stringoperator(])operator(,) constant(Firm)operator(.)ident(read_inheritable_attribute)operator(()stringoperator(\))operator(,) string reserved(end) ident(endrequire) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(CascadedEagerLoadingTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:authors)operator(,) symbol(:mixins)operator(,) symbol(:companies)operator(,) symbol(:posts)operator(,) symbol(:categorizations)operator(,) symbol(:topics) reserved(def) method(test_eager_association_loading_with_cascaded_two_levels) ident(authors) operator(=) constant(Author)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include)operator(=)operator(>)operator({)symbol(:posts)operator(=)operator(>)symbol(:comments)operator(})operator(,) symbol(:order)operator(=)operator(>)stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(authors)operator(.)ident(size) ident(assert_equal) integer(5)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(posts)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(authors)operator([)integer(1)operator(])operator(.)ident(posts)operator(.)ident(size) ident(assert_equal) integer(9)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(posts)operator(.)ident(collect)operator({)operator(|)ident(post)operator(|) ident(post)operator(.)ident(comments)operator(.)ident(size) operator(})operator(.)ident(inject)operator(()integer(0)operator(\))operator({)operator(|)ident(sum)operator(,)ident(i)operator(|) ident(sum)operator(+)ident(i)operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_cascaded_two_levels_and_one_level) ident(authors) operator(=) constant(Author)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include)operator(=)operator(>)operator([)operator({)symbol(:posts)operator(=)operator(>)symbol(:comments)operator(})operator(,) symbol(:categorizations)operator(])operator(,) symbol(:order)operator(=)operator(>)stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(authors)operator(.)ident(size) ident(assert_equal) integer(5)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(posts)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(authors)operator([)integer(1)operator(])operator(.)ident(posts)operator(.)ident(size) ident(assert_equal) integer(9)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(posts)operator(.)ident(collect)operator({)operator(|)ident(post)operator(|) ident(post)operator(.)ident(comments)operator(.)ident(size) operator(})operator(.)ident(inject)operator(()integer(0)operator(\))operator({)operator(|)ident(sum)operator(,)ident(i)operator(|) ident(sum)operator(+)ident(i)operator(}) ident(assert_equal) integer(1)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(categorizations)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(authors)operator([)integer(1)operator(])operator(.)ident(categorizations)operator(.)ident(size) reserved(end) reserved(def) method(test_eager_association_loading_with_cascaded_two_levels_with_two_has_many_associations) ident(authors) operator(=) constant(Author)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include)operator(=)operator(>)operator({)symbol(:posts)operator(=)operator(>)operator([)symbol(:comments)operator(,) symbol(:categorizations)operator(])operator(})operator(,) symbol(:order)operator(=)operator(>)stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(authors)operator(.)ident(size) ident(assert_equal) integer(5)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(posts)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(authors)operator([)integer(1)operator(])operator(.)ident(posts)operator(.)ident(size) ident(assert_equal) integer(9)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(posts)operator(.)ident(collect)operator({)operator(|)ident(post)operator(|) ident(post)operator(.)ident(comments)operator(.)ident(size) operator(})operator(.)ident(inject)operator(()integer(0)operator(\))operator({)operator(|)ident(sum)operator(,)ident(i)operator(|) ident(sum)operator(+)ident(i)operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_cascaded_two_levels_and_self_table_reference) ident(authors) operator(=) constant(Author)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include)operator(=)operator(>)operator({)symbol(:posts)operator(=)operator(>)operator([)symbol(:comments)operator(,) symbol(:author)operator(])operator(})operator(,) symbol(:order)operator(=)operator(>)stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(authors)operator(.)ident(size) ident(assert_equal) integer(5)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(posts)operator(.)ident(size) ident(assert_equal) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(name)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(name) ident(assert_equal) operator([)ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(name)operator(])operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(posts)operator(.)ident(collect)operator({)operator(|)ident(post)operator(|) ident(post)operator(.)ident(author)operator(.)ident(name)operator(})operator(.)ident(uniq) reserved(end) reserved(def) method(test_eager_association_loading_with_cascaded_two_levels_with_condition) ident(authors) operator(=) constant(Author)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include)operator(=)operator(>)operator({)symbol(:posts)operator(=)operator(>)symbol(:comments)operator(})operator(,) symbol(:conditions)operator(=)operator(>)stringoperator(,) symbol(:order)operator(=)operator(>)stringoperator(\)) ident(assert_equal) integer(1)operator(,) ident(authors)operator(.)ident(size) ident(assert_equal) integer(5)operator(,) ident(authors)operator([)integer(0)operator(])operator(.)ident(posts)operator(.)ident(size) reserved(end) reserved(def) method(test_eager_association_loading_with_acts_as_tree) ident(roots) operator(=) constant(TreeMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include)operator(=)operator(>)stringoperator(,) symbol(:conditions)operator(=)operator(>)stringoperator(,) symbol(:order)operator(=)operator(>)stringoperator(\)) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(])operator(,) ident(roots) ident(assert_no_queries) reserved(do) ident(assert_equal) integer(2)operator(,) ident(roots)operator([)integer(0)operator(])operator(.)ident(children)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(roots)operator([)integer(1)operator(])operator(.)ident(children)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(roots)operator([)integer(2)operator(])operator(.)ident(children)operator(.)ident(size) reserved(end) reserved(end) reserved(def) method(test_eager_association_loading_with_cascaded_three_levels_by_ping_pong) ident(firms) operator(=) constant(Firm)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include)operator(=)operator(>)operator({)symbol(:account)operator(=)operator(>)operator({)symbol(:firm)operator(=)operator(>)symbol(:account)operator(})operator(})operator(,) symbol(:order)operator(=)operator(>)stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(firms)operator(.)ident(size) ident(assert_equal) ident(firms)operator(.)ident(first)operator(.)ident(account)operator(,) ident(firms)operator(.)ident(first)operator(.)ident(account)operator(.)ident(firm)operator(.)ident(account) ident(assert_equal) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account)operator(,) ident(assert_no_queries) operator({) ident(firms)operator(.)ident(first)operator(.)ident(account)operator(.)ident(firm)operator(.)ident(account) operator(}) ident(assert_equal) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account)operator(.)ident(firm)operator(.)ident(account)operator(,) ident(assert_no_queries) operator({) ident(firms)operator(.)ident(first)operator(.)ident(account)operator(.)ident(firm)operator(.)ident(account) operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_has_many_sti) ident(topics) operator(=) constant(Topic)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:replies)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)ident(topics)operator(()symbol(:first)operator(\))operator(,) ident(topics)operator(()symbol(:second)operator(\))operator(])operator(,) ident(topics) ident(assert_no_queries) reserved(do) ident(assert_equal) integer(1)operator(,) ident(topics)operator([)integer(0)operator(])operator(.)ident(replies)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(topics)operator([)integer(1)operator(])operator(.)ident(replies)operator(.)ident(size) reserved(end) reserved(end) reserved(def) method(test_eager_association_loading_with_belongs_to_sti) ident(replies) operator(=) constant(Reply)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:topic)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)ident(topics)operator(()symbol(:second)operator(\))operator(])operator(,) ident(replies) ident(assert_equal) ident(topics)operator(()symbol(:first)operator(\))operator(,) ident(assert_no_queries) operator({) ident(replies)operator(.)ident(first)operator(.)ident(topic) operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_multiple_stis_and_order) ident(author) operator(=) constant(Author)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:include) operator(=)operator(>) operator({) symbol(:posts) operator(=)operator(>) operator([) symbol(:special_comments) operator(,) symbol(:very_special_comment) operator(]) operator(})operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(authors)operator(()symbol(:david)operator(\))operator(,) ident(author) ident(assert_no_queries) reserved(do) ident(author)operator(.)ident(posts)operator(.)ident(first)operator(.)ident(special_comments) ident(author)operator(.)ident(posts)operator(.)ident(first)operator(.)ident(very_special_comment) reserved(end) reserved(end) reserved(def) method(test_eager_association_loading_of_stis_with_multiple_references) ident(authors) operator(=) constant(Author)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator({) symbol(:posts) operator(=)operator(>) operator({) symbol(:special_comments) operator(=)operator(>) operator({) symbol(:post) operator(=)operator(>) operator([) symbol(:special_comments)operator(,) symbol(:very_special_comment) operator(]) operator(}) operator(}) operator(})operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)ident(authors)operator(()symbol(:david)operator(\))operator(])operator(,) ident(authors) ident(assert_no_queries) reserved(do) ident(authors)operator(.)ident(first)operator(.)ident(posts)operator(.)ident(first)operator(.)ident(special_comments)operator(.)ident(first)operator(.)ident(post)operator(.)ident(special_comments) ident(authors)operator(.)ident(first)operator(.)ident(posts)operator(.)ident(first)operator(.)ident(special_comments)operator(.)ident(first)operator(.)ident(post)operator(.)ident(very_special_comment) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(AssociationsExtensionsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:projects)operator(,) symbol(:developers)operator(,) symbol(:developers_projects)operator(,) symbol(:comments)operator(,) symbol(:posts) reserved(def) method(test_extension_on_has_many) ident(assert_equal) ident(comments)operator(()symbol(:more_greetings)operator(\))operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(comments)operator(.)ident(find_most_recent) reserved(end) reserved(def) method(test_extension_on_habtm) ident(assert_equal) ident(projects)operator(()symbol(:action_controller)operator(\))operator(,) ident(developers)operator(()symbol(:david)operator(\))operator(.)ident(projects)operator(.)ident(find_most_recent) reserved(end) reserved(def) method(test_named_extension_on_habtm) ident(assert_equal) ident(projects)operator(()symbol(:action_controller)operator(\))operator(,) ident(developers)operator(()symbol(:david)operator(\))operator(.)ident(projects_extended_by_name)operator(.)ident(find_most_recent) reserved(end) reserved(def) method(test_marshalling_extensions) ident(david) operator(=) ident(developers)operator(()symbol(:david)operator(\)) ident(assert_equal) ident(projects)operator(()symbol(:action_controller)operator(\))operator(,) ident(david)operator(.)ident(projects)operator(.)ident(find_most_recent) ident(david) operator(=) constant(Marshal)operator(.)ident(load)operator(()constant(Marshal)operator(.)ident(dump)operator(()ident(david)operator(\))operator(\)) ident(assert_equal) ident(projects)operator(()symbol(:action_controller)operator(\))operator(,) ident(david)operator(.)ident(projects)operator(.)ident(find_most_recent) reserved(end) reserved(def) method(test_marshalling_named_extensions) ident(david) operator(=) ident(developers)operator(()symbol(:david)operator(\)) ident(assert_equal) ident(projects)operator(()symbol(:action_controller)operator(\))operator(,) ident(david)operator(.)ident(projects_extended_by_name)operator(.)ident(find_most_recent) ident(david) operator(=) constant(Marshal)operator(.)ident(load)operator(()constant(Marshal)operator(.)ident(dump)operator(()ident(david)operator(\))operator(\)) ident(assert_equal) ident(projects)operator(()symbol(:action_controller)operator(\))operator(,) ident(david)operator(.)ident(projects_extended_by_name)operator(.)ident(find_most_recent) reserved(end) ident(endrequire) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(EagerAssociationTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:posts)operator(,) symbol(:comments)operator(,) symbol(:authors)operator(,) symbol(:categories)operator(,) symbol(:categories_posts)operator(,) symbol(:companies)operator(,) symbol(:accounts)operator(,) symbol(:tags)operator(,) symbol(:people)operator(,) symbol(:readers) reserved(def) method(test_loading_with_one_association) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:comments)operator(\)) ident(post) operator(=) ident(posts)operator(.)ident(find) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(id) operator(==) integer(1) operator(}) ident(assert_equal) integer(2)operator(,) ident(post)operator(.)ident(comments)operator(.)ident(size) ident(assert) ident(post)operator(.)ident(comments)operator(.)ident(include?)operator(()ident(comments)operator(()symbol(:greetings)operator(\))operator(\)) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:include) operator(=)operator(>) symbol(:comments)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(post)operator(.)ident(comments)operator(.)ident(size) ident(assert) ident(post)operator(.)ident(comments)operator(.)ident(include?)operator(()ident(comments)operator(()symbol(:greetings)operator(\))operator(\)) reserved(end) reserved(def) method(test_loading_conditions_with_or) ident(posts) operator(=) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(posts)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:comments)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent( = 'SpecialComment')delimiter(")>operator(\)) ident(assert_nil) ident(posts)operator(.)ident(detect) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(author_id) operator(!=) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(id) operator(})operator(,) string reserved(end) reserved(def) method(test_with_ordering) ident(list) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:comments)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) operator([)symbol(:eager_other)operator(,) symbol(:sti_habtm)operator(,) symbol(:sti_post_and_comments)operator(,) symbol(:sti_comments)operator(,) symbol(:authorless)operator(,) symbol(:thinking)operator(,) symbol(:welcome) operator(])operator(.)ident(each_with_index) reserved(do) operator(|)ident(post)operator(,) ident(index)operator(|) ident(assert_equal) ident(posts)operator(()ident(post)operator(\))operator(,) ident(list)operator([)ident(index)operator(]) reserved(end) reserved(end) reserved(def) method(test_loading_with_multiple_associations) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:comments)operator(,) symbol(:author)operator(,) symbol(:categories) operator(])operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(first)operator(.)ident(comments)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(first)operator(.)ident(categories)operator(.)ident(size) ident(assert) ident(posts)operator(.)ident(first)operator(.)ident(comments)operator(.)ident(include?)operator(()ident(comments)operator(()symbol(:greetings)operator(\))operator(\)) reserved(end) reserved(def) method(test_loading_from_an_association) ident(posts) operator(=) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(posts)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:comments)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(first)operator(.)ident(comments)operator(.)ident(size) reserved(end) reserved(def) method(test_loading_with_no_associations) ident(assert_nil) constant(Post)operator(.)ident(find)operator(()ident(posts)operator(()symbol(:authorless)operator(\))operator(.)ident(id)operator(,) symbol(:include) operator(=)operator(>) symbol(:author)operator(\))operator(.)ident(author) reserved(end) reserved(def) method(test_eager_association_loading_with_belongs_to) ident(comments) operator(=) constant(Comment)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:post)operator(\)) ident(assert_equal) integer(10)operator(,) ident(comments)operator(.)ident(length) ident(titles) operator(=) ident(comments)operator(.)ident(map) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(post)operator(.)ident(title) operator(}) ident(assert) ident(titles)operator(.)ident(include?)operator(()ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(title)operator(\)) ident(assert) ident(titles)operator(.)ident(include?)operator(()ident(posts)operator(()symbol(:sti_post_and_comments)operator(\))operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_eager_association_loading_with_belongs_to_and_limit) ident(comments) operator(=) constant(Comment)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:post)operator(,) symbol(:limit) operator(=)operator(>) integer(5)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(5)operator(,) ident(comments)operator(.)ident(length) ident(assert_equal) operator([)integer(1)operator(,)integer(2)operator(,)integer(3)operator(,)integer(5)operator(,)integer(6)operator(])operator(,) ident(comments)operator(.)ident(collect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_belongs_to_and_limit_and_conditions) ident(comments) operator(=) constant(Comment)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:post)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(3)operator(,) ident(comments)operator(.)ident(length) ident(assert_equal) operator([)integer(5)operator(,)integer(6)operator(,)integer(7)operator(])operator(,) ident(comments)operator(.)ident(collect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_belongs_to_and_limit_and_offset) ident(comments) operator(=) constant(Comment)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:post)operator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(2)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(3)operator(,) ident(comments)operator(.)ident(length) ident(assert_equal) operator([)integer(3)operator(,)integer(5)operator(,)integer(6)operator(])operator(,) ident(comments)operator(.)ident(collect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_belongs_to_and_limit_and_offset_and_conditions) ident(comments) operator(=) constant(Comment)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:post)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(1)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(3)operator(,) ident(comments)operator(.)ident(length) ident(assert_equal) operator([)integer(6)operator(,)integer(7)operator(,)integer(8)operator(])operator(,) ident(comments)operator(.)ident(collect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_belongs_to_and_limit_and_offset_and_conditions_array) ident(comments) operator(=) constant(Comment)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:post)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,)integer(4)operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(1)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(3)operator(,) ident(comments)operator(.)ident(length) ident(assert_equal) operator([)integer(6)operator(,)integer(7)operator(,)integer(8)operator(])operator(,) ident(comments)operator(.)ident(collect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_belongs_to_and_limit_and_multiple_associations) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([)symbol(:author)operator(,) symbol(:very_special_comment)operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(1)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) ident(posts)operator(.)ident(length) ident(assert_equal) operator([)integer(1)operator(])operator(,) ident(posts)operator(.)ident(collect) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_eager_association_loading_with_belongs_to_and_limit_and_offset_and_multiple_associations) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([)symbol(:author)operator(,) symbol(:very_special_comment)operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(1)operator(,) symbol(:offset) operator(=)operator(>) integer(1)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) ident(posts)operator(.)ident(length) ident(assert_equal) operator([)integer(2)operator(])operator(,) ident(posts)operator(.)ident(collect) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_eager_with_has_many_through) ident(posts_with_comments) operator(=) ident(people)operator(()symbol(:michael)operator(\))operator(.)ident(posts)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:comments) operator(\)) ident(posts_with_author) operator(=) ident(people)operator(()symbol(:michael)operator(\))operator(.)ident(posts)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:author) operator(\)) ident(posts_with_comments_and_author) operator(=) ident(people)operator(()symbol(:michael)operator(\))operator(.)ident(posts)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:comments)operator(,) symbol(:author) operator(])operator(\)) ident(assert_equal) integer(2)operator(,) ident(posts_with_comments)operator(.)ident(inject)operator(()integer(0)operator(\)) operator({) operator(|)ident(sum)operator(,) ident(post)operator(|) ident(sum) operator(+=) ident(post)operator(.)ident(comments)operator(.)ident(size) operator(}) ident(assert_equal) ident(authors)operator(()symbol(:david)operator(\))operator(,) ident(assert_no_queries) operator({) ident(posts_with_author)operator(.)ident(first)operator(.)ident(author) operator(}) ident(assert_equal) ident(authors)operator(()symbol(:david)operator(\))operator(,) ident(assert_no_queries) operator({) ident(posts_with_comments_and_author)operator(.)ident(first)operator(.)ident(author) operator(}) reserved(end) reserved(def) method(test_eager_with_has_many_and_limit) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:author)operator(,) symbol(:comments) operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(size) ident(assert_equal) integer(3)operator(,) ident(posts)operator(.)ident(inject)operator(()integer(0)operator(\)) operator({) operator(|)ident(sum)operator(,) ident(post)operator(|) ident(sum) operator(+=) ident(post)operator(.)ident(comments)operator(.)ident(size) operator(}) reserved(end) reserved(def) method(test_eager_with_has_many_and_limit_and_conditions) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:author)operator(,) symbol(:comments) operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(size) ident(assert_equal) operator([)integer(4)operator(,)integer(5)operator(])operator(,) ident(posts)operator(.)ident(collect) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_eager_with_has_many_and_limit_and_conditions_array) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:author)operator(,) symbol(:comments) operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:conditions) operator(=)operator(>) operator([) stringoperator(,) string operator(])operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(size) ident(assert_equal) operator([)integer(4)operator(,)integer(5)operator(])operator(,) ident(posts)operator(.)ident(collect) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_eager_with_has_many_and_limit_and_conditions_array_on_the_eagers) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:author)operator(,) symbol(:comments) operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:conditions) operator(=)operator(>) operator([) stringoperator(,) string operator(])operator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(size) ident(count) operator(=) constant(Post)operator(.)ident(count)operator(()symbol(:include) operator(=)operator(>) operator([) symbol(:author)operator(,) symbol(:comments) operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:conditions) operator(=)operator(>) operator([) stringoperator(,) string operator(])operator(\)) ident(assert_equal) ident(count)operator(,) ident(posts)operator(.)ident(size) reserved(end) reserved(def) method(test_eager_with_has_many_and_limit_ond_high_offset) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:author)operator(,) symbol(:comments) operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:offset) operator(=)operator(>) integer(10)operator(,) symbol(:conditions) operator(=)operator(>) operator([) stringoperator(,) string operator(])operator(\)) ident(assert_equal) integer(0)operator(,) ident(posts)operator(.)ident(size) reserved(end) reserved(def) method(test_count_eager_with_has_many_and_limit_ond_high_offset) ident(posts) operator(=) constant(Post)operator(.)ident(count)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:author)operator(,) symbol(:comments) operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:offset) operator(=)operator(>) integer(10)operator(,) symbol(:conditions) operator(=)operator(>) operator([) stringoperator(,) string operator(])operator(\)) ident(assert_equal) integer(0)operator(,) ident(posts) reserved(end) reserved(def) method(test_eager_with_has_many_and_limit_with_no_results) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:author)operator(,) symbol(:comments) operator(])operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(0)operator(,) ident(posts)operator(.)ident(size) reserved(end) reserved(def) method(test_eager_with_has_and_belongs_to_many_and_limit) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:categories)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(\)) ident(assert_equal) integer(3)operator(,) ident(posts)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(posts)operator([)integer(0)operator(])operator(.)ident(categories)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(posts)operator([)integer(1)operator(])operator(.)ident(categories)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(posts)operator([)integer(2)operator(])operator(.)ident(categories)operator(.)ident(size) ident(assert) ident(posts)operator([)integer(0)operator(])operator(.)ident(categories)operator(.)ident(include?)operator(()ident(categories)operator(()symbol(:technology)operator(\))operator(\)) ident(assert) ident(posts)operator([)integer(1)operator(])operator(.)ident(categories)operator(.)ident(include?)operator(()ident(categories)operator(()symbol(:general)operator(\))operator(\)) reserved(end) reserved(def) method(test_eager_with_has_many_and_limit_and_conditions_on_the_eagers) ident(posts) operator(=) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(posts)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:comments)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent(= 'SpecialComment')delimiter(")>operator(,) symbol(:limit) operator(=)operator(>) integer(2) operator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(size) ident(count) operator(=) constant(Post)operator(.)ident(count)operator(() symbol(:include) operator(=)operator(>) operator([) symbol(:comments)operator(,) symbol(:author) operator(])operator(,) symbol(:conditions) operator(=)operator(>) stringcontent(= 'SpecialComment'\))delimiter(")>operator(,) symbol(:limit) operator(=)operator(>) integer(2) operator(\)) ident(assert_equal) ident(count)operator(,) ident(posts)operator(.)ident(size) reserved(end) reserved(def) method(test_eager_with_has_many_and_limit_and_scoped_conditions_on_the_eagers) ident(posts) operator(=) pre_constant(nil) constant(Post)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) symbol(:comments)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent(= 'SpecialComment')delimiter(")> operator(})operator(\)) reserved(do) ident(posts) operator(=) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(posts)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(size) reserved(end) constant(Post)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) operator([) symbol(:comments)operator(,) symbol(:author) operator(])operator(,) symbol(:conditions) operator(=)operator(>) stringcontent(= 'SpecialComment'\))delimiter(")> operator(})operator(\)) reserved(do) ident(count) operator(=) constant(Post)operator(.)ident(count)operator(()symbol(:limit) operator(=)operator(>) integer(2)operator(\)) ident(assert_equal) ident(count)operator(,) ident(posts)operator(.)ident(size) reserved(end) reserved(end) reserved(def) method(test_eager_with_has_many_and_limit_and_scoped_and_explicit_conditions_on_the_eagers) constant(Post)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(posts) operator(=) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(posts)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:comments)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent(= 'SpecialComment')delimiter(")>operator(,) symbol(:limit) operator(=)operator(>) integer(2) operator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator(.)ident(size) ident(count) operator(=) constant(Post)operator(.)ident(count)operator(() symbol(:include) operator(=)operator(>) operator([) symbol(:comments)operator(,) symbol(:author) operator(])operator(,) symbol(:conditions) operator(=)operator(>) stringcontent(= 'SpecialComment'\))delimiter(")>operator(,) symbol(:limit) operator(=)operator(>) integer(2) operator(\)) ident(assert_equal) ident(count)operator(,) ident(posts)operator(.)ident(size) reserved(end) reserved(end) reserved(def) method(test_eager_association_loading_with_habtm) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:categories)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(posts)operator([)integer(0)operator(])operator(.)ident(categories)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(posts)operator([)integer(1)operator(])operator(.)ident(categories)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(posts)operator([)integer(2)operator(])operator(.)ident(categories)operator(.)ident(size) ident(assert) ident(posts)operator([)integer(0)operator(])operator(.)ident(categories)operator(.)ident(include?)operator(()ident(categories)operator(()symbol(:technology)operator(\))operator(\)) ident(assert) ident(posts)operator([)integer(1)operator(])operator(.)ident(categories)operator(.)ident(include?)operator(()ident(categories)operator(()symbol(:general)operator(\))operator(\)) reserved(end) reserved(def) method(test_eager_with_inheritance) ident(posts) operator(=) constant(SpecialPost)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:comments) operator(])operator(\)) reserved(end) reserved(def) method(test_eager_has_one_with_association_inheritance) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()integer(4)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:very_special_comment) operator(])operator(\)) ident(assert_equal) stringoperator(,) ident(post)operator(.)ident(very_special_comment)operator(.)ident(class)operator(.)ident(to_s) reserved(end) reserved(def) method(test_eager_has_many_with_association_inheritance) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()integer(4)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:special_comments) operator(])operator(\)) ident(post)operator(.)ident(special_comments)operator(.)ident(each) reserved(do) operator(|)ident(special_comment)operator(|) ident(assert_equal) stringoperator(,) ident(special_comment)operator(.)ident(class)operator(.)ident(to_s) reserved(end) reserved(end) reserved(def) method(test_eager_habtm_with_association_inheritance) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()integer(6)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:special_categories) operator(])operator(\)) ident(assert_equal) integer(1)operator(,) ident(post)operator(.)ident(special_categories)operator(.)ident(size) ident(post)operator(.)ident(special_categories)operator(.)ident(each) reserved(do) operator(|)ident(special_category)operator(|) ident(assert_equal) stringoperator(,) ident(special_category)operator(.)ident(class)operator(.)ident(to_s) reserved(end) reserved(end) reserved(def) method(test_eager_with_has_one_dependent_does_not_destroy_dependent) ident(assert_not_nil) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account) ident(f) operator(=) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:include) operator(=)operator(>) symbol(:account)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_not_nil) ident(f)operator(.)ident(account) ident(assert_equal) ident(companies)operator(()symbol(:first_firm)operator(,) symbol(:reload)operator(\))operator(.)ident(account)operator(,) ident(f)operator(.)ident(account) reserved(end) reserved(def) method(test_eager_with_invalid_association_reference) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(ConfigurationError)operator(,) string :monkeys)delimiter(")>operator(\)) operator({) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()integer(6)operator(,) symbol(:include)operator(=)operator(>) symbol(:monkeys) operator(\)) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(ConfigurationError)operator(,) string :monkeys)delimiter(")>operator(\)) operator({) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()integer(6)operator(,) symbol(:include)operator(=)operator(>)operator([) symbol(:monkeys) operator(])operator(\)) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(ConfigurationError)operator(,) string :monkeys)delimiter(")>operator(\)) operator({) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()integer(6)operator(,) symbol(:include)operator(=)operator(>)operator([) string operator(])operator(\)) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(ConfigurationError)operator(,) string :monkeys, :elephants)delimiter(")>operator(\)) operator({) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()integer(6)operator(,) symbol(:include)operator(=)operator(>)operator([) symbol(:monkeys)operator(,) symbol(:elephants) operator(])operator(\)) operator(}) reserved(end) reserved(def) method(find_all_ordered)operator(()ident(className)operator(,) ident(include)operator(=)pre_constant(nil)operator(\)) ident(className)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order)operator(=)operator(>)stringcontent(.)inlinedelimiter(")>operator(,) symbol(:include)operator(=)operator(>)ident(include)operator(\)) reserved(end) reserved(def) method(test_eager_with_multiple_associations_with_same_table_has_many_and_habtm) comment(# Eager includes of has many and habtm associations aren't necessarily sorted in the same way) reserved(def) method(assert_equal_after_sort)operator(()ident(item1)operator(,) ident(item2)operator(,) ident(item3) operator(=) pre_constant(nil)operator(\)) ident(assert_equal)operator(()ident(item1)operator(.)ident(sort)operator({)operator(|)ident(a)operator(,)ident(b)operator(|) ident(a)operator(.)ident(id) operator(<=>) ident(b)operator(.)ident(id)operator(})operator(,) ident(item2)operator(.)ident(sort)operator({)operator(|)ident(a)operator(,)ident(b)operator(|) ident(a)operator(.)ident(id) operator(<=>) ident(b)operator(.)ident(id)operator(})operator(\)) ident(assert_equal)operator(()ident(item3)operator(.)ident(sort)operator({)operator(|)ident(a)operator(,)ident(b)operator(|) ident(a)operator(.)ident(id) operator(<=>) ident(b)operator(.)ident(id)operator(})operator(,) ident(item2)operator(.)ident(sort)operator({)operator(|)ident(a)operator(,)ident(b)operator(|) ident(a)operator(.)ident(id) operator(<=>) ident(b)operator(.)ident(id)operator(})operator(\)) reserved(if) ident(item3) reserved(end) comment(# Test regular association, association with conditions, association with) comment(# STI, and association with conditions assured not to be true) ident(post_types) operator(=) operator([)symbol(:posts)operator(,) symbol(:hello_posts)operator(,) symbol(:special_posts)operator(,) symbol(:nonexistent_posts)operator(]) comment(# test both has_many and has_and_belongs_to_many) operator([)constant(Author)operator(,) constant(Category)operator(])operator(.)ident(each) reserved(do) operator(|)ident(className)operator(|) ident(d1) operator(=) ident(find_all_ordered)operator(()ident(className)operator(\)) comment(# test including all post types at once) ident(d2) operator(=) ident(find_all_ordered)operator(()ident(className)operator(,) ident(post_types)operator(\)) ident(d1)operator(.)ident(each_index) reserved(do) operator(|)ident(i)operator(|) ident(assert_equal)operator(()ident(d1)operator([)ident(i)operator(])operator(,) ident(d2)operator([)ident(i)operator(])operator(\)) ident(assert_equal_after_sort)operator(()ident(d1)operator([)ident(i)operator(])operator(.)ident(posts)operator(,) ident(d2)operator([)ident(i)operator(])operator(.)ident(posts)operator(\)) ident(post_types)operator([)integer(1)operator(..)integer(-1)operator(])operator(.)ident(each) reserved(do) operator(|)ident(post_type)operator(|) comment(# test including post_types together) ident(d3) operator(=) ident(find_all_ordered)operator(()ident(className)operator(,) operator([)symbol(:posts)operator(,) ident(post_type)operator(])operator(\)) ident(assert_equal)operator(()ident(d1)operator([)ident(i)operator(])operator(,) ident(d3)operator([)ident(i)operator(])operator(\)) ident(assert_equal_after_sort)operator(()ident(d1)operator([)ident(i)operator(])operator(.)ident(posts)operator(,) ident(d3)operator([)ident(i)operator(])operator(.)ident(posts)operator(\)) ident(assert_equal_after_sort)operator(()ident(d1)operator([)ident(i)operator(])operator(.)ident(send)operator(()ident(post_type)operator(\))operator(,) ident(d2)operator([)ident(i)operator(])operator(.)ident(send)operator(()ident(post_type)operator(\))operator(,) ident(d3)operator([)ident(i)operator(])operator(.)ident(send)operator(()ident(post_type)operator(\))operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(def) method(test_eager_with_multiple_associations_with_same_table_has_one) ident(d1) operator(=) ident(find_all_ordered)operator(()constant(Firm)operator(\)) ident(d2) operator(=) ident(find_all_ordered)operator(()constant(Firm)operator(,) symbol(:account)operator(\)) ident(d1)operator(.)ident(each_index) reserved(do) operator(|)ident(i)operator(|) ident(assert_equal)operator(()ident(d1)operator([)ident(i)operator(])operator(,) ident(d2)operator([)ident(i)operator(])operator(\)) ident(assert_equal)operator(()ident(d1)operator([)ident(i)operator(])operator(.)ident(account)operator(,) ident(d2)operator([)ident(i)operator(])operator(.)ident(account)operator(\)) reserved(end) reserved(end) reserved(def) method(test_eager_with_multiple_associations_with_same_table_belongs_to) ident(firm_types) operator(=) operator([)symbol(:firm)operator(,) symbol(:firm_with_basic_id)operator(,) symbol(:firm_with_other_name)operator(,) symbol(:firm_with_condition)operator(]) ident(d1) operator(=) ident(find_all_ordered)operator(()constant(Client)operator(\)) ident(d2) operator(=) ident(find_all_ordered)operator(()constant(Client)operator(,) ident(firm_types)operator(\)) ident(d1)operator(.)ident(each_index) reserved(do) operator(|)ident(i)operator(|) ident(assert_equal)operator(()ident(d1)operator([)ident(i)operator(])operator(,) ident(d2)operator([)ident(i)operator(])operator(\)) ident(firm_types)operator(.)ident(each) operator({) operator(|)ident(type)operator(|) ident(assert_equal)operator(()ident(d1)operator([)ident(i)operator(])operator(.)ident(send)operator(()ident(type)operator(\))operator(,) ident(d2)operator([)ident(i)operator(])operator(.)ident(send)operator(()ident(type)operator(\))operator(\)) operator(}) reserved(end) reserved(end) reserved(def) method(test_eager_with_valid_association_as_string_not_symbol) ident(assert_nothing_raised) operator({) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) stringoperator(\)) operator(}) reserved(end) reserved(def) method(test_preconfigured_includes_with_belongs_to) ident(author) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(author_with_posts) ident(assert_equal) integer(5)operator(,) ident(author)operator(.)ident(posts)operator(.)ident(size) reserved(end) reserved(def) method(test_preconfigured_includes_with_has_one) ident(comment) operator(=) ident(posts)operator(()symbol(:sti_comments)operator(\))operator(.)ident(very_special_comment_with_post) ident(assert_equal) ident(posts)operator(()symbol(:sti_comments)operator(\))operator(,) ident(comment)operator(.)ident(post) reserved(end) reserved(def) method(test_preconfigured_includes_with_has_many) ident(posts) operator(=) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(posts_with_comments) ident(one) operator(=) ident(posts)operator(.)ident(detect) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(id) operator(==) integer(1) operator(}) ident(assert_equal) integer(5)operator(,) ident(posts)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(one)operator(.)ident(comments)operator(.)ident(size) reserved(end) reserved(def) method(test_preconfigured_includes_with_habtm) ident(posts) operator(=) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(posts_with_categories) ident(one) operator(=) ident(posts)operator(.)ident(detect) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(id) operator(==) integer(1) operator(}) ident(assert_equal) integer(5)operator(,) ident(posts)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(one)operator(.)ident(categories)operator(.)ident(size) reserved(end) reserved(def) method(test_preconfigured_includes_with_has_many_and_habtm) ident(posts) operator(=) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(posts_with_comments_and_categories) ident(one) operator(=) ident(posts)operator(.)ident(detect) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(id) operator(==) integer(1) operator(}) ident(assert_equal) integer(5)operator(,) ident(posts)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(one)operator(.)ident(comments)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(one)operator(.)ident(categories)operator(.)ident(size) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(AssociationsJoinModelTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) ident(fixtures) symbol(:posts)operator(,) symbol(:authors)operator(,) symbol(:categories)operator(,) symbol(:categorizations)operator(,) symbol(:comments)operator(,) symbol(:tags)operator(,) symbol(:taggings)operator(,) symbol(:author_favorites) reserved(def) method(test_has_many) ident(assert_equal) ident(categories)operator(()symbol(:general)operator(\))operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(categories)operator(.)ident(first) reserved(end) reserved(def) method(test_has_many_inherited) ident(assert_equal) ident(categories)operator(()symbol(:sti_test)operator(\))operator(,) ident(authors)operator(()symbol(:mary)operator(\))operator(.)ident(categories)operator(.)ident(first) reserved(end) reserved(def) method(test_inherited_has_many) ident(assert_equal) ident(authors)operator(()symbol(:mary)operator(\))operator(,) ident(categories)operator(()symbol(:sti_test)operator(\))operator(.)ident(authors)operator(.)ident(first) reserved(end) reserved(def) method(test_polymorphic_has_many) ident(assert_equal) ident(taggings)operator(()symbol(:welcome_general)operator(\))operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(first) reserved(end) reserved(def) method(test_polymorphic_has_one) ident(assert_equal) ident(taggings)operator(()symbol(:welcome_general)operator(\))operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tagging) reserved(end) reserved(def) method(test_polymorphic_belongs_to) ident(assert_equal) ident(posts)operator(()symbol(:welcome)operator(\))operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(first)operator(.)ident(taggable) reserved(end) reserved(def) method(test_polymorphic_has_many_going_through_join_model) ident(assert_equal) ident(tags)operator(()symbol(:general)operator(\))operator(,) ident(tag) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tags)operator(.)ident(first) ident(assert_no_queries) reserved(do) ident(tag)operator(.)ident(tagging) reserved(end) reserved(end) reserved(def) method(test_count_polymorphic_has_many) ident(assert_equal) integer(1)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(count) ident(assert_equal) integer(1)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tags)operator(.)ident(count) reserved(end) reserved(def) method(test_polymorphic_has_many_going_through_join_model_with_find) ident(assert_equal) ident(tags)operator(()symbol(:general)operator(\))operator(,) ident(tag) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tags)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(assert_no_queries) reserved(do) ident(tag)operator(.)ident(tagging) reserved(end) reserved(end) reserved(def) method(test_polymorphic_has_many_going_through_join_model_with_include_on_source_reflection) ident(assert_equal) ident(tags)operator(()symbol(:general)operator(\))operator(,) ident(tag) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(funky_tags)operator(.)ident(first) ident(assert_no_queries) reserved(do) ident(tag)operator(.)ident(tagging) reserved(end) reserved(end) reserved(def) method(test_polymorphic_has_many_going_through_join_model_with_include_on_source_reflection_with_find) ident(assert_equal) ident(tags)operator(()symbol(:general)operator(\))operator(,) ident(tag) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(funky_tags)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(assert_no_queries) reserved(do) ident(tag)operator(.)ident(tagging) reserved(end) reserved(end) reserved(def) method(test_polymorphic_has_many_going_through_join_model_with_disabled_include) ident(assert_equal) ident(tags)operator(()symbol(:general)operator(\))operator(,) ident(tag) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tags)operator(.)ident(add_joins_and_select)operator(.)ident(first) ident(assert_queries) integer(1) reserved(do) ident(tag)operator(.)ident(tagging) reserved(end) reserved(end) reserved(def) method(test_polymorphic_has_many_going_through_join_model_with_custom_select_and_joins) ident(assert_equal) ident(tags)operator(()symbol(:general)operator(\))operator(,) ident(tag) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tags)operator(.)ident(add_joins_and_select)operator(.)ident(first) ident(tag)operator(.)ident(author_id) reserved(end) reserved(def) method(test_polymorphic_has_many_going_through_join_model_with_custom_foreign_key) ident(assert_equal) ident(tags)operator(()symbol(:misc)operator(\))operator(,) ident(taggings)operator(()symbol(:welcome_general)operator(\))operator(.)ident(super_tag) ident(assert_equal) ident(tags)operator(()symbol(:misc)operator(\))operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(super_tags)operator(.)ident(first) reserved(end) reserved(def) method(test_polymorphic_has_many_create_model_with_inheritance_and_custom_base_class) ident(post) operator(=) constant(SubStiPost)operator(.)ident(create) symbol(:title) operator(=)operator(>) stringoperator(,) symbol(:body) operator(=)operator(>) string ident(assert_instance_of) constant(SubStiPost)operator(,) ident(post) ident(tagging) operator(=) ident(tags)operator(()symbol(:misc)operator(\))operator(.)ident(taggings)operator(.)ident(create)operator(()symbol(:taggable) operator(=)operator(>) ident(post)operator(\)) ident(assert_equal) stringoperator(,) ident(tagging)operator(.)ident(taggable_type) reserved(end) reserved(def) method(test_polymorphic_has_many_going_through_join_model_with_inheritance) ident(assert_equal) ident(tags)operator(()symbol(:general)operator(\))operator(,) ident(posts)operator(()symbol(:thinking)operator(\))operator(.)ident(tags)operator(.)ident(first) reserved(end) reserved(def) method(test_polymorphic_has_many_going_through_join_model_with_inheritance_with_custom_class_name) ident(assert_equal) ident(tags)operator(()symbol(:general)operator(\))operator(,) ident(posts)operator(()symbol(:thinking)operator(\))operator(.)ident(funky_tags)operator(.)ident(first) reserved(end) reserved(def) method(test_polymorphic_has_many_create_model_with_inheritance) ident(post) operator(=) ident(posts)operator(()symbol(:thinking)operator(\)) ident(assert_instance_of) constant(SpecialPost)operator(,) ident(post) ident(tagging) operator(=) ident(tags)operator(()symbol(:misc)operator(\))operator(.)ident(taggings)operator(.)ident(create)operator(()symbol(:taggable) operator(=)operator(>) ident(post)operator(\)) ident(assert_equal) stringoperator(,) ident(tagging)operator(.)ident(taggable_type) reserved(end) reserved(def) method(test_polymorphic_has_one_create_model_with_inheritance) ident(tagging) operator(=) ident(tags)operator(()symbol(:misc)operator(\))operator(.)ident(create_tagging)operator(()symbol(:taggable) operator(=)operator(>) ident(posts)operator(()symbol(:thinking)operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(tagging)operator(.)ident(taggable_type) reserved(end) reserved(def) method(test_set_polymorphic_has_many) ident(tagging) operator(=) ident(tags)operator(()symbol(:misc)operator(\))operator(.)ident(taggings)operator(.)ident(create) ident(posts)operator(()symbol(:thinking)operator(\))operator(.)ident(taggings) operator(<<) ident(tagging) ident(assert_equal) stringoperator(,) ident(tagging)operator(.)ident(taggable_type) reserved(end) reserved(def) method(test_set_polymorphic_has_one) ident(tagging) operator(=) ident(tags)operator(()symbol(:misc)operator(\))operator(.)ident(taggings)operator(.)ident(create) ident(posts)operator(()symbol(:thinking)operator(\))operator(.)ident(tagging) operator(=) ident(tagging) ident(assert_equal) stringoperator(,) ident(tagging)operator(.)ident(taggable_type) reserved(end) reserved(def) method(test_create_polymorphic_has_many_with_scope) ident(old_count) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(count) ident(tagging) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(create)operator(()symbol(:tag) operator(=)operator(>) ident(tags)operator(()symbol(:misc)operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(tagging)operator(.)ident(taggable_type) ident(assert_equal) ident(old_count)operator(+)integer(1)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(count) reserved(end) reserved(def) method(test_create_polymorphic_has_one_with_scope) ident(old_count) operator(=) constant(Tagging)operator(.)ident(count) ident(tagging) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tagging)operator(.)ident(create)operator(()symbol(:tag) operator(=)operator(>) ident(tags)operator(()symbol(:misc)operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(tagging)operator(.)ident(taggable_type) ident(assert_equal) ident(old_count)operator(+)integer(1)operator(,) constant(Tagging)operator(.)ident(count) reserved(end) reserved(def) method(test_delete_polymorphic_has_many_with_delete_all) ident(assert_equal) integer(1)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(count) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(first)operator(.)ident(update_attribute) symbol(:taggable_type)operator(,) string ident(post) operator(=) ident(find_post_with_dependency)operator(()integer(1)operator(,) symbol(:has_many)operator(,) symbol(:taggings)operator(,) symbol(:delete_all)operator(\)) ident(old_count) operator(=) constant(Tagging)operator(.)ident(count) ident(post)operator(.)ident(destroy) ident(assert_equal) ident(old_count)operator(-)integer(1)operator(,) constant(Tagging)operator(.)ident(count) ident(assert_equal) integer(0)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(count) reserved(end) reserved(def) method(test_delete_polymorphic_has_many_with_destroy) ident(assert_equal) integer(1)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(count) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(first)operator(.)ident(update_attribute) symbol(:taggable_type)operator(,) string ident(post) operator(=) ident(find_post_with_dependency)operator(()integer(1)operator(,) symbol(:has_many)operator(,) symbol(:taggings)operator(,) symbol(:destroy)operator(\)) ident(old_count) operator(=) constant(Tagging)operator(.)ident(count) ident(post)operator(.)ident(destroy) ident(assert_equal) ident(old_count)operator(-)integer(1)operator(,) constant(Tagging)operator(.)ident(count) ident(assert_equal) integer(0)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(count) reserved(end) reserved(def) method(test_delete_polymorphic_has_many_with_nullify) ident(assert_equal) integer(1)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(count) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(first)operator(.)ident(update_attribute) symbol(:taggable_type)operator(,) string ident(post) operator(=) ident(find_post_with_dependency)operator(()integer(1)operator(,) symbol(:has_many)operator(,) symbol(:taggings)operator(,) symbol(:nullify)operator(\)) ident(old_count) operator(=) constant(Tagging)operator(.)ident(count) ident(post)operator(.)ident(destroy) ident(assert_equal) ident(old_count)operator(,) constant(Tagging)operator(.)ident(count) ident(assert_equal) integer(0)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(count) reserved(end) reserved(def) method(test_delete_polymorphic_has_one_with_destroy) ident(assert) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tagging) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tagging)operator(.)ident(update_attribute) symbol(:taggable_type)operator(,) string ident(post) operator(=) ident(find_post_with_dependency)operator(()integer(1)operator(,) symbol(:has_one)operator(,) symbol(:tagging)operator(,) symbol(:destroy)operator(\)) ident(old_count) operator(=) constant(Tagging)operator(.)ident(count) ident(post)operator(.)ident(destroy) ident(assert_equal) ident(old_count)operator(-)integer(1)operator(,) constant(Tagging)operator(.)ident(count) ident(assert_nil) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tagging)operator(()pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_delete_polymorphic_has_one_with_nullify) ident(assert) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tagging) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tagging)operator(.)ident(update_attribute) symbol(:taggable_type)operator(,) string ident(post) operator(=) ident(find_post_with_dependency)operator(()integer(1)operator(,) symbol(:has_one)operator(,) symbol(:tagging)operator(,) symbol(:nullify)operator(\)) ident(old_count) operator(=) constant(Tagging)operator(.)ident(count) ident(post)operator(.)ident(destroy) ident(assert_equal) ident(old_count)operator(,) constant(Tagging)operator(.)ident(count) ident(assert_nil) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(tagging)operator(()pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_has_many_with_piggyback) ident(assert_equal) stringoperator(,) ident(categories)operator(()symbol(:sti_test)operator(\))operator(.)ident(authors)operator(.)ident(first)operator(.)ident(post_id)operator(.)ident(to_s) reserved(end) reserved(def) method(test_include_has_many_through) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(posts_with_authors) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:authors)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(posts)operator(.)ident(length)operator(,) ident(posts_with_authors)operator(.)ident(length) ident(posts)operator(.)ident(length)operator(.)ident(times) reserved(do) operator(|)ident(i)operator(|) ident(assert_equal) ident(posts)operator([)ident(i)operator(])operator(.)ident(authors)operator(.)ident(length)operator(,) ident(assert_no_queries) operator({) ident(posts_with_authors)operator([)ident(i)operator(])operator(.)ident(authors)operator(.)ident(length) operator(}) reserved(end) reserved(end) reserved(def) method(test_include_polymorphic_has_one) ident(post) operator(=) constant(Post)operator(.)ident(find_by_id)operator(()ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(id)operator(,) symbol(:include) operator(=)operator(>) symbol(:tagging)operator(\)) ident(tagging) operator(=) ident(taggings)operator(()symbol(:welcome_general)operator(\)) ident(assert_no_queries) reserved(do) ident(assert_equal) ident(tagging)operator(,) ident(post)operator(.)ident(tagging) reserved(end) reserved(end) reserved(def) method(test_include_polymorphic_has_many_through) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(posts_with_tags) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:tags)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(posts)operator(.)ident(length)operator(,) ident(posts_with_tags)operator(.)ident(length) ident(posts)operator(.)ident(length)operator(.)ident(times) reserved(do) operator(|)ident(i)operator(|) ident(assert_equal) ident(posts)operator([)ident(i)operator(])operator(.)ident(tags)operator(.)ident(length)operator(,) ident(assert_no_queries) operator({) ident(posts_with_tags)operator([)ident(i)operator(])operator(.)ident(tags)operator(.)ident(length) operator(}) reserved(end) reserved(end) reserved(def) method(test_include_polymorphic_has_many) ident(posts) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(posts_with_taggings) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:taggings)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(posts)operator(.)ident(length)operator(,) ident(posts_with_taggings)operator(.)ident(length) ident(posts)operator(.)ident(length)operator(.)ident(times) reserved(do) operator(|)ident(i)operator(|) ident(assert_equal) ident(posts)operator([)ident(i)operator(])operator(.)ident(taggings)operator(.)ident(length)operator(,) ident(assert_no_queries) operator({) ident(posts_with_taggings)operator([)ident(i)operator(])operator(.)ident(taggings)operator(.)ident(length) operator(}) reserved(end) reserved(end) reserved(def) method(test_has_many_find_all) ident(assert_equal) operator([)ident(categories)operator(()symbol(:general)operator(\))operator(])operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(categories)operator(.)ident(find)operator(()symbol(:all)operator(\)) reserved(end) reserved(def) method(test_has_many_find_first) ident(assert_equal) ident(categories)operator(()symbol(:general)operator(\))operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(categories)operator(.)ident(find)operator(()symbol(:first)operator(\)) reserved(end) reserved(def) method(test_has_many_find_conditions) ident(assert_equal) ident(categories)operator(()symbol(:general)operator(\))operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(categories)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) pre_constant(nil)operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(categories)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_has_many_class_methods_called_by_method_missing) ident(assert_equal) ident(categories)operator(()symbol(:general)operator(\))operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(categories)operator(.)ident(find_all_by_name)operator(()stringoperator(\))operator(.)ident(first) comment(# assert_equal nil, authors(:david\).categories.find_by_name('Technology'\)) reserved(end) reserved(def) method(test_has_many_going_through_join_model_with_custom_foreign_key) ident(assert_equal) operator([)operator(])operator(,) ident(posts)operator(()symbol(:thinking)operator(\))operator(.)ident(authors) ident(assert_equal) operator([)ident(authors)operator(()symbol(:mary)operator(\))operator(])operator(,) ident(posts)operator(()symbol(:authorless)operator(\))operator(.)ident(authors) reserved(end) reserved(def) method(test_belongs_to_polymorphic_with_counter_cache) ident(assert_equal) integer(0)operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator([)symbol(:taggings_count)operator(]) ident(tagging) operator(=) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(taggings)operator(.)ident(create)operator(()symbol(:tag) operator(=)operator(>) ident(tags)operator(()symbol(:general)operator(\))operator(\)) ident(assert_equal) integer(1)operator(,) ident(posts)operator(()symbol(:welcome)operator(,) symbol(:reload)operator(\))operator([)symbol(:taggings_count)operator(]) ident(tagging)operator(.)ident(destroy) ident(assert) ident(posts)operator(()symbol(:welcome)operator(,) symbol(:reload)operator(\))operator([)symbol(:taggings_count)operator(])operator(.)ident(zero?) reserved(end) reserved(def) method(test_unavailable_through_reflection) ident(assert_raises) operator(()constant(ActiveRecord)operator(::)constant(HasManyThroughAssociationNotFoundError)operator(\)) operator({) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(nothings) operator(}) reserved(end) reserved(def) method(test_has_many_through_join_model_with_conditions) ident(assert_equal) operator([)operator(])operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(invalid_taggings) ident(assert_equal) operator([)operator(])operator(,) ident(posts)operator(()symbol(:welcome)operator(\))operator(.)ident(invalid_tags) reserved(end) reserved(def) method(test_has_many_polymorphic) ident(assert_raises) constant(ActiveRecord)operator(::)constant(HasManyThroughAssociationPolymorphicError) reserved(do) ident(assert_equal) operator([)ident(posts)operator(()symbol(:welcome)operator(\))operator(,) ident(posts)operator(()symbol(:thinking)operator(\))operator(])operator(,) ident(tags)operator(()symbol(:general)operator(\))operator(.)ident(taggables) reserved(end) ident(assert_raises) constant(ActiveRecord)operator(::)constant(EagerLoadPolymorphicError) reserved(do) ident(assert_equal) operator([)ident(posts)operator(()symbol(:welcome)operator(\))operator(,) ident(posts)operator(()symbol(:thinking)operator(\))operator(])operator(,) ident(tags)operator(()symbol(:general)operator(\))operator(.)ident(taggings)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) symbol(:taggable)operator(\)) reserved(end) reserved(end) reserved(def) method(test_has_many_through_has_many_find_all) ident(assert_equal) ident(comments)operator(()symbol(:greetings)operator(\))operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(comments)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\))operator(.)ident(first) reserved(end) reserved(def) method(test_has_many_through_has_many_find_all_with_custom_class) ident(assert_equal) ident(comments)operator(()symbol(:greetings)operator(\))operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(funky_comments)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\))operator(.)ident(first) reserved(end) reserved(def) method(test_has_many_through_has_many_find_first) ident(assert_equal) ident(comments)operator(()symbol(:greetings)operator(\))operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(comments)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_has_many_through_has_many_find_conditions) ident(assert_equal) ident(comments)operator(()symbol(:does_it_hurt)operator(\))operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(comments)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_has_many_through_has_many_find_by_id) ident(assert_equal) ident(comments)operator(()symbol(:more_greetings)operator(\))operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(comments)operator(.)ident(find)operator(()integer(2)operator(\)) reserved(end) reserved(def) method(test_has_many_through_polymorphic_has_one) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(HasManyThroughSourceAssociationMacroError)operator(\)) operator({) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(tagging) operator(}) reserved(end) reserved(def) method(test_has_many_through_polymorphic_has_many) ident(assert_equal) operator([)ident(taggings)operator(()symbol(:welcome_general)operator(\))operator(,) ident(taggings)operator(()symbol(:thinking_general)operator(\))operator(])operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(taggings)operator(.)ident(uniq)operator(.)ident(sort_by) operator({) operator(|)ident(t)operator(|) ident(t)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_include_has_many_through_polymorphic_has_many) ident(author) operator(=) constant(Author)operator(.)ident(find_by_id)operator(()ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(id)operator(,) symbol(:include) operator(=)operator(>) symbol(:taggings)operator(\)) ident(expected_taggings) operator(=) operator([)ident(taggings)operator(()symbol(:welcome_general)operator(\))operator(,) ident(taggings)operator(()symbol(:thinking_general)operator(\))operator(]) ident(assert_no_queries) reserved(do) ident(assert_equal) ident(expected_taggings)operator(,) ident(author)operator(.)ident(taggings)operator(.)ident(uniq)operator(.)ident(sort_by) operator({) operator(|)ident(t)operator(|) ident(t)operator(.)ident(id) operator(}) reserved(end) reserved(end) reserved(def) method(test_has_many_through_has_many_through) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(HasManyThroughSourceAssociationMacroError)operator(\)) operator({) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(tags) operator(}) reserved(end) reserved(def) method(test_has_many_through_habtm) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(HasManyThroughSourceAssociationMacroError)operator(\)) operator({) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(post_categories) operator(}) reserved(end) reserved(def) method(test_eager_load_has_many_through_has_many) ident(author) operator(=) constant(Author)operator(.)ident(find) symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(,) symbol(:include) operator(=)operator(>) symbol(:comments)operator(,) symbol(:order) operator(=)operator(>) string constant(SpecialComment)operator(.)ident(new)operator(;) constant(VerySpecialComment)operator(.)ident(new) ident(assert_no_queries) reserved(do) ident(assert_equal) operator([)integer(1)operator(,)integer(2)operator(,)integer(3)operator(,)integer(5)operator(,)integer(6)operator(,)integer(7)operator(,)integer(8)operator(,)integer(9)operator(,)integer(10)operator(])operator(,) ident(author)operator(.)ident(comments)operator(.)ident(collect)operator(()operator(&)symbol(:id)operator(\)) reserved(end) reserved(end) reserved(def) method(test_eager_belongs_to_and_has_one_not_singularized) ident(assert_nothing_raised) reserved(do) constant(Author)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:include) operator(=)operator(>) symbol(:author_address)operator(\)) constant(AuthorAddress)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:include) operator(=)operator(>) symbol(:author)operator(\)) reserved(end) reserved(end) reserved(def) method(test_self_referential_has_many_through) ident(assert_equal) operator([)ident(authors)operator(()symbol(:mary)operator(\))operator(])operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(favorite_authors) ident(assert_equal) operator([)operator(])operator(,) ident(authors)operator(()symbol(:mary)operator(\))operator(.)ident(favorite_authors) reserved(end) reserved(def) method(test_add_to_self_referential_has_many_through) ident(new_author) operator(=) constant(Author)operator(.)ident(create)operator(()symbol(:name) operator(=)operator(>) stringoperator(\)) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(author_favorites)operator(.)ident(create) symbol(:favorite_author) operator(=)operator(>) ident(new_author) ident(assert_equal) ident(new_author)operator(,) ident(authors)operator(()symbol(:david)operator(\))operator(.)ident(reload)operator(.)ident(favorite_authors)operator(.)ident(first) reserved(end) reserved(def) method(test_has_many_through_uses_correct_attributes) ident(assert_nil) ident(posts)operator(()symbol(:thinking)operator(\))operator(.)ident(tags)operator(.)ident(find_by_name)operator(()stringoperator(\))operator(.)ident(attributes)operator([)stringoperator(]) reserved(end) ident(private) comment(# create dynamic Post models to allow different dependency options) reserved(def) method(find_post_with_dependency)operator(()ident(post_id)operator(,) ident(association)operator(,) ident(association_name)operator(,) ident(dependency)operator(\)) ident(class_name) operator(=) stringinlinedelimiter(")> constant(Post)operator(.)ident(find)operator(()ident(post_id)operator(\))operator(.)ident(update_attribute) symbol(:type)operator(,) ident(class_name) ident(klass) operator(=) constant(Object)operator(.)ident(const_set)operator(()ident(class_name)operator(,) constant(Class)operator(.)ident(new)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(\))operator(\)) ident(klass)operator(.)ident(set_table_name) string ident(klass)operator(.)ident(send)operator(()ident(association)operator(,) ident(association_name)operator(,) symbol(:as) operator(=)operator(>) symbol(:taggable)operator(,) symbol(:dependent) operator(=)operator(>) ident(dependency)operator(\)) ident(klass)operator(.)ident(find)operator(()ident(post_id)operator(\)) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string comment(# Can't declare new classes in test case methods, so tests before that) ident(bad_collection_keys) operator(=) pre_constant(false) reserved(begin) reserved(class) class(Car) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) ident(has_many) symbol(:wheels)operator(,) symbol(:name) operator(=)operator(>) stringoperator(;) reserved(end) reserved(rescue) constant(ArgumentError) ident(bad_collection_keys) operator(=) pre_constant(true) reserved(end) ident(raise) string reserved(unless) ident(bad_collection_keys) reserved(class) class(AssociationsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:accounts)operator(,) symbol(:companies)operator(,) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:developers_projects)operator(,) symbol(:computers) reserved(def) method(test_force_reload) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(firm)operator(.)ident(clients)operator(.)ident(each) operator({)operator(|)ident(c)operator(|)operator(}) comment(# forcing to load all clients) ident(assert) ident(firm)operator(.)ident(clients)operator(.)ident(empty?)operator(,) string ident(assert) operator(!)ident(firm)operator(.)ident(has_clients?)operator(,) string ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(size)operator(,) string ident(client) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(firm)operator(.)ident(id)operator(\)) ident(client)operator(.)ident(save) ident(assert) ident(firm)operator(.)ident(clients)operator(.)ident(empty?)operator(,) string ident(assert) operator(!)ident(firm)operator(.)ident(has_clients?)operator(,) string ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(size)operator(,) string ident(assert) operator(!)ident(firm)operator(.)ident(clients)operator(()pre_constant(true)operator(\))operator(.)ident(empty?)operator(,) string ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(clients)operator(()pre_constant(true)operator(\))operator(.)ident(size)operator(,) string reserved(end) reserved(def) method(test_storing_in_pstore) ident(require) string ident(store_filename) operator(=) constant(File)operator(.)ident(join)operator(()constant(Dir)operator(.)ident(tmpdir)operator(,) stringoperator(\)) constant(File)operator(.)ident(delete)operator(()ident(store_filename)operator(\)) reserved(if) constant(File)operator(.)ident(exists?)operator(()ident(store_filename)operator(\)) ident(require) string ident(apple) operator(=) constant(Firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(natural) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(apple)operator(.)ident(clients) operator(<<) ident(natural) ident(db) operator(=) constant(PStore)operator(.)ident(new)operator(()ident(store_filename)operator(\)) ident(db)operator(.)ident(transaction) reserved(do) ident(db)operator([)stringoperator(]) operator(=) ident(apple) reserved(end) ident(db) operator(=) constant(PStore)operator(.)ident(new)operator(()ident(store_filename)operator(\)) ident(db)operator(.)ident(transaction) reserved(do) ident(assert_equal) stringoperator(,) ident(db)operator([)stringoperator(])operator(.)ident(clients)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(end) reserved(end) reserved(class) class(HasOneAssociationsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:accounts)operator(,) symbol(:companies)operator(,) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:developers_projects) reserved(def) method(test_has_one) ident(assert_equal) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account)operator(,) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(credit_limit)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account)operator(.)ident(credit_limit) reserved(end) reserved(def) method(test_proxy_assignment) ident(company) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\)) ident(assert_nothing_raised) operator({) ident(company)operator(.)ident(account) operator(=) ident(company)operator(.)ident(account) operator(}) reserved(end) reserved(def) method(test_triple_equality) ident(assert) constant(Account) operator(===) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account) operator(===) constant(Account) reserved(end) reserved(def) method(test_type_mismatch) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account) operator(=) integer(1) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account) operator(=) constant(Project)operator(.)ident(find)operator(()integer(1)operator(\)) operator(}) reserved(end) reserved(def) method(test_natural_assignment) ident(apple) operator(=) constant(Firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(citibank) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(10)operator(\)) ident(apple)operator(.)ident(account) operator(=) ident(citibank) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) reserved(end) reserved(def) method(test_natural_assignment_to_nil) ident(old_account_id) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account)operator(.)ident(id) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account) operator(=) pre_constant(nil) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(save) ident(assert_nil) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account) comment(# account is dependent, therefore is destroyed when reference to owner is lost) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Account)operator(.)ident(find)operator(()ident(old_account_id)operator(\)) operator(}) reserved(end) reserved(def) method(test_assignment_without_replacement) ident(apple) operator(=) constant(Firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(citibank) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(10)operator(\)) ident(apple)operator(.)ident(account) operator(=) ident(citibank) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) ident(hsbc) operator(=) ident(apple)operator(.)ident(build_account)operator(()operator({) symbol(:credit_limit) operator(=)operator(>) integer(20)operator(})operator(,) pre_constant(false)operator(\)) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(hsbc)operator(.)ident(firm_id) ident(hsbc)operator(.)ident(save) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) ident(nykredit) operator(=) ident(apple)operator(.)ident(create_account)operator(()operator({) symbol(:credit_limit) operator(=)operator(>) integer(30)operator(})operator(,) pre_constant(false)operator(\)) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(nykredit)operator(.)ident(firm_id) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(hsbc)operator(.)ident(firm_id) reserved(end) reserved(def) method(test_assignment_without_replacement_on_create) ident(apple) operator(=) constant(Firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(citibank) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(10)operator(\)) ident(apple)operator(.)ident(account) operator(=) ident(citibank) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) ident(hsbc) operator(=) ident(apple)operator(.)ident(create_account)operator(()operator({)symbol(:credit_limit) operator(=)operator(>) integer(10)operator(})operator(,) pre_constant(false)operator(\)) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(hsbc)operator(.)ident(firm_id) ident(hsbc)operator(.)ident(save) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) reserved(end) reserved(def) method(test_dependence) ident(num_accounts) operator(=) constant(Account)operator(.)ident(count) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)ident(firm)operator(.)ident(account)operator(.)ident(nil?) ident(firm)operator(.)ident(destroy) ident(assert_equal) ident(num_accounts) operator(-) integer(1)operator(,) constant(Account)operator(.)ident(count) reserved(end) reserved(def) method(test_succesful_build_association) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(account) operator(=) ident(firm)operator(.)ident(build_account)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(assert) ident(account)operator(.)ident(save) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) reserved(end) reserved(def) method(test_failing_build_association) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(account) operator(=) ident(firm)operator(.)ident(build_account) ident(assert) operator(!)ident(account)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(account)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_build_association_twice_without_saving_affects_nothing) ident(count_of_account) operator(=) constant(Account)operator(.)ident(count) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(account1) operator(=) ident(firm)operator(.)ident(build_account)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(account2) operator(=) ident(firm)operator(.)ident(build_account)operator(()string operator(=)operator(>) integer(2000)operator(\)) ident(assert_equal) ident(count_of_account)operator(,) constant(Account)operator(.)ident(count) reserved(end) reserved(def) method(test_create_association) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(assert_equal) ident(firm)operator(.)ident(create_account)operator(()string operator(=)operator(>) integer(1000)operator(\))operator(,) ident(firm)operator(.)ident(account) reserved(end) reserved(def) method(test_build) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(firm)operator(.)ident(account) operator(=) ident(account) operator(=) constant(Account)operator(.)ident(new)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) ident(assert) ident(account)operator(.)ident(save) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) reserved(end) reserved(def) method(test_build_before_child_saved) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(account) operator(=) ident(firm)operator(.)ident(account)operator(.)ident(build)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) ident(assert) ident(account)operator(.)ident(new_record?) ident(assert) ident(firm)operator(.)ident(save) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) ident(assert) operator(!)ident(account)operator(.)ident(new_record?) reserved(end) reserved(def) method(test_build_before_either_saved) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(account) operator(=) ident(account) operator(=) constant(Account)operator(.)ident(new)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) ident(assert) ident(account)operator(.)ident(new_record?) ident(assert) ident(firm)operator(.)ident(save) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) ident(assert) operator(!)ident(account)operator(.)ident(new_record?) reserved(end) reserved(def) method(test_failing_build_association) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(firm)operator(.)ident(account) operator(=) ident(account) operator(=) constant(Account)operator(.)ident(new) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) ident(assert) operator(!)ident(account)operator(.)ident(save) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) ident(assert_equal) stringoperator(,) ident(account)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_create) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(firm)operator(.)ident(account) operator(=) ident(account) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) reserved(end) reserved(def) method(test_create_before_save) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(account) operator(=) ident(account) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) reserved(end) reserved(def) method(test_dependence_with_missing_association) constant(Account)operator(.)ident(destroy_all) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) ident(firm)operator(.)ident(account)operator(.)ident(nil?) ident(firm)operator(.)ident(destroy) reserved(end) reserved(def) method(test_assignment_before_parent_saved) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(account) operator(=) ident(a) operator(=) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) ident(firm)operator(.)ident(new_record?) ident(assert_equal) ident(a)operator(,) ident(firm)operator(.)ident(account) ident(assert) ident(firm)operator(.)ident(save) ident(assert_equal) ident(a)operator(,) ident(firm)operator(.)ident(account) ident(assert_equal) ident(a)operator(,) ident(firm)operator(.)ident(account)operator(()pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_assignment_before_child_saved) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(firm)operator(.)ident(account) operator(=) ident(a) operator(=) constant(Account)operator(.)ident(new)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(assert) operator(!)ident(a)operator(.)ident(new_record?) ident(assert_equal) ident(a)operator(,) ident(firm)operator(.)ident(account) ident(assert_equal) ident(a)operator(,) ident(firm)operator(.)ident(account) ident(assert_equal) ident(a)operator(,) ident(firm)operator(.)ident(account)operator(()pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_assignment_before_either_saved) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(account) operator(=) ident(a) operator(=) constant(Account)operator(.)ident(new)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(assert) ident(firm)operator(.)ident(new_record?) ident(assert) ident(a)operator(.)ident(new_record?) ident(assert_equal) ident(a)operator(,) ident(firm)operator(.)ident(account) ident(assert) ident(firm)operator(.)ident(save) ident(assert) operator(!)ident(firm)operator(.)ident(new_record?) ident(assert) operator(!)ident(a)operator(.)ident(new_record?) ident(assert_equal) ident(a)operator(,) ident(firm)operator(.)ident(account) ident(assert_equal) ident(a)operator(,) ident(firm)operator(.)ident(account)operator(()pre_constant(true)operator(\)) reserved(end) reserved(end) reserved(class) class(HasManyAssociationsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:accounts)operator(,) symbol(:companies)operator(,) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:developers_projects)operator(,) symbol(:topics) reserved(def) method(setup) constant(Client)operator(.)ident(destroyed_client_ids)operator(.)ident(clear) reserved(end) reserved(def) method(force_signal37_to_load_all_clients_of_firm) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(each) operator({)operator(|)ident(f)operator(|) operator(}) reserved(end) reserved(def) method(test_counting) ident(assert_equal) integer(2)operator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients)operator(.)ident(count) reserved(end) reserved(def) method(test_finding) ident(assert_equal) integer(2)operator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients)operator(.)ident(length) reserved(end) reserved(def) method(test_find_many_with_merged_options) ident(assert_equal) integer(1)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(limited_clients)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(limited_clients)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(limited_clients)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:limit) operator(=)operator(>) pre_constant(nil)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_triple_equality) ident(assert) operator(!)operator(()constant(Array) operator(===) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients)operator(\)) ident(assert) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients) operator(===) constant(Array) reserved(end) reserved(def) method(test_finding_default_orders) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_finding_with_different_class_name_and_order) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients_sorted_desc)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_finding_with_foreign_key) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_finding_with_condition) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients_like_ms)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_finding_using_sql) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(first_client) operator(=) ident(firm)operator(.)ident(clients_using_sql)operator(.)ident(first) ident(assert_not_nil) ident(first_client) ident(assert_equal) stringoperator(,) ident(first_client)operator(.)ident(name) ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(clients_using_sql)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients_using_sql)operator(.)ident(size) reserved(end) reserved(def) method(test_counting_using_sql) ident(assert_equal) integer(1)operator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients_using_counter_sql)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients_using_zero_counter_sql)operator(.)ident(size) reserved(end) reserved(def) method(test_counting_non_existant_items_using_sql) ident(assert_equal) integer(0)operator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(no_clients_using_counter_sql)operator(.)ident(size) reserved(end) reserved(def) method(test_belongs_to_sanity) ident(c) operator(=) constant(Client)operator(.)ident(new) ident(assert_nil) ident(c)operator(.)ident(firm) reserved(if) ident(c)operator(.)ident(firm) ident(assert) pre_constant(false)operator(,) string reserved(end) reserved(unless) ident(c)operator(.)ident(firm) reserved(else) ident(assert) pre_constant(false)operator(,) string reserved(end) reserved(end) reserved(def) method(test_find_ids) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) ident(firm)operator(.)ident(clients)operator(.)ident(find) operator(}) ident(client) operator(=) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()integer(2)operator(\)) ident(assert_kind_of) constant(Client)operator(,) ident(client) ident(client_ary) operator(=) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()operator([)integer(2)operator(])operator(\)) ident(assert_kind_of) constant(Array)operator(,) ident(client_ary) ident(assert_equal) ident(client)operator(,) ident(client_ary)operator(.)ident(first) ident(client_ary) operator(=) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()integer(2)operator(,) integer(3)operator(\)) ident(assert_kind_of) constant(Array)operator(,) ident(client_ary) ident(assert_equal) integer(2)operator(,) ident(client_ary)operator(.)ident(size) ident(assert_equal) ident(client)operator(,) ident(client_ary)operator(.)ident(first) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()integer(2)operator(,) integer(99)operator(\)) operator(}) reserved(end) reserved(def) method(test_find_all) ident(firm) operator(=) constant(Firm)operator(.)ident(find_first) ident(assert_equal) ident(firm)operator(.)ident(clients)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find_all) ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent( = 'Client')delimiter(")>operator(\))operator(.)ident(length) ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\))operator(.)ident(length) reserved(end) reserved(def) method(test_find_all_sanitized) ident(firm) operator(=) constant(Firm)operator(.)ident(find_first) ident(assert_equal) ident(firm)operator(.)ident(clients)operator(.)ident(find_all)operator(()stringoperator(\))operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find_all)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) ident(summit) operator(=) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(summit)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_equal) ident(summit)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(])operator(\)) reserved(end) reserved(def) method(test_find_first) ident(firm) operator(=) constant(Firm)operator(.)ident(find_first) ident(client2) operator(=) constant(Client)operator(.)ident(find)operator(()integer(2)operator(\)) ident(assert_equal) ident(firm)operator(.)ident(clients)operator(.)ident(first)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find_first) ident(assert_equal) ident(client2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find_first)operator(()stringcontent( = 'Client')delimiter(")>operator(\)) ident(assert_equal) ident(client2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringcontent( = 'Client')delimiter(")>operator(\)) reserved(end) reserved(def) method(test_find_first_sanitized) ident(firm) operator(=) constant(Firm)operator(.)ident(find_first) ident(client2) operator(=) constant(Client)operator(.)ident(find)operator(()integer(2)operator(\)) ident(assert_equal) ident(client2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find_first)operator(()operator([)stringcontent( = ?)delimiter(")>operator(,) stringoperator(])operator(\)) ident(assert_equal) ident(client2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringcontent( = ?)delimiter(")>operator(,) stringoperator(])operator(\)) ident(assert_equal) ident(client2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringcontent( = :type)delimiter(")>operator(,) operator({) symbol(:type) operator(=)operator(>) string operator(})operator(])operator(\)) reserved(end) reserved(def) method(test_find_in_collection) ident(assert_equal) constant(Client)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(name)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(name) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients)operator(.)ident(find)operator(()integer(6)operator(\)) operator(}) reserved(end) reserved(def) method(test_find_grouped) ident(all_clients_of_firm1) operator(=) constant(Client)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(grouped_clients_of_firm1) operator(=) constant(Client)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:group) operator(=)operator(>) stringoperator(,) symbol(:select) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(all_clients_of_firm1)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(grouped_clients_of_firm1)operator(.)ident(size) reserved(end) reserved(def) method(test_adding) ident(force_signal37_to_load_all_clients_of_firm) ident(natural) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm) operator(<<) ident(natural) ident(assert_equal) integer(2)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) comment(# checking via the collection) ident(assert_equal) integer(2)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) comment(# checking using the db) ident(assert_equal) ident(natural)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(last) reserved(end) reserved(def) method(test_adding_a_mismatch_class) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm) operator(<<) pre_constant(nil) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm) operator(<<) integer(1) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm) operator(<<) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) operator(}) reserved(end) reserved(def) method(test_adding_a_collection) ident(force_signal37_to_load_all_clients_of_firm) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(concat)operator(()operator([)constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(,) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(])operator(\)) ident(assert_equal) integer(3)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(3)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_adding_before_save) ident(no_of_firms) operator(=) constant(Firm)operator(.)ident(count) ident(no_of_clients) operator(=) constant(Client)operator(.)ident(count) ident(new_firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(new_firm)operator(.)ident(clients_of_firm)operator(.)ident(push) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(new_firm)operator(.)ident(clients_of_firm) operator(<<) operator(()ident(c) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(\)) ident(assert) ident(new_firm)operator(.)ident(new_record?) ident(assert) ident(c)operator(.)ident(new_record?) ident(assert_equal) integer(2)operator(,) ident(new_firm)operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) ident(no_of_firms)operator(,) constant(Firm)operator(.)ident(count) comment(# Firm was not saved to database.) ident(assert_equal) ident(no_of_clients)operator(,) constant(Client)operator(.)ident(count) comment(# Clients were not saved to database.) ident(assert) ident(new_firm)operator(.)ident(save) ident(assert) operator(!)ident(new_firm)operator(.)ident(new_record?) ident(assert) operator(!)ident(c)operator(.)ident(new_record?) ident(assert_equal) ident(new_firm)operator(,) ident(c)operator(.)ident(firm) ident(assert_equal) ident(no_of_firms)operator(+)integer(1)operator(,) constant(Firm)operator(.)ident(count) comment(# Firm was saved to database.) ident(assert_equal) ident(no_of_clients)operator(+)integer(2)operator(,) constant(Client)operator(.)ident(count) comment(# Clients were saved to database.) ident(assert_equal) integer(2)operator(,) ident(new_firm)operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(new_firm)operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_invalid_adding) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)operator(()ident(firm)operator(.)ident(clients_of_firm) operator(<<) ident(c) operator(=) constant(Client)operator(.)ident(new)operator(\)) ident(assert) ident(c)operator(.)ident(new_record?) ident(assert) operator(!)ident(firm)operator(.)ident(valid?) ident(assert) operator(!)ident(firm)operator(.)ident(save) ident(assert) ident(c)operator(.)ident(new_record?) reserved(end) reserved(def) method(test_invalid_adding_before_save) ident(no_of_firms) operator(=) constant(Firm)operator(.)ident(count) ident(no_of_clients) operator(=) constant(Client)operator(.)ident(count) ident(new_firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(new_firm)operator(.)ident(clients_of_firm)operator(.)ident(concat)operator(()operator([)ident(c) operator(=) constant(Client)operator(.)ident(new)operator(,) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(])operator(\)) ident(assert) ident(c)operator(.)ident(new_record?) ident(assert) operator(!)ident(c)operator(.)ident(valid?) ident(assert) operator(!)ident(new_firm)operator(.)ident(valid?) ident(assert) operator(!)ident(new_firm)operator(.)ident(save) ident(assert) ident(c)operator(.)ident(new_record?) ident(assert) ident(new_firm)operator(.)ident(new_record?) reserved(end) reserved(def) method(test_build) ident(new_client) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(build)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(new_client)operator(.)ident(name) ident(assert) ident(new_client)operator(.)ident(new_record?) ident(assert_equal) ident(new_client)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(last) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(save) ident(assert) operator(!)ident(new_client)operator(.)ident(new_record?) ident(assert_equal) integer(2)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_build_many) ident(new_clients) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(build)operator(()operator([)operator({)string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) stringoperator(})operator(])operator(\)) ident(assert_equal) integer(2)operator(,) ident(new_clients)operator(.)ident(size) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(save) ident(assert_equal) integer(3)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_invalid_build) ident(new_client) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(build) ident(assert) ident(new_client)operator(.)ident(new_record?) ident(assert) operator(!)ident(new_client)operator(.)ident(valid?) ident(assert_equal) ident(new_client)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(last) ident(assert) operator(!)ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(save) ident(assert) ident(new_client)operator(.)ident(new_record?) ident(assert_equal) integer(1)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_create) ident(force_signal37_to_load_all_clients_of_firm) ident(new_client) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(new_client)operator(.)ident(new_record?) ident(assert_equal) ident(new_client)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(last) ident(assert_equal) ident(new_client)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(last) reserved(end) reserved(def) method(test_create_many) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(create)operator(()operator([)operator({)string operator(=)operator(>) stringoperator(})operator(,) operator({)string operator(=)operator(>) stringoperator(})operator(])operator(\)) ident(assert_equal) integer(3)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_find_or_create) ident(number_of_clients) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients)operator(.)ident(size) ident(the_client) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients)operator(.)ident(find_or_create_by_name)operator(()stringoperator(\)) ident(assert_equal) ident(number_of_clients) operator(+) integer(1)operator(,) ident(companies)operator(()symbol(:first_firm)operator(,) symbol(:refresh)operator(\))operator(.)ident(clients)operator(.)ident(size) ident(assert_equal) ident(the_client)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients)operator(.)ident(find_or_create_by_name)operator(()stringoperator(\)) ident(assert_equal) ident(number_of_clients) operator(+) integer(1)operator(,) ident(companies)operator(()symbol(:first_firm)operator(,) symbol(:refresh)operator(\))operator(.)ident(clients)operator(.)ident(size) reserved(end) reserved(def) method(test_deleting) ident(force_signal37_to_load_all_clients_of_firm) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(delete)operator(()ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(first)operator(\)) ident(assert_equal) integer(0)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_deleting_before_save) ident(new_firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(new_client) operator(=) ident(new_firm)operator(.)ident(clients_of_firm)operator(.)ident(build)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) ident(new_firm)operator(.)ident(clients_of_firm)operator(.)ident(size) ident(new_firm)operator(.)ident(clients_of_firm)operator(.)ident(delete)operator(()ident(new_client)operator(\)) ident(assert_equal) integer(0)operator(,) ident(new_firm)operator(.)ident(clients_of_firm)operator(.)ident(size) reserved(end) reserved(def) method(test_deleting_a_collection) ident(force_signal37_to_load_all_clients_of_firm) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(delete)operator(()operator([)ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator([)integer(0)operator(])operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator([)integer(1)operator(])operator(])operator(\)) ident(assert_equal) integer(0)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_delete_all) ident(force_signal37_to_load_all_clients_of_firm) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(delete_all) ident(assert_equal) integer(0)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_delete_all_with_not_yet_loaded_association_collection) ident(force_signal37_to_load_all_clients_of_firm) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(reset) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(delete_all) ident(assert_equal) integer(0)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_clearing_an_association_collection) ident(firm) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\)) ident(client_id) operator(=) ident(firm)operator(.)ident(clients_of_firm)operator(.)ident(first)operator(.)ident(id) ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(clients_of_firm)operator(.)ident(size) ident(firm)operator(.)ident(clients_of_firm)operator(.)ident(clear) ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) ident(assert_equal) operator([)operator(])operator(,) constant(Client)operator(.)ident(destroyed_client_ids)operator([)ident(firm)operator(.)ident(id)operator(]) comment(# Should not be destroyed since the association is not dependent.) ident(assert_nothing_raised) reserved(do) ident(assert) constant(Client)operator(.)ident(find)operator(()ident(client_id)operator(\))operator(.)ident(firm)operator(.)ident(nil?) reserved(end) reserved(end) reserved(def) method(test_clearing_a_dependent_association_collection) ident(firm) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\)) ident(client_id) operator(=) ident(firm)operator(.)ident(dependent_clients_of_firm)operator(.)ident(first)operator(.)ident(id) ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(dependent_clients_of_firm)operator(.)ident(size) comment(# :dependent means destroy is called on each client) ident(firm)operator(.)ident(dependent_clients_of_firm)operator(.)ident(clear) ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(dependent_clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(dependent_clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) ident(assert_equal) operator([)ident(client_id)operator(])operator(,) constant(Client)operator(.)ident(destroyed_client_ids)operator([)ident(firm)operator(.)ident(id)operator(]) comment(# Should be destroyed since the association is dependent.) ident(assert) constant(Client)operator(.)ident(find_by_id)operator(()ident(client_id)operator(\))operator(.)ident(nil?) reserved(end) reserved(def) method(test_clearing_an_exclusively_dependent_association_collection) ident(firm) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\)) ident(client_id) operator(=) ident(firm)operator(.)ident(exclusively_dependent_clients_of_firm)operator(.)ident(first)operator(.)ident(id) ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(exclusively_dependent_clients_of_firm)operator(.)ident(size) ident(assert_equal) operator([)operator(])operator(,) constant(Client)operator(.)ident(destroyed_client_ids)operator([)ident(firm)operator(.)ident(id)operator(]) comment(# :exclusively_dependent means each client is deleted directly from) comment(# the database without looping through them calling destroy.) ident(firm)operator(.)ident(exclusively_dependent_clients_of_firm)operator(.)ident(clear) ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(exclusively_dependent_clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(exclusively_dependent_clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) ident(assert_equal) operator([)integer(3)operator(])operator(,) constant(Client)operator(.)ident(destroyed_client_ids)operator([)ident(firm)operator(.)ident(id)operator(]) comment(# Should be destroyed since the association is exclusively dependent.) ident(assert) constant(Client)operator(.)ident(find_by_id)operator(()ident(client_id)operator(\))operator(.)ident(nil?) reserved(end) reserved(def) method(test_clearing_without_initial_access) ident(firm) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\)) ident(firm)operator(.)ident(clients_of_firm)operator(.)ident(clear) ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_deleting_a_item_which_is_not_in_the_collection) ident(force_signal37_to_load_all_clients_of_firm) ident(summit) operator(=) constant(Client)operator(.)ident(find_first)operator(()stringoperator(\)) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(delete)operator(()ident(summit)operator(\)) ident(assert_equal) integer(1)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(summit)operator(.)ident(client_of) reserved(end) reserved(def) method(test_deleting_type_mismatch) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(projects)operator(.)ident(reload) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) ident(david)operator(.)ident(projects)operator(.)ident(delete)operator(()integer(1)operator(\)) operator(}) reserved(end) reserved(def) method(test_deleting_self_type_mismatch) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(projects)operator(.)ident(reload) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) ident(david)operator(.)ident(projects)operator(.)ident(delete)operator(()constant(Project)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(developers)operator(\)) operator(}) reserved(end) reserved(def) method(test_destroy_all) ident(force_signal37_to_load_all_clients_of_firm) ident(assert) operator(!)ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(empty?)operator(,) string ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(destroy_all) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(.)ident(empty?)operator(,) string ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(empty?)operator(,) string reserved(end) reserved(def) method(test_dependence) ident(firm) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\)) ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(size) ident(firm)operator(.)ident(destroy) ident(assert) constant(Client)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringdelimiter(")>operator(\))operator(.)ident(empty?) reserved(end) reserved(def) method(test_destroy_dependent_when_deleted_from_association) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(size) ident(client) operator(=) ident(firm)operator(.)ident(clients)operator(.)ident(first) ident(firm)operator(.)ident(clients)operator(.)ident(delete)operator(()ident(client)operator(\)) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Client)operator(.)ident(find)operator(()ident(client)operator(.)ident(id)operator(\)) operator(}) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()ident(client)operator(.)ident(id)operator(\)) operator(}) ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(size) reserved(end) reserved(def) method(test_three_levels_of_dependence) ident(topic) operator(=) constant(Topic)operator(.)ident(create) string operator(=)operator(>) string ident(reply) operator(=) ident(topic)operator(.)ident(replies)operator(.)ident(create) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(silly_reply) operator(=) ident(reply)operator(.)ident(replies)operator(.)ident(create) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert_nothing_raised) operator({) ident(topic)operator(.)ident(destroy) operator(}) reserved(end) ident(uses_transaction) symbol(:test_dependence_with_transaction_support_on_failure) reserved(def) method(test_dependence_with_transaction_support_on_failure) ident(firm) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\)) ident(clients) operator(=) ident(firm)operator(.)ident(clients) ident(assert_equal) integer(2)operator(,) ident(clients)operator(.)ident(length) ident(clients)operator(.)ident(last)operator(.)ident(instance_eval) operator({) reserved(def) method(before_destroy)operator(()operator(\)) ident(raise) string reserved(end) operator(}) ident(firm)operator(.)ident(destroy) reserved(rescue) string ident(assert_equal) integer(2)operator(,) constant(Client)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringdelimiter(")>operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_dependence_on_account) ident(num_accounts) operator(=) constant(Account)operator(.)ident(count) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(destroy) ident(assert_equal) ident(num_accounts) operator(-) integer(1)operator(,) constant(Account)operator(.)ident(count) reserved(end) reserved(def) method(test_depends_and_nullify) ident(num_accounts) operator(=) constant(Account)operator(.)ident(count) ident(num_companies) operator(=) constant(Company)operator(.)ident(count) ident(core) operator(=) ident(companies)operator(()symbol(:rails_core)operator(\)) ident(assert_equal) ident(accounts)operator(()symbol(:rails_core_account)operator(\))operator(,) ident(core)operator(.)ident(account) ident(assert_equal) operator([)ident(companies)operator(()symbol(:leetsoft)operator(\))operator(,) ident(companies)operator(()symbol(:jadedpixel)operator(\))operator(])operator(,) ident(core)operator(.)ident(companies) ident(core)operator(.)ident(destroy) ident(assert_nil) ident(accounts)operator(()symbol(:rails_core_account)operator(\))operator(.)ident(reload)operator(.)ident(firm_id) ident(assert_nil) ident(companies)operator(()symbol(:leetsoft)operator(\))operator(.)ident(reload)operator(.)ident(client_of) ident(assert_nil) ident(companies)operator(()symbol(:jadedpixel)operator(\))operator(.)ident(reload)operator(.)ident(client_of) ident(assert_equal) ident(num_accounts)operator(,) constant(Account)operator(.)ident(count) reserved(end) reserved(def) method(test_included_in_collection) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients)operator(.)ident(include?)operator(()constant(Client)operator(.)ident(find)operator(()integer(2)operator(\))operator(\)) reserved(end) reserved(def) method(test_adding_array_and_collection) ident(assert_nothing_raised) operator({) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(clients) operator(+) constant(Firm)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(last)operator(.)ident(clients) operator(}) reserved(end) reserved(def) method(test_find_all_without_conditions) ident(firm) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\)) ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(length) reserved(end) reserved(def) method(test_replace_with_less) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(firm)operator(.)ident(clients) operator(=) operator([)ident(companies)operator(()symbol(:first_client)operator(\))operator(]) ident(assert) ident(firm)operator(.)ident(save)operator(,) string ident(firm)operator(.)ident(reload) ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(length) reserved(end) reserved(def) method(test_replace_with_new) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(new_client) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(clients) operator(=) operator([)ident(companies)operator(()symbol(:second_client)operator(\))operator(,)ident(new_client)operator(]) ident(firm)operator(.)ident(save) ident(firm)operator(.)ident(reload) ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(length) ident(assert) operator(!)ident(firm)operator(.)ident(clients)operator(.)ident(include?)operator(()symbol(:first_client)operator(\)) reserved(end) reserved(def) method(test_replace_on_new_object) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(clients) operator(=) operator([)ident(companies)operator(()symbol(:second_client)operator(\))operator(,) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(]) ident(assert) ident(firm)operator(.)ident(save) ident(firm)operator(.)ident(reload) ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(length) ident(assert) ident(firm)operator(.)ident(clients)operator(.)ident(include?)operator(()constant(Client)operator(.)ident(find_by_name)operator(()stringoperator(\))operator(\)) reserved(end) reserved(def) method(test_assign_ids) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(client_ids) operator(=) operator([)ident(companies)operator(()symbol(:first_client)operator(\))operator(.)ident(id)operator(,) ident(companies)operator(()symbol(:second_client)operator(\))operator(.)ident(id)operator(]) ident(firm)operator(.)ident(save) ident(firm)operator(.)ident(reload) ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(length) ident(assert) ident(firm)operator(.)ident(clients)operator(.)ident(include?)operator(()ident(companies)operator(()symbol(:second_client)operator(\))operator(\)) reserved(end) reserved(end) reserved(class) class(BelongsToAssociationsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:accounts)operator(,) symbol(:companies)operator(,) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:topics)operator(,) symbol(:developers_projects)operator(,) symbol(:computers)operator(,) symbol(:authors)operator(,) symbol(:posts) reserved(def) method(test_belongs_to) constant(Client)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm)operator(.)ident(name) ident(assert_equal) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(name)operator(,) constant(Client)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm)operator(.)ident(name) ident(assert) operator(!)constant(Client)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm)operator(.)ident(nil?)operator(,) string reserved(end) reserved(def) method(test_proxy_assignment) ident(account) operator(=) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_nothing_raised) operator({) ident(account)operator(.)ident(firm) operator(=) ident(account)operator(.)ident(firm) operator(}) reserved(end) reserved(def) method(test_triple_equality) ident(assert) constant(Client)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm) operator(===) constant(Firm) ident(assert) constant(Firm) operator(===) constant(Client)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm) reserved(end) reserved(def) method(test_type_mismatch) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(firm) operator(=) integer(1) operator(}) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(firm) operator(=) constant(Project)operator(.)ident(find)operator(()integer(1)operator(\)) operator(}) reserved(end) reserved(def) method(test_natural_assignment) ident(apple) operator(=) constant(Firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(citibank) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(10)operator(\)) ident(citibank)operator(.)ident(firm) operator(=) ident(apple) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) reserved(end) reserved(def) method(test_creating_the_belonging_object) ident(citibank) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(10)operator(\)) ident(apple) operator(=) ident(citibank)operator(.)ident(create_firm)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(apple)operator(,) ident(citibank)operator(.)ident(firm) ident(citibank)operator(.)ident(save) ident(citibank)operator(.)ident(reload) ident(assert_equal) ident(apple)operator(,) ident(citibank)operator(.)ident(firm) reserved(end) reserved(def) method(test_building_the_belonging_object) ident(citibank) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(10)operator(\)) ident(apple) operator(=) ident(citibank)operator(.)ident(build_firm)operator(()string operator(=)operator(>) stringoperator(\)) ident(citibank)operator(.)ident(save) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) reserved(end) reserved(def) method(test_natural_assignment_to_nil) ident(client) operator(=) constant(Client)operator(.)ident(find)operator(()integer(3)operator(\)) ident(client)operator(.)ident(firm) operator(=) pre_constant(nil) ident(client)operator(.)ident(save) ident(assert_nil) ident(client)operator(.)ident(firm)operator(()pre_constant(true)operator(\)) ident(assert_nil) ident(client)operator(.)ident(client_of) reserved(end) reserved(def) method(test_with_different_class_name) ident(assert_equal) constant(Company)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(name)operator(,) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm_with_other_name)operator(.)ident(name) ident(assert_not_nil) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm_with_other_name)operator(,) string reserved(end) reserved(def) method(test_with_condition) ident(assert_equal) constant(Company)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(name)operator(,) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm_with_condition)operator(.)ident(name) ident(assert_not_nil) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm_with_condition)operator(,) string reserved(end) reserved(def) method(test_belongs_to_counter) ident(debate) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(0)operator(,) ident(debate)operator(.)ident(send)operator(()symbol(:read_attribute)operator(,) stringoperator(\))operator(,) string ident(trash) operator(=) ident(debate)operator(.)ident(replies)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(debate)operator(.)ident(id)operator(\))operator(.)ident(send)operator(()symbol(:read_attribute)operator(,) stringoperator(\))operator(,) string ident(trash)operator(.)ident(destroy) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(debate)operator(.)ident(id)operator(\))operator(.)ident(send)operator(()symbol(:read_attribute)operator(,) stringoperator(\))operator(,) string reserved(end) reserved(def) method(test_belongs_to_counter_with_reassigning) ident(t1) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(t2) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(r1) operator(=) constant(Reply)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(r1)operator(.)ident(topic) operator(=) ident(t1) ident(assert) ident(r1)operator(.)ident(save) ident(assert_equal) integer(1)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t1)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t2)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) ident(r1)operator(.)ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(t2)operator(.)ident(id)operator(\)) ident(assert) ident(r1)operator(.)ident(save) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t1)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t2)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) ident(r1)operator(.)ident(topic) operator(=) pre_constant(nil) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t1)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t2)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) ident(r1)operator(.)ident(topic) operator(=) ident(t1) ident(assert_equal) integer(1)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t1)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t2)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) ident(r1)operator(.)ident(destroy) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t1)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(t2)operator(.)ident(id)operator(\))operator(.)ident(replies)operator(.)ident(size) reserved(end) reserved(def) method(test_assignment_before_parent_saved) ident(client) operator(=) constant(Client)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(apple) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(client)operator(.)ident(firm) operator(=) ident(apple) ident(assert_equal) ident(apple)operator(,) ident(client)operator(.)ident(firm) ident(assert) ident(apple)operator(.)ident(new_record?) ident(assert) ident(client)operator(.)ident(save) ident(assert) ident(apple)operator(.)ident(save) ident(assert) operator(!)ident(apple)operator(.)ident(new_record?) ident(assert_equal) ident(apple)operator(,) ident(client)operator(.)ident(firm) ident(assert_equal) ident(apple)operator(,) ident(client)operator(.)ident(firm)operator(()pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_assignment_before_child_saved) ident(final_cut) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(final_cut)operator(.)ident(firm) operator(=) ident(firm) ident(assert) ident(final_cut)operator(.)ident(new_record?) ident(assert) ident(final_cut)operator(.)ident(save) ident(assert) operator(!)ident(final_cut)operator(.)ident(new_record?) ident(assert) operator(!)ident(firm)operator(.)ident(new_record?) ident(assert_equal) ident(firm)operator(,) ident(final_cut)operator(.)ident(firm) ident(assert_equal) ident(firm)operator(,) ident(final_cut)operator(.)ident(firm)operator(()pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_assignment_before_either_saved) ident(final_cut) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(apple) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(final_cut)operator(.)ident(firm) operator(=) ident(apple) ident(assert) ident(final_cut)operator(.)ident(new_record?) ident(assert) ident(apple)operator(.)ident(new_record?) ident(assert) ident(final_cut)operator(.)ident(save) ident(assert) operator(!)ident(final_cut)operator(.)ident(new_record?) ident(assert) operator(!)ident(apple)operator(.)ident(new_record?) ident(assert_equal) ident(apple)operator(,) ident(final_cut)operator(.)ident(firm) ident(assert_equal) ident(apple)operator(,) ident(final_cut)operator(.)ident(firm)operator(()pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_new_record_with_foreign_key_but_no_object) ident(c) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) integer(1)operator(\)) ident(assert_equal) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(,) ident(c)operator(.)ident(firm_with_basic_id) reserved(end) reserved(def) method(test_forgetting_the_load_when_foreign_key_enters_late) ident(c) operator(=) constant(Client)operator(.)ident(new) ident(assert_nil) ident(c)operator(.)ident(firm_with_basic_id) ident(c)operator(.)ident(firm_id) operator(=) integer(1) ident(assert_equal) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(,) ident(c)operator(.)ident(firm_with_basic_id) reserved(end) reserved(def) method(test_field_name_same_as_foreign_key) ident(computer) operator(=) constant(Computer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_not_nil) ident(computer)operator(.)ident(developer)operator(,) string comment(# ') reserved(end) reserved(def) method(test_counter_cache) ident(topic) operator(=) constant(Topic)operator(.)ident(create) symbol(:title) operator(=)operator(>) string ident(assert_equal) integer(0)operator(,) ident(topic)operator([)symbol(:replies_count)operator(]) ident(reply) operator(=) constant(Reply)operator(.)ident(create)operator(()symbol(:title) operator(=)operator(>) stringoperator(,) symbol(:content) operator(=)operator(>) stringoperator(\)) ident(reply)operator(.)ident(topic) operator(=) ident(topic) ident(assert_equal) integer(1)operator(,) ident(topic)operator(.)ident(reload)operator([)symbol(:replies_count)operator(]) ident(assert_equal) integer(1)operator(,) ident(topic)operator(.)ident(replies)operator(.)ident(size) ident(topic)operator([)symbol(:replies_count)operator(]) operator(=) integer(15) ident(assert_equal) integer(15)operator(,) ident(topic)operator(.)ident(replies)operator(.)ident(size) reserved(end) reserved(def) method(test_custom_counter_cache) ident(reply) operator(=) constant(Reply)operator(.)ident(create)operator(()symbol(:title) operator(=)operator(>) stringoperator(,) symbol(:content) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(0)operator(,) ident(reply)operator([)symbol(:replies_count)operator(]) ident(silly) operator(=) constant(SillyReply)operator(.)ident(create)operator(()symbol(:title) operator(=)operator(>) stringoperator(,) symbol(:content) operator(=)operator(>) stringoperator(\)) ident(silly)operator(.)ident(reply) operator(=) ident(reply) ident(assert_equal) integer(1)operator(,) ident(reply)operator(.)ident(reload)operator([)symbol(:replies_count)operator(]) ident(assert_equal) integer(1)operator(,) ident(reply)operator(.)ident(replies)operator(.)ident(size) ident(reply)operator([)symbol(:replies_count)operator(]) operator(=) integer(17) ident(assert_equal) integer(17)operator(,) ident(reply)operator(.)ident(replies)operator(.)ident(size) reserved(end) reserved(def) method(test_store_two_association_with_one_save) ident(num_orders) operator(=) constant(Order)operator(.)ident(count) ident(num_customers) operator(=) constant(Customer)operator(.)ident(count) ident(order) operator(=) constant(Order)operator(.)ident(new) ident(customer1) operator(=) ident(order)operator(.)ident(billing) operator(=) constant(Customer)operator(.)ident(new) ident(customer2) operator(=) ident(order)operator(.)ident(shipping) operator(=) constant(Customer)operator(.)ident(new) ident(assert) ident(order)operator(.)ident(save) ident(assert_equal) ident(customer1)operator(,) ident(order)operator(.)ident(billing) ident(assert_equal) ident(customer2)operator(,) ident(order)operator(.)ident(shipping) ident(order)operator(.)ident(reload) ident(assert_equal) ident(customer1)operator(,) ident(order)operator(.)ident(billing) ident(assert_equal) ident(customer2)operator(,) ident(order)operator(.)ident(shipping) ident(assert_equal) ident(num_orders) integer(+1)operator(,) constant(Order)operator(.)ident(count) ident(assert_equal) ident(num_customers) integer(+2)operator(,) constant(Customer)operator(.)ident(count) reserved(end) reserved(def) method(test_store_association_in_two_relations_with_one_save) ident(num_orders) operator(=) constant(Order)operator(.)ident(count) ident(num_customers) operator(=) constant(Customer)operator(.)ident(count) ident(order) operator(=) constant(Order)operator(.)ident(new) ident(customer) operator(=) ident(order)operator(.)ident(billing) operator(=) ident(order)operator(.)ident(shipping) operator(=) constant(Customer)operator(.)ident(new) ident(assert) ident(order)operator(.)ident(save) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(billing) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(shipping) ident(order)operator(.)ident(reload) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(billing) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(shipping) ident(assert_equal) ident(num_orders) integer(+1)operator(,) constant(Order)operator(.)ident(count) ident(assert_equal) ident(num_customers) integer(+1)operator(,) constant(Customer)operator(.)ident(count) reserved(end) reserved(def) method(test_store_association_in_two_relations_with_one_save_in_existing_object) ident(num_orders) operator(=) constant(Order)operator(.)ident(count) ident(num_customers) operator(=) constant(Customer)operator(.)ident(count) ident(order) operator(=) constant(Order)operator(.)ident(create) ident(customer) operator(=) ident(order)operator(.)ident(billing) operator(=) ident(order)operator(.)ident(shipping) operator(=) constant(Customer)operator(.)ident(new) ident(assert) ident(order)operator(.)ident(save) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(billing) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(shipping) ident(order)operator(.)ident(reload) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(billing) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(shipping) ident(assert_equal) ident(num_orders) integer(+1)operator(,) constant(Order)operator(.)ident(count) ident(assert_equal) ident(num_customers) integer(+1)operator(,) constant(Customer)operator(.)ident(count) reserved(end) reserved(def) method(test_store_association_in_two_relations_with_one_save_in_existing_object_with_values) ident(num_orders) operator(=) constant(Order)operator(.)ident(count) ident(num_customers) operator(=) constant(Customer)operator(.)ident(count) ident(order) operator(=) constant(Order)operator(.)ident(create) ident(customer) operator(=) ident(order)operator(.)ident(billing) operator(=) ident(order)operator(.)ident(shipping) operator(=) constant(Customer)operator(.)ident(new) ident(assert) ident(order)operator(.)ident(save) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(billing) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(shipping) ident(order)operator(.)ident(reload) ident(customer) operator(=) ident(order)operator(.)ident(billing) operator(=) ident(order)operator(.)ident(shipping) operator(=) constant(Customer)operator(.)ident(new) ident(assert) ident(order)operator(.)ident(save) ident(order)operator(.)ident(reload) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(billing) ident(assert_equal) ident(customer)operator(,) ident(order)operator(.)ident(shipping) ident(assert_equal) ident(num_orders) integer(+1)operator(,) constant(Order)operator(.)ident(count) ident(assert_equal) ident(num_customers) integer(+2)operator(,) constant(Customer)operator(.)ident(count) reserved(end) reserved(def) method(test_association_assignment_sticks) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(author1)operator(,) ident(author2) operator(=) constant(Author)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(\)) ident(assert_not_nil) ident(author1) ident(assert_not_nil) ident(author2) comment(# make sure the association is loaded) ident(post)operator(.)ident(author) comment(# set the association by id, directly) ident(post)operator(.)ident(author_id) operator(=) ident(author2)operator(.)ident(id) comment(# save and reload) ident(post)operator(.)ident(save!) ident(post)operator(.)ident(reload) comment(# the author id of the post should be the id we set) ident(assert_equal) ident(post)operator(.)ident(author_id)operator(,) ident(author2)operator(.)ident(id) reserved(end) reserved(end) reserved(class) class(ProjectWithAfterCreateHook) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_table_name) string ident(has_and_belongs_to_many) symbol(:developers)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:join_table) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:association_foreign_key) operator(=)operator(>) string ident(after_create) symbol(:add_david) reserved(def) method(add_david) ident(david) operator(=) constant(DeveloperForProjectWithAfterCreateHook)operator(.)ident(find_by_name)operator(()stringoperator(\)) ident(david)operator(.)ident(projects) operator(<<) pre_constant(self) reserved(end) reserved(end) reserved(class) class(DeveloperForProjectWithAfterCreateHook) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_table_name) string ident(has_and_belongs_to_many) symbol(:projects)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:join_table) operator(=)operator(>) stringoperator(,) symbol(:association_foreign_key) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string reserved(end) reserved(class) class(HasAndBelongsToManyAssociationsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:accounts)operator(,) symbol(:companies)operator(,) symbol(:categories)operator(,) symbol(:posts)operator(,) symbol(:categories_posts)operator(,) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:developers_projects) reserved(def) method(test_has_and_belongs_to_many) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)ident(david)operator(.)ident(projects)operator(.)ident(empty?) ident(assert_equal) integer(2)operator(,) ident(david)operator(.)ident(projects)operator(.)ident(size) ident(active_record) operator(=) constant(Project)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)ident(active_record)operator(.)ident(developers)operator(.)ident(empty?) ident(assert_equal) integer(3)operator(,) ident(active_record)operator(.)ident(developers)operator(.)ident(size) ident(assert) ident(active_record)operator(.)ident(developers)operator(.)ident(include?)operator(()ident(david)operator(\)) reserved(end) reserved(def) method(test_triple_equality) ident(assert) operator(!)operator(()constant(Array) operator(===) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(projects)operator(\)) ident(assert) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(projects) operator(===) constant(Array) reserved(end) reserved(def) method(test_adding_single) ident(jamis) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(2)operator(\)) ident(jamis)operator(.)ident(projects)operator(.)ident(reload) comment(# causing the collection to load ) ident(action_controller) operator(=) constant(Project)operator(.)ident(find)operator(()integer(2)operator(\)) ident(assert_equal) integer(1)operator(,) ident(jamis)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(action_controller)operator(.)ident(developers)operator(.)ident(size) ident(jamis)operator(.)ident(projects) operator(<<) ident(action_controller) ident(assert_equal) integer(2)operator(,) ident(jamis)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(jamis)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(action_controller)operator(.)ident(developers)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_adding_type_mismatch) ident(jamis) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(2)operator(\)) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) ident(jamis)operator(.)ident(projects) operator(<<) pre_constant(nil) operator(}) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(AssociationTypeMismatch)operator(\)) operator({) ident(jamis)operator(.)ident(projects) operator(<<) integer(1) operator(}) reserved(end) reserved(def) method(test_adding_from_the_project) ident(jamis) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(2)operator(\)) ident(action_controller) operator(=) constant(Project)operator(.)ident(find)operator(()integer(2)operator(\)) ident(action_controller)operator(.)ident(developers)operator(.)ident(reload) ident(assert_equal) integer(1)operator(,) ident(jamis)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(action_controller)operator(.)ident(developers)operator(.)ident(size) ident(action_controller)operator(.)ident(developers) operator(<<) ident(jamis) ident(assert_equal) integer(2)operator(,) ident(jamis)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(action_controller)operator(.)ident(developers)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(action_controller)operator(.)ident(developers)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_adding_from_the_project_fixed_timestamp) ident(jamis) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(2)operator(\)) ident(action_controller) operator(=) constant(Project)operator(.)ident(find)operator(()integer(2)operator(\)) ident(action_controller)operator(.)ident(developers)operator(.)ident(reload) ident(assert_equal) integer(1)operator(,) ident(jamis)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(action_controller)operator(.)ident(developers)operator(.)ident(size) ident(updated_at) operator(=) ident(jamis)operator(.)ident(updated_at) ident(action_controller)operator(.)ident(developers) operator(<<) ident(jamis) ident(assert_equal) ident(updated_at)operator(,) ident(jamis)operator(.)ident(updated_at) ident(assert_equal) integer(2)operator(,) ident(jamis)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(action_controller)operator(.)ident(developers)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(action_controller)operator(.)ident(developers)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_adding_multiple) ident(aredridel) operator(=) constant(Developer)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(aredridel)operator(.)ident(save) ident(aredridel)operator(.)ident(projects)operator(.)ident(reload) ident(aredridel)operator(.)ident(projects)operator(.)ident(push)operator(()constant(Project)operator(.)ident(find)operator(()integer(1)operator(\))operator(,) constant(Project)operator(.)ident(find)operator(()integer(2)operator(\))operator(\)) ident(assert_equal) integer(2)operator(,) ident(aredridel)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(aredridel)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_adding_a_collection) ident(aredridel) operator(=) constant(Developer)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(aredridel)operator(.)ident(save) ident(aredridel)operator(.)ident(projects)operator(.)ident(reload) ident(aredridel)operator(.)ident(projects)operator(.)ident(concat)operator(()operator([)constant(Project)operator(.)ident(find)operator(()integer(1)operator(\))operator(,) constant(Project)operator(.)ident(find)operator(()integer(2)operator(\))operator(])operator(\)) ident(assert_equal) integer(2)operator(,) ident(aredridel)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(aredridel)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_adding_uses_default_values_on_join_table) ident(ac) operator(=) ident(projects)operator(()symbol(:action_controller)operator(\)) ident(assert) operator(!)ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects)operator(.)ident(include?)operator(()ident(ac)operator(\)) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects) operator(<<) ident(ac) ident(assert) ident(developers)operator(()symbol(:jamis)operator(,) symbol(:reload)operator(\))operator(.)ident(projects)operator(.)ident(include?)operator(()ident(ac)operator(\)) ident(project) operator(=) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects)operator(.)ident(detect) operator({) operator(|)ident(p)operator(|) ident(p) operator(==) ident(ac) operator(}) ident(assert_equal) integer(1)operator(,) ident(project)operator(.)ident(access_level)operator(.)ident(to_i) reserved(end) reserved(def) method(test_adding_uses_explicit_values_on_join_table) ident(ac) operator(=) ident(projects)operator(()symbol(:action_controller)operator(\)) ident(assert) operator(!)ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects)operator(.)ident(include?)operator(()ident(ac)operator(\)) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects)operator(.)ident(push_with_attributes)operator(()ident(ac)operator(,) symbol(:access_level) operator(=)operator(>) integer(3)operator(\)) ident(assert) ident(developers)operator(()symbol(:jamis)operator(,) symbol(:reload)operator(\))operator(.)ident(projects)operator(.)ident(include?)operator(()ident(ac)operator(\)) ident(project) operator(=) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects)operator(.)ident(detect) operator({) operator(|)ident(p)operator(|) ident(p) operator(==) ident(ac) operator(}) ident(assert_equal) integer(3)operator(,) ident(project)operator(.)ident(access_level)operator(.)ident(to_i) reserved(end) reserved(def) method(test_hatbm_attribute_access_and_respond_to) ident(project) operator(=) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects)operator([)integer(0)operator(]) ident(assert) ident(project)operator(.)ident(has_attribute?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(has_attribute?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(has_attribute?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(project)operator(.)ident(respond_to?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_habtm_adding_before_save) ident(no_of_devels) operator(=) constant(Developer)operator(.)ident(count) ident(no_of_projects) operator(=) constant(Project)operator(.)ident(count) ident(aredridel) operator(=) constant(Developer)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(aredridel)operator(.)ident(projects)operator(.)ident(concat)operator(()operator([)constant(Project)operator(.)ident(find)operator(()integer(1)operator(\))operator(,) ident(p) operator(=) constant(Project)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(])operator(\)) ident(assert) ident(aredridel)operator(.)ident(new_record?) ident(assert) ident(p)operator(.)ident(new_record?) ident(assert) ident(aredridel)operator(.)ident(save) ident(assert) operator(!)ident(aredridel)operator(.)ident(new_record?) ident(assert_equal) ident(no_of_devels)operator(+)integer(1)operator(,) constant(Developer)operator(.)ident(count) ident(assert_equal) ident(no_of_projects)operator(+)integer(1)operator(,) constant(Project)operator(.)ident(count) ident(assert_equal) integer(2)operator(,) ident(aredridel)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(aredridel)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_habtm_adding_before_save_with_join_attributes) ident(no_of_devels) operator(=) constant(Developer)operator(.)ident(count) ident(no_of_projects) operator(=) constant(Project)operator(.)ident(count) ident(now) operator(=) constant(Date)operator(.)ident(today) ident(ken) operator(=) constant(Developer)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(ken)operator(.)ident(projects)operator(.)ident(push_with_attributes)operator(() constant(Project)operator(.)ident(find)operator(()integer(1)operator(\))operator(,) symbol(:joined_on) operator(=)operator(>) ident(now) operator(\)) ident(p) operator(=) constant(Project)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(ken)operator(.)ident(projects)operator(.)ident(push_with_attributes)operator(() ident(p)operator(,) symbol(:joined_on) operator(=)operator(>) ident(now) operator(\)) ident(assert) ident(ken)operator(.)ident(new_record?) ident(assert) ident(p)operator(.)ident(new_record?) ident(assert) ident(ken)operator(.)ident(save) ident(assert) operator(!)ident(ken)operator(.)ident(new_record?) ident(assert_equal) ident(no_of_devels)operator(+)integer(1)operator(,) constant(Developer)operator(.)ident(count) ident(assert_equal) ident(no_of_projects)operator(+)integer(1)operator(,) constant(Project)operator(.)ident(count) ident(assert_equal) integer(2)operator(,) ident(ken)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(ken)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) ident(kenReloaded) operator(=) constant(Developer)operator(.)ident(find_by_name) string ident(kenReloaded)operator(.)ident(projects)operator(.)ident(each) operator({)operator(|)ident(prj)operator(|) ident(assert_date_from_db)operator(()ident(now)operator(,) ident(prj)operator(.)ident(joined_on)operator(\))operator(}) reserved(end) reserved(def) method(test_habtm_saving_multiple_relationships) ident(new_project) operator(=) constant(Project)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(amount_of_developers) operator(=) integer(4) ident(developers) operator(=) operator(()integer(0)operator(..)ident(amount_of_developers)operator(\))operator(.)ident(collect) operator({)operator(|)ident(i)operator(|) constant(Developer)operator(.)ident(create)operator(()symbol(:name) operator(=)operator(>) stringdelimiter(")>operator(\)) operator(}) ident(new_project)operator(.)ident(developer_ids) operator(=) operator([)ident(developers)operator([)integer(0)operator(])operator(.)ident(id)operator(,) ident(developers)operator([)integer(1)operator(])operator(.)ident(id)operator(]) ident(new_project)operator(.)ident(developers_with_callback_ids) operator(=) operator([)ident(developers)operator([)integer(2)operator(])operator(.)ident(id)operator(,) ident(developers)operator([)integer(3)operator(])operator(.)ident(id)operator(]) ident(assert) ident(new_project)operator(.)ident(save) ident(new_project)operator(.)ident(reload) ident(assert_equal) ident(amount_of_developers)operator(,) ident(new_project)operator(.)ident(developers)operator(.)ident(size) ident(amount_of_developers)operator(.)ident(times) reserved(do) operator(|)ident(i)operator(|) ident(assert_equal) ident(developers)operator([)ident(i)operator(])operator(.)ident(name)operator(,) ident(new_project)operator(.)ident(developers)operator([)ident(i)operator(])operator(.)ident(name) reserved(end) reserved(end) reserved(def) method(test_build) ident(devel) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(proj) operator(=) ident(devel)operator(.)ident(projects)operator(.)ident(build)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(devel)operator(.)ident(projects)operator(.)ident(last)operator(,) ident(proj) ident(assert) ident(proj)operator(.)ident(new_record?) ident(devel)operator(.)ident(save) ident(assert) operator(!)ident(proj)operator(.)ident(new_record?) ident(assert_equal) ident(devel)operator(.)ident(projects)operator(.)ident(last)operator(,) ident(proj) reserved(end) reserved(def) method(test_create) ident(devel) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(proj) operator(=) ident(devel)operator(.)ident(projects)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(devel)operator(.)ident(projects)operator(.)ident(last)operator(,) ident(proj) ident(assert) operator(!)ident(proj)operator(.)ident(new_record?) reserved(end) reserved(def) method(test_uniq_after_the_fact) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects) operator(<<) ident(projects)operator(()symbol(:active_record)operator(\)) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects) operator(<<) ident(projects)operator(()symbol(:active_record)operator(\)) ident(assert_equal) integer(3)operator(,) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects)operator(.)ident(uniq)operator(.)ident(size) reserved(end) reserved(def) method(test_uniq_before_the_fact) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers) operator(<<) ident(developers)operator(()symbol(:jamis)operator(\)) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers) operator(<<) ident(developers)operator(()symbol(:david)operator(\)) ident(assert_equal) integer(3)operator(,) ident(projects)operator(()symbol(:active_record)operator(,) symbol(:reload)operator(\))operator(.)ident(developers)operator(.)ident(size) reserved(end) reserved(def) method(test_deleting) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(active_record) operator(=) constant(Project)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(projects)operator(.)ident(reload) ident(assert_equal) integer(2)operator(,) ident(david)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(3)operator(,) ident(active_record)operator(.)ident(developers)operator(.)ident(size) ident(david)operator(.)ident(projects)operator(.)ident(delete)operator(()ident(active_record)operator(\)) ident(assert_equal) integer(1)operator(,) ident(david)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(david)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) ident(active_record)operator(.)ident(developers)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_deleting_array) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(projects)operator(.)ident(reload) ident(david)operator(.)ident(projects)operator(.)ident(delete)operator(()constant(Project)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(\)) ident(assert_equal) integer(0)operator(,) ident(david)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(david)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_deleting_with_sql) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(active_record) operator(=) constant(Project)operator(.)ident(find)operator(()integer(1)operator(\)) ident(active_record)operator(.)ident(developers)operator(.)ident(reload) ident(assert_equal) integer(3)operator(,) ident(active_record)operator(.)ident(developers_by_sql)operator(.)ident(size) ident(active_record)operator(.)ident(developers_by_sql)operator(.)ident(delete)operator(()ident(david)operator(\)) ident(assert_equal) integer(2)operator(,) ident(active_record)operator(.)ident(developers_by_sql)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_deleting_array_with_sql) ident(active_record) operator(=) constant(Project)operator(.)ident(find)operator(()integer(1)operator(\)) ident(active_record)operator(.)ident(developers)operator(.)ident(reload) ident(assert_equal) integer(3)operator(,) ident(active_record)operator(.)ident(developers_by_sql)operator(.)ident(size) ident(active_record)operator(.)ident(developers_by_sql)operator(.)ident(delete)operator(()constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(\)) ident(assert_equal) integer(0)operator(,) ident(active_record)operator(.)ident(developers_by_sql)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_deleting_all) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(projects)operator(.)ident(reload) ident(david)operator(.)ident(projects)operator(.)ident(clear) ident(assert_equal) integer(0)operator(,) ident(david)operator(.)ident(projects)operator(.)ident(size) ident(assert_equal) integer(0)operator(,) ident(david)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_removing_associations_on_destroy) ident(david) operator(=) constant(DeveloperWithBeforeDestroyRaise)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)ident(david)operator(.)ident(projects)operator(.)ident(empty?) ident(assert_nothing_raised) operator({) ident(david)operator(.)ident(destroy) operator(}) ident(assert) ident(david)operator(.)ident(projects)operator(.)ident(empty?) ident(assert) constant(DeveloperWithBeforeDestroyRaise)operator(.)ident(connection)operator(.)ident(select_all)operator(()stringoperator(\))operator(.)ident(empty?) reserved(end) reserved(def) method(test_additional_columns_from_join_table) ident(assert_date_from_db) constant(Date)operator(.)ident(new)operator(()integer(2004)operator(,) integer(10)operator(,) integer(10)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(projects)operator(.)ident(first)operator(.)ident(joined_on) reserved(end) reserved(def) method(test_destroy_all) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(projects)operator(.)ident(reload) ident(assert) operator(!)ident(david)operator(.)ident(projects)operator(.)ident(empty?) ident(david)operator(.)ident(projects)operator(.)ident(destroy_all) ident(assert) ident(david)operator(.)ident(projects)operator(.)ident(empty?) ident(assert) ident(david)operator(.)ident(projects)operator(()pre_constant(true)operator(\))operator(.)ident(empty?) reserved(end) reserved(def) method(test_rich_association) ident(jamis) operator(=) ident(developers)operator(()symbol(:jamis)operator(\)) ident(jamis)operator(.)ident(projects)operator(.)ident(push_with_attributes)operator(()ident(projects)operator(()symbol(:action_controller)operator(\))operator(,) symbol(:joined_on) operator(=)operator(>) constant(Date)operator(.)ident(today)operator(\)) ident(assert_date_from_db) constant(Date)operator(.)ident(today)operator(,) ident(jamis)operator(.)ident(projects)operator(.)ident(select) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(name) operator(==) ident(projects)operator(()symbol(:action_controller)operator(\))operator(.)ident(name) operator(})operator(.)ident(first)operator(.)ident(joined_on) ident(assert_date_from_db) constant(Date)operator(.)ident(today)operator(,) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(projects)operator(.)ident(select) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(name) operator(==) ident(projects)operator(()symbol(:action_controller)operator(\))operator(.)ident(name) operator(})operator(.)ident(first)operator(.)ident(joined_on) reserved(end) reserved(def) method(test_associations_with_conditions) ident(assert_equal) integer(3)operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers_named_david)operator(.)ident(size) ident(assert_equal) ident(developers)operator(()symbol(:david)operator(\))operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers_named_david)operator(.)ident(find)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(.)ident(id)operator(\)) ident(assert_equal) ident(developers)operator(()symbol(:david)operator(\))operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(salaried_developers)operator(.)ident(find)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(.)ident(id)operator(\)) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers_named_david)operator(.)ident(clear) ident(assert_equal) integer(2)operator(,) ident(projects)operator(()symbol(:active_record)operator(,) symbol(:reload)operator(\))operator(.)ident(developers)operator(.)ident(size) reserved(end) reserved(def) method(test_find_in_association) comment(# Using sql) ident(assert_equal) ident(developers)operator(()symbol(:david)operator(\))operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers)operator(.)ident(find)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(.)ident(id)operator(\))operator(,) string comment(# Using ruby) ident(active_record) operator(=) ident(projects)operator(()symbol(:active_record)operator(\)) ident(active_record)operator(.)ident(developers)operator(.)ident(reload) ident(assert_equal) ident(developers)operator(()symbol(:david)operator(\))operator(,) ident(active_record)operator(.)ident(developers)operator(.)ident(find)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(.)ident(id)operator(\))operator(,) string reserved(end) reserved(def) method(test_find_in_association_with_custom_finder_sql) ident(assert_equal) ident(developers)operator(()symbol(:david)operator(\))operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers_with_finder_sql)operator(.)ident(find)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(.)ident(id)operator(\))operator(,) string ident(active_record) operator(=) ident(projects)operator(()symbol(:active_record)operator(\)) ident(active_record)operator(.)ident(developers_with_finder_sql)operator(.)ident(reload) ident(assert_equal) ident(developers)operator(()symbol(:david)operator(\))operator(,) ident(active_record)operator(.)ident(developers_with_finder_sql)operator(.)ident(find)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(.)ident(id)operator(\))operator(,) string reserved(end) reserved(def) method(test_find_in_association_with_custom_finder_sql_and_string_id) ident(assert_equal) ident(developers)operator(()symbol(:david)operator(\))operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers_with_finder_sql)operator(.)ident(find)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(.)ident(id)operator(.)ident(to_s)operator(\))operator(,) string reserved(end) reserved(def) method(test_find_with_merged_options) ident(assert_equal) integer(1)operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(limited_developers)operator(.)ident(size) ident(assert_equal) integer(1)operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(limited_developers)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(size) ident(assert_equal) integer(3)operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(limited_developers)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:limit) operator(=)operator(>) pre_constant(nil)operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_new_with_values_in_collection) ident(jamis) operator(=) constant(DeveloperForProjectWithAfterCreateHook)operator(.)ident(find_by_name)operator(()stringoperator(\)) ident(david) operator(=) constant(DeveloperForProjectWithAfterCreateHook)operator(.)ident(find_by_name)operator(()stringoperator(\)) ident(project) operator(=) constant(ProjectWithAfterCreateHook)operator(.)ident(new)operator(()symbol(:name) operator(=)operator(>) stringoperator(\)) ident(project)operator(.)ident(developers) operator(<<) ident(jamis) ident(project)operator(.)ident(save!) ident(project)operator(.)ident(reload) ident(assert) ident(project)operator(.)ident(developers)operator(.)ident(include?)operator(()ident(jamis)operator(\)) ident(assert) ident(project)operator(.)ident(developers)operator(.)ident(include?)operator(()ident(david)operator(\)) reserved(end) reserved(def) method(test_find_in_association_with_options) ident(developers) operator(=) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers)operator(.)ident(find)operator(()symbol(:all)operator(\)) ident(assert_equal) integer(3)operator(,) ident(developers)operator(.)ident(size) ident(assert_equal) ident(developers)operator(()symbol(:poor_jamis)operator(\))operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(developers)operator(()symbol(:jamis)operator(\))operator(,) ident(projects)operator(()symbol(:active_record)operator(\))operator(.)ident(developers)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_replace_with_less) ident(david) operator(=) ident(developers)operator(()symbol(:david)operator(\)) ident(david)operator(.)ident(projects) operator(=) operator([)ident(projects)operator(()symbol(:action_controller)operator(\))operator(]) ident(assert) ident(david)operator(.)ident(save) ident(assert_equal) integer(1)operator(,) ident(david)operator(.)ident(projects)operator(.)ident(length) reserved(end) reserved(def) method(test_replace_with_new) ident(david) operator(=) ident(developers)operator(()symbol(:david)operator(\)) ident(david)operator(.)ident(projects) operator(=) operator([)ident(projects)operator(()symbol(:action_controller)operator(\))operator(,) constant(Project)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(]) ident(david)operator(.)ident(save) ident(assert_equal) integer(2)operator(,) ident(david)operator(.)ident(projects)operator(.)ident(length) ident(assert) operator(!)ident(david)operator(.)ident(projects)operator(.)ident(include?)operator(()ident(projects)operator(()symbol(:active_record)operator(\))operator(\)) reserved(end) reserved(def) method(test_replace_on_new_object) ident(new_developer) operator(=) constant(Developer)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(new_developer)operator(.)ident(projects) operator(=) operator([)ident(projects)operator(()symbol(:action_controller)operator(\))operator(,) constant(Project)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(]) ident(new_developer)operator(.)ident(save) ident(assert_equal) integer(2)operator(,) ident(new_developer)operator(.)ident(projects)operator(.)ident(length) reserved(end) reserved(def) method(test_consider_type) ident(developer) operator(=) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(special_project) operator(=) constant(SpecialProject)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(other_project) operator(=) ident(developer)operator(.)ident(projects)operator(.)ident(first) ident(developer)operator(.)ident(special_projects) operator(<<) ident(special_project) ident(developer)operator(.)ident(reload) ident(assert) ident(developer)operator(.)ident(projects)operator(.)ident(include?)operator(()ident(special_project)operator(\)) ident(assert) ident(developer)operator(.)ident(special_projects)operator(.)ident(include?)operator(()ident(special_project)operator(\)) ident(assert) operator(!)ident(developer)operator(.)ident(special_projects)operator(.)ident(include?)operator(()ident(other_project)operator(\)) reserved(end) reserved(def) method(test_update_attributes_after_push_without_duplicate_join_table_rows) ident(developer) operator(=) constant(Developer)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(project) operator(=) constant(SpecialProject)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) ident(developer)operator(.)ident(save) ident(developer)operator(.)ident(projects) operator(<<) ident(project) ident(developer)operator(.)ident(update_attribute)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) integer(1)operator(,) constant(Developer)operator(.)ident(connection)operator(.)ident(select_value)operator(()stringoperator(\))operator(.)ident(to_i)stringcontent( AND developer_id = )inlinedelimiter( end_sql)> reserved(end) reserved(def) method(test_updating_attributes_on_non_rich_associations) ident(welcome) operator(=) ident(categories)operator(()symbol(:technology)operator(\))operator(.)ident(posts)operator(.)ident(first) ident(welcome)operator(.)ident(title) operator(=) string ident(assert) ident(welcome)operator(.)ident(save!) reserved(end) reserved(def) method(test_updating_attributes_on_rich_associations) ident(david) operator(=) ident(projects)operator(()symbol(:action_controller)operator(\))operator(.)ident(developers)operator(.)ident(first) ident(david)operator(.)ident(name) operator(=) string ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(ReadOnlyRecord)operator(\)) operator({) ident(david)operator(.)ident(save!) operator(}) reserved(end) reserved(def) method(test_updating_attributes_on_rich_associations_with_limited_find) ident(david) operator(=) ident(projects)operator(()symbol(:action_controller)operator(\))operator(.)ident(developers)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:select) operator(=)operator(>) stringoperator(\))operator(.)ident(first) ident(david)operator(.)ident(name) operator(=) string ident(assert) ident(david)operator(.)ident(save!) reserved(end) reserved(def) method(test_join_table_alias) ident(assert_equal) integer(3)operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:include) operator(=)operator(>) operator({)symbol(:projects) operator(=)operator(>) symbol(:developers)operator(})operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\))operator(.)ident(size) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(Category) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(Smarts) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(CreditCard) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(MasterCreditCard) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(Post) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(Computer) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(NonExistentTable) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(TestOracleDefault) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(LoosePerson) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(attr_protected) symbol(:credit_rating)operator(,) symbol(:administrator) pre_constant(self)operator(.)ident(abstract_class) operator(=) pre_constant(true) reserved(end) reserved(class) class(LooseDescendant) operator(<) constant(LoosePerson) ident(attr_protected) symbol(:phone_number) reserved(end) reserved(class) class(TightPerson) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(attr_accessible) symbol(:name)operator(,) symbol(:address) reserved(end) reserved(class) class(TightDescendant) operator(<) constant(TightPerson) ident(attr_accessible) symbol(:phone_number) reserved(end) reserved(class) class(Booleantest) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(Task) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(attr_protected) symbol(:starting) reserved(end) reserved(class) class(BasicsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:topics)operator(,) symbol(:companies)operator(,) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:computers) reserved(def) method(test_table_exists) ident(assert) operator(!)constant(NonExistentTable)operator(.)ident(table_exists?) ident(assert) constant(Topic)operator(.)ident(table_exists?) reserved(end) reserved(def) method(test_set_attributes) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(topic)operator(.)ident(attributes) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) ident(topic)operator(.)ident(save) ident(assert_equal)operator(()stringoperator(,) ident(topic)operator(.)ident(title)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(topic)operator(.)ident(author_name)operator(\)) ident(assert_equal)operator(()ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(author_email_address)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(author_email_address)operator(\)) reserved(end) reserved(def) method(test_integers_as_nil) ident(test) operator(=) constant(AutoId)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_nil) constant(AutoId)operator(.)ident(find)operator(()ident(test)operator(.)ident(id)operator(\))operator(.)ident(value) reserved(end) reserved(def) method(test_set_attributes_with_block) ident(topic) operator(=) constant(Topic)operator(.)ident(new) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(title) operator(=) string ident(t)operator(.)ident(author_name) operator(=) string reserved(end) ident(assert_equal)operator(()stringoperator(,) ident(topic)operator(.)ident(title)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(topic)operator(.)ident(author_name)operator(\)) reserved(end) reserved(def) method(test_respond_to?) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) ident(topic)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(topic)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(topic)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(topic)operator(.)ident(respond_to?)operator(()symbol(:title)operator(\)) ident(assert) ident(topic)operator(.)ident(respond_to?)operator(()symbol(:title?)operator(\)) ident(assert) ident(topic)operator(.)ident(respond_to?)operator(()symbol(:title=)operator(\)) ident(assert) ident(topic)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(topic)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) operator(!)ident(topic)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) operator(!)ident(topic)operator(.)ident(respond_to?)operator(()symbol(:nothingness)operator(\)) reserved(end) reserved(def) method(test_array_content) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(content) operator(=) string ident(topic)operator(.)ident(save) ident(assert_equal)operator(()stringoperator(,) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\))operator(.)ident(content)operator(\)) reserved(end) reserved(def) method(test_hash_content) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(content) operator(=) operator({) string operator(=)operator(>) integer(1)operator(,) string operator(=)operator(>) integer(2) operator(}) ident(topic)operator(.)ident(save) ident(assert_equal) integer(2)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\))operator(.)ident(content)operator([)stringoperator(]) ident(topic)operator(.)ident(content)operator([)stringoperator(]) operator(=) integer(3) ident(topic)operator(.)ident(save) ident(assert_equal) integer(3)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\))operator(.)ident(content)operator([)stringoperator(]) reserved(end) reserved(def) method(test_update_array_content) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(content) operator(=) string ident(topic)operator(.)ident(content)operator(.)ident(push) string ident(assert_equal)operator(()stringoperator(,) ident(topic)operator(.)ident(content)operator(\)) ident(topic)operator(.)ident(save) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\)) ident(topic)operator(.)ident(content) operator(<<) string ident(assert_equal)operator(()stringoperator(,) ident(topic)operator(.)ident(content)operator(\)) reserved(end) reserved(def) method(test_case_sensitive_attributes_hash) comment(# DB2 is not case-sensitive) reserved(return) pre_constant(true) reserved(if) ident(current_adapter?)operator(()symbol(:DB2Adapter)operator(\)) ident(assert_equal) instance_variable(@loaded_fixtures)operator([)stringoperator(])operator([)stringoperator(])operator(.)ident(to_hash)operator(,) constant(Computer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(attributes) reserved(end) reserved(def) method(test_create) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(title) operator(=) string ident(topic)operator(.)ident(save) ident(topic_reloaded) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(topic_reloaded)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_save!) ident(topic) operator(=) constant(Topic)operator(.)ident(new)operator(()symbol(:title) operator(=)operator(>) stringoperator(\)) ident(assert) ident(topic)operator(.)ident(save!) reserved(end) reserved(def) method(test_hashes_not_mangled) ident(new_topic) operator(=) operator({) symbol(:title) operator(=)operator(>) string operator(}) ident(new_topic_values) operator(=) operator({) symbol(:title) operator(=)operator(>) string operator(}) ident(topic) operator(=) constant(Topic)operator(.)ident(new)operator(()ident(new_topic)operator(\)) ident(assert_equal) ident(new_topic)operator([)symbol(:title)operator(])operator(,) ident(topic)operator(.)ident(title) ident(topic)operator(.)ident(attributes)operator(=) ident(new_topic_values) ident(assert_equal) ident(new_topic_values)operator([)symbol(:title)operator(])operator(,) ident(topic)operator(.)ident(title) reserved(end) reserved(def) method(test_create_many) ident(topics) operator(=) constant(Topic)operator(.)ident(create)operator(()operator([) operator({) string operator(=)operator(>) string operator(})operator(,) operator({) string operator(=)operator(>) string operator(})operator(])operator(\)) ident(assert_equal) integer(2)operator(,) ident(topics)operator(.)ident(size) ident(assert_equal) stringoperator(,) ident(topics)operator(.)ident(first)operator(.)ident(title) reserved(end) reserved(def) method(test_create_columns_not_equal_attributes) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(title) operator(=) string ident(topic)operator(.)ident(send) symbol(:write_attribute)operator(,) stringoperator(,) string ident(assert_nothing_raised) operator({) ident(topic)operator(.)ident(save) operator(}) reserved(end) reserved(def) method(test_create_through_factory) ident(topic) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(topicReloaded) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\)) ident(assert_equal)operator(()ident(topic)operator(,) ident(topicReloaded)operator(\)) reserved(end) reserved(def) method(test_update) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(title) operator(=) string ident(topic)operator(.)ident(written_on) operator(=) string ident(topic)operator(.)ident(save) ident(topicReloaded) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(topicReloaded)operator(.)ident(title)operator(\)) ident(topicReloaded)operator(.)ident(title) operator(=) string ident(topicReloaded)operator(.)ident(save) ident(topicReloadedAgain) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(topicReloadedAgain)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_update_columns_not_equal_attributes) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(title) operator(=) string ident(topic)operator(.)ident(save) ident(topicReloaded) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\)) ident(topicReloaded)operator(.)ident(title) operator(=) string ident(topicReloaded)operator(.)ident(send) symbol(:write_attribute)operator(,) stringoperator(,) string ident(assert_nothing_raised) operator({) ident(topicReloaded)operator(.)ident(save) operator(}) reserved(end) reserved(def) method(test_write_attribute) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(send)operator(()symbol(:write_attribute)operator(,) symbol(:title)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(topic)operator(.)ident(title) ident(topic)operator(.)ident(send)operator(()symbol(:write_attribute)operator(,) stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(topic)operator(.)ident(title) reserved(end) reserved(def) method(test_read_attribute) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(title) operator(=) string ident(assert_equal) stringoperator(,) ident(topic)operator(.)ident(send)operator(()symbol(:read_attribute)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(topic)operator([)stringoperator(]) ident(assert_equal) stringoperator(,) ident(topic)operator(.)ident(send)operator(()symbol(:read_attribute)operator(,) symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(topic)operator([)symbol(:title)operator(]) reserved(end) reserved(def) method(test_read_attribute_when_false) ident(topic) operator(=) ident(topics)operator(()symbol(:first)operator(\)) ident(topic)operator(.)ident(approved) operator(=) pre_constant(false) ident(assert) operator(!)ident(topic)operator(.)ident(approved?)operator(,) string ident(topic)operator(.)ident(approved) operator(=) string ident(assert) operator(!)ident(topic)operator(.)ident(approved?)operator(,) string reserved(end) reserved(def) method(test_read_attribute_when_true) ident(topic) operator(=) ident(topics)operator(()symbol(:first)operator(\)) ident(topic)operator(.)ident(approved) operator(=) pre_constant(true) ident(assert) ident(topic)operator(.)ident(approved?)operator(,) string ident(topic)operator(.)ident(approved) operator(=) string ident(assert) ident(topic)operator(.)ident(approved?)operator(,) string reserved(end) reserved(def) method(test_read_write_boolean_attribute) ident(topic) operator(=) constant(Topic)operator(.)ident(new) comment(# puts "") comment(# puts "New Topic") comment(# puts topic.inspect) ident(topic)operator(.)ident(approved) operator(=) string comment(# puts "Expecting false") comment(# puts topic.inspect) ident(assert) operator(!)ident(topic)operator(.)ident(approved?)operator(,) string ident(topic)operator(.)ident(approved) operator(=) string comment(# puts "Expecting false") comment(# puts topic.inspect) ident(assert) operator(!)ident(topic)operator(.)ident(approved?)operator(,) string ident(topic)operator(.)ident(approved) operator(=) string comment(# puts "Expecting true") comment(# puts topic.inspect) ident(assert) ident(topic)operator(.)ident(approved?)operator(,) string ident(topic)operator(.)ident(approved) operator(=) string comment(# puts "Expecting true") comment(# puts topic.inspect) ident(assert) ident(topic)operator(.)ident(approved?)operator(,) string comment(# puts "") reserved(end) reserved(def) method(test_reader_generation) constant(Topic)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(title) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name) constant(Client)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name) reserved(if) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(generate_read_methods) ident(assert_readers)operator(()constant(Topic)operator(,) stringoperator(\)) ident(assert_readers)operator(()constant(Firm)operator(,) stringoperator(\)) ident(assert_readers)operator(()constant(Client)operator(,) stringoperator(\)) reserved(else) operator([)constant(Topic)operator(,) constant(Firm)operator(,) constant(Client)operator(])operator(.)ident(each) operator({)operator(|)ident(klass)operator(|) ident(assert_equal) ident(klass)operator(.)ident(read_methods)operator(,) operator({)operator(})operator(}) reserved(end) reserved(end) reserved(def) method(test_reader_for_invalid_column_names) comment(# column names which aren't legal ruby ids) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(topic)operator(.)ident(send)operator(()symbol(:define_read_method)operator(,) stringoperator(.)ident(to_sym)operator(,) stringoperator(,) pre_constant(nil)operator(\)) ident(assert) operator(!)constant(Topic)operator(.)ident(read_methods)operator(.)ident(include?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_non_attribute_access_and_assignment) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(assert) operator(!)ident(topic)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert_raises)operator(()constant(NoMethodError)operator(\)) operator({) ident(topic)operator(.)ident(mumbo) operator(}) ident(assert_raises)operator(()constant(NoMethodError)operator(\)) operator({) ident(topic)operator(.)ident(mumbo) operator(=) integer(5) operator(}) reserved(end) reserved(def) method(test_preserving_date_objects) comment(# SQL Server doesn't have a separate column type just for dates, so all are returned as time) reserved(return) pre_constant(true) reserved(if) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) reserved(if) ident(current_adapter?)operator(()symbol(:SybaseAdapter)operator(\)) comment(# Sybase ctlib does not (yet?\) support the date type; use datetime instead.) ident(assert_kind_of)operator(() constant(Time)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(last_read)operator(,) string operator(\)) reserved(else) ident(assert_kind_of)operator(() constant(Date)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(last_read)operator(,) string operator(\)) reserved(end) reserved(end) reserved(def) method(test_preserving_time_objects) ident(assert_kind_of)operator(() constant(Time)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(bonus_time)operator(,) string operator(\)) ident(assert_kind_of)operator(() constant(Time)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(written_on)operator(,) string operator(\)) reserved(end) reserved(def) method(test_destroy) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(title) operator(=) string ident(topic)operator(.)ident(written_on) operator(=) string ident(topic)operator(.)ident(save) ident(topic)operator(.)ident(destroy) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\)) operator(}) reserved(end) reserved(def) method(test_destroy_returns_self) ident(topic) operator(=) constant(Topic)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) ident(topic)operator(.)ident(save) ident(assert_equal) ident(topic)operator(,) ident(topic)operator(.)ident(destroy)operator(,) string reserved(end) reserved(def) method(test_record_not_found_exception) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) ident(topicReloaded) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(99999)operator(\)) operator(}) reserved(end) reserved(def) method(test_initialize_with_attributes) ident(topic) operator(=) constant(Topic)operator(.)ident(new)operator(()operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(})operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(topic)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_initialize_with_invalid_attribute) reserved(begin) ident(topic) operator(=) constant(Topic)operator(.)ident(new)operator(()operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(})operator(\)) reserved(rescue) constant(ActiveRecord)operator(::)constant(MultiparameterAssignmentErrors) operator(=)operator(>) ident(ex) ident(assert_equal)operator(()integer(1)operator(,) ident(ex)operator(.)ident(errors)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(ex)operator(.)ident(errors)operator([)integer(0)operator(])operator(.)ident(attribute)operator(\)) reserved(end) reserved(end) reserved(def) method(test_load) ident(topics) operator(=) constant(Topic)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal)operator(()integer(2)operator(,) ident(topics)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(title)operator(,) ident(topics)operator(.)ident(first)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_load_with_condition) ident(topics) operator(=) constant(Topic)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal)operator(()integer(1)operator(,) ident(topics)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()ident(topics)operator(()symbol(:second)operator(\))operator(.)ident(title)operator(,) ident(topics)operator(.)ident(first)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_table_name_guesses) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(table_name) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) ident(assert_equal) stringoperator(,) constant(Smarts)operator(.)ident(table_name) ident(assert_equal) stringoperator(,) constant(CreditCard)operator(.)ident(table_name) ident(assert_equal) stringoperator(,) constant(MasterCreditCard)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(pluralize_table_names) operator(=) pre_constant(false) operator([)constant(Category)operator(,) constant(Smarts)operator(,) constant(CreditCard)operator(,) constant(MasterCreditCard)operator(])operator(.)ident(each)operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(reset_table_name)operator(}) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) ident(assert_equal) stringoperator(,) constant(Smarts)operator(.)ident(table_name) ident(assert_equal) stringoperator(,) constant(CreditCard)operator(.)ident(table_name) ident(assert_equal) stringoperator(,) constant(MasterCreditCard)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(pluralize_table_names) operator(=) pre_constant(true) operator([)constant(Category)operator(,) constant(Smarts)operator(,) constant(CreditCard)operator(,) constant(MasterCreditCard)operator(])operator(.)ident(each)operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(reset_table_name)operator(}) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(Category)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Category)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(Category)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Category)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(pluralize_table_names) operator(=) pre_constant(false) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(Category)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Category)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(Category)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Category)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(pluralize_table_names) operator(=) pre_constant(true) operator([)constant(Category)operator(,) constant(Smarts)operator(,) constant(CreditCard)operator(,) constant(MasterCreditCard)operator(])operator(.)ident(each)operator({)operator(|)ident(c)operator(|) ident(c)operator(.)ident(reset_table_name)operator(}) reserved(end) reserved(def) method(test_destroy_all) ident(assert_equal) integer(2)operator(,) constant(Topic)operator(.)ident(count) constant(Topic)operator(.)ident(destroy_all) string ident(assert_equal) integer(1)operator(,) constant(Topic)operator(.)ident(count) reserved(end) reserved(def) method(test_destroy_many) ident(assert_equal) integer(3)operator(,) constant(Client)operator(.)ident(count) constant(Client)operator(.)ident(destroy)operator(()operator([)integer(2)operator(,) integer(3)operator(])operator(\)) ident(assert_equal) integer(1)operator(,) constant(Client)operator(.)ident(count) reserved(end) reserved(def) method(test_delete_many) constant(Topic)operator(.)ident(delete)operator(()operator([)integer(1)operator(,) integer(2)operator(])operator(\)) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(count) reserved(end) reserved(def) method(test_boolean_attributes) ident(assert) operator(!) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?) ident(assert) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(approved?) reserved(end) reserved(def) method(test_increment_counter) constant(Topic)operator(.)ident(increment_counter)operator(()stringoperator(,) integer(1)operator(\)) ident(assert_equal) integer(1)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(replies_count) constant(Topic)operator(.)ident(increment_counter)operator(()stringoperator(,) integer(1)operator(\)) ident(assert_equal) integer(2)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(replies_count) reserved(end) reserved(def) method(test_decrement_counter) constant(Topic)operator(.)ident(decrement_counter)operator(()stringoperator(,) integer(2)operator(\)) ident(assert_equal) integer(1)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(replies_count) constant(Topic)operator(.)ident(decrement_counter)operator(()stringoperator(,) integer(2)operator(\)) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(replies_count) reserved(end) reserved(def) method(test_update_all) comment(# The ADO library doesn't support the number of affected rows) reserved(return) pre_constant(true) reserved(if) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) ident(assert_equal) integer(2)operator(,) constant(Topic)operator(.)ident(update_all)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(content) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(content) ident(assert_equal) integer(2)operator(,) constant(Topic)operator(.)ident(update_all)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(content) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(content) reserved(end) reserved(def) method(test_update_many) ident(topic_data) operator(=) operator({) integer(1) operator(=)operator(>) operator({) string operator(=)operator(>) string operator(})operator(,) integer(2) operator(=)operator(>) operator({) string operator(=)operator(>) string operator(}) operator(}) ident(updated) operator(=) constant(Topic)operator(.)ident(update)operator(()ident(topic_data)operator(.)ident(keys)operator(,) ident(topic_data)operator(.)ident(values)operator(\)) ident(assert_equal) integer(2)operator(,) ident(updated)operator(.)ident(size) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(content) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(content) reserved(end) reserved(def) method(test_delete_all) comment(# The ADO library doesn't support the number of affected rows) reserved(return) pre_constant(true) reserved(if) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) ident(assert_equal) integer(2)operator(,) constant(Topic)operator(.)ident(delete_all) reserved(end) reserved(def) method(test_update_by_condition) constant(Topic)operator(.)ident(update_all) stringoperator(,) operator([)stringoperator(,) pre_constant(true)operator(]) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(content) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(content) reserved(end) reserved(def) method(test_attribute_present) ident(t) operator(=) constant(Topic)operator(.)ident(new) ident(t)operator(.)ident(title) operator(=) string ident(t)operator(.)ident(written_on) operator(=) constant(Time)operator(.)ident(now) ident(assert) ident(t)operator(.)ident(attribute_present?)operator(()stringoperator(\)) ident(assert) ident(t)operator(.)ident(attribute_present?)operator(()stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(attribute_present?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_attribute_keys_on_new_instance) ident(t) operator(=) constant(Topic)operator(.)ident(new) ident(assert_equal) pre_constant(nil)operator(,) ident(t)operator(.)ident(title)operator(,) string ident(assert_raise)operator(()constant(NoMethodError)operator(\)) operator({) ident(t)operator(.)ident(title2) operator(}) reserved(end) reserved(def) method(test_class_name) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(class_name)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(class_name)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(class_name)operator(()stringoperator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(pluralize_table_names) operator(=) pre_constant(false) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(class_name)operator(() string operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(pluralize_table_names) operator(=) pre_constant(true) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(class_name)operator(() string operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(class_name)operator(() string operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(class_name)operator(() string operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(class_name)operator(() string operator(\)) reserved(end) reserved(def) method(test_null_fields) ident(assert_nil) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(parent_id) ident(assert_nil) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\))operator(.)ident(parent_id) reserved(end) reserved(def) method(test_default_values) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(assert) ident(topic)operator(.)ident(approved?) ident(assert_nil) ident(topic)operator(.)ident(written_on) ident(assert_nil) ident(topic)operator(.)ident(bonus_time) ident(assert_nil) ident(topic)operator(.)ident(last_read) ident(topic)operator(.)ident(save) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\)) ident(assert) ident(topic)operator(.)ident(approved?) ident(assert_nil) ident(topic)operator(.)ident(last_read) comment(# Oracle has some funky default handling, so it requires a bit of ) comment(# extra testing. See ticket #2788.) reserved(if) ident(current_adapter?)operator(()symbol(:OracleAdapter)operator(\)) ident(test) operator(=) constant(TestOracleDefault)operator(.)ident(new) ident(assert_equal) stringoperator(,) ident(test)operator(.)ident(test_char) ident(assert_equal) stringoperator(,) ident(test)operator(.)ident(test_string) ident(assert_equal) integer(3)operator(,) ident(test)operator(.)ident(test_int) reserved(end) reserved(end) reserved(def) method(test_utc_as_time_zone) comment(# Oracle and SQLServer do not have a TIME datatype.) reserved(return) pre_constant(true) reserved(if) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) operator(||) ident(current_adapter?)operator(()symbol(:OracleAdapter)operator(\)) constant(Topic)operator(.)ident(default_timezone) operator(=) symbol(:utc) ident(attributes) operator(=) operator({) string operator(=)operator(>) string operator(}) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(topic)operator(.)ident(attributes) operator(=) ident(attributes) ident(assert_equal) constant(Time)operator(.)ident(utc)operator(()integer(2000)operator(,) integer(1)operator(,) integer(1)operator(,) integer(5)operator(,) integer(42)operator(,) integer(0)operator(\))operator(,) ident(topic)operator(.)ident(bonus_time) constant(Topic)operator(.)ident(default_timezone) operator(=) symbol(:local) reserved(end) reserved(def) method(test_default_values_on_empty_strings) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(approved) operator(=) pre_constant(nil) ident(topic)operator(.)ident(last_read) operator(=) pre_constant(nil) ident(topic)operator(.)ident(save) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\)) ident(assert_nil) ident(topic)operator(.)ident(last_read) comment(# Sybase adapter does not allow nulls in boolean columns) reserved(if) ident(current_adapter?)operator(()symbol(:SybaseAdapter)operator(\)) ident(assert) ident(topic)operator(.)ident(approved) operator(==) pre_constant(false) reserved(else) ident(assert_nil) ident(topic)operator(.)ident(approved) reserved(end) reserved(end) reserved(def) method(test_equality) ident(assert_equal) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(,) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(topic) reserved(end) reserved(def) method(test_equality_of_new_records) ident(assert_not_equal) constant(Topic)operator(.)ident(new)operator(,) constant(Topic)operator(.)ident(new) reserved(end) reserved(def) method(test_hashing) ident(assert_equal) operator([) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) operator(])operator(,) operator([) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(topic) operator(]) operator(&) operator([) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) operator(]) reserved(end) reserved(def) method(test_destroy_new_record) ident(client) operator(=) constant(Client)operator(.)ident(new) ident(client)operator(.)ident(destroy) ident(assert) ident(client)operator(.)ident(frozen?) reserved(end) reserved(def) method(test_destroy_record_with_associations) ident(client) operator(=) constant(Client)operator(.)ident(find)operator(()integer(3)operator(\)) ident(client)operator(.)ident(destroy) ident(assert) ident(client)operator(.)ident(frozen?) ident(assert_kind_of) constant(Firm)operator(,) ident(client)operator(.)ident(firm) ident(assert_raises)operator(()constant(TypeError)operator(\)) operator({) ident(client)operator(.)ident(name) operator(=) string operator(}) reserved(end) reserved(def) method(test_update_attribute) ident(assert) operator(!)constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(update_attribute)operator(()stringoperator(,) pre_constant(true)operator(\)) ident(assert) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(update_attribute)operator(()symbol(:approved)operator(,) pre_constant(false)operator(\)) ident(assert) operator(!)constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?) reserved(end) reserved(def) method(test_mass_assignment_protection) ident(firm) operator(=) constant(Firm)operator(.)ident(new) ident(firm)operator(.)ident(attributes) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) integer(5) operator(}) ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(rating) reserved(end) reserved(def) method(test_customized_primary_key_remains_protected) ident(subscriber) operator(=) constant(Subscriber)operator(.)ident(new)operator(()symbol(:nick) operator(=)operator(>) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_nil) ident(subscriber)operator(.)ident(id) ident(keyboard) operator(=) constant(Keyboard)operator(.)ident(new)operator(()symbol(:key_number) operator(=)operator(>) integer(9)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_nil) ident(keyboard)operator(.)ident(id) reserved(end) reserved(def) method(test_customized_primary_key_remains_protected_when_refered_to_as_id) ident(subscriber) operator(=) constant(Subscriber)operator(.)ident(new)operator(()symbol(:id) operator(=)operator(>) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_nil) ident(subscriber)operator(.)ident(id) ident(keyboard) operator(=) constant(Keyboard)operator(.)ident(new)operator(()symbol(:id) operator(=)operator(>) integer(9)operator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_nil) ident(keyboard)operator(.)ident(id) reserved(end) reserved(def) method(test_mass_assignment_protection_on_defaults) ident(firm) operator(=) constant(Firm)operator(.)ident(new) ident(firm)operator(.)ident(attributes) operator(=) operator({) string operator(=)operator(>) integer(5)operator(,) string operator(=)operator(>) string operator(}) ident(assert_nil) ident(firm)operator(.)ident(id) ident(assert_equal) stringoperator(,) ident(firm)operator([)symbol(:type)operator(]) reserved(end) reserved(def) method(test_mass_assignment_accessible) ident(reply) operator(=) constant(Reply)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) pre_constant(true)operator(\)) ident(reply)operator(.)ident(save) ident(assert) ident(reply)operator(.)ident(approved?) ident(reply)operator(.)ident(approved) operator(=) pre_constant(false) ident(reply)operator(.)ident(save) ident(assert) operator(!)ident(reply)operator(.)ident(approved?) reserved(end) reserved(def) method(test_mass_assignment_protection_inheritance) ident(assert_nil) constant(LoosePerson)operator(.)ident(accessible_attributes) ident(assert_equal) operator([) symbol(:credit_rating)operator(,) symbol(:administrator) operator(])operator(,) constant(LoosePerson)operator(.)ident(protected_attributes) ident(assert_nil) constant(LooseDescendant)operator(.)ident(accessible_attributes) ident(assert_equal) operator([) symbol(:credit_rating)operator(,) symbol(:administrator)operator(,) symbol(:phone_number) operator(])operator(,) constant(LooseDescendant)operator(.)ident(protected_attributes) ident(assert_nil) constant(TightPerson)operator(.)ident(protected_attributes) ident(assert_equal) operator([) symbol(:name)operator(,) symbol(:address) operator(])operator(,) constant(TightPerson)operator(.)ident(accessible_attributes) ident(assert_nil) constant(TightDescendant)operator(.)ident(protected_attributes) ident(assert_equal) operator([) symbol(:name)operator(,) symbol(:address)operator(,) symbol(:phone_number) operator(])operator(,) constant(TightDescendant)operator(.)ident(accessible_attributes) reserved(end) reserved(def) method(test_multiparameter_attributes_on_date) ident(attributes) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(topic)operator(.)ident(attributes) operator(=) ident(attributes) comment(# note that extra #to_date call allows test to pass for Oracle, which ) comment(# treats dates/times the same) ident(assert_date_from_db) constant(Date)operator(.)ident(new)operator(()integer(2004)operator(,) integer(6)operator(,) integer(24)operator(\))operator(,) ident(topic)operator(.)ident(last_read)operator(.)ident(to_date) reserved(end) reserved(def) method(test_multiparameter_attributes_on_date_with_empty_date) ident(attributes) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(topic)operator(.)ident(attributes) operator(=) ident(attributes) comment(# note that extra #to_date call allows test to pass for Oracle, which ) comment(# treats dates/times the same) ident(assert_date_from_db) constant(Date)operator(.)ident(new)operator(()integer(2004)operator(,) integer(6)operator(,) integer(1)operator(\))operator(,) ident(topic)operator(.)ident(last_read)operator(.)ident(to_date) reserved(end) reserved(def) method(test_multiparameter_attributes_on_date_with_all_empty) ident(attributes) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(topic)operator(.)ident(attributes) operator(=) ident(attributes) ident(assert_nil) ident(topic)operator(.)ident(last_read) reserved(end) reserved(def) method(test_multiparameter_attributes_on_time) ident(attributes) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(topic)operator(.)ident(attributes) operator(=) ident(attributes) ident(assert_equal) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(6)operator(,) integer(24)operator(,) integer(16)operator(,) integer(24)operator(,) integer(0)operator(\))operator(,) ident(topic)operator(.)ident(written_on) reserved(end) reserved(def) method(test_multiparameter_attributes_on_time_with_empty_seconds) ident(attributes) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(topic)operator(.)ident(attributes) operator(=) ident(attributes) ident(assert_equal) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(6)operator(,) integer(24)operator(,) integer(16)operator(,) integer(24)operator(,) integer(0)operator(\))operator(,) ident(topic)operator(.)ident(written_on) reserved(end) reserved(def) method(test_multiparameter_mass_assignment_protector) ident(task) operator(=) constant(Task)operator(.)ident(new) ident(time) operator(=) constant(Time)operator(.)ident(mktime)operator(()integer(2000)operator(,) integer(1)operator(,) integer(1)operator(,) integer(1)operator(\)) ident(task)operator(.)ident(starting) operator(=) ident(time) ident(attributes) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) ident(task)operator(.)ident(attributes) operator(=) ident(attributes) ident(assert_equal) ident(time)operator(,) ident(task)operator(.)ident(starting) reserved(end) reserved(def) method(test_multiparameter_assignment_of_aggregation) ident(customer) operator(=) constant(Customer)operator(.)ident(new) ident(address) operator(=) constant(Address)operator(.)ident(new)operator(()stringoperator(,) stringoperator(,) stringoperator(\)) ident(attributes) operator(=) operator({) string operator(=)operator(>) ident(address)operator(.)ident(street)operator(,) string operator(=)operator(>) ident(address)operator(.)ident(city)operator(,) string operator(=)operator(>) ident(address)operator(.)ident(country) operator(}) ident(customer)operator(.)ident(attributes) operator(=) ident(attributes) ident(assert_equal) ident(address)operator(,) ident(customer)operator(.)ident(address) reserved(end) reserved(def) method(test_attributes_on_dummy_time) comment(# Oracle and SQL Server do not have a TIME datatype.) reserved(return) pre_constant(true) reserved(if) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) operator(||) ident(current_adapter?)operator(()symbol(:OracleAdapter)operator(\)) ident(attributes) operator(=) operator({) string operator(=)operator(>) string operator(}) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(topic)operator(.)ident(attributes) operator(=) ident(attributes) ident(assert_equal) constant(Time)operator(.)ident(local)operator(()integer(2000)operator(,) integer(1)operator(,) integer(1)operator(,) integer(5)operator(,) integer(42)operator(,) integer(0)operator(\))operator(,) ident(topic)operator(.)ident(bonus_time) reserved(end) reserved(def) method(test_boolean) ident(b_false) operator(=) constant(Booleantest)operator(.)ident(create)operator(()operator({) string operator(=)operator(>) pre_constant(false) operator(})operator(\)) ident(false_id) operator(=) ident(b_false)operator(.)ident(id) ident(b_true) operator(=) constant(Booleantest)operator(.)ident(create)operator(()operator({) string operator(=)operator(>) pre_constant(true) operator(})operator(\)) ident(true_id) operator(=) ident(b_true)operator(.)ident(id) ident(b_false) operator(=) constant(Booleantest)operator(.)ident(find)operator(()ident(false_id)operator(\)) ident(assert) operator(!)ident(b_false)operator(.)ident(value?) ident(b_true) operator(=) constant(Booleantest)operator(.)ident(find)operator(()ident(true_id)operator(\)) ident(assert) ident(b_true)operator(.)ident(value?) reserved(end) reserved(def) method(test_boolean_cast_from_string) ident(b_false) operator(=) constant(Booleantest)operator(.)ident(create)operator(()operator({) string operator(=)operator(>) string operator(})operator(\)) ident(false_id) operator(=) ident(b_false)operator(.)ident(id) ident(b_true) operator(=) constant(Booleantest)operator(.)ident(create)operator(()operator({) string operator(=)operator(>) string operator(})operator(\)) ident(true_id) operator(=) ident(b_true)operator(.)ident(id) ident(b_false) operator(=) constant(Booleantest)operator(.)ident(find)operator(()ident(false_id)operator(\)) ident(assert) operator(!)ident(b_false)operator(.)ident(value?) ident(b_true) operator(=) constant(Booleantest)operator(.)ident(find)operator(()ident(true_id)operator(\)) ident(assert) ident(b_true)operator(.)ident(value?) reserved(end) reserved(def) method(test_clone) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(cloned_topic) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(cloned_topic) operator(=) ident(topic)operator(.)ident(clone) operator(}) ident(assert_equal) ident(topic)operator(.)ident(title)operator(,) ident(cloned_topic)operator(.)ident(title) ident(assert) ident(cloned_topic)operator(.)ident(new_record?) comment(# test if the attributes have been cloned) ident(topic)operator(.)ident(title) operator(=) string ident(cloned_topic)operator(.)ident(title) operator(=) string ident(assert_equal) stringoperator(,) ident(topic)operator(.)ident(title) ident(assert_equal) stringoperator(,) ident(cloned_topic)operator(.)ident(title) comment(# test if the attribute values have been cloned) ident(topic)operator(.)ident(title) operator(=) operator({)string operator(=)operator(>) stringoperator(}) ident(cloned_topic) operator(=) ident(topic)operator(.)ident(clone) ident(cloned_topic)operator(.)ident(title)operator([)stringoperator(]) operator(=) string ident(assert_equal) stringoperator(,) ident(topic)operator(.)ident(title)operator([)stringoperator(]) ident(cloned_topic)operator(.)ident(save) ident(assert) operator(!)ident(cloned_topic)operator(.)ident(new_record?) ident(assert) ident(cloned_topic)operator(.)ident(id) operator(!=) ident(topic)operator(.)ident(id) reserved(end) reserved(def) method(test_clone_with_aggregate_of_same_name_as_attribute) ident(dev) operator(=) constant(DeveloperWithAggregate)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_kind_of) constant(DeveloperSalary)operator(,) ident(dev)operator(.)ident(salary) ident(clone) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(clone) operator(=) ident(dev)operator(.)ident(clone) operator(}) ident(assert_kind_of) constant(DeveloperSalary)operator(,) ident(clone)operator(.)ident(salary) ident(assert_equal) ident(dev)operator(.)ident(salary)operator(.)ident(amount)operator(,) ident(clone)operator(.)ident(salary)operator(.)ident(amount) ident(assert) ident(clone)operator(.)ident(new_record?) comment(# test if the attributes have been cloned) ident(original_amount) operator(=) ident(clone)operator(.)ident(salary)operator(.)ident(amount) ident(dev)operator(.)ident(salary)operator(.)ident(amount) operator(=) integer(1) ident(assert_equal) ident(original_amount)operator(,) ident(clone)operator(.)ident(salary)operator(.)ident(amount) ident(assert) ident(clone)operator(.)ident(save) ident(assert) operator(!)ident(clone)operator(.)ident(new_record?) ident(assert) ident(clone)operator(.)ident(id) operator(!=) ident(dev)operator(.)ident(id) reserved(end) reserved(def) method(test_clone_preserves_subtype) ident(clone) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(clone) operator(=) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(clone) operator(}) ident(assert_kind_of) constant(Client)operator(,) ident(clone) reserved(end) reserved(def) method(test_bignum) ident(company) operator(=) constant(Company)operator(.)ident(find)operator(()integer(1)operator(\)) ident(company)operator(.)ident(rating) operator(=) integer(2147483647) ident(company)operator(.)ident(save) ident(company) operator(=) constant(Company)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) integer(2147483647)operator(,) ident(company)operator(.)ident(rating) reserved(end) comment(# TODO: extend defaults tests to other databases!) reserved(if) ident(current_adapter?)operator(()symbol(:PostgreSQLAdapter)operator(\)) reserved(def) method(test_default) ident(default) operator(=) constant(Default)operator(.)ident(new) comment(# fixed dates / times) ident(assert_equal) constant(Date)operator(.)ident(new)operator(()integer(2004)operator(,) integer(1)operator(,) integer(1)operator(\))operator(,) ident(default)operator(.)ident(fixed_date) ident(assert_equal) constant(Time)operator(.)ident(local)operator(()integer(2004)operator(,) integer(1)operator(,)integer(1)operator(,)integer(0)operator(,)integer(0)operator(,)integer(0)operator(,)integer(0)operator(\))operator(,) ident(default)operator(.)ident(fixed_time) comment(# char types) ident(assert_equal) stringoperator(,) ident(default)operator(.)ident(char1) ident(assert_equal) stringoperator(,) ident(default)operator(.)ident(char2) ident(assert_equal) stringoperator(,) ident(default)operator(.)ident(char3) reserved(end) reserved(class) class(Geometric) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(def) method(test_geometric_content) comment(# accepted format notes:) comment(# (\)'s aren't required) comment(# values can be a mix of float or integer) ident(g) operator(=) constant(Geometric)operator(.)ident(new)operator(() symbol(:a_point) operator(=)operator(>) stringoperator(,) comment(#:a_line => '((2.0, 3\), (5.5, 7.0\)\)' # line type is currently unsupported in postgresql) symbol(:a_line_segment) operator(=)operator(>) stringoperator(,) symbol(:a_box) operator(=)operator(>) stringoperator(,) symbol(:a_path) operator(=)operator(>) stringoperator(,) comment(# [ ] is an open path) symbol(:a_polygon) operator(=)operator(>) stringoperator(,) symbol(:a_circle) operator(=)operator(>) string)delimiter(')> operator(\)) ident(assert) ident(g)operator(.)ident(save) comment(# Reload and check that we have all the geometric attributes.) ident(h) operator(=) constant(Geometric)operator(.)ident(find)operator(()ident(g)operator(.)ident(id)operator(\)) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_point) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_line_segment) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_box) comment(# reordered to store upper right corner then bottom left corner) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_path) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_polygon) ident(assert_equal) string)delimiter(')>operator(,) ident(h)operator(.)ident(a_circle) comment(# use a geometric function to test for an open path) ident(objs) operator(=) constant(Geometric)operator(.)ident(find_by_sql) operator([)stringoperator(,) ident(g)operator(.)ident(id)operator(]) ident(assert_equal) ident(objs)operator([)integer(0)operator(])operator(.)ident(isopen)operator(,) string comment(# test alternate formats when defining the geometric types) ident(g) operator(=) constant(Geometric)operator(.)ident(new)operator(() symbol(:a_point) operator(=)operator(>) stringoperator(,) comment(#:a_line => '((2.0, 3\), (5.5, 7.0\)\)' # line type is currently unsupported in postgresql) symbol(:a_line_segment) operator(=)operator(>) stringoperator(,) symbol(:a_box) operator(=)operator(>) stringoperator(,) symbol(:a_path) operator(=)operator(>) stringoperator(,) comment(# ( \) is a closed path) symbol(:a_polygon) operator(=)operator(>) stringoperator(,) symbol(:a_circle) operator(=)operator(>) string operator(\)) ident(assert) ident(g)operator(.)ident(save) comment(# Reload and check that we have all the geometric attributes.) ident(h) operator(=) constant(Geometric)operator(.)ident(find)operator(()ident(g)operator(.)ident(id)operator(\)) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_point) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_line_segment) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_box) comment(# reordered to store upper right corner then bottom left corner) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_path) ident(assert_equal) stringoperator(,) ident(h)operator(.)ident(a_polygon) ident(assert_equal) string)delimiter(')>operator(,) ident(h)operator(.)ident(a_circle) comment(# use a geometric function to test for an closed path) ident(objs) operator(=) constant(Geometric)operator(.)ident(find_by_sql) operator([)stringoperator(,) ident(g)operator(.)ident(id)operator(]) ident(assert_equal) ident(objs)operator([)integer(0)operator(])operator(.)ident(isclosed)operator(,) string reserved(end) reserved(end) reserved(def) method(test_auto_id) ident(auto) operator(=) constant(AutoId)operator(.)ident(new) ident(auto)operator(.)ident(save) ident(assert) operator(()ident(auto)operator(.)ident(id) operator(>) integer(0)operator(\)) reserved(end) reserved(def) method(quote_column_name)operator(()ident(name)operator(\)) stringcontent(>)delimiter(")> reserved(end) reserved(def) method(test_quote_keys) ident(ar) operator(=) constant(AutoId)operator(.)ident(new) ident(source) operator(=) operator({)string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(}) ident(actual) operator(=) ident(ar)operator(.)ident(send)operator(()symbol(:quote_columns)operator(,) pre_constant(self)operator(,) ident(source)operator(\)) ident(inverted) operator(=) ident(actual)operator(.)ident(invert) ident(assert_equal)operator(()string)delimiter(")>operator(,) ident(inverted)operator([)stringoperator(])operator(\)) ident(assert_equal)operator(()string)delimiter(")>operator(,) ident(inverted)operator([)stringoperator(])operator(\)) reserved(end) reserved(def) method(test_sql_injection_via_find) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) reserved(do) constant(Topic)operator(.)ident(find)operator(()string 0)delimiter(")>operator(\)) reserved(end) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) reserved(do) constant(Topic)operator(.)ident(find)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_column_name_properly_quoted) ident(col_record) operator(=) constant(ColumnName)operator(.)ident(new) ident(col_record)operator(.)ident(references) operator(=) integer(40) ident(assert) ident(col_record)operator(.)ident(save) ident(col_record)operator(.)ident(references) operator(=) integer(41) ident(assert) ident(col_record)operator(.)ident(save) ident(assert_not_nil) ident(c2) operator(=) constant(ColumnName)operator(.)ident(find)operator(()ident(col_record)operator(.)ident(id)operator(\)) ident(assert_equal)operator(()integer(41)operator(,) ident(c2)operator(.)ident(references)operator(\)) reserved(end) constant(MyObject) operator(=) constant(Struct)operator(.)ident(new) symbol(:attribute1)operator(,) symbol(:attribute2) reserved(def) method(test_serialized_attribute) ident(myobj) operator(=) constant(MyObject)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\)) ident(topic) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) ident(myobj)operator(\)) constant(Topic)operator(.)ident(serialize)operator(()stringoperator(,) constant(MyObject)operator(\)) ident(assert_equal)operator(()ident(myobj)operator(,) ident(topic)operator(.)ident(content)operator(\)) reserved(end) reserved(def) method(test_serialized_attribute_with_class_constraint) ident(myobj) operator(=) constant(MyObject)operator(.)ident(new)operator(()stringoperator(,) stringoperator(\)) ident(topic) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) ident(myobj)operator(\)) constant(Topic)operator(.)ident(serialize)operator(()symbol(:content)operator(,) constant(Hash)operator(\)) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(SerializationTypeMismatch)operator(\)) operator({) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\))operator(.)ident(content) operator(}) ident(settings) operator(=) operator({) string operator(=)operator(>) string operator(}) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\))operator(.)ident(update_attribute)operator(()stringoperator(,) ident(settings)operator(\)) ident(assert_equal)operator(()ident(settings)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\))operator(.)ident(content)operator(\)) constant(Topic)operator(.)ident(serialize)operator(()symbol(:content)operator(\)) reserved(end) reserved(def) method(test_quote) ident(author_name) operator(=) string ident(topic) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) ident(author_name)operator(\)) ident(assert_equal) ident(author_name)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\))operator(.)ident(author_name) reserved(end) reserved(def) method(test_class_level_destroy) ident(should_be_destroyed_reply) operator(=) constant(Reply)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(replies) operator(<<) ident(should_be_destroyed_reply) constant(Topic)operator(.)ident(destroy)operator(()integer(1)operator(\)) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) operator(}) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Reply)operator(.)ident(find)operator(()ident(should_be_destroyed_reply)operator(.)ident(id)operator(\)) operator(}) reserved(end) reserved(def) method(test_class_level_delete) ident(should_be_destroyed_reply) operator(=) constant(Reply)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(replies) operator(<<) ident(should_be_destroyed_reply) constant(Topic)operator(.)ident(delete)operator(()integer(1)operator(\)) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) operator(}) ident(assert_nothing_raised) operator({) constant(Reply)operator(.)ident(find)operator(()ident(should_be_destroyed_reply)operator(.)ident(id)operator(\)) operator(}) reserved(end) reserved(def) method(test_increment_attribute) ident(assert_equal) integer(0)operator(,) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(replies_count) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(increment!) symbol(:replies_count) ident(assert_equal) integer(1)operator(,) ident(topics)operator(()symbol(:first)operator(,) symbol(:reload)operator(\))operator(.)ident(replies_count) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(increment)operator(()symbol(:replies_count)operator(\))operator(.)ident(increment!)operator(()symbol(:replies_count)operator(\)) ident(assert_equal) integer(3)operator(,) ident(topics)operator(()symbol(:first)operator(,) symbol(:reload)operator(\))operator(.)ident(replies_count) reserved(end) reserved(def) method(test_increment_nil_attribute) ident(assert_nil) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(parent_id) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(increment!) symbol(:parent_id) ident(assert_equal) integer(1)operator(,) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(parent_id) reserved(end) reserved(def) method(test_decrement_attribute) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(increment)operator(()symbol(:replies_count)operator(\))operator(.)ident(increment!)operator(()symbol(:replies_count)operator(\)) ident(assert_equal) integer(2)operator(,) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(replies_count) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(decrement!)operator(()symbol(:replies_count)operator(\)) ident(assert_equal) integer(1)operator(,) ident(topics)operator(()symbol(:first)operator(,) symbol(:reload)operator(\))operator(.)ident(replies_count) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(decrement)operator(()symbol(:replies_count)operator(\))operator(.)ident(decrement!)operator(()symbol(:replies_count)operator(\)) ident(assert_equal) integer(-1)operator(,) ident(topics)operator(()symbol(:first)operator(,) symbol(:reload)operator(\))operator(.)ident(replies_count) reserved(end) reserved(def) method(test_toggle_attribute) ident(assert) operator(!)ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(approved?) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(toggle!)operator(()symbol(:approved)operator(\)) ident(assert) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(approved?) ident(topic) operator(=) ident(topics)operator(()symbol(:first)operator(\)) ident(topic)operator(.)ident(toggle)operator(()symbol(:approved)operator(\)) ident(assert) operator(!)ident(topic)operator(.)ident(approved?) ident(topic)operator(.)ident(reload) ident(assert) ident(topic)operator(.)ident(approved?) reserved(end) reserved(def) method(test_reload) ident(t1) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(t2) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(t1)operator(.)ident(title) operator(=) string ident(t1)operator(.)ident(save) ident(t2)operator(.)ident(reload) ident(assert_equal) ident(t1)operator(.)ident(title)operator(,) ident(t2)operator(.)ident(title) reserved(end) reserved(def) method(test_define_attr_method_with_value) ident(k) operator(=) constant(Class)operator(.)ident(new)operator(() constant(ActiveRecord)operator(::)constant(Base) operator(\)) ident(k)operator(.)ident(send)operator(()symbol(:define_attr_method)operator(,) symbol(:table_name)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(table_name) reserved(end) reserved(def) method(test_define_attr_method_with_block) ident(k) operator(=) constant(Class)operator(.)ident(new)operator(() constant(ActiveRecord)operator(::)constant(Base) operator(\)) ident(k)operator(.)ident(send)operator(()symbol(:define_attr_method)operator(,) symbol(:primary_key)operator(\)) operator({) string operator(+) ident(original_primary_key) operator(}) ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(primary_key) reserved(end) reserved(def) method(test_set_table_name_with_value) ident(k) operator(=) constant(Class)operator(.)ident(new)operator(() constant(ActiveRecord)operator(::)constant(Base) operator(\)) ident(k)operator(.)ident(table_name) operator(=) string ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(table_name) ident(k)operator(.)ident(set_table_name) string ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(table_name) reserved(end) reserved(def) method(test_set_table_name_with_block) ident(k) operator(=) constant(Class)operator(.)ident(new)operator(() constant(ActiveRecord)operator(::)constant(Base) operator(\)) ident(k)operator(.)ident(set_table_name) operator({) string operator(}) ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(table_name) reserved(end) reserved(def) method(test_set_primary_key_with_value) ident(k) operator(=) constant(Class)operator(.)ident(new)operator(() constant(ActiveRecord)operator(::)constant(Base) operator(\)) ident(k)operator(.)ident(primary_key) operator(=) string ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(primary_key) ident(k)operator(.)ident(set_primary_key) string ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(primary_key) reserved(end) reserved(def) method(test_set_primary_key_with_block) ident(k) operator(=) constant(Class)operator(.)ident(new)operator(() constant(ActiveRecord)operator(::)constant(Base) operator(\)) ident(k)operator(.)ident(set_primary_key) operator({) string operator(+) ident(original_primary_key) operator(}) ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(primary_key) reserved(end) reserved(def) method(test_set_inheritance_column_with_value) ident(k) operator(=) constant(Class)operator(.)ident(new)operator(() constant(ActiveRecord)operator(::)constant(Base) operator(\)) ident(k)operator(.)ident(inheritance_column) operator(=) string ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(inheritance_column) ident(k)operator(.)ident(set_inheritance_column) string ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(inheritance_column) reserved(end) reserved(def) method(test_set_inheritance_column_with_block) ident(k) operator(=) constant(Class)operator(.)ident(new)operator(() constant(ActiveRecord)operator(::)constant(Base) operator(\)) ident(k)operator(.)ident(set_inheritance_column) operator({) ident(original_inheritance_column) operator(+) string operator(}) ident(assert_equal) stringoperator(,) ident(k)operator(.)ident(inheritance_column) reserved(end) reserved(def) method(test_count_with_join) ident(res) operator(=) constant(Post)operator(.)ident(count_by_sql) stringcontent( = 'Post')delimiter(")> ident(res2) operator(=) pre_constant(nil) ident(assert_nothing_raised) reserved(do) ident(res2) operator(=) constant(Post)operator(.)ident(count)operator(()stringcontent( = 'Post')delimiter(")>operator(,) stringoperator(\)) reserved(end) ident(assert_equal) ident(res)operator(,) ident(res2) ident(res3) operator(=) pre_constant(nil) ident(assert_nothing_raised) reserved(do) ident(res3) operator(=) constant(Post)operator(.)ident(count)operator(()symbol(:conditions) operator(=)operator(>) stringcontent( = 'Post')delimiter(")>operator(,) symbol(:joins) operator(=)operator(>) stringoperator(\)) reserved(end) ident(assert_equal) ident(res)operator(,) ident(res3) ident(res4) operator(=) constant(Post)operator(.)ident(count_by_sql) stringcontent( = 'Post' AND p.id=c.post_id)delimiter(")> ident(res5) operator(=) pre_constant(nil) ident(assert_nothing_raised) reserved(do) ident(res5) operator(=) constant(Post)operator(.)ident(count)operator(()symbol(:conditions) operator(=)operator(>) stringcontent( = 'Post' AND p.id=c.post_id)delimiter(")>operator(,) symbol(:joins) operator(=)operator(>) stringoperator(,) symbol(:select) operator(=)operator(>) stringoperator(\)) reserved(end) ident(assert_equal) ident(res4)operator(,) ident(res5) ident(res6) operator(=) constant(Post)operator(.)ident(count_by_sql) stringcontent( = 'Post' AND p.id=c.post_id)delimiter(")> ident(res7) operator(=) pre_constant(nil) ident(assert_nothing_raised) reserved(do) ident(res7) operator(=) constant(Post)operator(.)ident(count)operator(()symbol(:conditions) operator(=)operator(>) stringcontent( = 'Post' AND p.id=c.post_id)delimiter(")>operator(,) symbol(:joins) operator(=)operator(>) stringoperator(,) symbol(:select) operator(=)operator(>) stringoperator(,) symbol(:distinct) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) ident(assert_equal) ident(res6)operator(,) ident(res7) reserved(end) reserved(def) method(test_clear_association_cache_stored) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_kind_of) constant(Firm)operator(,) ident(firm) ident(firm)operator(.)ident(clear_association_cache) ident(assert_equal) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(clients)operator(.)ident(collect)operator({) operator(|)ident(x)operator(|) ident(x)operator(.)ident(name) operator(})operator(.)ident(sort)operator(,) ident(firm)operator(.)ident(clients)operator(.)ident(collect)operator({) operator(|)ident(x)operator(|) ident(x)operator(.)ident(name) operator(})operator(.)ident(sort) reserved(end) reserved(def) method(test_clear_association_cache_new_record) ident(firm) operator(=) constant(Firm)operator(.)ident(new) ident(client_stored) operator(=) constant(Client)operator(.)ident(find)operator(()integer(3)operator(\)) ident(client_new) operator(=) constant(Client)operator(.)ident(new) ident(client_new)operator(.)ident(name) operator(=) string ident(clients) operator(=) operator([) ident(client_stored)operator(,) ident(client_new) operator(]) ident(firm)operator(.)ident(clients) operator(<<) ident(clients) ident(firm)operator(.)ident(clear_association_cache) ident(assert_equal) ident(firm)operator(.)ident(clients)operator(.)ident(collect)operator({) operator(|)ident(x)operator(|) ident(x)operator(.)ident(name) operator(})operator(.)ident(sort)operator(,) ident(clients)operator(.)ident(collect)operator({) operator(|)ident(x)operator(|) ident(x)operator(.)ident(name) operator(})operator(.)ident(sort) reserved(end) reserved(def) method(test_interpolate_sql) ident(assert_nothing_raised) operator({) constant(Category)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:interpolate_sql)operator(,) stringoperator(\)) operator(}) ident(assert_nothing_raised) operator({) constant(Category)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:interpolate_sql)operator(,) stringoperator(\)) operator(}) ident(assert_nothing_raised) operator({) constant(Category)operator(.)ident(new)operator(.)ident(send)operator(()symbol(:interpolate_sql)operator(,) stringoperator(\)) operator(}) reserved(end) reserved(def) method(test_scoped_find_conditions) ident(scoped_developers) operator(=) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string 90000)delimiter(')> operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) reserved(end) ident(assert) operator(!)ident(scoped_developers)operator(.)ident(include?)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(\)) comment(# David's salary is less than 90,000) ident(assert_equal) integer(3)operator(,) ident(scoped_developers)operator(.)ident(size) reserved(end) reserved(def) method(test_scoped_find_limit_offset) ident(scoped_developers) operator(=) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(2) operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) ident(assert) operator(!)ident(scoped_developers)operator(.)ident(include?)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(\)) ident(assert) operator(!)ident(scoped_developers)operator(.)ident(include?)operator(()ident(developers)operator(()symbol(:jamis)operator(\))operator(\)) ident(assert_equal) integer(3)operator(,) ident(scoped_developers)operator(.)ident(size) comment(# Test without scoped find conditions to ensure we get the whole thing) ident(developers) operator(=) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) constant(Developer)operator(.)ident(count)operator(,) ident(developers)operator(.)ident(size) reserved(end) reserved(def) method(test_base_class) ident(assert) constant(LoosePerson)operator(.)ident(abstract_class?) ident(assert) operator(!)constant(LooseDescendant)operator(.)ident(abstract_class?) ident(assert_equal) constant(LoosePerson)operator(,) constant(LoosePerson)operator(.)ident(base_class) ident(assert_equal) constant(LooseDescendant)operator(,) constant(LooseDescendant)operator(.)ident(base_class) ident(assert_equal) constant(TightPerson)operator(,) constant(TightPerson)operator(.)ident(base_class) ident(assert_equal) constant(TightPerson)operator(,) constant(TightDescendant)operator(.)ident(base_class) reserved(end) reserved(def) method(test_assert_queries) ident(query) operator(=) ident(lambda) operator({) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(execute) string operator(}) ident(assert_queries)operator(()integer(2)operator(\)) operator({) integer(2)operator(.)ident(times) operator({) ident(query)operator(.)ident(call) operator(}) operator(}) ident(assert_queries) integer(1)operator(,) operator(&)ident(query) ident(assert_no_queries) operator({) ident(assert) pre_constant(true) operator(}) reserved(end) reserved(def) method(test_to_xml) ident(xml) operator(=) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(to_xml)operator(()symbol(:indent) operator(=)operator(>) integer(0)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(\)) ident(bonus_time_in_current_timezone) operator(=) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(bonus_time)operator(.)ident(xmlschema) ident(written_on_in_current_timezone) operator(=) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(written_on)operator(.)ident(xmlschema) ident(last_read_in_current_timezone) operator(=) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(last_read)operator(.)ident(xmlschema) ident(assert_equal) string)delimiter(")>operator(,) ident(xml)operator(.)ident(first)operator(()integer(7)operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()stringThe First Topic)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()stringDavid)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string1)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string0)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string)inlinecontent()delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()stringHave a nice day)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()stringdavid@loudthinking.com)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string)delimiter(\))>operator(\)) reserved(if) ident(current_adapter?)operator(()symbol(:SybaseAdapter)operator(\)) reserved(or) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string)inlinecontent()delimiter(\))>operator(\)) reserved(else) ident(assert) ident(xml)operator(.)ident(include?)operator(()string2004-04-15)delimiter(\))>operator(\)) reserved(end) comment(# Oracle and DB2 don't have true boolean or time-only fields) reserved(unless) ident(current_adapter?)operator(()symbol(:OracleAdapter)operator(\)) operator(||) ident(current_adapter?)operator(()symbol(:DB2Adapter)operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()stringfalse)delimiter(\))>operator(\))operator(,) string ident(assert) ident(xml)operator(.)ident(include?)operator(()string)inlinecontent()delimiter(\))>operator(\)) reserved(end) reserved(end) reserved(def) method(test_to_xml_skipping_attributes) ident(xml) operator(=) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(to_xml)operator(()symbol(:indent) operator(=)operator(>) integer(0)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(,) symbol(:except) operator(=)operator(>) symbol(:title)operator(\)) ident(assert_equal) string)delimiter(")>operator(,) ident(xml)operator(.)ident(first)operator(()integer(7)operator(\)) ident(assert) operator(!)ident(xml)operator(.)ident(include?)operator(()stringThe First Topic)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()stringDavid)delimiter(\))>operator(\)) ident(xml) operator(=) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(to_xml)operator(()symbol(:indent) operator(=)operator(>) integer(0)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(,) symbol(:except) operator(=)operator(>) operator([) symbol(:title)operator(,) symbol(:author_name) operator(])operator(\)) ident(assert) operator(!)ident(xml)operator(.)ident(include?)operator(()stringThe First Topic)delimiter(\))>operator(\)) ident(assert) operator(!)ident(xml)operator(.)ident(include?)operator(()stringDavid)delimiter(\))>operator(\)) reserved(end) reserved(def) method(test_to_xml_including_has_many_association) ident(xml) operator(=) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(to_xml)operator(()symbol(:indent) operator(=)operator(>) integer(0)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(,) symbol(:include) operator(=)operator(>) symbol(:replies)operator(\)) ident(assert_equal) string)delimiter(")>operator(,) ident(xml)operator(.)ident(first)operator(()integer(7)operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()stringThe Second Topic's of the day)delimiter(\))>operator(\)) reserved(end) reserved(def) method(test_to_xml_including_belongs_to_association) ident(xml) operator(=) ident(companies)operator(()symbol(:first_client)operator(\))operator(.)ident(to_xml)operator(()symbol(:indent) operator(=)operator(>) integer(0)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(,) symbol(:include) operator(=)operator(>) symbol(:firm)operator(\)) ident(assert) operator(!)ident(xml)operator(.)ident(include?)operator(()string)delimiter(")>operator(\)) ident(xml) operator(=) ident(companies)operator(()symbol(:second_client)operator(\))operator(.)ident(to_xml)operator(()symbol(:indent) operator(=)operator(>) integer(0)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(,) symbol(:include) operator(=)operator(>) symbol(:firm)operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string)delimiter(")>operator(\)) reserved(end) reserved(def) method(test_to_xml_including_multiple_associations) ident(xml) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(to_xml)operator(()symbol(:indent) operator(=)operator(>) integer(0)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:clients)operator(,) symbol(:account) operator(])operator(\)) ident(assert_equal) string)delimiter(")>operator(,) ident(xml)operator(.)ident(first)operator(()integer(6)operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string)delimiter(\))>operator(\)) reserved(end) reserved(def) method(test_to_xml_including_multiple_associations_with_options) ident(xml) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(to_xml)operator(() symbol(:indent) operator(=)operator(>) integer(0)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(,) symbol(:include) operator(=)operator(>) operator({) symbol(:clients) operator(=)operator(>) operator({) symbol(:only) operator(=)operator(>) symbol(:name) operator(}) operator(}) operator(\)) ident(assert_equal) string)delimiter(")>operator(,) ident(xml)operator(.)ident(first)operator(()integer(6)operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()stringSummit)delimiter(\))>operator(\)) ident(assert) ident(xml)operator(.)ident(include?)operator(()string)delimiter(\))>operator(\)) reserved(end) reserved(def) method(test_except_attributes) ident(assert_equal)operator(() stringoperator(,) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(attributes)operator(()symbol(:except) operator(=)operator(>) symbol(:title)operator(\))operator(.)ident(keys) operator(\)) ident(assert_equal)operator(() stringoperator(,) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(attributes)operator(()symbol(:except) operator(=)operator(>) operator([) symbol(:title)operator(,) symbol(:id)operator(,) symbol(:type)operator(,) symbol(:approved)operator(,) symbol(:author_name) operator(])operator(\))operator(.)ident(keys) operator(\)) reserved(end) reserved(def) method(test_include_attributes) ident(assert_equal)operator(()stringoperator(,) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(attributes)operator(()symbol(:only) operator(=)operator(>) symbol(:title)operator(\))operator(.)ident(keys)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(attributes)operator(()symbol(:only) operator(=)operator(>) operator([) symbol(:title)operator(,) symbol(:id)operator(,) symbol(:type)operator(,) symbol(:approved)operator(,) symbol(:author_name) operator(])operator(\))operator(.)ident(keys)operator(\)) reserved(end) reserved(def) method(test_type_name_with_module_should_handle_beginning) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(send)operator(()symbol(:type_name_with_module)operator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(send)operator(()symbol(:type_name_with_module)operator(,) stringoperator(\)) reserved(end) comment(# FIXME: this test ought to run, but it needs to run sandboxed so that it) comment(# doesn't b0rk the current test environment by undefing everything.) comment(#) comment(#def test_dev_mode_memory_leak) comment(# counts = []) comment(# 2.times do) comment(# require_dependency 'fixtures/company') comment(# Firm.find(:first\)) comment(# Dependencies.clear) comment(# ActiveRecord::Base.reset_subclasses) comment(# Dependencies.remove_subclasses_for(ActiveRecord::Base\)) comment(#) comment(# GC.start) comment(# ) comment(# count = 0) comment(# ObjectSpace.each_object(Proc\) { count += 1 }) comment(# counts << count) comment(# end) comment(# assert counts.last <= counts.first,) comment(# "expected last count (#{counts.last}\) to be <= first count (#{counts.first}\)") comment(#end) ident(private) reserved(def) method(assert_readers)operator(()ident(model)operator(,) ident(exceptions)operator(\)) ident(expected_readers) operator(=) constant(Set)operator(.)ident(new)operator(()ident(model)operator(.)ident(column_names) operator(-) operator(()ident(model)operator(.)ident(serialized_attributes)operator(.)ident(keys) operator(+) operator([)stringoperator(])operator(\))operator(\)) ident(expected_readers) operator(+=) ident(expected_readers)operator(.)ident(map) operator({) operator(|)ident(col)operator(|) stringcontent(?)delimiter(")> operator(}) ident(expected_readers) operator(-=) ident(exceptions) ident(assert_equal) ident(expected_readers)operator(,) ident(model)operator(.)ident(read_methods) reserved(end) reserved(end) ident(require) string ident(require) string reserved(class) class(BinaryTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) constant(BINARY_FIXTURE_PATH) operator(=) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(def) method(setup) constant(Binary)operator(.)ident(connection)operator(.)ident(execute) string instance_variable(@data) operator(=) constant(File)operator(.)ident(read)operator(()constant(BINARY_FIXTURE_PATH)operator(\))operator(.)ident(freeze) reserved(end) reserved(def) method(test_truth) ident(assert) pre_constant(true) reserved(end) comment(# Without using prepared statements, it makes no sense to test) comment(# BLOB data with SQL Server, because the length of a statement is) comment(# limited to 8KB.) comment(#) comment(# Without using prepared statements, it makes no sense to test) comment(# BLOB data with DB2 or Firebird, because the length of a statement) comment(# is limited to 32KB.) reserved(unless) stringoperator(.)ident(include?) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(adapter_name) reserved(def) method(test_load_save) ident(bin) operator(=) constant(Binary)operator(.)ident(new) ident(bin)operator(.)ident(data) operator(=) instance_variable(@data) ident(assert) instance_variable(@data) operator(==) ident(bin)operator(.)ident(data)operator(,) string ident(bin)operator(.)ident(save) ident(assert) instance_variable(@data) operator(==) ident(bin)operator(.)ident(data)operator(,) string ident(db_bin) operator(=) constant(Binary)operator(.)ident(find)operator(()ident(bin)operator(.)ident(id)operator(\)) ident(assert) instance_variable(@data) operator(==) ident(db_bin)operator(.)ident(data)operator(,) string reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string constant(Company)operator(.)ident(has_many) symbol(:accounts) reserved(class) class(CalculationsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:companies)operator(,) symbol(:accounts)operator(,) symbol(:topics) reserved(def) method(test_should_sum_field) ident(assert_equal) integer(265)operator(,) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(\)) reserved(end) reserved(def) method(test_should_average_field) ident(value) operator(=) constant(Account)operator(.)ident(average)operator(()symbol(:credit_limit)operator(\)) ident(assert_equal) integer(53)operator(,) ident(value) ident(assert_kind_of) constant(Float)operator(,) ident(value) reserved(end) reserved(def) method(test_should_get_maximum_of_field) ident(assert_equal) integer(60)operator(,) constant(Account)operator(.)ident(maximum)operator(()symbol(:credit_limit)operator(\)) reserved(end) reserved(def) method(test_should_get_minimum_of_field) ident(assert_equal) integer(50)operator(,) constant(Account)operator(.)ident(minimum)operator(()symbol(:credit_limit)operator(\)) reserved(end) reserved(def) method(test_should_group_by_field) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:group) operator(=)operator(>) symbol(:firm_id)operator(\)) operator([)integer(1)operator(,)integer(6)operator(,)integer(2)operator(])operator(.)ident(each) operator({) operator(|)ident(firm_id)operator(|) ident(assert) ident(c)operator(.)ident(keys)operator(.)ident(include?)operator(()ident(firm_id)operator(\)) operator(}) reserved(end) reserved(def) method(test_should_group_by_summed_field) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:group) operator(=)operator(>) symbol(:firm_id)operator(\)) ident(assert_equal) integer(50)operator(,) ident(c)operator([)integer(1)operator(]) ident(assert_equal) integer(105)operator(,) ident(c)operator([)integer(6)operator(]) ident(assert_equal) integer(60)operator(,) ident(c)operator([)integer(2)operator(]) reserved(end) reserved(def) method(test_should_order_by_grouped_field) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:group) operator(=)operator(>) symbol(:firm_id)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)integer(1)operator(,) integer(2)operator(,) integer(6)operator(])operator(,) ident(c)operator(.)ident(keys)operator(.)ident(compact) reserved(end) reserved(def) method(test_should_order_by_calculation) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:group) operator(=)operator(>) symbol(:firm_id)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) operator([)integer(105)operator(,) integer(60)operator(,) integer(50)operator(,) integer(50)operator(])operator(,) ident(c)operator(.)ident(keys)operator(.)ident(collect) operator({) operator(|)ident(k)operator(|) ident(c)operator([)ident(k)operator(]) operator(}) ident(assert_equal) operator([)integer(6)operator(,) integer(2)operator(,) integer(1)operator(])operator(,) ident(c)operator(.)ident(keys)operator(.)ident(compact) reserved(end) reserved(def) method(test_should_limit_calculation) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:group) operator(=)operator(>) symbol(:firm_id)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(\)) ident(assert_equal) operator([)integer(1)operator(,) integer(2)operator(])operator(,) ident(c)operator(.)ident(keys)operator(.)ident(compact) reserved(end) reserved(def) method(test_should_limit_calculation_with_offset) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:group) operator(=)operator(>) symbol(:firm_id)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:offset) operator(=)operator(>) integer(1)operator(\)) ident(assert_equal) operator([)integer(2)operator(,) integer(6)operator(])operator(,) ident(c)operator(.)ident(keys)operator(.)ident(compact) reserved(end) reserved(def) method(test_should_group_by_summed_field_having_condition) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:group) operator(=)operator(>) symbol(:firm_id)operator(,) symbol(:having) operator(=)operator(>) string 50)delimiter(')>operator(\)) ident(assert_nil) ident(c)operator([)integer(1)operator(]) ident(assert_equal) integer(105)operator(,) ident(c)operator([)integer(6)operator(]) ident(assert_equal) integer(60)operator(,) ident(c)operator([)integer(2)operator(]) reserved(end) reserved(def) method(test_should_group_by_summed_association) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:group) operator(=)operator(>) symbol(:firm)operator(\)) ident(assert_equal) integer(50)operator(,) ident(c)operator([)ident(companies)operator(()symbol(:first_firm)operator(\))operator(]) ident(assert_equal) integer(105)operator(,) ident(c)operator([)ident(companies)operator(()symbol(:rails_core)operator(\))operator(]) ident(assert_equal) integer(60)operator(,) ident(c)operator([)ident(companies)operator(()symbol(:first_client)operator(\))operator(]) reserved(end) reserved(def) method(test_should_sum_field_with_conditions) ident(assert_equal) integer(105)operator(,) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_should_group_by_summed_field_with_conditions) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:conditions) operator(=)operator(>) string 1)delimiter(')>operator(,) symbol(:group) operator(=)operator(>) symbol(:firm_id)operator(\)) ident(assert_nil) ident(c)operator([)integer(1)operator(]) ident(assert_equal) integer(105)operator(,) ident(c)operator([)integer(6)operator(]) ident(assert_equal) integer(60)operator(,) ident(c)operator([)integer(2)operator(]) reserved(end) reserved(def) method(test_should_group_by_summed_field_with_conditions_and_having) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:conditions) operator(=)operator(>) string 1)delimiter(')>operator(,) symbol(:group) operator(=)operator(>) symbol(:firm_id)operator(,) symbol(:having) operator(=)operator(>) string 60)delimiter(')>operator(\)) ident(assert_nil) ident(c)operator([)integer(1)operator(]) ident(assert_equal) integer(105)operator(,) ident(c)operator([)integer(6)operator(]) ident(assert_nil) ident(c)operator([)integer(2)operator(]) reserved(end) reserved(def) method(test_should_group_by_fields_with_table_alias) ident(c) operator(=) constant(Account)operator(.)ident(sum)operator(()symbol(:credit_limit)operator(,) symbol(:group) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(50)operator(,) ident(c)operator([)integer(1)operator(]) ident(assert_equal) integer(105)operator(,) ident(c)operator([)integer(6)operator(]) ident(assert_equal) integer(60)operator(,) ident(c)operator([)integer(2)operator(]) reserved(end) reserved(def) method(test_should_calculate_with_invalid_field) ident(assert_equal) integer(5)operator(,) constant(Account)operator(.)ident(calculate)operator(()symbol(:count)operator(,) stringoperator(\)) ident(assert_equal) integer(5)operator(,) constant(Account)operator(.)ident(calculate)operator(()symbol(:count)operator(,) symbol(:all)operator(\)) reserved(end) reserved(def) method(test_should_calculate_grouped_with_invalid_field) ident(c) operator(=) constant(Account)operator(.)ident(count)operator(()symbol(:all)operator(,) symbol(:group) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) ident(c)operator([)integer(1)operator(]) ident(assert_equal) integer(2)operator(,) ident(c)operator([)integer(6)operator(]) ident(assert_equal) integer(1)operator(,) ident(c)operator([)integer(2)operator(]) reserved(end) reserved(def) method(test_should_calculate_grouped_association_with_invalid_field) ident(c) operator(=) constant(Account)operator(.)ident(count)operator(()symbol(:all)operator(,) symbol(:group) operator(=)operator(>) symbol(:firm)operator(\)) ident(assert_equal) integer(1)operator(,) ident(c)operator([)ident(companies)operator(()symbol(:first_firm)operator(\))operator(]) ident(assert_equal) integer(2)operator(,) ident(c)operator([)ident(companies)operator(()symbol(:rails_core)operator(\))operator(]) ident(assert_equal) integer(1)operator(,) ident(c)operator([)ident(companies)operator(()symbol(:first_client)operator(\))operator(]) reserved(end) reserved(def) method(test_should_calculate_grouped_by_function) ident(c) operator(=) constant(Company)operator(.)ident(count)operator(()symbol(:all)operator(,) symbol(:group) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(c)operator([)pre_constant(nil)operator(]) ident(assert_equal) integer(1)operator(,) ident(c)operator([)stringoperator(]) ident(assert_equal) integer(3)operator(,) ident(c)operator([)stringoperator(]) ident(assert_equal) integer(2)operator(,) ident(c)operator([)stringoperator(]) reserved(end) reserved(def) method(test_should_calculate_grouped_by_function_with_table_alias) ident(c) operator(=) constant(Company)operator(.)ident(count)operator(()symbol(:all)operator(,) symbol(:group) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(c)operator([)pre_constant(nil)operator(]) ident(assert_equal) integer(1)operator(,) ident(c)operator([)stringoperator(]) ident(assert_equal) integer(3)operator(,) ident(c)operator([)stringoperator(]) ident(assert_equal) integer(2)operator(,) ident(c)operator([)stringoperator(]) reserved(end) reserved(def) method(test_should_sum_scoped_field) ident(assert_equal) integer(15)operator(,) ident(companies)operator(()symbol(:rails_core)operator(\))operator(.)ident(companies)operator(.)ident(sum)operator(()symbol(:id)operator(\)) reserved(end) reserved(def) method(test_should_sum_scoped_field_with_conditions) ident(assert_equal) integer(8)operator(,) ident(companies)operator(()symbol(:rails_core)operator(\))operator(.)ident(companies)operator(.)ident(sum)operator(()symbol(:id)operator(,) symbol(:conditions) operator(=)operator(>) string 7)delimiter(')>operator(\)) reserved(end) reserved(def) method(test_should_group_by_scoped_field) ident(c) operator(=) ident(companies)operator(()symbol(:rails_core)operator(\))operator(.)ident(companies)operator(.)ident(sum)operator(()symbol(:id)operator(,) symbol(:group) operator(=)operator(>) symbol(:name)operator(\)) ident(assert_equal) integer(7)operator(,) ident(c)operator([)stringoperator(]) ident(assert_equal) integer(8)operator(,) ident(c)operator([)stringoperator(]) reserved(end) reserved(def) method(test_should_group_by_summed_field_with_conditions_and_having) ident(c) operator(=) ident(companies)operator(()symbol(:rails_core)operator(\))operator(.)ident(companies)operator(.)ident(sum)operator(()symbol(:id)operator(,) symbol(:group) operator(=)operator(>) symbol(:name)operator(,) symbol(:having) operator(=)operator(>) string 7)delimiter(')>operator(\)) ident(assert_nil) ident(c)operator([)stringoperator(]) ident(assert_equal) integer(8)operator(,) ident(c)operator([)stringoperator(]) reserved(end) reserved(def) method(test_should_reject_invalid_options) ident(assert_nothing_raised) reserved(do) operator([)symbol(:count)operator(,) symbol(:sum)operator(])operator(.)ident(each) reserved(do) operator(|)ident(func)operator(|) comment(# empty options are valid) constant(Company)operator(.)ident(send)operator(()symbol(:validate_calculation_options)operator(,) ident(func)operator(\)) comment(# these options are valid for all calculations) operator([)symbol(:select)operator(,) symbol(:conditions)operator(,) symbol(:joins)operator(,) symbol(:order)operator(,) symbol(:group)operator(,) symbol(:having)operator(,) symbol(:distinct)operator(])operator(.)ident(each) reserved(do) operator(|)ident(opt)operator(|) constant(Company)operator(.)ident(send)operator(()symbol(:validate_calculation_options)operator(,) ident(func)operator(,) ident(opt) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) reserved(end) comment(# :include is only valid on :count) constant(Company)operator(.)ident(send)operator(()symbol(:validate_calculation_options)operator(,) symbol(:count)operator(,) symbol(:include) operator(=)operator(>) pre_constant(true)operator(\)) reserved(end) ident(assert_raises)operator(()constant(ArgumentError)operator(\)) operator({) constant(Company)operator(.)ident(send)operator(()symbol(:validate_calculation_options)operator(,) symbol(:sum)operator(,) symbol(:include) operator(=)operator(>) symbol(:posts)operator(\)) operator(}) ident(assert_raises)operator(()constant(ArgumentError)operator(\)) operator({) constant(Company)operator(.)ident(send)operator(()symbol(:validate_calculation_options)operator(,) symbol(:sum)operator(,) symbol(:foo) operator(=)operator(>) symbol(:bar)operator(\)) operator(}) ident(assert_raises)operator(()constant(ArgumentError)operator(\)) operator({) constant(Company)operator(.)ident(send)operator(()symbol(:validate_calculation_options)operator(,) symbol(:count)operator(,) symbol(:foo) operator(=)operator(>) symbol(:bar)operator(\)) operator(}) reserved(end) reserved(end) ident(require) string reserved(class) class(CallbackDeveloper) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_table_name) string reserved(class) operator(<<) class(self) reserved(def) method(callback_string)operator(()ident(callback_method)operator(\)) stringcontent(, :string])delimiter(")> reserved(end) reserved(def) method(callback_proc)operator(()ident(callback_method)operator(\)) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(model)operator(|) ident(model)operator(.)ident(history) operator(<<) operator([)ident(callback_method)operator(,) symbol(:proc)operator(]) operator(}) reserved(end) reserved(def) method(define_callback_method)operator(()ident(callback_method)operator(\)) ident(define_method)operator(()stringcontent(_method)delimiter(")>operator(\)) reserved(do) operator(|)ident(model)operator(|) ident(model)operator(.)ident(history) operator(<<) operator([)ident(callback_method)operator(,) symbol(:method)operator(]) reserved(end) reserved(end) reserved(def) method(callback_object)operator(()ident(callback_method)operator(\)) ident(klass) operator(=) constant(Class)operator(.)ident(new) ident(klass)operator(.)ident(send)operator(()symbol(:define_method)operator(,) ident(callback_method)operator(\)) reserved(do) operator(|)ident(model)operator(|) ident(model)operator(.)ident(history) operator(<<) operator([)ident(callback_method)operator(,) symbol(:object)operator(]) reserved(end) ident(klass)operator(.)ident(new) reserved(end) reserved(end) constant(ActiveRecord)operator(::)constant(Callbacks)operator(::)constant(CALLBACKS)operator(.)ident(each) reserved(do) operator(|)ident(callback_method)operator(|) ident(callback_method_sym) operator(=) ident(callback_method)operator(.)ident(to_sym) ident(define_callback_method)operator(()ident(callback_method_sym)operator(\)) ident(send)operator(()ident(callback_method)operator(,) ident(callback_method_sym)operator(\)) ident(send)operator(()ident(callback_method)operator(,) ident(callback_string)operator(()ident(callback_method_sym)operator(\))operator(\)) ident(send)operator(()ident(callback_method)operator(,) ident(callback_proc)operator(()ident(callback_method_sym)operator(\))operator(\)) ident(send)operator(()ident(callback_method)operator(,) ident(callback_object)operator(()ident(callback_method_sym)operator(\))operator(\)) ident(send)operator(()ident(callback_method)operator(\)) operator({) operator(|)ident(model)operator(|) ident(model)operator(.)ident(history) operator(<<) operator([)ident(callback_method_sym)operator(,) symbol(:block)operator(]) operator(}) reserved(end) reserved(def) method(history) instance_variable(@history) operator(||=) operator([)operator(]) reserved(end) comment(# after_initialize and after_find are invoked only if instance methods have been defined.) reserved(def) method(after_initialize) reserved(end) reserved(def) method(after_find) reserved(end) reserved(end) reserved(class) class(RecursiveCallbackDeveloper) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_table_name) string ident(before_save) symbol(:on_before_save) ident(after_save) symbol(:on_after_save) ident(attr_reader) symbol(:on_before_save_called)operator(,) symbol(:on_after_save_called) reserved(def) method(on_before_save) instance_variable(@on_before_save_called) operator(||=) integer(0) instance_variable(@on_before_save_called) operator(+=) integer(1) ident(save) reserved(unless) instance_variable(@on_before_save_called) operator(>) integer(1) reserved(end) reserved(def) method(on_after_save) instance_variable(@on_after_save_called) operator(||=) integer(0) instance_variable(@on_after_save_called) operator(+=) integer(1) ident(save) reserved(unless) instance_variable(@on_after_save_called) operator(>) integer(1) reserved(end) reserved(end) reserved(class) class(ImmutableDeveloper) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_table_name) string ident(validates_inclusion_of) symbol(:salary)operator(,) symbol(:in) operator(=)operator(>) integer(50000)operator(..)integer(200000) ident(before_save) symbol(:cancel) ident(before_destroy) symbol(:cancel) reserved(def) method(cancelled?) instance_variable(@cancelled) operator(==) pre_constant(true) reserved(end) ident(private) reserved(def) method(cancel) instance_variable(@cancelled) operator(=) pre_constant(true) pre_constant(false) reserved(end) reserved(end) reserved(class) class(ImmutableMethodDeveloper) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_table_name) string ident(validates_inclusion_of) symbol(:salary)operator(,) symbol(:in) operator(=)operator(>) integer(50000)operator(..)integer(200000) reserved(def) method(cancelled?) instance_variable(@cancelled) operator(==) pre_constant(true) reserved(end) reserved(def) method(before_save) instance_variable(@cancelled) operator(=) pre_constant(true) pre_constant(false) reserved(end) reserved(def) method(before_destroy) instance_variable(@cancelled) operator(=) pre_constant(true) pre_constant(false) reserved(end) reserved(end) reserved(class) class(CallbacksTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:developers) reserved(def) method(test_initialize) ident(david) operator(=) constant(CallbackDeveloper)operator(.)ident(new) ident(assert_equal) operator([) operator([) symbol(:after_initialize)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:block) operator(])operator(,) operator(])operator(,) ident(david)operator(.)ident(history) reserved(end) reserved(def) method(test_find) ident(david) operator(=) constant(CallbackDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) operator([) operator([) symbol(:after_find)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:block) operator(])operator(,) operator(])operator(,) ident(david)operator(.)ident(history) reserved(end) reserved(def) method(test_new_valid?) ident(david) operator(=) constant(CallbackDeveloper)operator(.)ident(new) ident(david)operator(.)ident(valid?) ident(assert_equal) operator([) operator([) symbol(:after_initialize)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation_on_create)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_validation_on_create)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_validation_on_create)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_validation_on_create)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_validation_on_create)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_validation_on_create)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_validation_on_create)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_validation_on_create)operator(,) symbol(:block) operator(]) operator(])operator(,) ident(david)operator(.)ident(history) reserved(end) reserved(def) method(test_existing_valid?) ident(david) operator(=) constant(CallbackDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(valid?) ident(assert_equal) operator([) operator([) symbol(:after_find)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation_on_update)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_validation_on_update)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_validation_on_update)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_validation_on_update)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_validation_on_update)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_validation_on_update)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_validation_on_update)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_validation_on_update)operator(,) symbol(:block) operator(]) operator(])operator(,) ident(david)operator(.)ident(history) reserved(end) reserved(def) method(test_create) ident(david) operator(=) constant(CallbackDeveloper)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) integer(1000000)operator(\)) ident(assert_equal) operator([) operator([) symbol(:after_initialize)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation_on_create)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_validation_on_create)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_validation_on_create)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_validation_on_create)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_validation_on_create)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_validation_on_create)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_validation_on_create)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_validation_on_create)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_save)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_save)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_save)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_save)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_create)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_create)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_create)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_create)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_create)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_create)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_create)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_create)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_save)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_save)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_save)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_save)operator(,) symbol(:block) operator(]) operator(])operator(,) ident(david)operator(.)ident(history) reserved(end) reserved(def) method(test_save) ident(david) operator(=) constant(CallbackDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(save) ident(assert_equal) operator([) operator([) symbol(:after_find)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation_on_update)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_validation_on_update)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_validation_on_update)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_validation_on_update)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_validation)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_validation_on_update)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_validation_on_update)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_validation_on_update)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_validation_on_update)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_save)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_save)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_save)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_save)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_update)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_update)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_update)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_update)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_update)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_update)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_update)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_update)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_save)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_save)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_save)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_save)operator(,) symbol(:block) operator(]) operator(])operator(,) ident(david)operator(.)ident(history) reserved(end) reserved(def) method(test_destroy) ident(david) operator(=) constant(CallbackDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(destroy) ident(assert_equal) operator([) operator([) symbol(:after_find)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_destroy)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_destroy)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_destroy)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_destroy)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_destroy)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_destroy)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_destroy)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_destroy)operator(,) symbol(:block) operator(]) operator(])operator(,) ident(david)operator(.)ident(history) reserved(end) reserved(def) method(test_delete) ident(david) operator(=) constant(CallbackDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) constant(CallbackDeveloper)operator(.)ident(delete)operator(()ident(david)operator(.)ident(id)operator(\)) ident(assert_equal) operator([) operator([) symbol(:after_find)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:block) operator(])operator(,) operator(])operator(,) ident(david)operator(.)ident(history) reserved(end) reserved(def) method(test_before_save_returning_false) ident(david) operator(=) constant(ImmutableDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) ident(david)operator(.)ident(valid?) ident(assert) operator(!)ident(david)operator(.)ident(save) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotSaved)operator(\)) operator({) ident(david)operator(.)ident(save!) operator(}) ident(david) operator(=) constant(ImmutableDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(salary) operator(=) integer(10_000_000) ident(assert) operator(!)ident(david)operator(.)ident(valid?) ident(assert) operator(!)ident(david)operator(.)ident(save) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordInvalid)operator(\)) operator({) ident(david)operator(.)ident(save!) operator(}) reserved(end) reserved(def) method(test_before_destroy_returning_false) ident(david) operator(=) constant(ImmutableDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)ident(david)operator(.)ident(destroy) ident(assert_not_nil) constant(ImmutableDeveloper)operator(.)ident(find_by_id)operator(()integer(1)operator(\)) reserved(end) reserved(def) method(test_zzz_callback_returning_false) comment(# must be run last since we modify CallbackDeveloper) ident(david) operator(=) constant(CallbackDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) constant(CallbackDeveloper)operator(.)ident(before_validation) ident(proc) operator({) operator(|)ident(model)operator(|) ident(model)operator(.)ident(history) operator(<<) operator([)symbol(:before_validation)operator(,) symbol(:returning_false)operator(])operator(;) reserved(return) pre_constant(false) operator(}) constant(CallbackDeveloper)operator(.)ident(before_validation) ident(proc) operator({) operator(|)ident(model)operator(|) ident(model)operator(.)ident(history) operator(<<) operator([)symbol(:before_validation)operator(,) symbol(:should_never_get_here)operator(]) operator(}) ident(david)operator(.)ident(save) ident(assert_equal) operator([) operator([) symbol(:after_find)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_find)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:after_initialize)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:string) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:proc) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:object) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:block) operator(])operator(,) operator([) symbol(:before_validation)operator(,) symbol(:returning_false) operator(]) operator(])operator(,) ident(david)operator(.)ident(history) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(class) class(A) ident(include) constant(ClassInheritableAttributes) reserved(end) reserved(class) class(B) operator(<) constant(A) ident(write_inheritable_array) stringoperator(,) operator([) symbol(:one)operator(,) symbol(:two) operator(]) reserved(end) reserved(class) class(C) operator(<) constant(A) ident(write_inheritable_array) stringoperator(,) operator([) symbol(:three) operator(]) reserved(end) reserved(class) class(D) operator(<) constant(B) ident(write_inheritable_array) stringoperator(,) operator([) symbol(:four) operator(]) reserved(end) reserved(class) class(ClassInheritableAttributesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_first_level) ident(assert_equal) operator([) symbol(:one)operator(,) symbol(:two) operator(])operator(,) constant(B)operator(.)ident(read_inheritable_attribute)operator(()stringoperator(\)) ident(assert_equal) operator([) symbol(:three) operator(])operator(,) constant(C)operator(.)ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_second_level) ident(assert_equal) operator([) symbol(:one)operator(,) symbol(:two)operator(,) symbol(:four) operator(])operator(,) constant(D)operator(.)ident(read_inheritable_attribute)operator(()stringoperator(\)) ident(assert_equal) operator([) symbol(:one)operator(,) symbol(:two) operator(])operator(,) constant(B)operator(.)ident(read_inheritable_attribute)operator(()stringoperator(\)) reserved(end) reserved(end) ident(require) string ident(require) string reserved(class) class(TestColumnAlias) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:topics) constant(QUERY) operator(=) reserved(if) string operator(==) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(adapter_name) string reserved(else) string reserved(end) reserved(def) method(test_column_alias) ident(records) operator(=) constant(Topic)operator(.)ident(connection)operator(.)ident(select_all)operator(()constant(QUERY)operator(\)) ident(assert_equal) stringoperator(,) ident(records)operator([)integer(0)operator(])operator(.)ident(keys)operator([)integer(0)operator(]) reserved(end) reserved(end) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) ident(db1) operator(=) string ident(db2) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db1) operator(\)) constant(Course)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db2) operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) ident(db1) operator(=) string ident(db2) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db1) operator(\)) constant(Course)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db2) operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) ident(db1) operator(=) string ident(db2) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:encoding) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db1) operator(\)) constant(Course)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db2) operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) ident(db1) operator(=) string ident(db2) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db1) operator(\)) constant(Course)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db2) operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new) pre_constant(STDOUT) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger)operator(.)ident(level) operator(=) constant(Logger)operator(::)constant(WARN) comment(# Set these to your database connection strings) ident(db) operator(=) pre_constant(ENV)operator([)stringoperator(]) operator(||) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db) operator(\)) constant(Course)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db) operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) ident(db1) operator(=) string ident(db2) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db1)operator(,) symbol(:min_messages) operator(=)operator(>) string operator(\)) constant(Course)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db2)operator(,) symbol(:min_messages) operator(=)operator(>) string operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) reserved(class) class(SqliteError) operator(<) constant(StandardError) reserved(end) constant(BASE_DIR) operator(=) constant(File)operator(.)ident(expand_path)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(sqlite_test_db) operator(=) stringcontent(/fixture_database.sqlite)delimiter(")> ident(sqlite_test_db2) operator(=) stringcontent(/fixture_database_2.sqlite)delimiter(")> reserved(def) method(make_connection)operator(()ident(clazz)operator(,) ident(db_file)operator(,) ident(db_definitions_file)operator(\)) reserved(unless) constant(File)operator(.)ident(exist?)operator(()ident(db_file)operator(\)) ident(puts) stringcontent(. Rebuilding it.)delimiter(")> ident(sqlite_command) operator(=) stringcontent( "create table a (a integer\); drop table a;")delimiter(})> ident(puts) stringcontent(')delimiter(")> ident(raise) constant(SqliteError)operator(.)ident(new)operator(()stringoperator(\)) reserved(unless) ident(system)operator(()ident(sqlite_command)operator(\)) ident(clazz)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db_file)operator(\)) ident(script) operator(=) constant(File)operator(.)ident(read)operator(()stringcontent(/db_definitions/)inlinedelimiter(")>operator(\)) comment(# SQLite-Ruby has problems with semi-colon separated commands, so split and execute one at a time) ident(script)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(command)operator(|) ident(clazz)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(command)operator(\)) reserved(unless) ident(command)operator(.)ident(strip)operator(.)ident(empty?) reserved(end) reserved(else) ident(clazz)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db_file)operator(\)) reserved(end) reserved(end) ident(make_connection)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(,) ident(sqlite_test_db)operator(,) stringoperator(\)) ident(make_connection)operator(()constant(Course)operator(,) ident(sqlite_test_db2)operator(,) stringoperator(\)) ident(load)operator(()constant(File)operator(.)ident(join)operator(()constant(BASE_DIR)operator(,) stringoperator(,) stringoperator(\))operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) reserved(class) class(SqliteError) operator(<) constant(StandardError) reserved(end) constant(BASE_DIR) operator(=) constant(File)operator(.)ident(expand_path)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(sqlite_test_db) operator(=) stringcontent(/fixture_database.sqlite3)delimiter(")> ident(sqlite_test_db2) operator(=) stringcontent(/fixture_database_2.sqlite3)delimiter(")> reserved(def) method(make_connection)operator(()ident(clazz)operator(,) ident(db_file)operator(,) ident(db_definitions_file)operator(\)) reserved(unless) constant(File)operator(.)ident(exist?)operator(()ident(db_file)operator(\)) ident(puts) stringcontent(. Rebuilding it.)delimiter(")> ident(sqlite_command) operator(=) stringcontent( "create table a (a integer\); drop table a;")delimiter(})> ident(puts) stringcontent(')delimiter(")> ident(raise) constant(SqliteError)operator(.)ident(new)operator(()stringoperator(\)) reserved(unless) ident(system)operator(()ident(sqlite_command)operator(\)) ident(clazz)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db_file)operator(\)) ident(script) operator(=) constant(File)operator(.)ident(read)operator(()stringcontent(/db_definitions/)inlinedelimiter(")>operator(\)) comment(# SQLite-Ruby has problems with semi-colon separated commands, so split and execute one at a time) ident(script)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(command)operator(|) ident(clazz)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(command)operator(\)) reserved(unless) ident(command)operator(.)ident(strip)operator(.)ident(empty?) reserved(end) reserved(else) ident(clazz)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db_file)operator(\)) reserved(end) reserved(end) ident(make_connection)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(,) ident(sqlite_test_db)operator(,) stringoperator(\)) ident(make_connection)operator(()constant(Course)operator(,) ident(sqlite_test_db2)operator(,) stringoperator(\)) ident(load)operator(()constant(File)operator(.)ident(join)operator(()constant(BASE_DIR)operator(,) stringoperator(,) stringoperator(\))operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) reserved(class) class(SqliteError) operator(<) constant(StandardError) reserved(end) reserved(def) method(make_connection)operator(()ident(clazz)operator(,) ident(db_definitions_file)operator(\)) ident(clazz)operator(.)ident(establish_connection)operator(()symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) stringoperator(\)) constant(File)operator(.)ident(read)operator(()stringcontent(/../../fixtures/db_definitions/)inlinedelimiter(")>operator(\))operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(command)operator(|) ident(clazz)operator(.)ident(connection)operator(.)ident(execute)operator(()ident(command)operator(\)) reserved(unless) ident(command)operator(.)ident(strip)operator(.)ident(empty?) reserved(end) reserved(end) ident(make_connection)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(,) stringoperator(\)) ident(make_connection)operator(()constant(Course)operator(,) stringoperator(\)) ident(load)operator(()stringcontent(/../../fixtures/db_definitions/schema.rb)delimiter(")>operator(\))operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) ident(db1) operator(=) string ident(db2) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db1) operator(\)) constant(Course)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db2) operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) ident(dsn1) operator(=) string ident(dsn2) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:mode) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:dsn) operator(=)operator(>) ident(dsn1) operator(\)) constant(Course)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:mode) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:dsn) operator(=)operator(>) ident(dsn2) operator(\)) ident(print) string ident(require_dependency) string ident(require) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger) operator(=) constant(Logger)operator(.)ident(new)operator(()stringoperator(\)) ident(db1) operator(=) string ident(db2) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db1) operator(\)) constant(Course)operator(.)ident(establish_connection)operator(() symbol(:adapter) operator(=)operator(>) stringoperator(,) symbol(:host) operator(=)operator(>) stringoperator(,) symbol(:username) operator(=)operator(>) stringoperator(,) symbol(:password) operator(=)operator(>) stringoperator(,) symbol(:database) operator(=)operator(>) ident(db2) operator(\)) ident(require) string reserved(class) class(CopyTableTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:companies)operator(,) symbol(:comments) reserved(def) method(setup) instance_variable(@connection) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) reserved(class) operator(<<) instance_variable(@connection) ident(public) symbol(:copy_table)operator(,) symbol(:table_structure)operator(,) symbol(:indexes) reserved(end) reserved(end) reserved(def) method(test_copy_table)operator(()ident(from) operator(=) stringoperator(,) ident(to) operator(=) stringoperator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(assert_nothing_raised) operator({)ident(copy_table)operator(()ident(from)operator(,) ident(to)operator(,) ident(options)operator(\))operator(}) ident(assert_equal) ident(row_count)operator(()ident(from)operator(\))operator(,) ident(row_count)operator(()ident(to)operator(\)) reserved(if) ident(block_given?) reserved(yield) ident(from)operator(,) ident(to)operator(,) ident(options) reserved(else) ident(assert_equal) ident(column_names)operator(()ident(from)operator(\))operator(,) ident(column_names)operator(()ident(to)operator(\)) reserved(end) instance_variable(@connection)operator(.)ident(drop_table)operator(()ident(to)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(test_copy_table_renaming_column) ident(test_copy_table)operator(()stringoperator(,) stringoperator(,) symbol(:rename) operator(=)operator(>) operator({)string operator(=)operator(>) stringoperator(})operator(\)) reserved(do) operator(|)ident(from)operator(,) ident(to)operator(,) ident(options)operator(|) ident(assert_equal) ident(column_values)operator(()ident(from)operator(,) stringoperator(\))operator(.)ident(compact)operator(.)ident(sort)operator(,) ident(column_values)operator(()ident(to)operator(,) stringoperator(\))operator(.)ident(compact)operator(.)ident(sort) reserved(end) reserved(end) reserved(def) method(test_copy_table_with_index) ident(test_copy_table)operator(()stringoperator(,) stringoperator(\)) reserved(do) instance_variable(@connection)operator(.)ident(add_index)operator(()stringoperator(,) operator([)stringoperator(,) stringoperator(])operator(\)) ident(test_copy_table)operator(()stringoperator(,) stringoperator(\)) reserved(do) ident(assert_equal) ident(table_indexes_without_name)operator(()stringoperator(\))operator(,) ident(table_indexes_without_name)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(end) ident(protected) reserved(def) method(copy_table)operator(()ident(from)operator(,) ident(to)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) instance_variable(@connection)operator(.)ident(copy_table)operator(()ident(from)operator(,) ident(to)operator(,) operator({)symbol(:temporary) operator(=)operator(>) pre_constant(true)operator(})operator(.)ident(merge)operator(()ident(options)operator(\))operator(\)) reserved(end) reserved(def) method(column_names)operator(()ident(table)operator(\)) instance_variable(@connection)operator(.)ident(table_structure)operator(()ident(table)operator(\))operator(.)ident(map) operator({)operator(|)ident(column)operator(|) ident(column)operator([)stringoperator(])operator(}) reserved(end) reserved(def) method(column_values)operator(()ident(table)operator(,) ident(column)operator(\)) instance_variable(@connection)operator(.)ident(select_all)operator(()stringcontent( FROM )inlinedelimiter(")>operator(\))operator(.)ident(map) operator({)operator(|)ident(row)operator(|) ident(row)operator([)ident(column)operator(])operator(}) reserved(end) reserved(def) method(table_indexes_without_name)operator(()ident(table)operator(\)) instance_variable(@connection)operator(.)ident(indexes)operator(()stringoperator(\))operator(.)ident(delete)operator(()symbol(:name)operator(\)) reserved(end) reserved(def) method(row_count)operator(()ident(table)operator(\)) instance_variable(@connection)operator(.)ident(select_one)operator(()stringdelimiter(")>operator(\))operator([)stringoperator(]) reserved(end) reserved(end) ident(require) string ident(require) string reserved(class) class(DefaultTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_default_timestamp) ident(default) operator(=) constant(Default)operator(.)ident(new) ident(assert_instance_of)operator(()constant(Time)operator(,) ident(default)operator(.)ident(default_timestamp)operator(\)) ident(assert_equal)operator(()symbol(:datetime)operator(,) ident(default)operator(.)ident(column_for_attribute)operator(()symbol(:default_timestamp)operator(\))operator(.)ident(type)operator(\)) comment(# Variance should be small; increase if required -- e.g., if test db is on) comment(# remote host and clocks aren't synchronized.) ident(t1) operator(=) constant(Time)operator(.)ident(new) ident(accepted_variance) operator(=) float(1.0) ident(assert_in_delta)operator(()ident(t1)operator(.)ident(to_f)operator(,) ident(default)operator(.)ident(default_timestamp)operator(.)ident(to_f)operator(,) ident(accepted_variance)operator(\)) reserved(end) reserved(end) ident(require) string ident(require) string reserved(class) class(DefaultsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(if) stringoperator(.)ident(include?) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(adapter_name) reserved(def) method(test_default_integers) ident(default) operator(=) constant(Default)operator(.)ident(new) ident(assert_instance_of)operator(()constant(Fixnum)operator(,) ident(default)operator(.)ident(positive_integer)operator(\)) ident(assert_equal)operator(()ident(default)operator(.)ident(positive_integer)operator(,) integer(1)operator(\)) ident(assert_instance_of)operator(()constant(Fixnum)operator(,) ident(default)operator(.)ident(negative_integer)operator(\)) ident(assert_equal)operator(()ident(default)operator(.)ident(negative_integer)operator(,) integer(-1)operator(\)) reserved(end) reserved(else) reserved(def) method(test_dummy) ident(assert) pre_constant(true) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string comment(# Can't declare new classes in test case methods, so tests before that) ident(bad_collection_keys) operator(=) pre_constant(false) reserved(begin) reserved(class) class(Car) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) ident(has_many) symbol(:wheels)operator(,) symbol(:name) operator(=)operator(>) stringoperator(;) reserved(end) reserved(rescue) constant(ArgumentError) ident(bad_collection_keys) operator(=) pre_constant(true) reserved(end) ident(raise) string reserved(unless) ident(bad_collection_keys) reserved(class) class(DeprecatedAssociationsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:accounts)operator(,) symbol(:companies)operator(,) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:topics)operator(,) symbol(:developers_projects) reserved(def) method(test_has_many_find) ident(assert_equal) integer(2)operator(,) constant(Firm)operator(.)ident(find_first)operator(.)ident(clients)operator(.)ident(length) reserved(end) reserved(def) method(test_has_many_orders) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(find_first)operator(.)ident(clients)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_has_many_class_name) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(find_first)operator(.)ident(clients_sorted_desc)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_has_many_foreign_key) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(find_first)operator(.)ident(clients_of_firm)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_has_many_conditions) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(find_first)operator(.)ident(clients_like_ms)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_has_many_sql) ident(firm) operator(=) constant(Firm)operator(.)ident(find_first) ident(assert_equal) stringoperator(,) ident(firm)operator(.)ident(clients_using_sql)operator(.)ident(first)operator(.)ident(name) ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(clients_using_sql_count) ident(assert_equal) integer(1)operator(,) constant(Firm)operator(.)ident(find_first)operator(.)ident(clients_using_sql_count) reserved(end) reserved(def) method(test_has_many_counter_sql) ident(assert_equal) integer(1)operator(,) constant(Firm)operator(.)ident(find_first)operator(.)ident(clients_using_counter_sql_count) reserved(end) reserved(def) method(test_has_many_queries) ident(assert) constant(Firm)operator(.)ident(find_first)operator(.)ident(has_clients?) ident(firm) operator(=) constant(Firm)operator(.)ident(find_first) ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients_count) comment(# tests using class count) ident(firm)operator(.)ident(clients) ident(assert) ident(firm)operator(.)ident(has_clients?) ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients_count) comment(# tests using collection length) reserved(end) reserved(def) method(test_has_many_dependence) ident(assert_equal) integer(3)operator(,) constant(Client)operator(.)ident(find_all)operator(.)ident(length) constant(Firm)operator(.)ident(find_first)operator(.)ident(destroy) ident(assert_equal) integer(1)operator(,) constant(Client)operator(.)ident(find_all)operator(.)ident(length) reserved(end) ident(uses_transaction) symbol(:test_has_many_dependence_with_transaction_support_on_failure) reserved(def) method(test_has_many_dependence_with_transaction_support_on_failure) ident(assert_equal) integer(3)operator(,) constant(Client)operator(.)ident(find_all)operator(.)ident(length) ident(firm) operator(=) constant(Firm)operator(.)ident(find_first) ident(clients) operator(=) ident(firm)operator(.)ident(clients) ident(clients)operator(.)ident(last)operator(.)ident(instance_eval) operator({) reserved(def) method(before_destroy)operator(()operator(\)) ident(raise) string reserved(end) operator(}) ident(firm)operator(.)ident(destroy) reserved(rescue) string ident(assert_equal) integer(3)operator(,) constant(Client)operator(.)ident(find_all)operator(.)ident(length) reserved(end) reserved(def) method(test_has_one_dependence) ident(num_accounts) operator(=) constant(Account)operator(.)ident(count) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) ident(firm)operator(.)ident(has_account?) ident(firm)operator(.)ident(destroy) ident(assert_equal) ident(num_accounts) operator(-) integer(1)operator(,) constant(Account)operator(.)ident(count) reserved(end) reserved(def) method(test_has_one_dependence_with_missing_association) constant(Account)operator(.)ident(destroy_all) ident(firm) operator(=) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)ident(firm)operator(.)ident(has_account?) ident(firm)operator(.)ident(destroy) reserved(end) reserved(def) method(test_belongs_to) ident(assert_equal) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(name)operator(,) constant(Client)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm)operator(.)ident(name) ident(assert) constant(Client)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(has_firm?)operator(,) string comment(# assert !Company.find(1\).has_firm?, "37signals shouldn't have a firm") reserved(end) reserved(def) method(test_belongs_to_with_different_class_name) ident(assert_equal) constant(Company)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(name)operator(,) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm_with_other_name)operator(.)ident(name) ident(assert) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(has_firm_with_other_name?)operator(,) string reserved(end) reserved(def) method(test_belongs_to_with_condition) ident(assert_equal) constant(Company)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(name)operator(,) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm_with_condition)operator(.)ident(name) ident(assert) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(has_firm_with_condition?)operator(,) string reserved(end) reserved(def) method(test_belongs_to_equality) ident(assert) constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm?)operator(()constant(Company)operator(.)ident(find)operator(()integer(1)operator(\))operator(\))operator(,) string ident(assert_raises)operator(()constant(RuntimeError)operator(\)) operator({) operator(!)constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(.)ident(firm?)operator(()constant(Company)operator(.)ident(find)operator(()integer(3)operator(\))operator(\)) operator(}) comment(# "Summit shouldn't have itself as firm") reserved(end) reserved(def) method(test_has_one) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account?)operator(()constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(\)) ident(assert_equal) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(credit_limit)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account)operator(.)ident(credit_limit) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(has_account?)operator(,) string ident(assert) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(firm?)operator(()ident(companies)operator(()symbol(:first_firm)operator(\))operator(\))operator(,) string ident(assert) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(has_firm?)operator(,) string ident(assert) operator(!)constant(Account)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(has_firm?)operator(,) string ident(assert) operator(!)constant(Account)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(firm?)operator(()ident(companies)operator(()symbol(:first_firm)operator(\))operator(\))operator(,) string reserved(end) reserved(def) method(test_has_many_dependence_on_account) ident(num_accounts) operator(=) constant(Account)operator(.)ident(count) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(destroy) ident(assert_equal) ident(num_accounts) operator(-) integer(1)operator(,) constant(Account)operator(.)ident(count) reserved(end) reserved(def) method(test_find_in) ident(assert_equal) constant(Client)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(name)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(find_in_clients)operator(()integer(2)operator(\))operator(.)ident(name) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(find_in_clients)operator(()integer(6)operator(\)) operator(}) reserved(end) reserved(def) method(test_force_reload) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(firm)operator(.)ident(clients)operator(.)ident(each) operator({)operator(|)ident(c)operator(|)operator(}) comment(# forcing to load all clients) ident(assert) ident(firm)operator(.)ident(clients)operator(.)ident(empty?)operator(,) string ident(assert) operator(!)ident(firm)operator(.)ident(has_clients?)operator(,) string ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(clients_count)operator(,) string ident(client) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(firm)operator(.)ident(id)operator(\)) ident(client)operator(.)ident(save) ident(assert) ident(firm)operator(.)ident(clients)operator(.)ident(empty?)operator(,) string ident(assert) operator(!)ident(firm)operator(.)ident(has_clients?)operator(,) string ident(assert_equal) integer(0)operator(,) ident(firm)operator(.)ident(clients_count)operator(,) string ident(assert) operator(!)ident(firm)operator(.)ident(clients)operator(()pre_constant(true)operator(\))operator(.)ident(empty?)operator(,) string ident(assert) ident(firm)operator(.)ident(has_clients?)operator(()pre_constant(true)operator(\))operator(,) string ident(assert_equal) integer(1)operator(,) ident(firm)operator(.)ident(clients_count)operator(()pre_constant(true)operator(\))operator(,) string reserved(end) reserved(def) method(test_included_in_collection) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients)operator(.)ident(include?)operator(()constant(Client)operator(.)ident(find)operator(()integer(2)operator(\))operator(\)) reserved(end) reserved(def) method(test_build_to_collection) ident(assert_equal) integer(1)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm_count) ident(new_client) operator(=) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(build_to_clients_of_firm)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(new_client)operator(.)ident(name) ident(assert) ident(new_client)operator(.)ident(save) ident(assert) ident(new_client)operator(.)ident(firm?)operator(()ident(companies)operator(()symbol(:first_firm)operator(\))operator(\)) ident(assert_equal) integer(2)operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm_count)operator(()pre_constant(true)operator(\)) reserved(end) reserved(def) method(test_create_in_collection) ident(assert_equal) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(create_in_clients_of_firm)operator(()string operator(=)operator(>) stringoperator(\))operator(,) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(clients_of_firm)operator(()pre_constant(true)operator(\))operator(.)ident(last) reserved(end) reserved(def) method(test_has_and_belongs_to_many) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) ident(david)operator(.)ident(has_projects?) ident(assert_equal) integer(2)operator(,) ident(david)operator(.)ident(projects_count) ident(active_record) operator(=) constant(Project)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) ident(active_record)operator(.)ident(has_developers?) ident(assert_equal) integer(3)operator(,) ident(active_record)operator(.)ident(developers_count) ident(assert) ident(active_record)operator(.)ident(developers)operator(.)ident(include?)operator(()ident(david)operator(\)) reserved(end) reserved(def) method(test_has_and_belongs_to_many_removing) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(active_record) operator(=) constant(Project)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(remove_projects)operator(()ident(active_record)operator(\)) ident(assert_equal) integer(1)operator(,) ident(david)operator(.)ident(projects_count) ident(assert_equal) integer(2)operator(,) ident(active_record)operator(.)ident(developers_count) reserved(end) reserved(def) method(test_has_and_belongs_to_many_zero) ident(david) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(david)operator(.)ident(remove_projects)operator(()constant(Project)operator(.)ident(find_all)operator(\)) ident(assert_equal) integer(0)operator(,) ident(david)operator(.)ident(projects_count) ident(assert) operator(!)ident(david)operator(.)ident(has_projects?) reserved(end) reserved(def) method(test_has_and_belongs_to_many_adding) ident(jamis) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(2)operator(\)) ident(action_controller) operator(=) constant(Project)operator(.)ident(find)operator(()integer(2)operator(\)) ident(jamis)operator(.)ident(add_projects)operator(()ident(action_controller)operator(\)) ident(assert_equal) integer(2)operator(,) ident(jamis)operator(.)ident(projects_count) ident(assert_equal) integer(2)operator(,) ident(action_controller)operator(.)ident(developers_count) reserved(end) reserved(def) method(test_has_and_belongs_to_many_adding_from_the_project) ident(jamis) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(2)operator(\)) ident(action_controller) operator(=) constant(Project)operator(.)ident(find)operator(()integer(2)operator(\)) ident(action_controller)operator(.)ident(add_developers)operator(()ident(jamis)operator(\)) ident(assert_equal) integer(2)operator(,) ident(jamis)operator(.)ident(projects_count) ident(assert_equal) integer(2)operator(,) ident(action_controller)operator(.)ident(developers_count) reserved(end) reserved(def) method(test_has_and_belongs_to_many_adding_a_collection) ident(aredridel) operator(=) constant(Developer)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(aredridel)operator(.)ident(save) ident(aredridel)operator(.)ident(add_projects)operator(()operator([) constant(Project)operator(.)ident(find)operator(()integer(1)operator(\))operator(,) constant(Project)operator(.)ident(find)operator(()integer(2)operator(\)) operator(])operator(\)) ident(assert_equal) integer(2)operator(,) ident(aredridel)operator(.)ident(projects_count) reserved(end) reserved(def) method(test_belongs_to_counter) ident(topic) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(0)operator(,) ident(topic)operator(.)ident(send)operator(()symbol(:read_attribute)operator(,) stringoperator(\))operator(,) string ident(reply) operator(=) ident(topic)operator(.)ident(create_in_replies)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\))operator(.)ident(send)operator(()symbol(:read_attribute)operator(,) stringoperator(\))operator(,) string ident(reply)operator(.)ident(destroy) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(find)operator(()ident(topic)operator(.)ident(id)operator(\))operator(.)ident(send)operator(()symbol(:read_attribute)operator(,) stringoperator(\))operator(,) string reserved(end) reserved(def) method(test_natural_assignment_of_has_one) ident(apple) operator(=) constant(Firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(citibank) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(10)operator(\)) ident(apple)operator(.)ident(account) operator(=) ident(citibank) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) reserved(end) reserved(def) method(test_natural_assignment_of_belongs_to) ident(apple) operator(=) constant(Firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(citibank) operator(=) constant(Account)operator(.)ident(create)operator(()string operator(=)operator(>) integer(10)operator(\)) ident(citibank)operator(.)ident(firm) operator(=) ident(apple) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(citibank)operator(.)ident(firm_id) reserved(end) reserved(def) method(test_natural_assignment_of_has_many) ident(apple) operator(=) constant(Firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(natural) operator(=) constant(Client)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(apple)operator(.)ident(clients) operator(<<) ident(natural) ident(assert_equal) ident(apple)operator(.)ident(id)operator(,) ident(natural)operator(.)ident(firm_id) ident(assert_equal) constant(Client)operator(.)ident(find)operator(()ident(natural)operator(.)ident(id)operator(\))operator(,) constant(Firm)operator(.)ident(find)operator(()ident(apple)operator(.)ident(id)operator(\))operator(.)ident(clients)operator(.)ident(find)operator(()ident(natural)operator(.)ident(id)operator(\)) ident(apple)operator(.)ident(clients)operator(.)ident(delete) ident(natural) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Firm)operator(.)ident(find)operator(()ident(apple)operator(.)ident(id)operator(\))operator(.)ident(clients)operator(.)ident(find)operator(()ident(natural)operator(.)ident(id)operator(\)) operator(}) reserved(end) reserved(def) method(test_natural_adding_of_has_and_belongs_to_many) ident(rails) operator(=) constant(Project)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(ap) operator(=) constant(Project)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(john) operator(=) constant(Developer)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(mike) operator(=) constant(Developer)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(rails)operator(.)ident(developers) operator(<<) ident(john) ident(rails)operator(.)ident(developers) operator(<<) ident(mike) ident(assert_equal) constant(Developer)operator(.)ident(find)operator(()ident(john)operator(.)ident(id)operator(\))operator(,) constant(Project)operator(.)ident(find)operator(()ident(rails)operator(.)ident(id)operator(\))operator(.)ident(developers)operator(.)ident(find)operator(()ident(john)operator(.)ident(id)operator(\)) ident(assert_equal) constant(Developer)operator(.)ident(find)operator(()ident(mike)operator(.)ident(id)operator(\))operator(,) constant(Project)operator(.)ident(find)operator(()ident(rails)operator(.)ident(id)operator(\))operator(.)ident(developers)operator(.)ident(find)operator(()ident(mike)operator(.)ident(id)operator(\)) ident(assert_equal) constant(Project)operator(.)ident(find)operator(()ident(rails)operator(.)ident(id)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()ident(mike)operator(.)ident(id)operator(\))operator(.)ident(projects)operator(.)ident(find)operator(()ident(rails)operator(.)ident(id)operator(\)) ident(assert_equal) constant(Project)operator(.)ident(find)operator(()ident(rails)operator(.)ident(id)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()ident(john)operator(.)ident(id)operator(\))operator(.)ident(projects)operator(.)ident(find)operator(()ident(rails)operator(.)ident(id)operator(\)) ident(ap)operator(.)ident(developers) operator(<<) ident(john) ident(assert_equal) constant(Developer)operator(.)ident(find)operator(()ident(john)operator(.)ident(id)operator(\))operator(,) constant(Project)operator(.)ident(find)operator(()ident(ap)operator(.)ident(id)operator(\))operator(.)ident(developers)operator(.)ident(find)operator(()ident(john)operator(.)ident(id)operator(\)) ident(assert_equal) constant(Project)operator(.)ident(find)operator(()ident(ap)operator(.)ident(id)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()ident(john)operator(.)ident(id)operator(\))operator(.)ident(projects)operator(.)ident(find)operator(()ident(ap)operator(.)ident(id)operator(\)) ident(ap)operator(.)ident(developers)operator(.)ident(delete) ident(john) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Project)operator(.)ident(find)operator(()ident(ap)operator(.)ident(id)operator(\))operator(.)ident(developers)operator(.)ident(find)operator(()ident(john)operator(.)ident(id)operator(\)) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Developer)operator(.)ident(find)operator(()ident(john)operator(.)ident(id)operator(\))operator(.)ident(projects)operator(.)ident(find)operator(()ident(ap)operator(.)ident(id)operator(\)) operator(}) reserved(end) reserved(def) method(test_storing_in_pstore) ident(require) string ident(require) string ident(apple) operator(=) constant(Firm)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(natural) operator(=) constant(Client)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(apple)operator(.)ident(clients) operator(<<) ident(natural) ident(db) operator(=) constant(PStore)operator(.)ident(new)operator(()constant(File)operator(.)ident(join)operator(()constant(Dir)operator(.)ident(tmpdir)operator(,) stringoperator(\))operator(\)) ident(db)operator(.)ident(transaction) reserved(do) ident(db)operator([)stringoperator(]) operator(=) ident(apple) reserved(end) ident(db) operator(=) constant(PStore)operator(.)ident(new)operator(()constant(File)operator(.)ident(join)operator(()constant(Dir)operator(.)ident(tmpdir)operator(,) stringoperator(\))operator(\)) ident(db)operator(.)ident(transaction) reserved(do) ident(assert_equal) stringoperator(,) ident(db)operator([)stringoperator(])operator(.)ident(clients)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(end) reserved(def) method(test_has_many_find_all) ident(assert_equal) integer(2)operator(,) constant(Firm)operator(.)ident(find_first)operator(.)ident(find_all_in_clients)operator(()stringcontent( = 'Client')delimiter(")>operator(\))operator(.)ident(length) ident(assert_equal) integer(1)operator(,) constant(Firm)operator(.)ident(find_first)operator(.)ident(find_all_in_clients)operator(()stringoperator(\))operator(.)ident(length) reserved(end) reserved(def) method(test_has_one) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(account?)operator(()constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(\)) ident(assert) ident(companies)operator(()symbol(:first_firm)operator(\))operator(.)ident(has_account?)operator(,) string ident(assert) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(firm?)operator(()ident(companies)operator(()symbol(:first_firm)operator(\))operator(\))operator(,) string ident(assert) constant(Account)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(has_firm?)operator(,) string ident(assert) operator(!)constant(Account)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(has_firm?)operator(,) string ident(assert) operator(!)constant(Account)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(firm?)operator(()ident(companies)operator(()symbol(:first_firm)operator(\))operator(\))operator(,) string reserved(end) reserved(def) method(test_has_one_build) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) ident(firm)operator(.)ident(save) ident(account) operator(=) ident(firm)operator(.)ident(build_account)operator(()string operator(=)operator(>) integer(1000)operator(\)) ident(assert) ident(account)operator(.)ident(save) ident(assert_equal) ident(account)operator(,) ident(firm)operator(.)ident(account) reserved(end) reserved(def) method(test_has_one_failing_build_association) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(account) operator(=) ident(firm)operator(.)ident(build_account) ident(assert) operator(!)ident(account)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(account)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_has_one_create) ident(firm) operator(=) constant(Firm)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(firm)operator(.)ident(save) ident(assert_equal) ident(firm)operator(.)ident(create_account)operator(()string operator(=)operator(>) integer(1000)operator(\))operator(,) ident(firm)operator(.)ident(account) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(DeprecatedFinderTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:companies)operator(,) symbol(:topics)operator(,) symbol(:entrants)operator(,) symbol(:developers) reserved(def) method(test_find_all_with_limit) ident(entrants) operator(=) constant(Entrant)operator(.)ident(find_all) pre_constant(nil)operator(,) stringoperator(,) integer(2) ident(assert_equal)operator(()integer(2)operator(,) ident(entrants)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()ident(entrants)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(,) ident(entrants)operator(.)ident(first)operator(.)ident(name)operator(\)) reserved(end) reserved(def) method(test_find_all_with_prepared_limit_and_offset) ident(entrants) operator(=) constant(Entrant)operator(.)ident(find_all) pre_constant(nil)operator(,) stringoperator(,) operator([)integer(2)operator(,) integer(1)operator(]) ident(assert_equal)operator(()integer(2)operator(,) ident(entrants)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()ident(entrants)operator(()symbol(:second)operator(\))operator(.)ident(name)operator(,) ident(entrants)operator(.)ident(first)operator(.)ident(name)operator(\)) reserved(end) reserved(def) method(test_find_first) ident(first) operator(=) constant(Topic)operator(.)ident(find_first) string ident(assert_equal)operator(()ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(title)operator(,) ident(first)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_find_first_failing) ident(first) operator(=) constant(Topic)operator(.)ident(find_first) string ident(assert_nil)operator(()ident(first)operator(\)) reserved(end) reserved(def) method(test_deprecated_find_on_conditions) ident(assert) constant(Topic)operator(.)ident(find_on_conditions)operator(()integer(1)operator(,) operator([)stringoperator(,) pre_constant(false)operator(])operator(\)) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Topic)operator(.)ident(find_on_conditions)operator(()integer(1)operator(,) operator([)stringoperator(,) pre_constant(true)operator(])operator(\)) operator(}) reserved(end) reserved(def) method(test_condition_interpolation) ident(assert_kind_of) constant(Firm)operator(,) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_kind_of) constant(Time)operator(,) constant(Topic)operator(.)ident(find_first)operator(()operator([)stringoperator(,) integer(1)operator(])operator(\))operator(.)ident(written_on) reserved(end) reserved(def) method(test_bind_variables) ident(assert_kind_of) constant(Firm)operator(,) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_kind_of) constant(Time)operator(,) constant(Topic)operator(.)ident(find_first)operator(()operator([)stringoperator(,) integer(1)operator(])operator(\))operator(.)ident(written_on) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(PreparedStatementInvalid)operator(\)) operator({) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) integer(2)operator(])operator(\)) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(PreparedStatementInvalid)operator(\)) operator({) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) integer(2)operator(,) integer(3)operator(,) integer(4)operator(])operator(\)) operator(}) reserved(end) reserved(def) method(test_bind_variables_with_quotes) constant(Company)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) reserved(end) reserved(def) method(test_named_bind_variables_with_quotes) constant(Company)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) operator({)symbol(:name) operator(=)operator(>) stringoperator(})operator(])operator(\)) reserved(end) reserved(def) method(test_named_bind_variables) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) symbol(:a) operator(=)operator(>) integer(1)operator(\)) comment(# ' ruby-mode) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) symbol(:a) operator(=)operator(>) integer(1)operator(\)) comment(# ' ruby-mode) ident(assert_kind_of) constant(Firm)operator(,) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find_first)operator(()operator([)stringoperator(,) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(])operator(\)) ident(assert_kind_of) constant(Time)operator(,) constant(Topic)operator(.)ident(find_first)operator(()operator([)stringoperator(,) operator({) symbol(:id) operator(=)operator(>) integer(1) operator(})operator(])operator(\))operator(.)ident(written_on) reserved(end) reserved(def) method(test_count) ident(assert_equal)operator(()integer(0)operator(,) constant(Entrant)operator(.)ident(count)operator(()string 3)delimiter(")>operator(\))operator(\)) ident(assert_equal)operator(()integer(1)operator(,) constant(Entrant)operator(.)ident(count)operator(()operator([)string ?)delimiter(")>operator(,) integer(2)operator(])operator(\))operator(\)) ident(assert_equal)operator(()integer(2)operator(,) constant(Entrant)operator(.)ident(count)operator(()operator([)string ?)delimiter(")>operator(,) integer(1)operator(])operator(\))operator(\)) reserved(end) reserved(def) method(test_count_by_sql) ident(assert_equal)operator(()integer(0)operator(,) constant(Entrant)operator(.)ident(count_by_sql)operator(()string 3)delimiter(")>operator(\))operator(\)) ident(assert_equal)operator(()integer(1)operator(,) constant(Entrant)operator(.)ident(count_by_sql)operator(()operator([)string ?)delimiter(")>operator(,) integer(2)operator(])operator(\))operator(\)) ident(assert_equal)operator(()integer(2)operator(,) constant(Entrant)operator(.)ident(count_by_sql)operator(()operator([)string ?)delimiter(")>operator(,) integer(1)operator(])operator(\))operator(\)) reserved(end) reserved(def) method(test_find_all_with_limit) ident(first_five_developers) operator(=) constant(Developer)operator(.)ident(find_all) pre_constant(nil)operator(,) stringoperator(,) integer(5) ident(assert_equal) integer(5)operator(,) ident(first_five_developers)operator(.)ident(length) ident(assert_equal) stringoperator(,) ident(first_five_developers)operator(.)ident(first)operator(.)ident(name) ident(assert_equal) stringoperator(,) ident(first_five_developers)operator(.)ident(last)operator(.)ident(name) ident(no_developers) operator(=) constant(Developer)operator(.)ident(find_all) pre_constant(nil)operator(,) stringoperator(,) integer(0) ident(assert_equal) integer(0)operator(,) ident(no_developers)operator(.)ident(length) ident(assert_equal) ident(first_five_developers)operator(,) constant(Developer)operator(.)ident(find_all)operator(()pre_constant(nil)operator(,) stringoperator(,) operator([)integer(5)operator(])operator(\)) ident(assert_equal) ident(no_developers)operator(,) constant(Developer)operator(.)ident(find_all)operator(()pre_constant(nil)operator(,) stringoperator(,) operator([)integer(0)operator(])operator(\)) reserved(end) reserved(def) method(test_find_all_with_limit_and_offset) ident(first_three_developers) operator(=) constant(Developer)operator(.)ident(find_all) pre_constant(nil)operator(,) stringoperator(,) operator([)integer(3)operator(,) integer(0)operator(]) ident(second_three_developers) operator(=) constant(Developer)operator(.)ident(find_all) pre_constant(nil)operator(,) stringoperator(,) operator([)integer(3)operator(,) integer(3)operator(]) ident(last_two_developers) operator(=) constant(Developer)operator(.)ident(find_all) pre_constant(nil)operator(,) stringoperator(,) operator([)integer(2)operator(,) integer(8)operator(]) ident(assert_equal) integer(3)operator(,) ident(first_three_developers)operator(.)ident(length) ident(assert_equal) integer(3)operator(,) ident(second_three_developers)operator(.)ident(length) ident(assert_equal) integer(2)operator(,) ident(last_two_developers)operator(.)ident(length) ident(assert_equal) stringoperator(,) ident(first_three_developers)operator(.)ident(first)operator(.)ident(name) ident(assert_equal) stringoperator(,) ident(second_three_developers)operator(.)ident(first)operator(.)ident(name) ident(assert_equal) stringoperator(,) ident(last_two_developers)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_find_all_by_one_attribute_with_options) ident(topics) operator(=) constant(Topic)operator(.)ident(find_all_by_content)operator(()stringoperator(,) stringoperator(\)) ident(assert) ident(topics)operator(()symbol(:first)operator(\))operator(,) ident(topics)operator(.)ident(last) ident(topics) operator(=) constant(Topic)operator(.)ident(find_all_by_content)operator(()stringoperator(,) stringoperator(\)) ident(assert) ident(topics)operator(()symbol(:first)operator(\))operator(,) ident(topics)operator(.)ident(first) reserved(end) ident(protected) reserved(def) method(bind)operator(()ident(statement)operator(,) operator(*)ident(vars)operator(\)) reserved(if) ident(vars)operator(.)ident(first)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(send)operator(()symbol(:replace_named_bind_variables)operator(,) ident(statement)operator(,) ident(vars)operator(.)ident(first)operator(\)) reserved(else) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(send)operator(()symbol(:replace_bind_variables)operator(,) ident(statement)operator(,) ident(vars)operator(\)) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(FinderTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:companies)operator(,) symbol(:topics)operator(,) symbol(:entrants)operator(,) symbol(:developers)operator(,) symbol(:developers_projects)operator(,) symbol(:posts)operator(,) symbol(:accounts) reserved(def) method(test_find) ident(assert_equal)operator(()ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(title)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_exists) ident(assert) operator(()constant(Topic)operator(.)ident(exists?)operator(()integer(1)operator(\))operator(\)) ident(assert) operator(!)operator(()constant(Topic)operator(.)ident(exists?)operator(()integer(45)operator(\))operator(\)) ident(assert) operator(!)operator(()constant(Topic)operator(.)ident(exists?)operator(()stringoperator(\))operator(\)) ident(assert) operator(!)operator(()constant(Topic)operator(.)ident(exists?)operator(()operator([)integer(1)operator(,)integer(2)operator(])operator(\))operator(\)) reserved(end) reserved(def) method(test_find_by_array_of_one_id) ident(assert_kind_of)operator(()constant(Array)operator(,) constant(Topic)operator(.)ident(find)operator(()operator([) integer(1) operator(])operator(\))operator(\)) ident(assert_equal)operator(()integer(1)operator(,) constant(Topic)operator(.)ident(find)operator(()operator([) integer(1) operator(])operator(\))operator(.)ident(length)operator(\)) reserved(end) reserved(def) method(test_find_by_ids) ident(assert_equal)operator(()integer(2)operator(,) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(,) integer(2)operator(\))operator(.)ident(length)operator(\)) ident(assert_equal)operator(()ident(topics)operator(()symbol(:second)operator(\))operator(.)ident(title)operator(,) constant(Topic)operator(.)ident(find)operator(()operator([) integer(2) operator(])operator(\))operator(.)ident(first)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_find_an_empty_array) ident(assert_equal) operator([)operator(])operator(,) constant(Topic)operator(.)ident(find)operator(()operator([)operator(])operator(\)) reserved(end) reserved(def) method(test_find_by_ids_missing_one) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(,) integer(2)operator(,) integer(45)operator(\)) operator(}) reserved(end) reserved(def) method(test_find_all_with_limit) ident(entrants) operator(=) constant(Entrant)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(\)) ident(assert_equal)operator(()integer(2)operator(,) ident(entrants)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()ident(entrants)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(,) ident(entrants)operator(.)ident(first)operator(.)ident(name)operator(\)) reserved(end) reserved(def) method(test_find_all_with_prepared_limit_and_offset) ident(entrants) operator(=) constant(Entrant)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:offset) operator(=)operator(>) integer(1)operator(\)) ident(assert_equal)operator(()integer(2)operator(,) ident(entrants)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()ident(entrants)operator(()symbol(:second)operator(\))operator(.)ident(name)operator(,) ident(entrants)operator(.)ident(first)operator(.)ident(name)operator(\)) ident(entrants) operator(=) constant(Entrant)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:offset) operator(=)operator(>) integer(2)operator(\)) ident(assert_equal)operator(()integer(1)operator(,) ident(entrants)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()ident(entrants)operator(()symbol(:third)operator(\))operator(.)ident(name)operator(,) ident(entrants)operator(.)ident(first)operator(.)ident(name)operator(\)) reserved(end) reserved(def) method(test_find_all_with_limit_and_offset_and_multiple_orderings) ident(developers) operator(=) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(1)operator(\)) ident(assert_equal) operator([)stringoperator(,) stringoperator(,) stringoperator(])operator(,) ident(developers)operator(.)ident(collect) operator({)operator(|)ident(d)operator(|) ident(d)operator(.)ident(name)operator(}) reserved(end) reserved(def) method(test_find_with_limit_and_condition) ident(developers) operator(=) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>)integer(7)operator(\)) ident(assert_equal)operator(()integer(1)operator(,) ident(developers)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(developers)operator(.)ident(first)operator(.)ident(name)operator(\)) reserved(end) reserved(def) method(test_find_with_entire_select_statement) ident(topics) operator(=) constant(Topic)operator(.)ident(find_by_sql) string ident(assert_equal)operator(()integer(1)operator(,) ident(topics)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()ident(topics)operator(()symbol(:second)operator(\))operator(.)ident(title)operator(,) ident(topics)operator(.)ident(first)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_find_with_prepared_select_statement) ident(topics) operator(=) constant(Topic)operator(.)ident(find_by_sql) operator([)stringoperator(,) stringoperator(]) ident(assert_equal)operator(()integer(1)operator(,) ident(topics)operator(.)ident(size)operator(\)) ident(assert_equal)operator(()ident(topics)operator(()symbol(:second)operator(\))operator(.)ident(title)operator(,) ident(topics)operator(.)ident(first)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_find_first) ident(first) operator(=) constant(Topic)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal)operator(()ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(title)operator(,) ident(first)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_find_first_failing) ident(first) operator(=) constant(Topic)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_nil)operator(()ident(first)operator(\)) reserved(end) reserved(def) method(test_unexisting_record_exception_handling) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(parent) operator(}) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(topic) reserved(end) reserved(def) method(test_find_only_some_columns) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:select) operator(=)operator(>) stringoperator(\)) ident(assert_raises)operator(()constant(NoMethodError)operator(\)) operator({) ident(topic)operator(.)ident(title) operator(}) ident(assert_equal) stringoperator(,) ident(topic)operator(.)ident(author_name) ident(assert) operator(!)ident(topic)operator(.)ident(attribute_present?)operator(()stringoperator(\)) ident(assert) operator(!)ident(topic)operator(.)ident(respond_to?)operator(()stringoperator(\)) ident(assert) ident(topic)operator(.)ident(attribute_present?)operator(()stringoperator(\)) ident(assert) ident(topic)operator(.)ident(respond_to?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_find_on_conditions) ident(assert) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) pre_constant(false)operator(])operator(\)) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) pre_constant(true)operator(])operator(\)) operator(}) reserved(end) reserved(def) method(test_condition_interpolation) ident(assert_kind_of) constant(Firm)operator(,) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_kind_of) constant(Time)operator(,) constant(Topic)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(1)operator(])operator(\))operator(.)ident(written_on) reserved(end) reserved(def) method(test_bind_variables) ident(assert_kind_of) constant(Firm)operator(,) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert_kind_of) constant(Time)operator(,) constant(Topic)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(1)operator(])operator(\))operator(.)ident(written_on) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(PreparedStatementInvalid)operator(\)) operator({) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(2)operator(])operator(\)) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(PreparedStatementInvalid)operator(\)) operator({) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(2)operator(,) integer(3)operator(,) integer(4)operator(])operator(\)) operator(}) reserved(end) reserved(def) method(test_bind_variables_with_quotes) constant(Company)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) reserved(end) reserved(def) method(test_named_bind_variables_with_quotes) constant(Company)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) operator({)symbol(:name) operator(=)operator(>) stringoperator(})operator(])operator(\)) reserved(end) reserved(def) method(test_bind_arity) ident(assert_nothing_raised) operator({) ident(bind) string operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(PreparedStatementInvalid)operator(\)) operator({) ident(bind) stringoperator(,) integer(1) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(PreparedStatementInvalid)operator(\)) operator({) ident(bind) string operator(}) ident(assert_nothing_raised) operator({) ident(bind) stringoperator(,) integer(1) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(PreparedStatementInvalid)operator(\)) operator({) ident(bind) stringoperator(,) integer(1)operator(,) integer(1) operator(}) reserved(end) reserved(def) method(test_named_bind_variables) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) symbol(:a) operator(=)operator(>) integer(1)operator(\)) comment(# ' ruby-mode) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) symbol(:a) operator(=)operator(>) integer(1)operator(\)) comment(# ' ruby-mode) ident(assert_kind_of) constant(Firm)operator(,) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(])operator(\)) ident(assert_nil) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) operator({) symbol(:name) operator(=)operator(>) string operator(})operator(])operator(\)) ident(assert_kind_of) constant(Time)operator(,) constant(Topic)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) operator({) symbol(:id) operator(=)operator(>) integer(1) operator(})operator(])operator(\))operator(.)ident(written_on) reserved(end) reserved(def) method(test_bind_enumerable) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) operator([)integer(1)operator(,) integer(2)operator(,) integer(3)operator(])operator(\)) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) stringoperator(\)) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) symbol(:a) operator(=)operator(>) operator([)integer(1)operator(,) integer(2)operator(,) integer(3)operator(])operator(\)) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) symbol(:a) operator(=)operator(>) stringoperator(\)) comment(# ') ident(require) string ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) constant(Set)operator(.)ident(new)operator(()operator([)integer(1)operator(,) integer(2)operator(,) integer(3)operator(])operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) constant(Set)operator(.)ident(new)operator(()stringoperator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) symbol(:a) operator(=)operator(>) constant(Set)operator(.)ident(new)operator(()operator([)integer(1)operator(,) integer(2)operator(,) integer(3)operator(])operator(\))operator(\)) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) symbol(:a) operator(=)operator(>) constant(Set)operator(.)ident(new)operator(()stringoperator(\))operator(\)) comment(# ') reserved(end) reserved(def) method(test_bind_string) ident(assert_equal) stringoperator(,) ident(bind)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_string_sanitation) ident(assert_not_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(sanitize)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(sanitize)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_count) ident(assert_equal)operator(()integer(0)operator(,) constant(Entrant)operator(.)ident(count)operator(()string 3)delimiter(")>operator(\))operator(\)) ident(assert_equal)operator(()integer(1)operator(,) constant(Entrant)operator(.)ident(count)operator(()operator([)string ?)delimiter(")>operator(,) integer(2)operator(])operator(\))operator(\)) ident(assert_equal)operator(()integer(2)operator(,) constant(Entrant)operator(.)ident(count)operator(()operator([)string ?)delimiter(")>operator(,) integer(1)operator(])operator(\))operator(\)) reserved(end) reserved(def) method(test_count_by_sql) ident(assert_equal)operator(()integer(0)operator(,) constant(Entrant)operator(.)ident(count_by_sql)operator(()string 3)delimiter(")>operator(\))operator(\)) ident(assert_equal)operator(()integer(1)operator(,) constant(Entrant)operator(.)ident(count_by_sql)operator(()operator([)string ?)delimiter(")>operator(,) integer(2)operator(])operator(\))operator(\)) ident(assert_equal)operator(()integer(2)operator(,) constant(Entrant)operator(.)ident(count_by_sql)operator(()operator([)string ?)delimiter(")>operator(,) integer(1)operator(])operator(\))operator(\)) reserved(end) reserved(def) method(test_find_by_one_attribute) ident(assert_equal) ident(topics)operator(()symbol(:first)operator(\))operator(,) constant(Topic)operator(.)ident(find_by_title)operator(()stringoperator(\)) ident(assert_nil) constant(Topic)operator(.)ident(find_by_title)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_find_by_one_attribute_with_order_option) ident(assert_equal) ident(accounts)operator(()symbol(:signals37)operator(\))operator(,) constant(Account)operator(.)ident(find_by_credit_limit)operator(()integer(50)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(accounts)operator(()symbol(:rails_core_account)operator(\))operator(,) constant(Account)operator(.)ident(find_by_credit_limit)operator(()integer(50)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_find_by_one_attribute_with_conditions) ident(assert_equal) ident(accounts)operator(()symbol(:rails_core_account)operator(\))operator(,) constant(Account)operator(.)ident(find_by_credit_limit)operator(()integer(50)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(6)operator(])operator(\)) reserved(end) reserved(def) method(test_find_by_one_attribute_with_several_options) ident(assert_equal) ident(accounts)operator(()symbol(:unknown)operator(\))operator(,) constant(Account)operator(.)ident(find_by_credit_limit)operator(()integer(50)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(3)operator(])operator(\)) reserved(end) reserved(def) method(test_find_by_one_missing_attribute) ident(assert_raises)operator(()constant(NoMethodError)operator(\)) operator({) constant(Topic)operator(.)ident(find_by_undertitle)operator(()stringoperator(\)) operator(}) reserved(end) reserved(def) method(test_find_by_two_attributes) ident(assert_equal) ident(topics)operator(()symbol(:first)operator(\))operator(,) constant(Topic)operator(.)ident(find_by_title_and_author_name)operator(()stringoperator(,) stringoperator(\)) ident(assert_nil) constant(Topic)operator(.)ident(find_by_title_and_author_name)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_find_all_by_one_attribute) ident(topics) operator(=) constant(Topic)operator(.)ident(find_all_by_content)operator(()stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(topics)operator(.)ident(size) ident(assert) ident(topics)operator(.)ident(include?)operator(()ident(topics)operator(()symbol(:first)operator(\))operator(\)) ident(assert_equal) operator([)operator(])operator(,) constant(Topic)operator(.)ident(find_all_by_title)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_find_all_by_one_attribute_with_options) ident(topics) operator(=) constant(Topic)operator(.)ident(find_all_by_content)operator(()stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert) ident(topics)operator(()symbol(:first)operator(\))operator(,) ident(topics)operator(.)ident(last) ident(topics) operator(=) constant(Topic)operator(.)ident(find_all_by_content)operator(()stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert) ident(topics)operator(()symbol(:first)operator(\))operator(,) ident(topics)operator(.)ident(first) reserved(end) reserved(def) method(test_find_all_by_array_attribute) ident(assert_equal) integer(2)operator(,) constant(Topic)operator(.)ident(find_all_by_title)operator(()operator([)stringoperator(,) stringoperator(])operator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_find_all_by_boolean_attribute) ident(topics) operator(=) constant(Topic)operator(.)ident(find_all_by_approved)operator(()pre_constant(false)operator(\)) ident(assert_equal) integer(1)operator(,) ident(topics)operator(.)ident(size) ident(assert) ident(topics)operator(.)ident(include?)operator(()ident(topics)operator(()symbol(:first)operator(\))operator(\)) ident(topics) operator(=) constant(Topic)operator(.)ident(find_all_by_approved)operator(()pre_constant(true)operator(\)) ident(assert_equal) integer(1)operator(,) ident(topics)operator(.)ident(size) ident(assert) ident(topics)operator(.)ident(include?)operator(()ident(topics)operator(()symbol(:second)operator(\))operator(\)) reserved(end) reserved(def) method(test_find_by_nil_attribute) ident(topic) operator(=) constant(Topic)operator(.)ident(find_by_last_read) pre_constant(nil) ident(assert_not_nil) ident(topic) ident(assert_nil) ident(topic)operator(.)ident(last_read) reserved(end) reserved(def) method(test_find_all_by_nil_attribute) ident(topics) operator(=) constant(Topic)operator(.)ident(find_all_by_last_read) pre_constant(nil) ident(assert_equal) integer(1)operator(,) ident(topics)operator(.)ident(size) ident(assert_nil) ident(topics)operator([)integer(0)operator(])operator(.)ident(last_read) reserved(end) reserved(def) method(test_find_by_nil_and_not_nil_attributes) ident(topic) operator(=) constant(Topic)operator(.)ident(find_by_last_read_and_author_name) pre_constant(nil)operator(,) string ident(assert_equal) stringoperator(,) ident(topic)operator(.)ident(author_name) reserved(end) reserved(def) method(test_find_all_by_nil_and_not_nil_attributes) ident(topics) operator(=) constant(Topic)operator(.)ident(find_all_by_last_read_and_author_name) pre_constant(nil)operator(,) string ident(assert_equal) integer(1)operator(,) ident(topics)operator(.)ident(size) ident(assert_equal) stringoperator(,) ident(topics)operator([)integer(0)operator(])operator(.)ident(author_name) reserved(end) reserved(def) method(test_find_or_create_from_one_attribute) ident(number_of_companies) operator(=) constant(Company)operator(.)ident(count) ident(sig38) operator(=) constant(Company)operator(.)ident(find_or_create_by_name)operator(()stringoperator(\)) ident(assert_equal) ident(number_of_companies) operator(+) integer(1)operator(,) constant(Company)operator(.)ident(count) ident(assert_equal) ident(sig38)operator(,) constant(Company)operator(.)ident(find_or_create_by_name)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_find_or_create_from_two_attributes) ident(number_of_topics) operator(=) constant(Topic)operator(.)ident(count) ident(another) operator(=) constant(Topic)operator(.)ident(find_or_create_by_title_and_author_name)operator(()stringoperator(,)stringoperator(\)) ident(assert_equal) ident(number_of_topics) operator(+) integer(1)operator(,) constant(Topic)operator(.)ident(count) ident(assert_equal) ident(another)operator(,) constant(Topic)operator(.)ident(find_or_create_by_title_and_author_name)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(def) method(test_find_with_bad_sql) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(\)) operator({) constant(Topic)operator(.)ident(find_by_sql) string operator(}) reserved(end) reserved(def) method(test_find_with_invalid_params) ident(assert_raises)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(find) symbol(:first)operator(,) symbol(:join) operator(=)operator(>) string operator(}) ident(assert_raises)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(find) symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:join) operator(=)operator(>) string operator(}) reserved(end) reserved(def) method(test_find_all_with_limit) ident(first_five_developers) operator(=) constant(Developer)operator(.)ident(find) symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(5) ident(assert_equal) integer(5)operator(,) ident(first_five_developers)operator(.)ident(length) ident(assert_equal) stringoperator(,) ident(first_five_developers)operator(.)ident(first)operator(.)ident(name) ident(assert_equal) stringoperator(,) ident(first_five_developers)operator(.)ident(last)operator(.)ident(name) ident(no_developers) operator(=) constant(Developer)operator(.)ident(find) symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(0) ident(assert_equal) integer(0)operator(,) ident(no_developers)operator(.)ident(length) reserved(end) reserved(def) method(test_find_all_with_limit_and_offset) ident(first_three_developers) operator(=) constant(Developer)operator(.)ident(find) symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(0) ident(second_three_developers) operator(=) constant(Developer)operator(.)ident(find) symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(3) ident(last_two_developers) operator(=) constant(Developer)operator(.)ident(find) symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(2)operator(,) symbol(:offset) operator(=)operator(>) integer(8) ident(assert_equal) integer(3)operator(,) ident(first_three_developers)operator(.)ident(length) ident(assert_equal) integer(3)operator(,) ident(second_three_developers)operator(.)ident(length) ident(assert_equal) integer(2)operator(,) ident(last_two_developers)operator(.)ident(length) ident(assert_equal) stringoperator(,) ident(first_three_developers)operator(.)ident(first)operator(.)ident(name) ident(assert_equal) stringoperator(,) ident(second_three_developers)operator(.)ident(first)operator(.)ident(name) ident(assert_equal) stringoperator(,) ident(last_two_developers)operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_find_all_with_limit_and_offset_and_multiple_order_clauses) ident(first_three_posts) operator(=) constant(Post)operator(.)ident(find) symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(0) ident(second_three_posts) operator(=) constant(Post)operator(.)ident(find) symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(3) ident(last_posts) operator(=) constant(Post)operator(.)ident(find) symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(3)operator(,) symbol(:offset) operator(=)operator(>) integer(6) ident(assert_equal) operator([)operator([)integer(0)operator(,)integer(3)operator(])operator(,)operator([)integer(1)operator(,)integer(1)operator(])operator(,)operator([)integer(1)operator(,)integer(2)operator(])operator(])operator(,) ident(first_three_posts)operator(.)ident(map) operator({) operator(|)ident(p)operator(|) operator([)ident(p)operator(.)ident(author_id)operator(,) ident(p)operator(.)ident(id)operator(]) operator(}) ident(assert_equal) operator([)operator([)integer(1)operator(,)integer(4)operator(])operator(,)operator([)integer(1)operator(,)integer(5)operator(])operator(,)operator([)integer(1)operator(,)integer(6)operator(])operator(])operator(,) ident(second_three_posts)operator(.)ident(map) operator({) operator(|)ident(p)operator(|) operator([)ident(p)operator(.)ident(author_id)operator(,) ident(p)operator(.)ident(id)operator(]) operator(}) ident(assert_equal) operator([)operator([)integer(2)operator(,)integer(7)operator(])operator(])operator(,) ident(last_posts)operator(.)ident(map) operator({) operator(|)ident(p)operator(|) operator([)ident(p)operator(.)ident(author_id)operator(,) ident(p)operator(.)ident(id)operator(]) operator(}) reserved(end) reserved(def) method(test_find_all_with_join) ident(developers_on_project_one) operator(=) constant(Developer)operator(.)ident(find)operator(() symbol(:all)operator(,) symbol(:joins) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) string operator(\)) ident(assert_equal) integer(3)operator(,) ident(developers_on_project_one)operator(.)ident(length) ident(developer_names) operator(=) ident(developers_on_project_one)operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) ident(assert) ident(developer_names)operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(developer_names)operator(.)ident(include?)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_find_by_id_with_conditions_with_or) ident(assert_nothing_raised) reserved(do) constant(Post)operator(.)ident(find)operator(()operator([)integer(1)operator(,)integer(2)operator(,)integer(3)operator(])operator(,) symbol(:conditions) operator(=)operator(>) stringcontent( = 'Post')delimiter(")>operator(\)) reserved(end) reserved(end) reserved(def) method(test_select_value) ident(assert_equal) stringoperator(,) constant(Company)operator(.)ident(connection)operator(.)ident(select_value)operator(()stringoperator(\)) ident(assert_nil) constant(Company)operator(.)ident(connection)operator(.)ident(select_value)operator(()stringoperator(\)) comment(# make sure we didn't break count...) ident(assert_equal) integer(0)operator(,) constant(Company)operator(.)ident(count_by_sql)operator(()stringoperator(\)) ident(assert_equal) integer(1)operator(,) constant(Company)operator(.)ident(count_by_sql)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_select_values) ident(assert_equal) operator([)stringoperator(,)stringoperator(,)stringoperator(,)stringoperator(,)stringoperator(,)stringoperator(,)stringoperator(,)stringoperator(])operator(,) constant(Company)operator(.)ident(connection)operator(.)ident(select_values)operator(()stringoperator(\))operator(.)ident(map!) operator({) operator(|)ident(i)operator(|) ident(i)operator(.)ident(to_s) operator(}) ident(assert_equal) operator([)stringoperator(,)stringoperator(,)stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(])operator(,) constant(Company)operator(.)ident(connection)operator(.)ident(select_values)operator(()stringoperator(\)) reserved(end) ident(protected) reserved(def) method(bind)operator(()ident(statement)operator(,) operator(*)ident(vars)operator(\)) reserved(if) ident(vars)operator(.)ident(first)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(send)operator(()symbol(:replace_named_bind_variables)operator(,) ident(statement)operator(,) ident(vars)operator(.)ident(first)operator(\)) reserved(else) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(send)operator(()symbol(:replace_bind_variables)operator(,) ident(statement)operator(,) ident(vars)operator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(Author) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_many) symbol(:posts) ident(has_many) symbol(:posts_with_comments)operator(,) symbol(:include) operator(=)operator(>) symbol(:comments)operator(,) symbol(:class_name) operator(=)operator(>) string ident(has_many) symbol(:posts_with_categories)operator(,) symbol(:include) operator(=)operator(>) symbol(:categories)operator(,) symbol(:class_name) operator(=)operator(>) string ident(has_many) symbol(:posts_with_comments_and_categories)operator(,) symbol(:include) operator(=)operator(>) operator([) symbol(:comments)operator(,) symbol(:categories) operator(])operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:class_name) operator(=)operator(>) string ident(has_many) symbol(:comments)operator(,) symbol(:through) operator(=)operator(>) symbol(:posts) ident(has_many) symbol(:funky_comments)operator(,) symbol(:through) operator(=)operator(>) symbol(:posts)operator(,) symbol(:source) operator(=)operator(>) symbol(:comments) ident(has_many) symbol(:special_posts)operator(,) symbol(:class_name) operator(=)operator(>) string ident(has_many) symbol(:hello_posts)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:conditions)operator(=)operator(>)string ident(has_many) symbol(:nonexistent_posts)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:conditions)operator(=)operator(>)string ident(has_many) symbol(:posts_with_callbacks)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:before_add) operator(=)operator(>) symbol(:log_before_adding)operator(,) symbol(:after_add) operator(=)operator(>) symbol(:log_after_adding)operator(,) symbol(:before_remove) operator(=)operator(>) symbol(:log_before_removing)operator(,) symbol(:after_remove) operator(=)operator(>) symbol(:log_after_removing) ident(has_many) symbol(:posts_with_proc_callbacks)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:before_add) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(post_log) operator(<<) stringdelimiter(")>operator(})operator(,) symbol(:after_add) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(post_log) operator(<<) stringdelimiter(")>operator(})operator(,) symbol(:before_remove) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(post_log) operator(<<) stringdelimiter(")>operator(})operator(,) symbol(:after_remove) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(post_log) operator(<<) stringdelimiter(")>operator(}) ident(has_many) symbol(:posts_with_multiple_callbacks)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:before_add) operator(=)operator(>) operator([)symbol(:log_before_adding)operator(,) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(post_log) operator(<<) stringdelimiter(")>operator(})operator(])operator(,) symbol(:after_add) operator(=)operator(>) operator([)symbol(:log_after_adding)operator(,) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(post_log) operator(<<) stringdelimiter(")>operator(})operator(]) ident(has_many) symbol(:unchangable_posts)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:before_add) operator(=)operator(>) symbol(:raise_exception)operator(,) symbol(:after_add) operator(=)operator(>) symbol(:log_after_adding) ident(has_many) symbol(:categorizations) ident(has_many) symbol(:categories)operator(,) symbol(:through) operator(=)operator(>) symbol(:categorizations) ident(has_many) symbol(:nothings)operator(,) symbol(:through) operator(=)operator(>) symbol(:kateggorisatons)operator(,) symbol(:class_name) operator(=)operator(>) string ident(has_many) symbol(:author_favorites) ident(has_many) symbol(:favorite_authors)operator(,) symbol(:through) operator(=)operator(>) symbol(:author_favorites)operator(,) symbol(:order) operator(=)operator(>) string ident(has_many) symbol(:tagging)operator(,) symbol(:through) operator(=)operator(>) symbol(:posts) comment(# through polymorphic has_one) ident(has_many) symbol(:taggings)operator(,) symbol(:through) operator(=)operator(>) symbol(:posts)operator(,) symbol(:source) operator(=)operator(>) symbol(:taggings) comment(# through polymorphic has_many) ident(has_many) symbol(:tags)operator(,) symbol(:through) operator(=)operator(>) symbol(:posts) comment(# through has_many :through) ident(has_many) symbol(:post_categories)operator(,) symbol(:through) operator(=)operator(>) symbol(:posts)operator(,) symbol(:source) operator(=)operator(>) symbol(:categories) ident(belongs_to) symbol(:author_address) ident(attr_accessor) symbol(:post_log) reserved(def) method(after_initialize) instance_variable(@post_log) operator(=) operator([)operator(]) reserved(end) ident(private) reserved(def) method(log_before_adding)operator(()ident(object)operator(\)) instance_variable(@post_log) operator(<<) stringdelimiter(")> reserved(end) reserved(def) method(log_after_adding)operator(()ident(object)operator(\)) instance_variable(@post_log) operator(<<) stringdelimiter(")> reserved(end) reserved(def) method(log_before_removing)operator(()ident(object)operator(\)) instance_variable(@post_log) operator(<<) stringdelimiter(")> reserved(end) reserved(def) method(log_after_removing)operator(()ident(object)operator(\)) instance_variable(@post_log) operator(<<) stringdelimiter(")> reserved(end) reserved(def) method(raise_exception)operator(()ident(object)operator(\)) ident(raise) constant(Exception)operator(.)ident(new)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(class) class(AuthorAddress) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_one) symbol(:author) reserved(end) reserved(class) class(AuthorFavorite) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:author) ident(belongs_to) symbol(:favorite_author)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string ident(endclass) constant(AutoId) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(def) pre_constant(self)operator(.)method(table_name) operator(()operator(\)) string reserved(end) reserved(def) pre_constant(self)operator(.)method(primary_key) operator(()operator(\)) string reserved(end) reserved(end) reserved(class) class(Binary) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(endclass) constant(Categorization) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:post) ident(belongs_to) symbol(:category) ident(belongs_to) symbol(:author) ident(endclass) constant(Category) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_and_belongs_to_many) symbol(:posts) ident(has_and_belongs_to_many) symbol(:special_posts)operator(,) symbol(:class_name) operator(=)operator(>) string ident(has_and_belongs_to_many) symbol(:hello_posts)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) string ident(has_and_belongs_to_many) symbol(:nonexistent_posts)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:conditions)operator(=)operator(>)string reserved(def) pre_constant(self)operator(.)method(what_are_you) string reserved(end) ident(has_many) symbol(:categorizations) ident(has_many) symbol(:authors)operator(,) symbol(:through) operator(=)operator(>) symbol(:categorizations)operator(,) symbol(:select) operator(=)operator(>) string reserved(end) reserved(class) class(SpecialCategory) operator(<) constant(Category) reserved(def) pre_constant(self)operator(.)method(what_are_you) string reserved(end) reserved(end) reserved(class) class(ColumnName) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(def) pre_constant(self)operator(.)method(table_name) operator(()operator(\)) string reserved(end) ident(endclass) constant(Comment) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:post) reserved(def) pre_constant(self)operator(.)method(what_are_you) string reserved(end) reserved(def) pre_constant(self)operator(.)method(search_by_type)operator(()ident(q)operator(\)) pre_constant(self)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringcontent( = ?)delimiter(")>operator(,) ident(q)operator(])operator(\)) reserved(end) reserved(end) reserved(class) class(SpecialComment) operator(<) constant(Comment) reserved(def) pre_constant(self)operator(.)method(what_are_you) string reserved(end) reserved(end) reserved(class) class(VerySpecialComment) operator(<) constant(Comment) reserved(def) pre_constant(self)operator(.)method(what_are_you) string reserved(end) ident(endclass) constant(Company) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(attr_protected) symbol(:rating) ident(set_sequence_name) symbol(:companies_nonstd_seq) ident(validates_presence_of) symbol(:name) ident(has_one) symbol(:dummy_account)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:class_name) operator(=)operator(>) string reserved(end) reserved(class) class(Firm) operator(<) constant(Company) ident(has_many) symbol(:clients)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy)operator(,) symbol(:counter_sql) operator(=)operator(>) string operator(+) stringcontent( = 'Client' OR )inlinecontent( = 'SpecialClient' OR )inlinecontent( = 'VerySpecialClient' \))delimiter(")> ident(has_many) symbol(:clients_sorted_desc)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) string ident(has_many) symbol(:clients_of_firm)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) string ident(has_many) symbol(:dependent_clients_of_firm)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy) ident(has_many) symbol(:exclusively_dependent_clients_of_firm)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:delete_all) ident(has_many) symbol(:limited_clients)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(1) ident(has_many) symbol(:clients_like_ms)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) string ident(has_many) symbol(:clients_using_sql)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:finder_sql) operator(=)operator(>) string ident(has_many) symbol(:clients_using_counter_sql)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:finder_sql) operator(=)operator(>) stringoperator(,) symbol(:counter_sql) operator(=)operator(>) string ident(has_many) symbol(:clients_using_zero_counter_sql)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:finder_sql) operator(=)operator(>) stringoperator(,) symbol(:counter_sql) operator(=)operator(>) string ident(has_many) symbol(:no_clients_using_counter_sql)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:finder_sql) operator(=)operator(>) stringoperator(,) symbol(:counter_sql) operator(=)operator(>) string ident(has_one) symbol(:account)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy) reserved(end) reserved(class) class(DependentFirm) operator(<) constant(Company) ident(has_one) symbol(:account)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:nullify) ident(has_many) symbol(:companies)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:nullify) reserved(end) reserved(class) class(Client) operator(<) constant(Company) ident(belongs_to) symbol(:firm)operator(,) symbol(:foreign_key) operator(=)operator(>) string ident(belongs_to) symbol(:firm_with_basic_id)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string ident(belongs_to) symbol(:firm_with_other_name)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string ident(belongs_to) symbol(:firm_with_condition)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(1)operator(]) comment(# Record destruction so we can test whether firm.clients.clear has) comment(# is calling client.destroy, deleting from the database, or setting) comment(# foreign keys to NULL.) reserved(def) pre_constant(self)operator(.)method(destroyed_client_ids) instance_variable(@destroyed_client_ids) operator(||=) constant(Hash)operator(.)ident(new) operator({) operator(|)ident(h)operator(,)ident(k)operator(|) ident(h)operator([)ident(k)operator(]) operator(=) operator([)operator(]) operator(}) reserved(end) ident(before_destroy) reserved(do) operator(|)ident(client)operator(|) reserved(if) ident(client)operator(.)ident(firm) constant(Client)operator(.)ident(destroyed_client_ids)operator([)ident(client)operator(.)ident(firm)operator(.)ident(id)operator(]) operator(<<) ident(client)operator(.)ident(id) reserved(end) pre_constant(true) reserved(end) comment(# Used to test that read and question methods are not generated for these attributes) reserved(def) method(ruby_type) ident(read_attribute) symbol(:ruby_type) reserved(end) reserved(def) method(rating?) ident(query_attribute) symbol(:rating) reserved(end) reserved(end) reserved(class) class(SpecialClient) operator(<) constant(Client) reserved(end) reserved(class) class(VerySpecialClient) operator(<) constant(SpecialClient) reserved(end) reserved(class) class(Account) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:firm) ident(protected) reserved(def) method(validate) ident(errors)operator(.)ident(add_on_empty) string reserved(end) ident(endmodule) constant(MyApplication) reserved(module) class(Business) reserved(class) class(Company) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(attr_protected) symbol(:rating) reserved(end) reserved(class) class(Firm) operator(<) constant(Company) ident(has_many) symbol(:clients)operator(,) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy) ident(has_many) symbol(:clients_sorted_desc)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) string ident(has_many) symbol(:clients_of_firm)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) string ident(has_many) symbol(:clients_like_ms)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) string ident(has_many) symbol(:clients_using_sql)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:finder_sql) operator(=)operator(>) string ident(has_one) symbol(:account)operator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy) reserved(end) reserved(class) class(Client) operator(<) constant(Company) ident(belongs_to) symbol(:firm)operator(,) symbol(:foreign_key) operator(=)operator(>) string ident(belongs_to) symbol(:firm_with_other_name)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string reserved(end) reserved(class) class(Developer) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_and_belongs_to_many) symbol(:projects) ident(protected) reserved(def) method(validate) ident(errors)operator(.)ident(add_on_boundary_breaking)operator(()stringoperator(,) integer(3)operator(..)integer(20)operator(\)) reserved(end) reserved(end) reserved(class) class(Project) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_and_belongs_to_many) symbol(:developers) reserved(end) reserved(end) reserved(module) class(Billing) reserved(class) class(Firm) operator(<) constant(ActiveRecord)operator(::)constant(Base) pre_constant(self)operator(.)ident(table_name) operator(=) string reserved(end) reserved(module) class(Nested) reserved(class) class(Firm) operator(<) constant(ActiveRecord)operator(::)constant(Base) pre_constant(self)operator(.)ident(table_name) operator(=) string reserved(end) reserved(end) reserved(class) class(Account) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:firm)operator(,) symbol(:class_name) operator(=)operator(>) string ident(belongs_to) symbol(:qualified_billing_firm)operator(,) symbol(:class_name) operator(=)operator(>) string ident(belongs_to) symbol(:unqualified_billing_firm)operator(,) symbol(:class_name) operator(=)operator(>) string ident(belongs_to) symbol(:nested_qualified_billing_firm)operator(,) symbol(:class_name) operator(=)operator(>) string ident(belongs_to) symbol(:nested_unqualified_billing_firm)operator(,) symbol(:class_name) operator(=)operator(>) string ident(protected) reserved(def) method(validate) ident(errors)operator(.)ident(add_on_empty) string reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(Computer) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:developer)operator(,) symbol(:foreign_key)operator(=)operator(>)string reserved(end) reserved(class) class(Course) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_many) symbol(:entrants) reserved(end) reserved(class) class(Customer) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(composed_of) symbol(:address)operator(,) symbol(:mapping) operator(=)operator(>) operator([) stringoperator(,) stringoperator(,) string operator(]) ident(composed_of) symbol(:balance)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:mapping) operator(=)operator(>) string ident(composed_of) symbol(:gps_location) reserved(end) reserved(class) class(Address) ident(attr_reader) symbol(:street)operator(,) symbol(:city)operator(,) symbol(:country) reserved(def) method(initialize)operator(()ident(street)operator(,) ident(city)operator(,) ident(country)operator(\)) instance_variable(@street)operator(,) instance_variable(@city)operator(,) instance_variable(@country) operator(=) ident(street)operator(,) ident(city)operator(,) ident(country) reserved(end) reserved(def) method(close_to?)operator(()ident(other_address)operator(\)) ident(city) operator(==) ident(other_address)operator(.)ident(city) operator(&&) ident(country) operator(==) ident(other_address)operator(.)ident(country) reserved(end) reserved(def) method(==)operator(()ident(other)operator(\)) ident(other)operator(.)ident(is_a?)operator(()pre_constant(self)operator(.)ident(class)operator(\)) operator(&&) ident(other)operator(.)ident(street) operator(==) ident(street) operator(&&) ident(other)operator(.)ident(city) operator(==) ident(city) operator(&&) ident(other)operator(.)ident(country) operator(==) ident(country) reserved(end) reserved(end) reserved(class) class(Money) ident(attr_reader) symbol(:amount)operator(,) symbol(:currency) constant(EXCHANGE_RATES) operator(=) operator({) string operator(=)operator(>) integer(6)operator(,) string operator(=)operator(>) float(0.6) operator(}) reserved(def) method(initialize)operator(()ident(amount)operator(,) ident(currency) operator(=) stringoperator(\)) instance_variable(@amount)operator(,) instance_variable(@currency) operator(=) ident(amount)operator(,) ident(currency) reserved(end) reserved(def) method(exchange_to)operator(()ident(other_currency)operator(\)) constant(Money)operator(.)ident(new)operator(()operator(()ident(amount) operator(*) constant(EXCHANGE_RATES)operator([)stringcontent(_TO_)inlinedelimiter(")>operator(])operator(\))operator(.)ident(floor)operator(,) ident(other_currency)operator(\)) reserved(end) reserved(end) reserved(class) class(GpsLocation) ident(attr_reader) symbol(:gps_location) reserved(def) method(initialize)operator(()ident(gps_location)operator(\)) instance_variable(@gps_location) operator(=) ident(gps_location) reserved(end) reserved(def) method(latitude) ident(gps_location)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(first) reserved(end) reserved(def) method(longitude) ident(gps_location)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last) reserved(end) reserved(def) method(==)operator(()ident(other)operator(\)) pre_constant(self)operator(.)ident(latitude) operator(==) ident(other)operator(.)ident(latitude) operator(&&) pre_constant(self)operator(.)ident(longitude) operator(==) ident(other)operator(.)ident(longitude) reserved(end) ident(endActiveRecord)operator(::)constant(Schema)operator(.)ident(define) reserved(do) ident(create_table) symbol(:taggings)operator(,) symbol(:force) operator(=)operator(>) pre_constant(true) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:tag_id)operator(,) symbol(:integer) ident(t)operator(.)ident(column) symbol(:super_tag_id)operator(,) symbol(:integer) ident(t)operator(.)ident(column) symbol(:taggable_type)operator(,) symbol(:string) ident(t)operator(.)ident(column) symbol(:taggable_id)operator(,) symbol(:integer) reserved(end) ident(create_table) symbol(:tags)operator(,) symbol(:force) operator(=)operator(>) pre_constant(true) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:name)operator(,) symbol(:string) ident(t)operator(.)ident(column) symbol(:taggings_count)operator(,) symbol(:integer)operator(,) symbol(:default) operator(=)operator(>) integer(0) reserved(end) ident(create_table) symbol(:categorizations)operator(,) symbol(:force) operator(=)operator(>) pre_constant(true) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:category_id)operator(,) symbol(:integer) ident(t)operator(.)ident(column) symbol(:post_id)operator(,) symbol(:integer) ident(t)operator(.)ident(column) symbol(:author_id)operator(,) symbol(:integer) reserved(end) ident(add_column) symbol(:posts)operator(,) symbol(:taggings_count)operator(,) symbol(:integer)operator(,) symbol(:default) operator(=)operator(>) integer(0) ident(add_column) symbol(:authors)operator(,) symbol(:author_address_id)operator(,) symbol(:integer) ident(create_table) symbol(:author_addresses)operator(,) symbol(:force) operator(=)operator(>) pre_constant(true) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:author_address_id)operator(,) symbol(:integer) reserved(end) ident(create_table) symbol(:author_favorites)operator(,) symbol(:force) operator(=)operator(>) pre_constant(true) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:author_id)operator(,) symbol(:integer) ident(t)operator(.)ident(column) symbol(:favorite_author_id)operator(,) symbol(:integer) reserved(end) ident(endclass) constant(Default) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(end) reserved(module) class(DeveloperProjectsAssociationExtension) reserved(def) method(find_most_recent) ident(find)operator(()symbol(:first)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) reserved(class) class(Developer) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_and_belongs_to_many) symbol(:projects) reserved(do) reserved(def) method(find_most_recent) ident(find)operator(()symbol(:first)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) ident(has_and_belongs_to_many) symbol(:projects_extended_by_name)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:join_table) operator(=)operator(>) stringoperator(,) symbol(:association_foreign_key) operator(=)operator(>) stringoperator(,) symbol(:extend) operator(=)operator(>) constant(DeveloperProjectsAssociationExtension) ident(has_and_belongs_to_many) symbol(:special_projects)operator(,) symbol(:join_table) operator(=)operator(>) stringoperator(,) symbol(:association_foreign_key) operator(=)operator(>) string ident(validates_inclusion_of) symbol(:salary)operator(,) symbol(:in) operator(=)operator(>) integer(50000)operator(..)integer(200000) ident(validates_length_of) symbol(:name)operator(,) symbol(:within) operator(=)operator(>) integer(3)operator(..)integer(20) reserved(end) constant(DeveloperSalary) operator(=) constant(Struct)operator(.)ident(new)operator(()symbol(:amount)operator(\)) reserved(class) class(DeveloperWithAggregate) operator(<) constant(ActiveRecord)operator(::)constant(Base) pre_constant(self)operator(.)ident(table_name) operator(=) string ident(composed_of) symbol(:salary)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:mapping) operator(=)operator(>) operator([)stringoperator(]) reserved(end) reserved(class) class(DeveloperWithBeforeDestroyRaise) operator(<) constant(ActiveRecord)operator(::)constant(Base) pre_constant(self)operator(.)ident(table_name) operator(=) string ident(has_and_belongs_to_many) symbol(:projects)operator(,) symbol(:join_table) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string ident(before_destroy) symbol(:raise_if_projects_empty!) reserved(def) method(raise_if_projects_empty!) ident(raise) reserved(if) ident(projects)operator(.)ident(empty?) reserved(end) reserved(end) reserved(class) class(Entrant) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:course) reserved(end) reserved(class) class(Joke) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_table_name) string reserved(end) reserved(class) class(Joke) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_table_name) string ident(endclass) constant(Keyboard) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_primary_key) string reserved(end) reserved(class) class(LegacyThing) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_locking_column) symbol(:version) reserved(end) reserved(class) class(PeopleHaveLastNames) operator(<) constant(ActiveRecord)operator(::)constant(Migration) reserved(def) pre_constant(self)operator(.)method(up) ident(add_column) stringoperator(,) stringoperator(,) symbol(:string) reserved(end) reserved(def) pre_constant(self)operator(.)method(down) ident(remove_column) stringoperator(,) string reserved(end) ident(endclass) constant(WeNeedReminders) operator(<) constant(ActiveRecord)operator(::)constant(Migration) reserved(def) pre_constant(self)operator(.)method(up) ident(create_table)operator(()stringoperator(\)) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:content)operator(,) symbol(:text) ident(t)operator(.)ident(column) symbol(:remind_at)operator(,) symbol(:datetime) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(down) ident(drop_table) string reserved(end) ident(endclass) constant(InnocentJointable) operator(<) constant(ActiveRecord)operator(::)constant(Migration) reserved(def) pre_constant(self)operator(.)method(up) ident(create_table)operator(()stringoperator(,) symbol(:id) operator(=)operator(>) pre_constant(false)operator(\)) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:reminder_id)operator(,) symbol(:integer) ident(t)operator(.)ident(column) symbol(:person_id)operator(,) symbol(:integer) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(down) ident(drop_table) string reserved(end) ident(endclass) constant(PeopleHaveLastNames) operator(<) constant(ActiveRecord)operator(::)constant(Migration) reserved(def) pre_constant(self)operator(.)method(up) ident(add_column) stringoperator(,) stringoperator(,) symbol(:string) reserved(end) reserved(def) pre_constant(self)operator(.)method(down) ident(remove_column) stringoperator(,) string reserved(end) ident(endclass) constant(WeNeedReminders) operator(<) constant(ActiveRecord)operator(::)constant(Migration) reserved(def) pre_constant(self)operator(.)method(up) ident(create_table)operator(()stringoperator(\)) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:content)operator(,) symbol(:text) ident(t)operator(.)ident(column) symbol(:remind_at)operator(,) symbol(:datetime) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(down) ident(drop_table) string reserved(end) ident(endclass) constant(Foo) operator(<) constant(ActiveRecord)operator(::)constant(Migration) reserved(def) pre_constant(self)operator(.)method(up) reserved(end) reserved(def) pre_constant(self)operator(.)method(down) reserved(end) ident(endclass) constant(InnocentJointable) operator(<) constant(ActiveRecord)operator(::)constant(Migration) reserved(def) pre_constant(self)operator(.)method(up) ident(create_table)operator(()stringoperator(,) symbol(:id) operator(=)operator(>) pre_constant(false)operator(\)) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:reminder_id)operator(,) symbol(:integer) ident(t)operator(.)ident(column) symbol(:person_id)operator(,) symbol(:integer) reserved(end) reserved(end) reserved(def) pre_constant(self)operator(.)method(down) ident(drop_table) string reserved(end) ident(endclass) constant(Mixin) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(end) reserved(class) class(TreeMixin) operator(<) constant(Mixin) ident(acts_as_tree) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) string reserved(end) reserved(class) class(TreeMixinWithoutOrder) operator(<) constant(Mixin) ident(acts_as_tree) symbol(:foreign_key) operator(=)operator(>) string reserved(end) reserved(class) class(ListMixin) operator(<) constant(Mixin) ident(acts_as_list) symbol(:column) operator(=)operator(>) stringoperator(,) symbol(:scope) operator(=)operator(>) symbol(:parent) reserved(def) pre_constant(self)operator(.)method(table_name)operator(()operator(\)) string reserved(end) reserved(end) reserved(class) class(ListMixinSub1) operator(<) constant(ListMixin) reserved(end) reserved(class) class(ListMixinSub2) operator(<) constant(ListMixin) reserved(end) reserved(class) class(ListWithStringScopeMixin) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(acts_as_list) symbol(:column) operator(=)operator(>) stringoperator(,) symbol(:scope) operator(=)operator(>) string reserved(def) pre_constant(self)operator(.)method(table_name)operator(()operator(\)) string reserved(end) reserved(end) reserved(class) class(NestedSet) operator(<) constant(Mixin) ident(acts_as_nested_set) symbol(:scope) operator(=)operator(>) string reserved(def) pre_constant(self)operator(.)method(table_name)operator(()operator(\)) string reserved(end) reserved(end) reserved(class) class(NestedSetWithStringScope) operator(<) constant(Mixin) ident(acts_as_nested_set) symbol(:scope) operator(=)operator(>) string reserved(def) pre_constant(self)operator(.)method(table_name)operator(()operator(\)) string reserved(end) reserved(end) reserved(class) class(NestedSetWithSymbolScope) operator(<) constant(Mixin) ident(acts_as_nested_set) symbol(:scope) operator(=)operator(>) symbol(:root) reserved(def) pre_constant(self)operator(.)method(table_name)operator(()operator(\)) string reserved(end) reserved(end) reserved(class) class(Movie) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(def) pre_constant(self)operator(.)method(primary_key) string reserved(end) reserved(end) reserved(class) class(Order) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:billing)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string ident(belongs_to) symbol(:shipping)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string reserved(end) reserved(class) class(Person) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_many) symbol(:readers) ident(has_many) symbol(:posts)operator(,) symbol(:through) operator(=)operator(>) symbol(:readers) reserved(end) reserved(class) class(Post) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:author) reserved(do) reserved(def) method(greeting) string reserved(end) reserved(end) ident(belongs_to) symbol(:author_with_posts)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:include) operator(=)operator(>) symbol(:posts) ident(has_many) symbol(:comments)operator(,) symbol(:order) operator(=)operator(>) string reserved(do) reserved(def) method(find_most_recent) ident(find)operator(()symbol(:first)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) ident(has_one) symbol(:very_special_comment) ident(has_one) symbol(:very_special_comment_with_post)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:include) operator(=)operator(>) symbol(:post) ident(has_many) symbol(:special_comments) ident(has_and_belongs_to_many) symbol(:categories) ident(has_and_belongs_to_many) symbol(:special_categories)operator(,) symbol(:join_table) operator(=)operator(>) stringoperator(,) symbol(:association_foreign_key) operator(=)operator(>) string ident(has_many) symbol(:taggings)operator(,) symbol(:as) operator(=)operator(>) symbol(:taggable) ident(has_many) symbol(:tags)operator(,) symbol(:through) operator(=)operator(>) symbol(:taggings)operator(,) symbol(:include) operator(=)operator(>) symbol(:tagging) reserved(do) reserved(def) method(add_joins_and_select) ident(find) symbol(:all)operator(,) symbol(:select) operator(=)operator(>) stringoperator(,) symbol(:include) operator(=)operator(>) pre_constant(false)operator(,) symbol(:joins) operator(=)operator(>) string reserved(end) reserved(end) ident(has_many) symbol(:funky_tags)operator(,) symbol(:through) operator(=)operator(>) symbol(:taggings)operator(,) symbol(:source) operator(=)operator(>) symbol(:tag) ident(has_many) symbol(:super_tags)operator(,) symbol(:through) operator(=)operator(>) symbol(:taggings) ident(has_one) symbol(:tagging)operator(,) symbol(:as) operator(=)operator(>) symbol(:taggable) ident(has_many) symbol(:invalid_taggings)operator(,) symbol(:as) operator(=)operator(>) symbol(:taggable)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) string ident(has_many) symbol(:invalid_tags)operator(,) symbol(:through) operator(=)operator(>) symbol(:invalid_taggings)operator(,) symbol(:source) operator(=)operator(>) symbol(:tag) ident(has_many) symbol(:categorizations)operator(,) symbol(:foreign_key) operator(=)operator(>) symbol(:category_id) ident(has_many) symbol(:authors)operator(,) symbol(:through) operator(=)operator(>) symbol(:categorizations) ident(has_many) symbol(:readers) ident(has_many) symbol(:people)operator(,) symbol(:through) operator(=)operator(>) symbol(:readers) reserved(def) pre_constant(self)operator(.)method(what_are_you) string reserved(end) reserved(end) reserved(class) class(SpecialPost) operator(<) constant(Post)operator(;) reserved(end)operator(;) reserved(class) class(StiPost) operator(<) constant(Post) pre_constant(self)operator(.)ident(abstract_class) operator(=) pre_constant(true) ident(has_one) symbol(:special_comment)operator(,) symbol(:class_name) operator(=)operator(>) string reserved(end) reserved(class) class(SubStiPost) operator(<) constant(StiPost) reserved(end) reserved(class) class(Project) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_and_belongs_to_many) symbol(:developers)operator(,) symbol(:uniq) operator(=)operator(>) pre_constant(true) ident(has_and_belongs_to_many) symbol(:limited_developers)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(1) ident(has_and_belongs_to_many) symbol(:developers_named_david)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:uniq) operator(=)operator(>) pre_constant(true) ident(has_and_belongs_to_many) symbol(:salaried_developers)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:conditions) operator(=)operator(>) string 0)delimiter(")> ident(has_and_belongs_to_many) symbol(:developers_with_finder_sql)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:finder_sql) operator(=)operator(>) string ident(has_and_belongs_to_many) symbol(:developers_by_sql)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:delete_sql) operator(=)operator(>) string ident(has_and_belongs_to_many) symbol(:developers_with_callbacks)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:before_add) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(developers_log) operator(<<) stringdelimiter(")>operator(})operator(,) symbol(:after_add) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(developers_log) operator(<<) stringdelimiter(")>operator(})operator(,) symbol(:before_remove) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(developers_log) operator(<<) stringdelimiter(")>operator(})operator(,) symbol(:after_remove) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({)operator(|)ident(o)operator(,) ident(r)operator(|) ident(o)operator(.)ident(developers_log) operator(<<) stringdelimiter(")>operator(}) ident(attr_accessor) symbol(:developers_log) reserved(def) method(after_initialize) instance_variable(@developers_log) operator(=) operator([)operator(]) reserved(end) reserved(end) reserved(class) class(SpecialProject) operator(<) constant(Project) reserved(def) method(hello_world) string reserved(end) reserved(end) reserved(class) class(Reader) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:post) ident(belongs_to) symbol(:person) reserved(end) ident(require) string reserved(class) class(Reply) operator(<) constant(Topic) ident(belongs_to) symbol(:topic)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:counter_cache) operator(=)operator(>) pre_constant(true) ident(has_many) symbol(:replies)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy)operator(,) symbol(:foreign_key) operator(=)operator(>) string ident(validate) symbol(:errors_on_empty_content) ident(validate_on_create) symbol(:title_is_wrong_create) ident(attr_accessible) symbol(:title)operator(,) symbol(:author_name)operator(,) symbol(:author_email_address)operator(,) symbol(:written_on)operator(,) symbol(:content)operator(,) symbol(:last_read) reserved(def) method(validate) ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) reserved(unless) ident(attribute_present?) string reserved(end) reserved(def) method(errors_on_empty_content) ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) reserved(unless) ident(attribute_present?) string reserved(end) reserved(def) method(validate_on_create) reserved(if) ident(attribute_present?)operator(()stringoperator(\)) operator(&&) ident(attribute_present?)operator(()stringoperator(\)) operator(&&) ident(content) operator(==) string ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(end) reserved(def) method(title_is_wrong_create) ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) reserved(if) ident(attribute_present?)operator(()stringoperator(\)) operator(&&) ident(title) operator(==) string reserved(end) reserved(def) method(validate_on_update) ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) reserved(if) ident(attribute_present?)operator(()stringoperator(\)) operator(&&) ident(title) operator(==) string reserved(end) reserved(end) reserved(class) class(SillyReply) operator(<) constant(Reply) ident(belongs_to) symbol(:reply)operator(,) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:counter_cache) operator(=)operator(>) symbol(:replies_count) reserved(end) comment(# used for OracleSynonymTest, see test/synonym_test_oci.rb) comment(#) reserved(class) class(Subject) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(end) reserved(class) class(Subscriber) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(set_primary_key) string reserved(end) reserved(class) class(SpecialSubscriber) operator(<) constant(Subscriber) reserved(end) reserved(class) class(Tag) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_many) symbol(:taggings) ident(has_many) symbol(:taggables)operator(,) symbol(:through) operator(=)operator(>) symbol(:taggings) ident(has_one) symbol(:tagging) ident(endclass) constant(Tagging) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(belongs_to) symbol(:tag)operator(,) symbol(:include) operator(=)operator(>) symbol(:tagging) ident(belongs_to) symbol(:super_tag)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string ident(belongs_to) symbol(:invalid_tag)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:foreign_key) operator(=)operator(>) string ident(belongs_to) symbol(:taggable)operator(,) symbol(:polymorphic) operator(=)operator(>) pre_constant(true)operator(,) symbol(:counter_cache) operator(=)operator(>) pre_constant(true) ident(endclass) constant(Task) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(end) reserved(class) class(Topic) operator(<) constant(ActiveRecord)operator(::)constant(Base) ident(has_many) symbol(:replies)operator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy)operator(,) symbol(:foreign_key) operator(=)operator(>) string ident(serialize) symbol(:content) ident(before_create) symbol(:default_written_on) ident(before_destroy) symbol(:destroy_children) reserved(def) method(parent) constant(Topic)operator(.)ident(find)operator(()ident(parent_id)operator(\)) reserved(end) ident(protected) reserved(def) method(default_written_on) pre_constant(self)operator(.)ident(written_on) operator(=) constant(Time)operator(.)ident(now) reserved(unless) ident(attribute_present?)operator(()stringoperator(\)) reserved(end) reserved(def) method(destroy_children) pre_constant(self)operator(.)ident(class)operator(.)ident(delete_all) stringdelimiter(")> reserved(end) ident(endrequire) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(FixturesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_instantiated_fixtures) operator(=) pre_constant(true) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) ident(fixtures) symbol(:topics)operator(,) symbol(:developers)operator(,) symbol(:accounts)operator(,) symbol(:tasks)operator(,) symbol(:categories)operator(,) symbol(:funny_jokes) constant(FIXTURES) operator(=) string constant(MATCH_ATTRIBUTE_NAME) operator(=) regexp reserved(def) method(test_clean_fixtures) constant(FIXTURES)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(|) ident(fixtures) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(fixtures) operator(=) ident(create_fixtures)operator(()ident(name)operator(\)) operator(}) ident(assert_kind_of)operator(()constant(Fixtures)operator(,) ident(fixtures)operator(\)) ident(fixtures)operator(.)ident(each) operator({) operator(|)ident(name)operator(,) ident(fixture)operator(|) ident(fixture)operator(.)ident(each) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) ident(assert_match)operator(()constant(MATCH_ATTRIBUTE_NAME)operator(,) ident(key)operator(\)) operator(}) operator(}) reserved(end) reserved(end) reserved(def) method(test_multiple_clean_fixtures) ident(fixtures_array) operator(=) pre_constant(nil) ident(assert_nothing_raised) operator({) ident(fixtures_array) operator(=) ident(create_fixtures)operator(()operator(*)constant(FIXTURES)operator(\)) operator(}) ident(assert_kind_of)operator(()constant(Array)operator(,) ident(fixtures_array)operator(\)) ident(fixtures_array)operator(.)ident(each) operator({) operator(|)ident(fixtures)operator(|) ident(assert_kind_of)operator(()constant(Fixtures)operator(,) ident(fixtures)operator(\)) operator(}) reserved(end) reserved(def) method(test_attributes) ident(topics) operator(=) ident(create_fixtures)operator(()stringoperator(\)) ident(assert_equal)operator(()stringoperator(,) ident(topics)operator([)stringoperator(])operator([)stringoperator(])operator(\)) ident(assert_nil)operator(()ident(topics)operator([)stringoperator(])operator([)stringoperator(])operator(\)) reserved(end) reserved(def) method(test_inserts) ident(topics) operator(=) ident(create_fixtures)operator(()stringoperator(\)) ident(firstRow) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(select_one)operator(()stringoperator(\)) ident(assert_equal)operator(()stringoperator(,) ident(firstRow)operator([)stringoperator(])operator(\)) ident(secondRow) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(select_one)operator(()stringoperator(\)) ident(assert_nil)operator(()ident(secondRow)operator([)stringoperator(])operator(\)) reserved(end) reserved(if) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(supports_migrations?) reserved(def) method(test_inserts_with_pre_and_suffix) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(create_table) symbol(:prefix_topics_suffix) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:title)operator(,) symbol(:string) ident(t)operator(.)ident(column) symbol(:author_name)operator(,) symbol(:string) ident(t)operator(.)ident(column) symbol(:author_email_address)operator(,) symbol(:string) ident(t)operator(.)ident(column) symbol(:written_on)operator(,) symbol(:datetime) ident(t)operator(.)ident(column) symbol(:bonus_time)operator(,) symbol(:time) ident(t)operator(.)ident(column) symbol(:last_read)operator(,) symbol(:date) ident(t)operator(.)ident(column) symbol(:content)operator(,) symbol(:string) ident(t)operator(.)ident(column) symbol(:approved)operator(,) symbol(:boolean)operator(,) symbol(:default) operator(=)operator(>) pre_constant(true) ident(t)operator(.)ident(column) symbol(:replies_count)operator(,) symbol(:integer)operator(,) symbol(:default) operator(=)operator(>) integer(0) ident(t)operator(.)ident(column) symbol(:parent_id)operator(,) symbol(:integer) ident(t)operator(.)ident(column) symbol(:type)operator(,) symbol(:string)operator(,) symbol(:limit) operator(=)operator(>) integer(50) reserved(end) comment(# Store existing prefix/suffix) ident(old_prefix) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) ident(old_suffix) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) comment(# Set a prefix/suffix we can test against) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string ident(topics) operator(=) ident(create_fixtures)operator(()stringoperator(\)) ident(firstRow) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(select_one)operator(()stringoperator(\)) ident(assert_equal)operator(()stringoperator(,) ident(firstRow)operator([)stringoperator(])operator(\)) ident(secondRow) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(select_one)operator(()stringoperator(\)) ident(assert_nil)operator(()ident(secondRow)operator([)stringoperator(])operator(\)) reserved(ensure) comment(# Restore prefix/suffix to its previous values) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) ident(old_prefix) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) ident(old_suffix) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:prefix_topics_suffix) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(test_insert_with_datetime) ident(topics) operator(=) ident(create_fixtures)operator(()stringoperator(\)) ident(first) operator(=) constant(Task)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) ident(first) reserved(end) reserved(def) method(test_bad_format) ident(path) operator(=) constant(File)operator(.)ident(join)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(,) stringoperator(,) stringoperator(\)) constant(Dir)operator(.)ident(entries)operator(()ident(path)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(file)operator(|) reserved(next) reserved(unless) constant(File)operator(.)ident(file?)operator(()ident(file)operator(\)) reserved(and) ident(file) operator(!)operator(~) constant(Fixtures)operator(::)constant(DEFAULT_FILTER_RE) ident(assert_raise)operator(()constant(Fixture)operator(::)constant(FormatError)operator(\)) operator({) constant(Fixture)operator(.)ident(new)operator(()ident(bad_fixtures_path)operator(,) ident(file)operator(\)) operator(}) reserved(end) reserved(end) reserved(def) method(test_deprecated_yaml_extension) ident(assert_raise)operator(()constant(Fixture)operator(::)constant(FormatError)operator(\)) operator({) constant(Fixtures)operator(.)ident(new)operator(()pre_constant(nil)operator(,) stringoperator(,) stringoperator(,) constant(File)operator(.)ident(join)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(,) stringoperator(\))operator(\)) operator(}) reserved(end) reserved(def) method(test_logger_level_invariant) ident(level) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger)operator(.)ident(level) ident(create_fixtures)operator(()stringoperator(\)) ident(assert_equal) ident(level)operator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(logger)operator(.)ident(level) reserved(end) reserved(def) method(test_instantiation) ident(topics) operator(=) ident(create_fixtures)operator(()stringoperator(\)) ident(assert_kind_of) constant(Topic)operator(,) ident(topics)operator([)stringoperator(])operator(.)ident(find) reserved(end) reserved(def) method(test_complete_instantiation) ident(assert_equal) integer(2)operator(,) instance_variable(@topics)operator(.)ident(size) ident(assert_equal) stringoperator(,) instance_variable(@first)operator(.)ident(title) reserved(end) reserved(def) method(test_fixtures_from_root_yml_with_instantiation) comment(# assert_equal 2, @accounts.size) ident(assert_equal) integer(50)operator(,) instance_variable(@unknown)operator(.)ident(credit_limit) reserved(end) reserved(def) method(test_erb_in_fixtures) ident(assert_equal) integer(11)operator(,) instance_variable(@developers)operator(.)ident(size) ident(assert_equal) stringoperator(,) instance_variable(@dev_5)operator(.)ident(name) reserved(end) reserved(def) method(test_empty_yaml_fixture) ident(assert_not_nil) constant(Fixtures)operator(.)ident(new)operator(() constant(Account)operator(.)ident(connection)operator(,) stringoperator(,) stringoperator(,) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) reserved(end) reserved(def) method(test_empty_yaml_fixture_with_a_comment_in_it) ident(assert_not_nil) constant(Fixtures)operator(.)ident(new)operator(() constant(Account)operator(.)ident(connection)operator(,) stringoperator(,) stringoperator(,) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) reserved(end) reserved(def) method(test_dirty_dirty_yaml_file) ident(assert_raises)operator(()constant(Fixture)operator(::)constant(FormatError)operator(\)) reserved(do) constant(Fixtures)operator(.)ident(new)operator(() constant(Account)operator(.)ident(connection)operator(,) stringoperator(,) stringoperator(,) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_empty_csv_fixtures) ident(assert_not_nil) constant(Fixtures)operator(.)ident(new)operator(() constant(Account)operator(.)ident(connection)operator(,) stringoperator(,) stringoperator(,) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) reserved(end) reserved(def) method(test_omap_fixtures) ident(assert_nothing_raised) reserved(do) ident(fixtures) operator(=) constant(Fixtures)operator(.)ident(new)operator(()constant(Account)operator(.)ident(connection)operator(,) stringoperator(,) stringoperator(,) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(i) operator(=) integer(0) ident(fixtures)operator(.)ident(each) reserved(do) operator(|)ident(name)operator(,) ident(fixture)operator(|) ident(assert_equal) stringdelimiter(")>operator(,) ident(name) ident(assert_equal) stringdelimiter(")>operator(,) ident(fixture)operator([)stringoperator(]) ident(i) operator(+=) integer(1) reserved(end) reserved(end) reserved(end) reserved(def) method(test_yml_file_in_subdirectory) ident(assert_equal)operator(()ident(categories)operator(()symbol(:sub_special_1)operator(\))operator(.)ident(name)operator(,) stringoperator(\)) ident(assert_equal)operator(()ident(categories)operator(()symbol(:sub_special_1)operator(\))operator(.)ident(class)operator(,) constant(SpecialCategory)operator(\)) reserved(end) reserved(def) method(test_subsubdir_file_with_arbitrary_name) ident(assert_equal)operator(()ident(categories)operator(()symbol(:sub_special_3)operator(\))operator(.)ident(name)operator(,) stringoperator(\)) ident(assert_equal)operator(()ident(categories)operator(()symbol(:sub_special_3)operator(\))operator(.)ident(class)operator(,) constant(SpecialCategory)operator(\)) reserved(end) reserved(end) reserved(if) constant(Account)operator(.)ident(connection)operator(.)ident(respond_to?)operator(()symbol(:reset_pk_sequence!)operator(\)) reserved(class) class(FixturesResetPkSequenceTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:accounts) ident(fixtures) symbol(:companies) reserved(def) method(setup) instance_variable(@instances) operator(=) operator([)constant(Account)operator(.)ident(new)operator(()symbol(:credit_limit) operator(=)operator(>) integer(50)operator(\))operator(,) constant(Company)operator(.)ident(new)operator(()symbol(:name) operator(=)operator(>) stringoperator(\))operator(]) reserved(end) reserved(def) method(test_resets_to_min_pk_with_specified_pk_and_sequence) instance_variable(@instances)operator(.)ident(each) reserved(do) operator(|)ident(instance)operator(|) ident(model) operator(=) ident(instance)operator(.)ident(class) ident(model)operator(.)ident(delete_all) ident(model)operator(.)ident(connection)operator(.)ident(reset_pk_sequence!)operator(()ident(model)operator(.)ident(table_name)operator(,) ident(model)operator(.)ident(primary_key)operator(,) ident(model)operator(.)ident(sequence_name)operator(\)) ident(instance)operator(.)ident(save!) ident(assert_equal) integer(1)operator(,) ident(instance)operator(.)ident(id)operator(,) stringcontent( failed.)delimiter(")> reserved(end) reserved(end) reserved(def) method(test_resets_to_min_pk_with_default_pk_and_sequence) instance_variable(@instances)operator(.)ident(each) reserved(do) operator(|)ident(instance)operator(|) ident(model) operator(=) ident(instance)operator(.)ident(class) ident(model)operator(.)ident(delete_all) ident(model)operator(.)ident(connection)operator(.)ident(reset_pk_sequence!)operator(()ident(model)operator(.)ident(table_name)operator(\)) ident(instance)operator(.)ident(save!) ident(assert_equal) integer(1)operator(,) ident(instance)operator(.)ident(id)operator(,) stringcontent( failed.)delimiter(")> reserved(end) reserved(end) reserved(def) method(test_create_fixtures_resets_sequences) instance_variable(@instances)operator(.)ident(each) reserved(do) operator(|)ident(instance)operator(|) ident(max_id) operator(=) ident(create_fixtures)operator(()ident(instance)operator(.)ident(class)operator(.)ident(table_name)operator(\))operator(.)ident(inject)operator(()integer(0)operator(\)) reserved(do) operator(|)ident(max_id)operator(,) operator(()ident(name)operator(,) ident(fixture)operator(\))operator(|) ident(fixture_id) operator(=) ident(fixture)operator([)stringoperator(])operator(.)ident(to_i) ident(fixture_id) operator(>) ident(max_id) operator(?) ident(fixture_id) operator(:) ident(max_id) reserved(end) comment(# Clone the last fixture to check that it gets the next greatest id.) ident(instance)operator(.)ident(save!) ident(assert_equal) ident(max_id) operator(+) integer(1)operator(,) ident(instance)operator(.)ident(id)operator(,) stringcontent( failed.)delimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(FixturesWithoutInstantiationTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_instantiated_fixtures) operator(=) pre_constant(false) ident(fixtures) symbol(:topics)operator(,) symbol(:developers)operator(,) symbol(:accounts) reserved(def) method(test_without_complete_instantiation) ident(assert_nil) instance_variable(@first) ident(assert_nil) instance_variable(@topics) ident(assert_nil) instance_variable(@developers) ident(assert_nil) instance_variable(@accounts) reserved(end) reserved(def) method(test_fixtures_from_root_yml_without_instantiation) ident(assert_nil) instance_variable(@unknown) reserved(end) reserved(def) method(test_accessor_methods) ident(assert_equal) stringoperator(,) ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(title) ident(assert_equal) stringoperator(,) ident(developers)operator(()symbol(:jamis)operator(\))operator(.)ident(name) ident(assert_equal) integer(50)operator(,) ident(accounts)operator(()symbol(:signals37)operator(\))operator(.)ident(credit_limit) reserved(end) reserved(end) reserved(class) class(FixturesWithoutInstanceInstantiationTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_instantiated_fixtures) operator(=) pre_constant(true) pre_constant(self)operator(.)ident(use_instantiated_fixtures) operator(=) symbol(:no_instances) ident(fixtures) symbol(:topics)operator(,) symbol(:developers)operator(,) symbol(:accounts) reserved(def) method(test_without_instance_instantiation) ident(assert_nil) instance_variable(@first) ident(assert_not_nil) instance_variable(@topics) ident(assert_not_nil) instance_variable(@developers) ident(assert_not_nil) instance_variable(@accounts) reserved(end) reserved(end) reserved(class) class(TransactionalFixturesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_instantiated_fixtures) operator(=) pre_constant(true) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(true) ident(fixtures) symbol(:topics) reserved(def) method(test_destroy) ident(assert_not_nil) instance_variable(@first) instance_variable(@first)operator(.)ident(destroy) reserved(end) reserved(def) method(test_destroy_just_kidding) ident(assert_not_nil) instance_variable(@first) reserved(end) reserved(end) reserved(class) class(MultipleFixturesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:topics) ident(fixtures) symbol(:developers)operator(,) symbol(:accounts) reserved(def) method(test_fixture_table_names) ident(assert_equal) stringoperator(,) ident(fixture_table_names) reserved(end) reserved(end) reserved(class) class(OverlappingFixturesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:topics)operator(,) symbol(:developers) ident(fixtures) symbol(:developers)operator(,) symbol(:accounts) reserved(def) method(test_fixture_table_names) ident(assert_equal) stringoperator(,) ident(fixture_table_names) reserved(end) reserved(end) reserved(class) class(ForeignKeyFixturesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:fk_test_has_pk)operator(,) symbol(:fk_test_has_fk) comment(# if foreign keys are implemented and fixtures) comment(# are not deleted in reverse order then this test) comment(# case will raise StatementInvalid) reserved(def) method(test_number1) ident(assert) pre_constant(true) reserved(end) reserved(def) method(test_number2) ident(assert) pre_constant(true) reserved(end) reserved(end) reserved(class) class(SetTableNameFixturesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(set_fixture_class) symbol(:funny_jokes) operator(=)operator(>) string ident(fixtures) symbol(:funny_jokes) reserved(def) method(test_table_method) ident(assert_kind_of) constant(Joke)operator(,) ident(funny_jokes)operator(()symbol(:a_joke)operator(\)) reserved(end) reserved(end) reserved(class) class(InvalidTableNameFixturesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:funny_jokes) reserved(def) method(test_raises_error) ident(assert_raises) constant(FixtureClassNotFound) reserved(do) ident(funny_jokes)operator(()symbol(:a_joke)operator(\)) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(InheritanceTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:companies)operator(,) symbol(:projects)operator(,) symbol(:subscribers) reserved(def) method(test_a_bad_type_column) comment(#SQLServer need to turn Identity Insert On before manually inserting into the Identity column) reserved(if) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) operator(||) ident(current_adapter?)operator(()symbol(:SybaseAdapter)operator(\)) constant(Company)operator(.)ident(connection)operator(.)ident(execute) string reserved(end) constant(Company)operator(.)ident(connection)operator(.)ident(insert) stringcontent(, name\) VALUES(100, 'bad_class!', 'Not happening'\))delimiter(")> comment(#We then need to turn it back Off before continuing.) reserved(if) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) operator(||) ident(current_adapter?)operator(()symbol(:SybaseAdapter)operator(\)) constant(Company)operator(.)ident(connection)operator(.)ident(execute) string reserved(end) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(SubclassNotFound)operator(\)) operator({) constant(Company)operator(.)ident(find)operator(()integer(100)operator(\)) operator(}) reserved(end) reserved(def) method(test_inheritance_find) ident(assert) constant(Company)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(kind_of?)operator(()constant(Firm)operator(\))operator(,) string ident(assert) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(kind_of?)operator(()constant(Firm)operator(\))operator(,) string ident(assert) constant(Company)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(kind_of?)operator(()constant(Client)operator(\))operator(,) string ident(assert) constant(Client)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(kind_of?)operator(()constant(Client)operator(\))operator(,) string reserved(end) reserved(def) method(test_alt_inheritance_find) ident(switch_to_alt_inheritance_column) ident(test_inheritance_find) reserved(end) reserved(def) method(test_inheritance_find_all) ident(companies) operator(=) constant(Company)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert) ident(companies)operator([)integer(0)operator(])operator(.)ident(kind_of?)operator(()constant(Firm)operator(\))operator(,) string ident(assert) ident(companies)operator([)integer(1)operator(])operator(.)ident(kind_of?)operator(()constant(Client)operator(\))operator(,) string reserved(end) reserved(def) method(test_alt_inheritance_find_all) ident(switch_to_alt_inheritance_column) ident(test_inheritance_find_all) reserved(end) reserved(def) method(test_inheritance_save) ident(firm) operator(=) constant(Firm)operator(.)ident(new) ident(firm)operator(.)ident(name) operator(=) string ident(firm)operator(.)ident(save) ident(next_angle) operator(=) constant(Company)operator(.)ident(find)operator(()ident(firm)operator(.)ident(id)operator(\)) ident(assert) ident(next_angle)operator(.)ident(kind_of?)operator(()constant(Firm)operator(\))operator(,) string reserved(end) reserved(def) method(test_alt_inheritance_save) ident(switch_to_alt_inheritance_column) ident(test_inheritance_save) reserved(end) reserved(def) method(test_inheritance_condition) ident(assert_equal) integer(8)operator(,) constant(Company)operator(.)ident(count) ident(assert_equal) integer(2)operator(,) constant(Firm)operator(.)ident(count) ident(assert_equal) integer(3)operator(,) constant(Client)operator(.)ident(count) reserved(end) reserved(def) method(test_alt_inheritance_condition) ident(switch_to_alt_inheritance_column) ident(test_inheritance_condition) reserved(end) reserved(def) method(test_finding_incorrect_type_data) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) constant(Firm)operator(.)ident(find)operator(()integer(2)operator(\)) operator(}) ident(assert_nothing_raised) operator({) constant(Firm)operator(.)ident(find)operator(()integer(1)operator(\)) operator(}) reserved(end) reserved(def) method(test_alt_finding_incorrect_type_data) ident(switch_to_alt_inheritance_column) ident(test_finding_incorrect_type_data) reserved(end) reserved(def) method(test_update_all_within_inheritance) constant(Client)operator(.)ident(update_all) string ident(assert_equal) stringoperator(,) constant(Client)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(first)operator(.)ident(name) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(first)operator(.)ident(name) reserved(end) reserved(def) method(test_alt_update_all_within_inheritance) ident(switch_to_alt_inheritance_column) ident(test_update_all_within_inheritance) reserved(end) reserved(def) method(test_destroy_all_within_inheritance) constant(Client)operator(.)ident(destroy_all) ident(assert_equal) integer(0)operator(,) constant(Client)operator(.)ident(count) ident(assert_equal) integer(2)operator(,) constant(Firm)operator(.)ident(count) reserved(end) reserved(def) method(test_alt_destroy_all_within_inheritance) ident(switch_to_alt_inheritance_column) ident(test_destroy_all_within_inheritance) reserved(end) reserved(def) method(test_find_first_within_inheritance) ident(assert_kind_of) constant(Firm)operator(,) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_kind_of) constant(Firm)operator(,) constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_nil) constant(Client)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_alt_find_first_within_inheritance) ident(switch_to_alt_inheritance_column) ident(test_find_first_within_inheritance) reserved(end) reserved(def) method(test_complex_inheritance) ident(very_special_client) operator(=) constant(VerySpecialClient)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(very_special_client)operator(,) constant(VerySpecialClient)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(very_special_client)operator(,) constant(SpecialClient)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(very_special_client)operator(,) constant(Company)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) ident(very_special_client)operator(,) constant(Client)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) constant(Client)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\))operator(.)ident(size) ident(assert_equal) ident(very_special_client)operator(,) constant(Client)operator(.)ident(find)operator(()ident(very_special_client)operator(.)ident(id)operator(\)) reserved(end) reserved(def) method(test_alt_complex_inheritance) ident(switch_to_alt_inheritance_column) ident(test_complex_inheritance) reserved(end) reserved(def) method(test_inheritance_without_mapping) ident(assert_kind_of) constant(SpecialSubscriber)operator(,) constant(SpecialSubscriber)operator(.)ident(find)operator(()stringoperator(\)) ident(assert_nothing_raised) operator({) ident(s) operator(=) constant(SpecialSubscriber)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\))operator(;) ident(s)operator(.)ident(id) operator(=) stringoperator(;) ident(s)operator(.)ident(save) operator(}) reserved(end) ident(private) reserved(def) method(switch_to_alt_inheritance_column) comment(# we don't want misleading test results, so get rid of the values in the type column) constant(Company)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\))operator(.)ident(each) reserved(do) operator(|)ident(c)operator(|) ident(c)operator([)stringoperator(]) operator(=) pre_constant(nil) ident(c)operator(.)ident(save) reserved(end) reserved(def) constant(Company)operator(.)method(inheritance_column)operator(()operator(\)) string reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(Topic)operator(;) reserved(def) method(after_find)operator(()operator(\)) reserved(end) reserved(end) reserved(class) class(Developer)operator(;) reserved(def) method(after_find)operator(()operator(\)) reserved(end) reserved(end) reserved(class) class(SpecialDeveloper) operator(<) constant(Developer)operator(;) reserved(end) reserved(class) class(TopicManualObserver) ident(include) constant(Singleton) ident(attr_reader) symbol(:action)operator(,) symbol(:object)operator(,) symbol(:callbacks) reserved(def) method(initialize) constant(Topic)operator(.)ident(add_observer)operator(()pre_constant(self)operator(\)) instance_variable(@callbacks) operator(=) operator([)operator(]) reserved(end) reserved(def) method(update)operator(()ident(callback_method)operator(,) ident(object)operator(\)) instance_variable(@callbacks) operator(<<) operator({) string operator(=)operator(>) ident(callback_method)operator(,) string operator(=)operator(>) ident(object) operator(}) reserved(end) reserved(def) method(has_been_notified?) operator(!)instance_variable(@callbacks)operator(.)ident(empty?) reserved(end) reserved(end) reserved(class) class(TopicaObserver) operator(<) constant(ActiveRecord)operator(::)constant(Observer) reserved(def) pre_constant(self)operator(.)method(observed_class)operator(()operator(\)) constant(Topic) reserved(end) ident(attr_reader) symbol(:topic) reserved(def) method(after_find)operator(()ident(topic)operator(\)) instance_variable(@topic) operator(=) ident(topic) reserved(end) reserved(end) reserved(class) class(TopicObserver) operator(<) constant(ActiveRecord)operator(::)constant(Observer) ident(attr_reader) symbol(:topic) reserved(def) method(after_find)operator(()ident(topic)operator(\)) instance_variable(@topic) operator(=) ident(topic) reserved(end) reserved(end) reserved(class) class(MultiObserver) operator(<) constant(ActiveRecord)operator(::)constant(Observer) ident(attr_reader) symbol(:record) reserved(def) pre_constant(self)operator(.)method(observed_class)operator(()operator(\)) operator([) constant(Topic)operator(,) constant(Developer) operator(]) reserved(end) reserved(def) method(after_find)operator(()ident(record)operator(\)) instance_variable(@record) operator(=) ident(record) reserved(end) reserved(end) reserved(class) class(LifecycleTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:topics)operator(,) symbol(:developers) reserved(def) method(test_before_destroy) ident(assert_equal) integer(2)operator(,) constant(Topic)operator(.)ident(count) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(destroy) ident(assert_equal) integer(0)operator(,) constant(Topic)operator(.)ident(count) reserved(end) reserved(def) method(test_after_save) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(observers) operator(=) symbol(:topic_manual_observer) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(topic)operator(.)ident(title) operator(=) string ident(topic)operator(.)ident(save) ident(assert) constant(TopicManualObserver)operator(.)ident(instance)operator(.)ident(has_been_notified?) ident(assert_equal) symbol(:after_save)operator(,) constant(TopicManualObserver)operator(.)ident(instance)operator(.)ident(callbacks)operator(.)ident(last)operator([)stringoperator(]) reserved(end) reserved(def) method(test_observer_update_on_save) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(observers) operator(=) constant(TopicManualObserver) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) constant(TopicManualObserver)operator(.)ident(instance)operator(.)ident(has_been_notified?) ident(assert_equal) symbol(:after_find)operator(,) constant(TopicManualObserver)operator(.)ident(instance)operator(.)ident(callbacks)operator(.)ident(first)operator([)stringoperator(]) reserved(end) reserved(def) method(test_auto_observer) ident(topic_observer) operator(=) constant(TopicaObserver)operator(.)ident(instance) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) ident(topic_observer)operator(.)ident(topic)operator(.)ident(title)operator(,) ident(topic)operator(.)ident(title) reserved(end) reserved(def) method(test_infered_auto_observer) ident(topic_observer) operator(=) constant(TopicObserver)operator(.)ident(instance) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) ident(topic_observer)operator(.)ident(topic)operator(.)ident(title)operator(,) ident(topic)operator(.)ident(title) reserved(end) reserved(def) method(test_observing_two_classes) ident(multi_observer) operator(=) constant(MultiObserver)operator(.)ident(instance) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) ident(multi_observer)operator(.)ident(record)operator(.)ident(title)operator(,) ident(topic)operator(.)ident(title) ident(developer) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) ident(multi_observer)operator(.)ident(record)operator(.)ident(name)operator(,) ident(developer)operator(.)ident(name) reserved(end) reserved(def) method(test_observing_subclasses) ident(multi_observer) operator(=) constant(MultiObserver)operator(.)ident(instance) ident(developer) operator(=) constant(SpecialDeveloper)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) ident(multi_observer)operator(.)ident(record)operator(.)ident(name)operator(,) ident(developer)operator(.)ident(name) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(class) class(LockingTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:people)operator(,) symbol(:legacy_things) reserved(def) method(test_lock_existing) ident(p1) operator(=) constant(Person)operator(.)ident(find)operator(()integer(1)operator(\)) ident(p2) operator(=) constant(Person)operator(.)ident(find)operator(()integer(1)operator(\)) ident(p1)operator(.)ident(first_name) operator(=) string ident(p1)operator(.)ident(save) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StaleObjectError)operator(\)) operator({) ident(p2)operator(.)ident(first_name) operator(=) string ident(p2)operator(.)ident(save) operator(}) reserved(end) reserved(def) method(test_lock_new) ident(p1) operator(=) constant(Person)operator(.)ident(create)operator(()operator({) stringoperator(=)operator(>)stringoperator(})operator(\)) ident(p2) operator(=) constant(Person)operator(.)ident(find)operator(()ident(p1)operator(.)ident(id)operator(\)) ident(assert_equal) ident(p1)operator(.)ident(id)operator(,) ident(p2)operator(.)ident(id) ident(p1)operator(.)ident(first_name) operator(=) string ident(p1)operator(.)ident(save) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StaleObjectError)operator(\)) operator({) ident(p2)operator(.)ident(first_name) operator(=) string ident(p2)operator(.)ident(save) operator(}) reserved(end) reserved(def) method(test_lock_column_name_existing) ident(t1) operator(=) constant(LegacyThing)operator(.)ident(find)operator(()integer(1)operator(\)) ident(t2) operator(=) constant(LegacyThing)operator(.)ident(find)operator(()integer(1)operator(\)) ident(t1)operator(.)ident(tps_report_number) operator(=) integer(400) ident(t1)operator(.)ident(save) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StaleObjectError)operator(\)) operator({) ident(t2)operator(.)ident(tps_report_number) operator(=) integer(300) ident(t2)operator(.)ident(save) operator(}) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(MethodScopingTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:comments)operator(,) symbol(:posts) reserved(def) method(test_set_conditions) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(send)operator(()symbol(:current_scoped_methods)operator(\))operator([)symbol(:find)operator(])operator([)symbol(:conditions)operator(]) reserved(end) reserved(end) reserved(def) method(test_scoped_find) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_nothing_raised) operator({) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) operator(}) reserved(end) reserved(end) reserved(def) method(test_scoped_find_first) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal) constant(Developer)operator(.)ident(find)operator(()integer(10)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_scoped_find_combines_conditions) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal) ident(developers)operator(()symbol(:poor_jamis)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_scoped_find_sanitizes_conditions) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(9000)operator(]) operator(})operator(\)) reserved(do) ident(assert_equal) ident(developers)operator(()symbol(:poor_jamis)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\)) reserved(end) reserved(end) reserved(def) method(test_scoped_find_combines_and_sanitizes_conditions) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(9000)operator(]) operator(})operator(\)) reserved(do) ident(assert_equal) ident(developers)operator(()symbol(:poor_jamis)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) reserved(end) reserved(end) reserved(def) method(test_scoped_find_all) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal) operator([)ident(developers)operator(()symbol(:david)operator(\))operator(])operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\)) reserved(end) reserved(end) reserved(def) method(test_scoped_count) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal) integer(1)operator(,) constant(Developer)operator(.)ident(count) reserved(end) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal) integer(8)operator(,) constant(Developer)operator(.)ident(count) ident(assert_equal) integer(1)operator(,) constant(Developer)operator(.)ident(count)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_scoped_find_include) comment(# with the include, will retrieve only developers for the given project) ident(scoped_developers) operator(=) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) symbol(:projects) operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(\)) reserved(end) ident(assert) ident(scoped_developers)operator(.)ident(include?)operator(()ident(developers)operator(()symbol(:david)operator(\))operator(\)) ident(assert) operator(!)ident(scoped_developers)operator(.)ident(include?)operator(()ident(developers)operator(()symbol(:jamis)operator(\))operator(\)) ident(assert_equal) integer(1)operator(,) ident(scoped_developers)operator(.)ident(size) reserved(end) reserved(def) method(test_scoped_count_include) comment(# with the include, will retrieve only developers for the given project) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) symbol(:projects) operator(})operator(\)) reserved(do) ident(assert_equal) integer(1)operator(,) constant(Developer)operator(.)ident(count)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(def) method(test_scoped_create) ident(new_comment) operator(=) pre_constant(nil) constant(VerySpecialComment)operator(.)ident(with_scope)operator(()symbol(:create) operator(=)operator(>) operator({) symbol(:post_id) operator(=)operator(>) integer(1) operator(})operator(\)) reserved(do) ident(assert_equal)operator(()operator({) symbol(:post_id) operator(=)operator(>) integer(1) operator(})operator(,) constant(VerySpecialComment)operator(.)ident(send)operator(()symbol(:current_scoped_methods)operator(\))operator([)symbol(:create)operator(])operator(\)) ident(new_comment) operator(=) constant(VerySpecialComment)operator(.)ident(create) symbol(:body) operator(=)operator(>) string reserved(end) ident(assert) constant(Post)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(comments)operator(.)ident(include?)operator(()ident(new_comment)operator(\)) reserved(end) reserved(def) method(test_immutable_scope) ident(options) operator(=) operator({) symbol(:conditions) operator(=)operator(>) string operator(}) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) ident(options)operator(\)) reserved(do) ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) ident(options)operator([)symbol(:conditions)operator(]) operator(=) string ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) reserved(end) ident(scope) operator(=) operator({) symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(}) constant(Developer)operator(.)ident(with_scope)operator(()ident(scope)operator(\)) reserved(do) ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) ident(scope)operator([)symbol(:find)operator(])operator([)symbol(:conditions)operator(]) operator(=) string ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) reserved(end) reserved(end) reserved(def) method(test_scoped_with_duck_typing) ident(scoping) operator(=) constant(Struct)operator(.)ident(new)operator(()symbol(:method_scoping)operator(\))operator(.)ident(new)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(]) operator(})operator(\)) constant(Developer)operator(.)ident(with_scope)operator(()ident(scoping)operator(\)) reserved(do) ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) reserved(end) reserved(end) reserved(def) method(test_ensure_that_method_scoping_is_correctly_restored) ident(scoped_methods) operator(=) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\)) reserved(begin) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(raise) string reserved(end) reserved(rescue) reserved(end) ident(assert_equal) ident(scoped_methods)operator(,) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(class) class(NestedScopingTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:comments)operator(,) symbol(:posts) reserved(def) method(test_merge_options) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:limit) operator(=)operator(>) integer(10) operator(})operator(\)) reserved(do) ident(merged_option) operator(=) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\))operator([)symbol(:find)operator(]) ident(assert_equal)operator(()operator({) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(10) operator(})operator(,) ident(merged_option)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(test_replace_options) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_exclusive_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal)operator(()operator({)symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(})operator(,) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\))operator(\)) ident(assert_equal)operator(()operator({)symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(})operator(,) constant(Developer)operator(.)ident(send)operator(()symbol(:scoped_methods)operator(\))operator([)integer(-1)operator(])operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(test_append_conditions) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(appended_condition) operator(=) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\))operator([)symbol(:find)operator(])operator([)symbol(:conditions)operator(]) ident(assert_equal)operator(()stringoperator(,) ident(appended_condition)operator(\)) ident(assert_equal)operator(()integer(1)operator(,) constant(Developer)operator(.)ident(count)operator(\)) reserved(end) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal)operator(()integer(0)operator(,) constant(Developer)operator(.)ident(count)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(test_merge_and_append_options) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(10) operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(merged_option) operator(=) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\))operator([)symbol(:find)operator(]) ident(assert_equal)operator(()operator({) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:limit) operator(=)operator(>) integer(10) operator(})operator(,) ident(merged_option)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(test_nested_scoped_find) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_exclusive_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_nothing_raised) operator({) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) operator(}) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) reserved(end) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) reserved(end) reserved(end) reserved(def) method(test_nested_scoped_find_include) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) symbol(:projects) operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_nothing_raised) operator({) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) operator(}) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(test_nested_scoped_find_merged_include) comment(# :include's remain unique and don't "double up" when merging) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) symbol(:projects)operator(,) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) symbol(:projects) operator(})operator(\)) reserved(do) ident(assert_equal) integer(1)operator(,) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\))operator([)symbol(:find)operator(])operator([)symbol(:include)operator(])operator(.)ident(length) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) reserved(end) reserved(end) comment(# the nested scope doesn't remove the first :include) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) symbol(:projects)operator(,) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) operator([)operator(]) operator(})operator(\)) reserved(do) ident(assert_equal) integer(1)operator(,) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\))operator([)symbol(:find)operator(])operator([)symbol(:include)operator(])operator(.)ident(length) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) reserved(end) reserved(end) comment(# mixing array and symbol include's will merge correctly) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) operator([)symbol(:projects)operator(])operator(,) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) symbol(:projects) operator(})operator(\)) reserved(do) ident(assert_equal) integer(1)operator(,) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\))operator([)symbol(:find)operator(])operator([)symbol(:include)operator(])operator(.)ident(length) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(test_nested_scoped_find_replace_include) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) symbol(:projects) operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_exclusive_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:include) operator(=)operator(>) operator([)operator(]) operator(})operator(\)) reserved(do) ident(assert_equal) integer(0)operator(,) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\))operator([)symbol(:find)operator(])operator([)symbol(:include)operator(])operator(.)ident(length) reserved(end) reserved(end) reserved(end) reserved(def) method(test_three_level_nested_exclusive_scoped_find) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) constant(Developer)operator(.)ident(with_exclusive_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) constant(Developer)operator(.)ident(with_exclusive_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal)operator(()pre_constant(nil)operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(\)) reserved(end) comment(# ensure that scoping is restored) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) reserved(end) comment(# ensure that scoping is restored) ident(assert_equal)operator(()stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(\)) reserved(end) reserved(end) reserved(def) method(test_merged_scoped_find) ident(poor_jamis) operator(=) ident(developers)operator(()symbol(:poor_jamis)operator(\)) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:offset) operator(=)operator(>) integer(1) operator(})operator(\)) reserved(do) ident(assert_equal)operator(()ident(poor_jamis)operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\))operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(test_merged_scoped_find_sanitizes_conditions) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(]) operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(9000)operator(]) operator(})operator(\)) reserved(do) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(RecordNotFound)operator(\)) operator({) ident(developers)operator(()symbol(:poor_jamis)operator(\)) operator(}) reserved(end) reserved(end) reserved(end) reserved(def) method(test_nested_scoped_find_combines_and_sanitizes_conditions) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(]) operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_exclusive_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) integer(9000)operator(]) operator(})operator(\)) reserved(do) ident(assert_equal) ident(developers)operator(()symbol(:poor_jamis)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(assert_equal) ident(developers)operator(()symbol(:poor_jamis)operator(\))operator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(])operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(test_merged_scoped_find_combines_and_sanitizes_conditions) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) operator([)stringoperator(,) stringoperator(]) operator(})operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) operator([)string ?)delimiter(')>operator(,) integer(9000)operator(]) operator(})operator(\)) reserved(do) ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) reserved(end) reserved(end) reserved(end) reserved(def) method(test_immutable_nested_scope) ident(options1) operator(=) operator({) symbol(:conditions) operator(=)operator(>) string operator(}) ident(options2) operator(=) operator({) symbol(:conditions) operator(=)operator(>) string operator(}) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) ident(options1)operator(\)) reserved(do) constant(Developer)operator(.)ident(with_exclusive_scope)operator(()symbol(:find) operator(=)operator(>) ident(options2)operator(\)) reserved(do) ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) ident(options1)operator([)symbol(:conditions)operator(]) operator(=) ident(options2)operator([)symbol(:conditions)operator(]) operator(=) pre_constant(nil) ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) reserved(end) reserved(end) reserved(end) reserved(def) method(test_immutable_merged_scope) ident(options1) operator(=) operator({) symbol(:conditions) operator(=)operator(>) string operator(}) ident(options2) operator(=) operator({) symbol(:conditions) operator(=)operator(>) string 10000)delimiter(")> operator(}) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) ident(options1)operator(\)) reserved(do) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) ident(options2)operator(\)) reserved(do) ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) ident(options1)operator([)symbol(:conditions)operator(]) operator(=) ident(options2)operator([)symbol(:conditions)operator(]) operator(=) pre_constant(nil) ident(assert_equal) stringoperator(,) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(map) operator({) operator(|)ident(d)operator(|) ident(d)operator(.)ident(name) operator(}) reserved(end) reserved(end) reserved(end) reserved(def) method(test_ensure_that_method_scoping_is_correctly_restored) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(scoped_methods) operator(=) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\)) reserved(begin) constant(Developer)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(raise) string reserved(end) reserved(rescue) reserved(end) ident(assert_equal) ident(scoped_methods)operator(,) constant(Developer)operator(.)ident(instance_eval)operator(()stringoperator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(HasManyScopingTest)operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:comments)operator(,) symbol(:posts) reserved(def) method(setup) instance_variable(@welcome) operator(=) constant(Post)operator(.)ident(find)operator(()integer(1)operator(\)) reserved(end) reserved(def) method(test_forwarding_of_static_methods) ident(assert_equal) stringoperator(,) constant(Comment)operator(.)ident(what_are_you) ident(assert_equal) stringoperator(,) instance_variable(@welcome)operator(.)ident(comments)operator(.)ident(what_are_you) reserved(end) reserved(def) method(test_forwarding_to_scoped) ident(assert_equal) integer(4)operator(,) constant(Comment)operator(.)ident(search_by_type)operator(()stringoperator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) instance_variable(@welcome)operator(.)ident(comments)operator(.)ident(search_by_type)operator(()stringoperator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_forwarding_to_dynamic_finders) ident(assert_equal) integer(4)operator(,) constant(Comment)operator(.)ident(find_all_by_type)operator(()stringoperator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) instance_variable(@welcome)operator(.)ident(comments)operator(.)ident(find_all_by_type)operator(()stringoperator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_nested_scope) constant(Comment)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal) stringoperator(,) instance_variable(@welcome)operator(.)ident(comments)operator(.)ident(what_are_you) reserved(end) reserved(end) reserved(end) reserved(class) class(HasAndBelongsToManyScopingTest)operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:posts)operator(,) symbol(:categories)operator(,) symbol(:categories_posts) reserved(def) method(setup) instance_variable(@welcome) operator(=) constant(Post)operator(.)ident(find)operator(()integer(1)operator(\)) reserved(end) reserved(def) method(test_forwarding_of_static_methods) ident(assert_equal) stringoperator(,) constant(Category)operator(.)ident(what_are_you) ident(assert_equal) stringoperator(,) instance_variable(@welcome)operator(.)ident(categories)operator(.)ident(what_are_you) reserved(end) reserved(def) method(test_forwarding_to_dynamic_finders) ident(assert_equal) integer(4)operator(,) constant(Category)operator(.)ident(find_all_by_type)operator(()stringoperator(\))operator(.)ident(size) ident(assert_equal) integer(0)operator(,) instance_variable(@welcome)operator(.)ident(categories)operator(.)ident(find_all_by_type)operator(()stringoperator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) instance_variable(@welcome)operator(.)ident(categories)operator(.)ident(find_all_by_type)operator(()stringoperator(\))operator(.)ident(size) reserved(end) reserved(def) method(test_nested_scope) constant(Category)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert_equal) stringoperator(,) instance_variable(@welcome)operator(.)ident(comments)operator(.)ident(what_are_you) reserved(end) reserved(end) reserved(end) comment(=begin # We disabled the scoping for has_one and belongs_to as we can't think of a proper use case class BelongsToScopingTest< Test::Unit::TestCase fixtures :comments, :posts def setup @greetings = Comment.find(1\) end def test_forwarding_of_static_method assert_equal 'a post...', Post.what_are_you assert_equal 'a post...', @greetings.post.what_are_you end def test_forwarding_to_dynamic_finders assert_equal 4, Post.find_all_by_type('Post'\).size assert_equal 1, @greetings.post.find_all_by_type('Post'\).size end end class HasOneScopingTest< Test::Unit::TestCase fixtures :comments, :posts def setup @sti_comments = Post.find(4\) end def test_forwarding_of_static_methods assert_equal 'a comment...', Comment.what_are_you assert_equal 'a very special comment...', @sti_comments.very_special_comment.what_are_you end def test_forwarding_to_dynamic_finders assert_equal 1, Comment.find_all_by_type('VerySpecialComment'\).size assert_equal 1, @sti_comments.very_special_comment.find_all_by_type('VerySpecialComment'\).size assert_equal 0, @sti_comments.very_special_comment.find_all_by_type('Comment'\).size end end =end) ident(require) string ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(if) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(supports_migrations?) reserved(class) class(Reminder) operator(<) constant(ActiveRecord)operator(::)constant(Base)operator(;) reserved(end) reserved(class) class(ActiveRecord::Migration) reserved(class) operator(<<)class(self) ident(attr_accessor) symbol(:message_count) reserved(def) method(puts)operator(()ident(text)operator(=)stringoperator(\)) pre_constant(self)operator(.)ident(message_count) operator(||=) integer(0) pre_constant(self)operator(.)ident(message_count) operator(+=) integer(1) reserved(end) reserved(end) reserved(end) reserved(class) class(MigrationTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) reserved(def) method(setup) constant(ActiveRecord)operator(::)constant(Migration)operator(.)ident(verbose) operator(=) pre_constant(true) constant(PeopleHaveLastNames)operator(.)ident(message_count) operator(=) integer(0) reserved(end) reserved(def) method(teardown) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(initialize_schema_information) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(update) stringcontent( SET version = 0)delimiter(")> constant(Reminder)operator(.)ident(connection)operator(.)ident(drop_table)operator(()stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Reminder)operator(.)ident(connection)operator(.)ident(drop_table)operator(()stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Reminder)operator(.)ident(connection)operator(.)ident(drop_table)operator(()stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Reminder)operator(.)ident(reset_column_information) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(reset_column_information) reserved(end) reserved(def) method(test_add_index) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:string) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:boolean) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:string) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(add_index)operator(()stringoperator(,) stringoperator(\)) operator(}) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(remove_index)operator(()stringoperator(,) stringoperator(\)) operator(}) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(add_index)operator(()stringoperator(,) operator([)stringoperator(,) stringoperator(])operator(\)) operator(}) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(remove_index)operator(()stringoperator(,) stringoperator(\)) operator(}) comment(# quoting) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(add_index)operator(()stringoperator(,) operator([)stringoperator(])operator(,) symbol(:name) operator(=)operator(>) stringoperator(,) symbol(:unique) operator(=)operator(>) pre_constant(true)operator(\)) operator(}) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(remove_index)operator(()stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) operator(}) comment(# Sybase adapter does not support indexes on :boolean columns) reserved(unless) ident(current_adapter?)operator(()symbol(:SybaseAdapter)operator(\)) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(add_index)operator(()stringoperator(,) stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) operator(}) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(remove_index)operator(()stringoperator(,) symbol(:name) operator(=)operator(>) stringoperator(\)) operator(}) reserved(end) reserved(end) reserved(def) method(test_create_table_adds_id) constant(Person)operator(.)ident(connection)operator(.)ident(create_table) symbol(:testings) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:foo)operator(,) symbol(:string) reserved(end) ident(assert_equal) stringoperator(,) constant(Person)operator(.)ident(connection)operator(.)ident(columns)operator(()symbol(:testings)operator(\))operator(.)ident(map) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(})operator(.)ident(sort) reserved(ensure) constant(Person)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:testings) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(test_create_table_with_not_null_column) constant(Person)operator(.)ident(connection)operator(.)ident(create_table) symbol(:testings) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:foo)operator(,) symbol(:string)operator(,) symbol(:null) operator(=)operator(>) pre_constant(false) reserved(end) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(\)) reserved(do) constant(Person)operator(.)ident(connection)operator(.)ident(execute) string reserved(end) reserved(ensure) constant(Person)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:testings) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(test_create_table_with_defaults) constant(Person)operator(.)ident(connection)operator(.)ident(create_table) symbol(:testings) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:one)operator(,) symbol(:string)operator(,) symbol(:default) operator(=)operator(>) string ident(t)operator(.)ident(column) symbol(:two)operator(,) symbol(:boolean)operator(,) symbol(:default) operator(=)operator(>) pre_constant(true) ident(t)operator(.)ident(column) symbol(:three)operator(,) symbol(:boolean)operator(,) symbol(:default) operator(=)operator(>) pre_constant(false) ident(t)operator(.)ident(column) symbol(:four)operator(,) symbol(:integer)operator(,) symbol(:default) operator(=)operator(>) integer(1) reserved(end) ident(columns) operator(=) constant(Person)operator(.)ident(connection)operator(.)ident(columns)operator(()symbol(:testings)operator(\)) ident(one) operator(=) ident(columns)operator(.)ident(detect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) string operator(}) ident(two) operator(=) ident(columns)operator(.)ident(detect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) string operator(}) ident(three) operator(=) ident(columns)operator(.)ident(detect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) string operator(}) ident(four) operator(=) ident(columns)operator(.)ident(detect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) string operator(}) ident(assert_equal) stringoperator(,) ident(one)operator(.)ident(default) reserved(if) ident(current_adapter?)operator(()symbol(:OracleAdapter)operator(\)) comment(# Oracle doesn't support native booleans) ident(assert_equal) pre_constant(true)operator(,) ident(two)operator(.)ident(default) operator(==) integer(1) ident(assert_equal) pre_constant(false)operator(,) ident(three)operator(.)ident(default) operator(!=) integer(0) reserved(else) ident(assert_equal) pre_constant(true)operator(,) ident(two)operator(.)ident(default) ident(assert_equal) pre_constant(false)operator(,) ident(three)operator(.)ident(default) reserved(end) ident(assert_equal) integer(1)operator(,) ident(four)operator(.)ident(default) reserved(ensure) constant(Person)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:testings) reserved(rescue) pre_constant(nil) reserved(end) comment(# SQL Server and Sybase will not allow you to add a NOT NULL column) comment(# to a table without specifying a default value, so the) comment(# following test must be skipped ) reserved(unless) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) operator(||) ident(current_adapter?)operator(()symbol(:SybaseAdapter)operator(\)) reserved(def) method(test_add_column_not_null_without_default) constant(Person)operator(.)ident(connection)operator(.)ident(create_table) symbol(:testings) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:foo)operator(,) symbol(:string) reserved(end) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) symbol(:testings)operator(,) symbol(:bar)operator(,) symbol(:string)operator(,) symbol(:null) operator(=)operator(>) pre_constant(false) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(\)) reserved(do) constant(Person)operator(.)ident(connection)operator(.)ident(execute) string reserved(end) reserved(ensure) constant(Person)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:testings) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(test_add_column_not_null_with_default) constant(Person)operator(.)ident(connection)operator(.)ident(create_table) symbol(:testings) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:foo)operator(,) symbol(:string) reserved(end) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) symbol(:testings)operator(,) symbol(:bar)operator(,) symbol(:string)operator(,) symbol(:null) operator(=)operator(>) pre_constant(false)operator(,) symbol(:default) operator(=)operator(>) string ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(\)) reserved(do) constant(Person)operator(.)ident(connection)operator(.)ident(execute) string reserved(end) reserved(ensure) constant(Person)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:testings) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(test_native_types) constant(Person)operator(.)ident(delete_all) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:string) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:text) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:integer) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:float) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:datetime) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:date) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:boolean) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(create) symbol(:first_name) operator(=)operator(>) stringoperator(,) symbol(:last_name) operator(=)operator(>) stringoperator(,) symbol(:bio) operator(=)operator(>) stringoperator(,) symbol(:age) operator(=)operator(>) integer(18)operator(,) symbol(:height) operator(=)operator(>) float(1.78)operator(,) symbol(:birthday) operator(=)operator(>) integer(18)operator(.)ident(years)operator(.)ident(ago)operator(,) symbol(:favorite_day) operator(=)operator(>) integer(10)operator(.)ident(days)operator(.)ident(ago)operator(,) symbol(:male) operator(=)operator(>) pre_constant(true) operator(}) ident(bob) operator(=) constant(Person)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(assert_equal) ident(bob)operator(.)ident(first_name)operator(,) string ident(assert_equal) ident(bob)operator(.)ident(last_name)operator(,) string ident(assert_equal) ident(bob)operator(.)ident(bio)operator(,) string ident(assert_equal) ident(bob)operator(.)ident(age)operator(,) integer(18) ident(assert_equal) ident(bob)operator(.)ident(male?)operator(,) pre_constant(true) ident(assert_equal) constant(String)operator(,) ident(bob)operator(.)ident(first_name)operator(.)ident(class) ident(assert_equal) constant(String)operator(,) ident(bob)operator(.)ident(last_name)operator(.)ident(class) ident(assert_equal) constant(String)operator(,) ident(bob)operator(.)ident(bio)operator(.)ident(class) ident(assert_equal) constant(Fixnum)operator(,) ident(bob)operator(.)ident(age)operator(.)ident(class) ident(assert_equal) constant(Time)operator(,) ident(bob)operator(.)ident(birthday)operator(.)ident(class) reserved(if) ident(current_adapter?)operator(()symbol(:SQLServerAdapter)operator(\)) operator(||) ident(current_adapter?)operator(()symbol(:OracleAdapter)operator(\)) operator(||) ident(current_adapter?)operator(()symbol(:SybaseAdapter)operator(\)) comment(# SQL Server, Sybase, and Oracle don't differentiate between date/time) ident(assert_equal) constant(Time)operator(,) ident(bob)operator(.)ident(favorite_day)operator(.)ident(class) reserved(else) ident(assert_equal) constant(Date)operator(,) ident(bob)operator(.)ident(favorite_day)operator(.)ident(class) reserved(end) ident(assert_equal) constant(TrueClass)operator(,) ident(bob)operator(.)ident(male?)operator(.)ident(class) reserved(end) reserved(def) method(test_add_remove_single_field_using_string_arguments) ident(assert) operator(!)constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) constant(ActiveRecord)operator(::)constant(Migration)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:string) constant(Person)operator(.)ident(reset_column_information) ident(assert) constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) constant(ActiveRecord)operator(::)constant(Migration)operator(.)ident(remove_column) stringoperator(,) string constant(Person)operator(.)ident(reset_column_information) ident(assert) operator(!)constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) reserved(end) reserved(def) method(test_add_remove_single_field_using_symbol_arguments) ident(assert) operator(!)constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) constant(ActiveRecord)operator(::)constant(Migration)operator(.)ident(add_column) symbol(:people)operator(,) symbol(:last_name)operator(,) symbol(:string) constant(Person)operator(.)ident(reset_column_information) ident(assert) constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) constant(ActiveRecord)operator(::)constant(Migration)operator(.)ident(remove_column) symbol(:people)operator(,) symbol(:last_name) constant(Person)operator(.)ident(reset_column_information) ident(assert) operator(!)constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) reserved(end) reserved(def) method(test_add_rename) constant(Person)operator(.)ident(delete_all) reserved(begin) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:string) constant(Person)operator(.)ident(create) symbol(:girlfriend) operator(=)operator(>) string constant(Person)operator(.)ident(connection)operator(.)ident(rename_column) stringoperator(,) stringoperator(,) string constant(Person)operator(.)ident(reset_column_information) ident(bob) operator(=) constant(Person)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(assert_equal) stringoperator(,) ident(bob)operator(.)ident(exgirlfriend) reserved(ensure) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,) stringoperator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(test_rename_column_using_symbol_arguments) reserved(begin) constant(Person)operator(.)ident(connection)operator(.)ident(rename_column) symbol(:people)operator(,) symbol(:first_name)operator(,) symbol(:nick_name) constant(Person)operator(.)ident(reset_column_information) ident(assert) constant(Person)operator(.)ident(column_names)operator(.)ident(include?)operator(()stringoperator(\)) reserved(ensure) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,)stringoperator(\)) constant(Person)operator(.)ident(connection)operator(.)ident(add_column)operator(()stringoperator(,)stringoperator(,) symbol(:string)operator(\)) reserved(end) reserved(end) reserved(def) method(test_rename_column) reserved(begin) constant(Person)operator(.)ident(connection)operator(.)ident(rename_column) stringoperator(,) stringoperator(,) string constant(Person)operator(.)ident(reset_column_information) ident(assert) constant(Person)operator(.)ident(column_names)operator(.)ident(include?)operator(()stringoperator(\)) reserved(ensure) constant(Person)operator(.)ident(connection)operator(.)ident(remove_column)operator(()stringoperator(,)stringoperator(\)) constant(Person)operator(.)ident(connection)operator(.)ident(add_column)operator(()stringoperator(,)stringoperator(,) symbol(:string)operator(\)) reserved(end) reserved(end) reserved(def) method(test_rename_table) reserved(begin) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(create_table) symbol(:octopuses) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) symbol(:url)operator(,) symbol(:string) reserved(end) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(rename_table) symbol(:octopuses)operator(,) symbol(:octopi) ident(assert_nothing_raised) reserved(do) reserved(if) ident(current_adapter?)operator(()symbol(:OracleAdapter)operator(\)) comment(# Oracle requires the explicit sequence value for the pk) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(execute) string reserved(else) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(execute) string reserved(end) reserved(end) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(select_value)operator(()stringoperator(\)) reserved(ensure) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:octopuses) reserved(rescue) pre_constant(nil) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:octopi) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(test_change_column) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:integer) ident(old_columns) operator(=) constant(Person)operator(.)ident(connection)operator(.)ident(columns)operator(()constant(Person)operator(.)ident(table_name)operator(,) stringcontent( Columns)delimiter(")>operator(\)) ident(assert) ident(old_columns)operator(.)ident(find) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) string reserved(and) ident(c)operator(.)ident(type) operator(==) symbol(:integer) operator(}) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(change_column) stringoperator(,) stringoperator(,) symbol(:string) operator(}) ident(new_columns) operator(=) constant(Person)operator(.)ident(connection)operator(.)ident(columns)operator(()constant(Person)operator(.)ident(table_name)operator(,) stringcontent( Columns)delimiter(")>operator(\)) ident(assert_nil) ident(new_columns)operator(.)ident(find) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) string reserved(and) ident(c)operator(.)ident(type) operator(==) symbol(:integer) operator(}) ident(assert) ident(new_columns)operator(.)ident(find) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) string reserved(and) ident(c)operator(.)ident(type) operator(==) symbol(:string) operator(}) reserved(end) reserved(def) method(test_change_column_with_new_default) constant(Person)operator(.)ident(connection)operator(.)ident(add_column) stringoperator(,) stringoperator(,) symbol(:boolean)operator(,) symbol(:default) operator(=)operator(>) integer(1) constant(Person)operator(.)ident(reset_column_information) ident(assert) constant(Person)operator(.)ident(new)operator(.)ident(administrator?) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(change_column) stringoperator(,) stringoperator(,) symbol(:boolean)operator(,) symbol(:default) operator(=)operator(>) integer(0) operator(}) constant(Person)operator(.)ident(reset_column_information) ident(assert) operator(!)constant(Person)operator(.)ident(new)operator(.)ident(administrator?) reserved(end) reserved(def) method(test_add_table) ident(assert) operator(!)constant(Reminder)operator(.)ident(table_exists?) constant(WeNeedReminders)operator(.)ident(up) ident(assert) constant(Reminder)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(now)operator(\)) ident(assert_equal) stringoperator(,) constant(Reminder)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(content) constant(WeNeedReminders)operator(.)ident(down) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(\)) operator({) constant(Reminder)operator(.)ident(find)operator(()symbol(:first)operator(\)) operator(}) reserved(end) reserved(def) method(test_migrator) ident(assert) operator(!)constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) ident(assert) operator(!)constant(Reminder)operator(.)ident(table_exists?) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(up)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(assert_equal) integer(3)operator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(current_version) constant(Person)operator(.)ident(reset_column_information) ident(assert) constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) ident(assert) constant(Reminder)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(now)operator(\)) ident(assert_equal) stringoperator(,) constant(Reminder)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(content) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(down)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(assert_equal) integer(0)operator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(current_version) constant(Person)operator(.)ident(reset_column_information) ident(assert) operator(!)constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(\)) operator({) constant(Reminder)operator(.)ident(find)operator(()symbol(:first)operator(\)) operator(}) reserved(end) reserved(def) method(test_migrator_one_up) ident(assert) operator(!)constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) ident(assert) operator(!)constant(Reminder)operator(.)ident(table_exists?) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(up)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(1)operator(\)) constant(Person)operator(.)ident(reset_column_information) ident(assert) constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) ident(assert) operator(!)constant(Reminder)operator(.)ident(table_exists?) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(up)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(2)operator(\)) ident(assert) constant(Reminder)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(now)operator(\)) ident(assert_equal) stringoperator(,) constant(Reminder)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(content) reserved(end) reserved(def) method(test_migrator_one_down) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(up)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(down)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(1)operator(\)) constant(Person)operator(.)ident(reset_column_information) ident(assert) constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) ident(assert) operator(!)constant(Reminder)operator(.)ident(table_exists?) reserved(end) reserved(def) method(test_migrator_one_up_one_down) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(up)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(1)operator(\)) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(down)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(0)operator(\)) ident(assert) operator(!)constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) ident(assert) operator(!)constant(Reminder)operator(.)ident(table_exists?) reserved(end) reserved(def) method(test_migrator_verbosity) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(up)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(1)operator(\)) ident(assert) constant(PeopleHaveLastNames)operator(.)ident(message_count) operator(>) integer(0) constant(PeopleHaveLastNames)operator(.)ident(message_count) operator(=) integer(0) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(down)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(0)operator(\)) ident(assert) constant(PeopleHaveLastNames)operator(.)ident(message_count) operator(>) integer(0) constant(PeopleHaveLastNames)operator(.)ident(message_count) operator(=) integer(0) reserved(end) reserved(def) method(test_migrator_verbosity_off) constant(PeopleHaveLastNames)operator(.)ident(verbose) operator(=) pre_constant(false) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(up)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(1)operator(\)) ident(assert) constant(PeopleHaveLastNames)operator(.)ident(message_count)operator(.)ident(zero?) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(down)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(0)operator(\)) ident(assert) constant(PeopleHaveLastNames)operator(.)ident(message_count)operator(.)ident(zero?) reserved(end) reserved(def) method(test_migrator_going_down_due_to_version_target) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(up)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(1)operator(\)) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(migrate)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) integer(0)operator(\)) ident(assert) operator(!)constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) ident(assert) operator(!)constant(Reminder)operator(.)ident(table_exists?) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(migrate)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) constant(Person)operator(.)ident(reset_column_information) ident(assert) constant(Person)operator(.)ident(column_methods_hash)operator(.)ident(include?)operator(()symbol(:last_name)operator(\)) ident(assert) constant(Reminder)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(now)operator(\)) ident(assert_equal) stringoperator(,) constant(Reminder)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(content) reserved(end) reserved(def) method(test_schema_info_table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Reminder)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(schema_info_table_name) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Reminder)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(schema_info_table_name) reserved(ensure) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string reserved(end) reserved(def) method(test_proper_table_name) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(proper_table_name)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(proper_table_name)operator(()symbol(:table)operator(\)) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(proper_table_name)operator(()constant(Reminder)operator(\)) constant(Reminder)operator(.)ident(reset_table_name) ident(assert_equal) constant(Reminder)operator(.)ident(table_name)operator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(proper_table_name)operator(()constant(Reminder)operator(\)) comment(# Use the model's own prefix/suffix if a model is given) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Reminder)operator(.)ident(table_name_prefix) operator(=) string constant(Reminder)operator(.)ident(table_name_suffix) operator(=) string constant(Reminder)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(proper_table_name)operator(()constant(Reminder)operator(\)) constant(Reminder)operator(.)ident(table_name_prefix) operator(=) string constant(Reminder)operator(.)ident(table_name_suffix) operator(=) string constant(Reminder)operator(.)ident(reset_table_name) comment(# Use AR::Base's prefix/suffix if string or symbol is given ) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Reminder)operator(.)ident(reset_table_name) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(proper_table_name)operator(()stringoperator(\)) ident(assert_equal) stringoperator(,) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(proper_table_name)operator(()symbol(:table)operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Reminder)operator(.)ident(reset_table_name) reserved(end) reserved(def) method(test_add_drop_table_with_prefix_and_suffix) ident(assert) operator(!)constant(Reminder)operator(.)ident(table_exists?) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Reminder)operator(.)ident(reset_table_name) constant(Reminder)operator(.)ident(reset_sequence_name) constant(WeNeedReminders)operator(.)ident(up) ident(assert) constant(Reminder)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) constant(Time)operator(.)ident(now)operator(\)) ident(assert_equal) stringoperator(,) constant(Reminder)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(content) constant(WeNeedReminders)operator(.)ident(down) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(\)) operator({) constant(Reminder)operator(.)ident(find)operator(()symbol(:first)operator(\)) operator(}) reserved(ensure) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_prefix) operator(=) string constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(table_name_suffix) operator(=) string constant(Reminder)operator(.)ident(reset_table_name) constant(Reminder)operator(.)ident(reset_sequence_name) reserved(end) reserved(def) method(test_create_table_with_binary_column) constant(Person)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:binary_testings) reserved(rescue) pre_constant(nil) ident(assert_nothing_raised) operator({) constant(Person)operator(.)ident(connection)operator(.)ident(create_table) symbol(:binary_testings) reserved(do) operator(|)ident(t)operator(|) ident(t)operator(.)ident(column) stringoperator(,) symbol(:binary)operator(,) symbol(:default) operator(=)operator(>) stringoperator(,) symbol(:null) operator(=)operator(>) pre_constant(false) reserved(end) operator(}) ident(columns) operator(=) constant(Person)operator(.)ident(connection)operator(.)ident(columns)operator(()symbol(:binary_testings)operator(\)) ident(data_column) operator(=) ident(columns)operator(.)ident(detect) operator({) operator(|)ident(c)operator(|) ident(c)operator(.)ident(name) operator(==) string operator(}) reserved(if) ident(current_adapter?)operator(()symbol(:OracleAdapter)operator(\)) ident(assert_equal) stringoperator(,) ident(data_column)operator(.)ident(default) reserved(else) ident(assert_equal) stringoperator(,) ident(data_column)operator(.)ident(default) reserved(end) constant(Person)operator(.)ident(connection)operator(.)ident(drop_table) symbol(:binary_testings) reserved(rescue) pre_constant(nil) reserved(end) reserved(def) method(test_migrator_with_duplicates) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(DuplicateMigrationVersionError)operator(\)) reserved(do) constant(ActiveRecord)operator(::)constant(Migrator)operator(.)ident(migrate)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(,) pre_constant(nil)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(MixinNestedSetTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:mixins) reserved(def) method(test_mixing_in_methods) ident(ns) operator(=) constant(NestedSet)operator(.)ident(new) ident(assert)operator(() ident(ns)operator(.)ident(respond_to?)operator(() symbol(:all_children) operator(\)) operator(\)) ident(assert_equal)operator(() ident(ns)operator(.)ident(scope_condition)operator(,) string operator(\)) ident(check_method_mixins) ident(ns) reserved(end) reserved(def) method(test_string_scope) ident(ns) operator(=) constant(NestedSetWithStringScope)operator(.)ident(new) ident(ns)operator(.)ident(root_id) operator(=) integer(1) ident(assert_equal)operator(() ident(ns)operator(.)ident(scope_condition)operator(,) string operator(\)) ident(ns)operator(.)ident(root_id) operator(=) integer(42) ident(assert_equal)operator(() ident(ns)operator(.)ident(scope_condition)operator(,) string operator(\)) ident(check_method_mixins) ident(ns) reserved(end) reserved(def) method(test_symbol_scope) ident(ns) operator(=) constant(NestedSetWithSymbolScope)operator(.)ident(new) ident(ns)operator(.)ident(root_id) operator(=) integer(1) ident(assert_equal)operator(() ident(ns)operator(.)ident(scope_condition)operator(,) string operator(\)) ident(ns)operator(.)ident(root_id) operator(=) integer(42) ident(assert_equal)operator(() ident(ns)operator(.)ident(scope_condition)operator(,) string operator(\)) ident(check_method_mixins) ident(ns) reserved(end) reserved(def) method(check_method_mixins)operator(() ident(obj) operator(\)) operator([)symbol(:scope_condition)operator(,) symbol(:left_col_name)operator(,) symbol(:right_col_name)operator(,) symbol(:parent_column)operator(,) symbol(:root?)operator(,) symbol(:add_child)operator(,) symbol(:children_count)operator(,) symbol(:full_set)operator(,) symbol(:all_children)operator(,) symbol(:direct_children)operator(])operator(.)ident(each) operator({) operator(|)ident(symbol)operator(|) ident(assert)operator(() ident(obj)operator(.)ident(respond_to?)operator(()ident(symbol)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(set)operator(() ident(id) operator(\)) constant(NestedSet)operator(.)ident(find)operator(() integer(3000) operator(+) ident(id) operator(\)) reserved(end) reserved(def) method(test_adding_children) ident(assert)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(unknown?) operator(\)) ident(assert)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(unknown?) operator(\)) ident(set)operator(()integer(1)operator(\))operator(.)ident(add_child) ident(set)operator(()integer(2)operator(\)) comment(# Did we maintain adding the parent_ids?) ident(assert)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(root?) operator(\)) ident(assert)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(child?) operator(\)) ident(assert)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(parent_id) operator(==) ident(set)operator(()integer(1)operator(\))operator(.)ident(id) operator(\)) comment(# Check boundies) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(lft)operator(,) integer(1) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(lft)operator(,) integer(2) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(rgt)operator(,) integer(3) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(rgt)operator(,) integer(4) operator(\)) comment(# Check children cound) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(children_count)operator(,) integer(1) operator(\)) ident(set)operator(()integer(1)operator(\))operator(.)ident(add_child) ident(set)operator(()integer(3)operator(\)) comment(#check boundries) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(lft)operator(,) integer(1) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(lft)operator(,) integer(2) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(rgt)operator(,) integer(3) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(3)operator(\))operator(.)ident(lft)operator(,) integer(4) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(3)operator(\))operator(.)ident(rgt)operator(,) integer(5) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(rgt)operator(,) integer(6) operator(\)) comment(# How is the count looking?) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(children_count)operator(,) integer(2) operator(\)) ident(set)operator(()integer(2)operator(\))operator(.)ident(add_child) ident(set)operator(()integer(4)operator(\)) comment(# boundries) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(lft)operator(,) integer(1) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(lft)operator(,) integer(2) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(4)operator(\))operator(.)ident(lft)operator(,) integer(3) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(4)operator(\))operator(.)ident(rgt)operator(,) integer(4) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(rgt)operator(,) integer(5) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(3)operator(\))operator(.)ident(lft)operator(,) integer(6) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(3)operator(\))operator(.)ident(rgt)operator(,) integer(7) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(rgt)operator(,) integer(8) operator(\)) comment(# Children count) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(children_count)operator(,) integer(3) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(children_count)operator(,) integer(1) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(3)operator(\))operator(.)ident(children_count)operator(,) integer(0) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(4)operator(\))operator(.)ident(children_count)operator(,) integer(0) operator(\)) ident(set)operator(()integer(2)operator(\))operator(.)ident(add_child) ident(set)operator(()integer(5)operator(\)) ident(set)operator(()integer(4)operator(\))operator(.)ident(add_child) ident(set)operator(()integer(6)operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(children_count)operator(,) integer(3) operator(\)) comment(# Children accessors) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(full_set)operator(.)ident(length)operator(,) integer(6) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(2)operator(\))operator(.)ident(full_set)operator(.)ident(length)operator(,) integer(4) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(4)operator(\))operator(.)ident(full_set)operator(.)ident(length)operator(,) integer(2) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(all_children)operator(.)ident(length)operator(,) integer(5) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(6)operator(\))operator(.)ident(all_children)operator(.)ident(length)operator(,) integer(0) operator(\)) ident(assert_equal)operator(() ident(set)operator(()integer(1)operator(\))operator(.)ident(direct_children)operator(.)ident(length)operator(,) integer(2) operator(\)) reserved(end) reserved(def) method(test_snipping_tree) ident(big_tree) operator(=) constant(NestedSetWithStringScope)operator(.)ident(find)operator(() integer(4001) operator(\)) comment(# Make sure we have the right one) ident(assert_equal)operator(() integer(3)operator(,) ident(big_tree)operator(.)ident(direct_children)operator(.)ident(length) operator(\)) ident(assert_equal)operator(() integer(10)operator(,) ident(big_tree)operator(.)ident(full_set)operator(.)ident(length) operator(\)) constant(NestedSetWithStringScope)operator(.)ident(find)operator(() integer(4005) operator(\))operator(.)ident(destroy) ident(big_tree) operator(=) constant(NestedSetWithStringScope)operator(.)ident(find)operator(() integer(4001) operator(\)) ident(assert_equal)operator(() integer(7)operator(,) ident(big_tree)operator(.)ident(full_set)operator(.)ident(length) operator(\)) ident(assert_equal)operator(() integer(2)operator(,) ident(big_tree)operator(.)ident(direct_children)operator(.)ident(length) operator(\)) ident(assert_equal)operator(() integer(1)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4001)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(() integer(2)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4002)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(() integer(3)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4003)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(() integer(4)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4003)operator(\))operator(.)ident(rgt) operator(\)) ident(assert_equal)operator(() integer(5)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4004)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(() integer(6)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4004)operator(\))operator(.)ident(rgt) operator(\)) ident(assert_equal)operator(() integer(7)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4002)operator(\))operator(.)ident(rgt) operator(\)) ident(assert_equal)operator(() integer(8)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4008)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(() integer(9)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4009)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(()integer(10)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4009)operator(\))operator(.)ident(rgt) operator(\)) ident(assert_equal)operator(()integer(11)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4010)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(()integer(12)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4010)operator(\))operator(.)ident(rgt) operator(\)) ident(assert_equal)operator(()integer(13)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4008)operator(\))operator(.)ident(rgt) operator(\)) ident(assert_equal)operator(()integer(14)operator(,) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4001)operator(\))operator(.)ident(rgt) operator(\)) reserved(end) reserved(def) method(test_deleting_root) constant(NestedSetWithStringScope)operator(.)ident(find)operator(()integer(4001)operator(\))operator(.)ident(destroy) ident(assert)operator(() constant(NestedSetWithStringScope)operator(.)ident(count) operator(==) integer(0) operator(\)) reserved(end) reserved(def) method(test_common_usage) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(add_child)operator(() ident(mixins)operator(()symbol(:set_2)operator(\)) operator(\)) ident(assert_equal)operator(() integer(1)operator(,) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(direct_children)operator(.)ident(length) operator(\)) ident(mixins)operator(()symbol(:set_2)operator(\))operator(.)ident(add_child)operator(() ident(mixins)operator(()symbol(:set_3)operator(\)) operator(\)) ident(assert_equal)operator(() integer(1)operator(,) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(direct_children)operator(.)ident(length) operator(\)) comment(# Local cache is now out of date!) comment(# Problem: the update_alls update all objects up the tree) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(reload) ident(assert_equal)operator(() integer(2)operator(,) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(all_children)operator(.)ident(length) operator(\)) ident(assert_equal)operator(() integer(1)operator(,) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(() integer(2)operator(,) ident(mixins)operator(()symbol(:set_2)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(() integer(3)operator(,) ident(mixins)operator(()symbol(:set_3)operator(\))operator(.)ident(lft) operator(\)) ident(assert_equal)operator(() integer(4)operator(,) ident(mixins)operator(()symbol(:set_3)operator(\))operator(.)ident(rgt) operator(\)) ident(assert_equal)operator(() integer(5)operator(,) ident(mixins)operator(()symbol(:set_2)operator(\))operator(.)ident(rgt) operator(\)) ident(assert_equal)operator(() integer(6)operator(,) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(rgt) operator(\)) ident(assert)operator(() ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(root?) operator(\)) reserved(begin) ident(mixins)operator(()symbol(:set_4)operator(\))operator(.)ident(add_child)operator(() ident(mixins)operator(()symbol(:set_1)operator(\)) operator(\)) ident(fail) reserved(rescue) reserved(end) ident(assert_equal)operator(() integer(2)operator(,) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(all_children)operator(.)ident(length) operator(\)) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(add_child) ident(mixins)operator(()symbol(:set_4)operator(\)) ident(assert_equal)operator(() integer(3)operator(,) ident(mixins)operator(()symbol(:set_1)operator(\))operator(.)ident(all_children)operator(.)ident(length) operator(\)) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(ListTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:mixins) reserved(def) method(test_reordering) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_2)operator(\))operator(.)ident(move_lower) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_2)operator(\))operator(.)ident(move_higher) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_1)operator(\))operator(.)ident(move_to_bottom) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(,) ident(mixins)operator(()symbol(:list_1)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_1)operator(\))operator(.)ident(move_to_top) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_2)operator(\))operator(.)ident(move_to_bottom) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(,) ident(mixins)operator(()symbol(:list_2)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_4)operator(\))operator(.)ident(move_to_top) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_4)operator(\))operator(,) ident(mixins)operator(()symbol(:list_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_2)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_move_to_bottom_with_next_to_last_item) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_3)operator(\))operator(.)ident(move_to_bottom) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_next_prev) ident(assert_equal) ident(mixins)operator(()symbol(:list_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_1)operator(\))operator(.)ident(lower_item) ident(assert_nil) ident(mixins)operator(()symbol(:list_1)operator(\))operator(.)ident(higher_item) ident(assert_equal) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(.)ident(higher_item) ident(assert_nil) ident(mixins)operator(()symbol(:list_4)operator(\))operator(.)ident(lower_item) reserved(end) reserved(def) method(test_injection) ident(item) operator(=) constant(ListMixin)operator(.)ident(new)operator(()stringoperator(=)operator(>)integer(1)operator(\)) ident(assert_equal) stringoperator(,) ident(item)operator(.)ident(scope_condition) ident(assert_equal) stringoperator(,) ident(item)operator(.)ident(position_column) reserved(end) reserved(def) method(test_insert) ident(new) operator(=) constant(ListMixin)operator(.)ident(create)operator(()stringoperator(=)operator(>)integer(20)operator(\)) ident(assert_equal) integer(1)operator(,) ident(new)operator(.)ident(pos) ident(assert) ident(new)operator(.)ident(first?) ident(assert) ident(new)operator(.)ident(last?) ident(new) operator(=) constant(ListMixin)operator(.)ident(create)operator(()stringoperator(=)operator(>)integer(20)operator(\)) ident(assert_equal) integer(2)operator(,) ident(new)operator(.)ident(pos) ident(assert) operator(!)ident(new)operator(.)ident(first?) ident(assert) ident(new)operator(.)ident(last?) ident(new) operator(=) constant(ListMixin)operator(.)ident(create)operator(()stringoperator(=)operator(>)integer(20)operator(\)) ident(assert_equal) integer(3)operator(,) ident(new)operator(.)ident(pos) ident(assert) operator(!)ident(new)operator(.)ident(first?) ident(assert) ident(new)operator(.)ident(last?) ident(new) operator(=) constant(ListMixin)operator(.)ident(create)operator(()stringoperator(=)operator(>)integer(0)operator(\)) ident(assert_equal) integer(1)operator(,) ident(new)operator(.)ident(pos) ident(assert) ident(new)operator(.)ident(first?) ident(assert) ident(new)operator(.)ident(last?) reserved(end) reserved(def) method(test_insert_at) ident(new) operator(=) constant(ListMixin)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(1)operator(,) ident(new)operator(.)ident(pos) ident(new) operator(=) constant(ListMixin)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(2)operator(,) ident(new)operator(.)ident(pos) ident(new) operator(=) constant(ListMixin)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(3)operator(,) ident(new)operator(.)ident(pos) ident(new4) operator(=) constant(ListMixin)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(4)operator(,) ident(new4)operator(.)ident(pos) ident(new4)operator(.)ident(insert_at)operator(()integer(3)operator(\)) ident(assert_equal) integer(3)operator(,) ident(new4)operator(.)ident(pos) ident(new)operator(.)ident(reload) ident(assert_equal) integer(4)operator(,) ident(new)operator(.)ident(pos) ident(new)operator(.)ident(insert_at)operator(()integer(2)operator(\)) ident(assert_equal) integer(2)operator(,) ident(new)operator(.)ident(pos) ident(new4)operator(.)ident(reload) ident(assert_equal) integer(4)operator(,) ident(new4)operator(.)ident(pos) ident(new5) operator(=) constant(ListMixin)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(5)operator(,) ident(new5)operator(.)ident(pos) ident(new5)operator(.)ident(insert_at)operator(()integer(1)operator(\)) ident(assert_equal) integer(1)operator(,) ident(new5)operator(.)ident(pos) ident(new4)operator(.)ident(reload) ident(assert_equal) integer(5)operator(,) ident(new4)operator(.)ident(pos) reserved(end) reserved(def) method(test_delete_middle) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_2)operator(\))operator(.)ident(destroy) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_1)operator(,) symbol(:reload)operator(\))operator(,) ident(mixins)operator(()symbol(:list_3)operator(,) symbol(:reload)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(,) symbol(:reload)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) ident(mixins)operator(()symbol(:list_1)operator(\))operator(.)ident(pos) ident(assert_equal) integer(2)operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(.)ident(pos) ident(assert_equal) integer(3)operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(.)ident(pos) ident(mixins)operator(()symbol(:list_1)operator(\))operator(.)ident(destroy) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_3)operator(,) symbol(:reload)operator(\))operator(,) ident(mixins)operator(()symbol(:list_4)operator(,) symbol(:reload)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) ident(mixins)operator(()symbol(:list_3)operator(\))operator(.)ident(pos) ident(assert_equal) integer(2)operator(,) ident(mixins)operator(()symbol(:list_4)operator(\))operator(.)ident(pos) reserved(end) reserved(def) method(test_with_string_based_scope) ident(new) operator(=) constant(ListWithStringScopeMixin)operator(.)ident(create)operator(()stringoperator(=)operator(>)integer(500)operator(\)) ident(assert_equal) integer(1)operator(,) ident(new)operator(.)ident(pos) ident(assert) ident(new)operator(.)ident(first?) ident(assert) ident(new)operator(.)ident(last?) reserved(end) reserved(def) method(test_nil_scope) ident(new1)operator(,) ident(new2)operator(,) ident(new3) operator(=) constant(ListMixin)operator(.)ident(create)operator(,) constant(ListMixin)operator(.)ident(create)operator(,) constant(ListMixin)operator(.)ident(create) ident(new2)operator(.)ident(move_higher) ident(assert_equal) operator([)ident(new2)operator(,) ident(new1)operator(,) ident(new3)operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(end) reserved(class) class(TreeTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:mixins) reserved(def) method(test_has_child) ident(assert_equal) pre_constant(true)operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(has_children?) ident(assert_equal) pre_constant(true)operator(,) ident(mixins)operator(()symbol(:tree_2)operator(\))operator(.)ident(has_children?) ident(assert_equal) pre_constant(false)operator(,) ident(mixins)operator(()symbol(:tree_3)operator(\))operator(.)ident(has_children?) ident(assert_equal) pre_constant(false)operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(.)ident(has_children?) reserved(end) reserved(def) method(test_children) ident(assert_equal) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(children)operator(,) operator([)ident(mixins)operator(()symbol(:tree_2)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(]) ident(assert_equal) ident(mixins)operator(()symbol(:tree_2)operator(\))operator(.)ident(children)operator(,) operator([)ident(mixins)operator(()symbol(:tree_3)operator(\))operator(]) ident(assert_equal) ident(mixins)operator(()symbol(:tree_3)operator(\))operator(.)ident(children)operator(,) operator([)operator(]) ident(assert_equal) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(.)ident(children)operator(,) operator([)operator(]) reserved(end) reserved(def) method(test_has_parent) ident(assert_equal) pre_constant(false)operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(has_parent?) ident(assert_equal) pre_constant(true)operator(,) ident(mixins)operator(()symbol(:tree_2)operator(\))operator(.)ident(has_parent?) ident(assert_equal) pre_constant(true)operator(,) ident(mixins)operator(()symbol(:tree_3)operator(\))operator(.)ident(has_parent?) ident(assert_equal) pre_constant(true)operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(.)ident(has_parent?) reserved(end) reserved(def) method(test_parent) ident(assert_equal) ident(mixins)operator(()symbol(:tree_2)operator(\))operator(.)ident(parent)operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\)) ident(assert_equal) ident(mixins)operator(()symbol(:tree_2)operator(\))operator(.)ident(parent)operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(.)ident(parent) ident(assert_nil) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(parent) reserved(end) reserved(def) method(test_delete) ident(assert_equal) integer(6)operator(,) constant(TreeMixin)operator(.)ident(count) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(destroy) ident(assert_equal) integer(2)operator(,) constant(TreeMixin)operator(.)ident(count) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(.)ident(destroy) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(.)ident(destroy) ident(assert_equal) integer(0)operator(,) constant(TreeMixin)operator(.)ident(count) reserved(end) reserved(def) method(test_insert) instance_variable(@extra) operator(=) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(children)operator(.)ident(create) ident(assert) instance_variable(@extra) ident(assert_equal) instance_variable(@extra)operator(.)ident(parent)operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\)) ident(assert_equal) integer(3)operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(children)operator(.)ident(size) ident(assert) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(children)operator(.)ident(include?)operator(()instance_variable(@extra)operator(\)) ident(assert) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(children)operator(.)ident(include?)operator(()ident(mixins)operator(()symbol(:tree_2)operator(\))operator(\)) ident(assert) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(children)operator(.)ident(include?)operator(()ident(mixins)operator(()symbol(:tree_4)operator(\))operator(\)) reserved(end) reserved(def) method(test_ancestors) ident(assert_equal) operator([)operator(])operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(ancestors) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_1)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_2)operator(\))operator(.)ident(ancestors) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_2)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_3)operator(\))operator(.)ident(ancestors) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_1)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(.)ident(ancestors) ident(assert_equal) operator([)operator(])operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(.)ident(ancestors) ident(assert_equal) operator([)operator(])operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(.)ident(ancestors) reserved(end) reserved(def) method(test_root) ident(assert_equal) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) constant(TreeMixin)operator(.)ident(root) ident(assert_equal) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(root) ident(assert_equal) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_2)operator(\))operator(.)ident(root) ident(assert_equal) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_3)operator(\))operator(.)ident(root) ident(assert_equal) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(.)ident(root) ident(assert_equal) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(.)ident(root) ident(assert_equal) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(.)ident(root) reserved(end) reserved(def) method(test_roots) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(])operator(,) constant(TreeMixin)operator(.)ident(roots) reserved(end) reserved(def) method(test_siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_4)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_2)operator(\))operator(.)ident(siblings) ident(assert_equal) operator([)operator(])operator(,) ident(mixins)operator(()symbol(:tree_3)operator(\))operator(.)ident(siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_2)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(.)ident(siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(.)ident(siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(.)ident(siblings) reserved(end) reserved(def) method(test_self_and_siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(self_and_siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_2)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_2)operator(\))operator(.)ident(self_and_siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_3)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_3)operator(\))operator(.)ident(self_and_siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_2)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree_4)operator(\))operator(.)ident(self_and_siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(.)ident(self_and_siblings) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:tree_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree2_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(])operator(,) ident(mixins)operator(()symbol(:tree3_1)operator(\))operator(.)ident(self_and_siblings) reserved(end) reserved(end) reserved(class) class(TreeTestWithoutOrder) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:mixins) reserved(def) method(test_root) ident(assert) operator([)ident(mixins)operator(()symbol(:tree_without_order_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_without_order_2)operator(\))operator(])operator(.)ident(include?)operator(()constant(TreeMixinWithoutOrder)operator(.)ident(root)operator(\)) reserved(end) reserved(def) method(test_roots) ident(assert_equal) operator([)operator(])operator(,) operator([)ident(mixins)operator(()symbol(:tree_without_order_1)operator(\))operator(,) ident(mixins)operator(()symbol(:tree_without_order_2)operator(\))operator(]) operator(-) constant(TreeMixinWithoutOrder)operator(.)ident(roots) reserved(end) reserved(end) reserved(class) class(TouchTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:mixins) reserved(def) method(test_update) ident(stamped) operator(=) constant(Mixin)operator(.)ident(new) ident(assert_nil) ident(stamped)operator(.)ident(updated_at) ident(assert_nil) ident(stamped)operator(.)ident(created_at) ident(stamped)operator(.)ident(save) ident(assert_not_nil) ident(stamped)operator(.)ident(updated_at) ident(assert_not_nil) ident(stamped)operator(.)ident(created_at) reserved(end) reserved(def) method(test_create) instance_variable(@obj) operator(=) constant(Mixin)operator(.)ident(create) ident(assert_not_nil) instance_variable(@obj)operator(.)ident(updated_at) ident(assert_not_nil) instance_variable(@obj)operator(.)ident(created_at) reserved(end) reserved(def) method(test_many_updates) ident(stamped) operator(=) constant(Mixin)operator(.)ident(new) ident(assert_nil) ident(stamped)operator(.)ident(updated_at) ident(assert_nil) ident(stamped)operator(.)ident(created_at) ident(stamped)operator(.)ident(save) ident(assert_not_nil) ident(stamped)operator(.)ident(created_at) ident(assert_not_nil) ident(stamped)operator(.)ident(updated_at) ident(old_updated_at) operator(=) ident(stamped)operator(.)ident(updated_at) ident(sleep) integer(1) ident(stamped)operator(.)ident(save) ident(assert_not_equal) ident(stamped)operator(.)ident(created_at)operator(,) ident(stamped)operator(.)ident(updated_at) ident(assert_not_equal) ident(old_updated_at)operator(,) ident(stamped)operator(.)ident(updated_at) reserved(end) reserved(def) method(test_create_turned_off) constant(Mixin)operator(.)ident(record_timestamps) operator(=) pre_constant(false) ident(assert_nil) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(updated_at) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(save) ident(assert_nil) ident(mixins)operator(()symbol(:tree_1)operator(\))operator(.)ident(updated_at) constant(Mixin)operator(.)ident(record_timestamps) operator(=) pre_constant(true) reserved(end) reserved(end) reserved(class) class(ListSubTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:mixins) reserved(def) method(test_reordering) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(.)ident(move_lower) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(.)ident(move_higher) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(.)ident(move_to_bottom) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(.)ident(move_to_top) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(.)ident(move_to_bottom) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(.)ident(move_to_top) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_move_to_bottom_with_next_to_last_item) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(.)ident(move_to_bottom) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) reserved(end) reserved(def) method(test_next_prev) ident(assert_equal) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(.)ident(lower_item) ident(assert_nil) ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(.)ident(higher_item) ident(assert_equal) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(.)ident(higher_item) ident(assert_nil) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(.)ident(lower_item) reserved(end) reserved(def) method(test_injection) ident(item) operator(=) constant(ListMixin)operator(.)ident(new)operator(()stringoperator(=)operator(>)integer(1)operator(\)) ident(assert_equal) stringoperator(,) ident(item)operator(.)ident(scope_condition) ident(assert_equal) stringoperator(,) ident(item)operator(.)ident(position_column) reserved(end) reserved(def) method(test_insert_at) ident(new) operator(=) constant(ListMixin)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(1)operator(,) ident(new)operator(.)ident(pos) ident(new) operator(=) constant(ListMixinSub1)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(2)operator(,) ident(new)operator(.)ident(pos) ident(new) operator(=) constant(ListMixinSub2)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(3)operator(,) ident(new)operator(.)ident(pos) ident(new4) operator(=) constant(ListMixin)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(4)operator(,) ident(new4)operator(.)ident(pos) ident(new4)operator(.)ident(insert_at)operator(()integer(3)operator(\)) ident(assert_equal) integer(3)operator(,) ident(new4)operator(.)ident(pos) ident(new)operator(.)ident(reload) ident(assert_equal) integer(4)operator(,) ident(new)operator(.)ident(pos) ident(new)operator(.)ident(insert_at)operator(()integer(2)operator(\)) ident(assert_equal) integer(2)operator(,) ident(new)operator(.)ident(pos) ident(new4)operator(.)ident(reload) ident(assert_equal) integer(4)operator(,) ident(new4)operator(.)ident(pos) ident(new5) operator(=) constant(ListMixinSub1)operator(.)ident(create)operator(()string operator(=)operator(>) integer(20)operator(\)) ident(assert_equal) integer(5)operator(,) ident(new5)operator(.)ident(pos) ident(new5)operator(.)ident(insert_at)operator(()integer(1)operator(\)) ident(assert_equal) integer(1)operator(,) ident(new5)operator(.)ident(pos) ident(new4)operator(.)ident(reload) ident(assert_equal) integer(5)operator(,) ident(new4)operator(.)ident(pos) reserved(end) reserved(def) method(test_delete_middle) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(mixins)operator(()symbol(:list_sub_2)operator(\))operator(.)ident(destroy) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_1)operator(,) symbol(:reload)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(,) symbol(:reload)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(,) symbol(:reload)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(.)ident(pos) ident(assert_equal) integer(2)operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(.)ident(pos) ident(assert_equal) integer(3)operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(.)ident(pos) ident(mixins)operator(()symbol(:list_sub_1)operator(\))operator(.)ident(destroy) ident(assert_equal) operator([)ident(mixins)operator(()symbol(:list_sub_3)operator(,) symbol(:reload)operator(\))operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(,) symbol(:reload)operator(\))operator(])operator(,) constant(ListMixin)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:conditions) operator(=)operator(>) stringoperator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_equal) integer(1)operator(,) ident(mixins)operator(()symbol(:list_sub_3)operator(\))operator(.)ident(pos) ident(assert_equal) integer(2)operator(,) ident(mixins)operator(()symbol(:list_sub_4)operator(\))operator(.)ident(pos) reserved(end) reserved(end) ident(require) string ident(require) string reserved(class) class(ModulesTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:accounts)operator(,) symbol(:companies)operator(,) symbol(:projects)operator(,) symbol(:developers) reserved(def) method(test_module_spanning_associations) ident(assert) constant(MyApplication)operator(::)constant(Business)operator(::)constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\))operator(.)ident(has_clients?)operator(,) string ident(firm) operator(=) constant(MyApplication)operator(::)constant(Business)operator(::)constant(Firm)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(assert_nil) ident(firm)operator(.)ident(class)operator(.)ident(table_name)operator(.)ident(match)operator(()stringoperator(\))operator(,) string ident(assert_equal) integer(2)operator(,) ident(firm)operator(.)ident(clients_count)operator(,) string reserved(end) reserved(def) method(test_module_spanning_has_and_belongs_to_many_associations) ident(project) operator(=) constant(MyApplication)operator(::)constant(Business)operator(::)constant(Project)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(project)operator(.)ident(developers) operator(<<) constant(MyApplication)operator(::)constant(Business)operator(::)constant(Developer)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) stringoperator(,) ident(project)operator(.)ident(developers)operator(.)ident(last)operator(.)ident(name) reserved(end) reserved(def) method(test_associations_spanning_cross_modules) ident(account) operator(=) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Account)operator(.)ident(find)operator(()symbol(:first)operator(,) symbol(:order) operator(=)operator(>) stringoperator(\)) ident(assert_kind_of) constant(MyApplication)operator(::)constant(Business)operator(::)constant(Firm)operator(,) ident(account)operator(.)ident(firm) ident(assert_kind_of) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Firm)operator(,) ident(account)operator(.)ident(qualified_billing_firm) ident(assert_kind_of) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Firm)operator(,) ident(account)operator(.)ident(unqualified_billing_firm) ident(assert_kind_of) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Nested)operator(::)constant(Firm)operator(,) ident(account)operator(.)ident(nested_qualified_billing_firm) ident(assert_kind_of) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Nested)operator(::)constant(Firm)operator(,) ident(account)operator(.)ident(nested_unqualified_billing_firm) reserved(end) reserved(end) ident(require) string ident(require) string comment(# So we can test whether Course.connection survives a reload.) ident(require_dependency) string reserved(class) class(MultipleDbTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) reserved(def) method(setup) instance_variable(@courses) operator(=) ident(create_fixtures)operator(()stringoperator(\)) operator({) constant(Course)operator(.)ident(retrieve_connection) operator(}) instance_variable(@entrants) operator(=) ident(create_fixtures)operator(()stringoperator(\)) reserved(end) reserved(def) method(test_connected) ident(assert_not_nil) constant(Entrant)operator(.)ident(connection) ident(assert_not_nil) constant(Course)operator(.)ident(connection) reserved(end) reserved(def) method(test_proper_connection) ident(assert_not_equal)operator(()constant(Entrant)operator(.)ident(connection)operator(,) constant(Course)operator(.)ident(connection)operator(\)) ident(assert_equal)operator(()constant(Entrant)operator(.)ident(connection)operator(,) constant(Entrant)operator(.)ident(retrieve_connection)operator(\)) ident(assert_equal)operator(()constant(Course)operator(.)ident(connection)operator(,) constant(Course)operator(.)ident(retrieve_connection)operator(\)) ident(assert_equal)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(,) constant(Entrant)operator(.)ident(connection)operator(\)) reserved(end) reserved(def) method(test_find) ident(c1) operator(=) constant(Course)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) stringoperator(,) ident(c1)operator(.)ident(name) ident(c2) operator(=) constant(Course)operator(.)ident(find)operator(()integer(2)operator(\)) ident(assert_equal) stringoperator(,) ident(c2)operator(.)ident(name) ident(e1) operator(=) constant(Entrant)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) stringoperator(,) ident(e1)operator(.)ident(name) ident(e2) operator(=) constant(Entrant)operator(.)ident(find)operator(()integer(2)operator(\)) ident(assert_equal) stringoperator(,) ident(e2)operator(.)ident(name) ident(e3) operator(=) constant(Entrant)operator(.)ident(find)operator(()integer(3)operator(\)) ident(assert_equal) stringoperator(,) ident(e3)operator(.)ident(name) reserved(end) reserved(def) method(test_associations) ident(c1) operator(=) constant(Course)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) integer(2)operator(,) ident(c1)operator(.)ident(entrants_count) ident(e1) operator(=) constant(Entrant)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) ident(e1)operator(.)ident(course)operator(.)ident(id)operator(,) ident(c1)operator(.)ident(id) ident(c2) operator(=) constant(Course)operator(.)ident(find)operator(()integer(2)operator(\)) ident(assert_equal) integer(1)operator(,) ident(c2)operator(.)ident(entrants_count) ident(e3) operator(=) constant(Entrant)operator(.)ident(find)operator(()integer(3)operator(\)) ident(assert_equal) ident(e3)operator(.)ident(course)operator(.)ident(id)operator(,) ident(c2)operator(.)ident(id) reserved(end) reserved(def) method(test_course_connection_should_survive_dependency_reload) ident(assert) constant(Course)operator(.)ident(connection) constant(Dependencies)operator(.)ident(clear) constant(Object)operator(.)ident(send)operator(()symbol(:remove_const)operator(,) symbol(:Course)operator(\)) ident(require_dependency) string ident(assert) constant(Course)operator(.)ident(connection) reserved(end) reserved(end) ident(require) stringcontent(/abstract_unit)delimiter(")> ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(PrimaryKeysTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:topics)operator(,) symbol(:subscribers)operator(,) symbol(:movies) reserved(def) method(test_integer_key) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal)operator(()ident(topics)operator(()symbol(:first)operator(\))operator(.)ident(author_name)operator(,) ident(topic)operator(.)ident(author_name)operator(\)) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\)) ident(assert_equal)operator(()ident(topics)operator(()symbol(:second)operator(\))operator(.)ident(author_name)operator(,) ident(topic)operator(.)ident(author_name)operator(\)) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(topic)operator(.)ident(title) operator(=) string ident(assert_equal)operator(()pre_constant(nil)operator(,) ident(topic)operator(.)ident(id)operator(\)) ident(assert_nothing_raised) operator({) ident(topic)operator(.)ident(save!) operator(}) ident(id) operator(=) ident(topic)operator(.)ident(id) ident(topicReloaded) operator(=) constant(Topic)operator(.)ident(find)operator(()ident(id)operator(\)) ident(assert_equal)operator(()stringoperator(,) ident(topicReloaded)operator(.)ident(title)operator(\)) reserved(end) reserved(def) method(test_customized_primary_key_auto_assigns_on_save) constant(Keyboard)operator(.)ident(delete_all) ident(keyboard) operator(=) constant(Keyboard)operator(.)ident(new)operator(()symbol(:name) operator(=)operator(>) stringoperator(\)) ident(assert_nothing_raised) operator({) ident(keyboard)operator(.)ident(save!) operator(}) ident(assert_equal) ident(keyboard)operator(.)ident(id)operator(,) constant(Keyboard)operator(.)ident(find_by_name)operator(()stringoperator(\))operator(.)ident(id) reserved(end) reserved(def) method(test_customized_primary_key_can_be_get_before_saving) ident(keyboard) operator(=) constant(Keyboard)operator(.)ident(new) ident(assert_nil) ident(keyboard)operator(.)ident(id) ident(assert_nothing_raised) operator({) ident(assert_nil) ident(keyboard)operator(.)ident(key_number) operator(}) reserved(end) reserved(def) method(test_customized_string_primary_key_settable_before_save) ident(subscriber) operator(=) constant(Subscriber)operator(.)ident(new) ident(assert_nothing_raised) operator({) ident(subscriber)operator(.)ident(id) operator(=) string operator(}) ident(assert_equal) stringoperator(,) ident(subscriber)operator(.)ident(id) ident(assert_equal) stringoperator(,) ident(subscriber)operator(.)ident(nick) reserved(end) reserved(def) method(test_string_key) ident(subscriber) operator(=) constant(Subscriber)operator(.)ident(find)operator(()ident(subscribers)operator(()symbol(:first)operator(\))operator(.)ident(nick)operator(\)) ident(assert_equal)operator(()ident(subscribers)operator(()symbol(:first)operator(\))operator(.)ident(name)operator(,) ident(subscriber)operator(.)ident(name)operator(\)) ident(subscriber) operator(=) constant(Subscriber)operator(.)ident(find)operator(()ident(subscribers)operator(()symbol(:second)operator(\))operator(.)ident(nick)operator(\)) ident(assert_equal)operator(()ident(subscribers)operator(()symbol(:second)operator(\))operator(.)ident(name)operator(,) ident(subscriber)operator(.)ident(name)operator(\)) ident(subscriber) operator(=) constant(Subscriber)operator(.)ident(new) ident(subscriber)operator(.)ident(id) operator(=) string ident(assert_equal)operator(()stringoperator(,) ident(subscriber)operator(.)ident(id)operator(\)) ident(subscriber)operator(.)ident(name) operator(=) string ident(assert_nothing_raised) operator({) ident(subscriber)operator(.)ident(save!) operator(}) ident(assert_equal)operator(()stringoperator(,) ident(subscriber)operator(.)ident(id)operator(\)) ident(subscriberReloaded) operator(=) constant(Subscriber)operator(.)ident(find)operator(()stringoperator(\)) ident(assert_equal)operator(()stringoperator(,) ident(subscriberReloaded)operator(.)ident(name)operator(\)) reserved(end) reserved(def) method(test_find_with_more_than_one_string_key) ident(assert_equal) integer(2)operator(,) constant(Subscriber)operator(.)ident(find)operator(()ident(subscribers)operator(()symbol(:first)operator(\))operator(.)ident(nick)operator(,) ident(subscribers)operator(()symbol(:second)operator(\))operator(.)ident(nick)operator(\))operator(.)ident(length) reserved(end) reserved(def) method(test_primary_key_prefix) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(primary_key_prefix_type) operator(=) symbol(:table_name) constant(Topic)operator(.)ident(reset_primary_key) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(primary_key) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(primary_key_prefix_type) operator(=) symbol(:table_name_with_underscore) constant(Topic)operator(.)ident(reset_primary_key) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(primary_key) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(primary_key_prefix_type) operator(=) pre_constant(nil) constant(Topic)operator(.)ident(reset_primary_key) ident(assert_equal) stringoperator(,) constant(Topic)operator(.)ident(primary_key) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string comment(# Dummy class methods to test implicit association scoping.) reserved(def) constant(Comment)operator(.)method(foo)operator(()operator(\)) ident(find) symbol(:first) reserved(end) reserved(def) constant(Project)operator(.)method(foo)operator(()operator(\)) ident(find) symbol(:first) reserved(end) reserved(class) class(ReadOnlyTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:posts)operator(,) symbol(:comments)operator(,) symbol(:developers)operator(,) symbol(:projects)operator(,) symbol(:developers_projects) reserved(def) method(test_cant_save_readonly_record) ident(dev) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)ident(dev)operator(.)ident(readonly?) ident(dev)operator(.)ident(readonly!) ident(assert) ident(dev)operator(.)ident(readonly?) ident(assert_nothing_raised) reserved(do) ident(dev)operator(.)ident(name) operator(=) string ident(assert) operator(!)ident(dev)operator(.)ident(save) ident(dev)operator(.)ident(name) operator(=) string reserved(end) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(ReadOnlyRecord)operator(\)) operator({) ident(dev)operator(.)ident(save) operator(}) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(ReadOnlyRecord)operator(\)) operator({) ident(dev)operator(.)ident(save!) operator(}) reserved(end) reserved(def) method(test_find_with_readonly_option) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(each) operator({) operator(|)ident(d)operator(|) ident(assert) operator(!)ident(d)operator(.)ident(readonly?) operator(}) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(false)operator(\))operator(.)ident(each) operator({) operator(|)ident(d)operator(|) ident(assert) operator(!)ident(d)operator(.)ident(readonly?) operator(}) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(true)operator(\))operator(.)ident(each) operator({) operator(|)ident(d)operator(|) ident(assert) ident(d)operator(.)ident(readonly?) operator(}) reserved(end) reserved(def) method(test_find_with_joins_option_implies_readonly) comment(# Blank joins don't count.) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:joins) operator(=)operator(>) stringoperator(\))operator(.)ident(each) operator({) operator(|)ident(d)operator(|) ident(assert) operator(!)ident(d)operator(.)ident(readonly?) operator(}) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:joins) operator(=)operator(>) stringoperator(,) symbol(:readonly) operator(=)operator(>) pre_constant(false)operator(\))operator(.)ident(each) operator({) operator(|)ident(d)operator(|) ident(assert) operator(!)ident(d)operator(.)ident(readonly?) operator(}) comment(# Others do.) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:joins) operator(=)operator(>) stringoperator(\))operator(.)ident(each) operator({) operator(|)ident(d)operator(|) ident(assert) ident(d)operator(.)ident(readonly?) operator(}) constant(Developer)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:joins) operator(=)operator(>) stringoperator(,) symbol(:readonly) operator(=)operator(>) pre_constant(false)operator(\))operator(.)ident(each) operator({) operator(|)ident(d)operator(|) ident(assert) operator(!)ident(d)operator(.)ident(readonly?) operator(}) reserved(end) reserved(def) method(test_habtm_find_readonly) ident(dev) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)ident(dev)operator(.)ident(projects)operator(.)ident(empty?) ident(assert) ident(dev)operator(.)ident(projects)operator(.)ident(all?)operator(()operator(&)symbol(:readonly?)operator(\)) ident(assert) ident(dev)operator(.)ident(projects)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(all?)operator(()operator(&)symbol(:readonly?)operator(\)) ident(assert) ident(dev)operator(.)ident(projects)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(true)operator(\))operator(.)ident(all?)operator(()operator(&)symbol(:readonly?)operator(\)) reserved(end) reserved(def) method(test_has_many_find_readonly) ident(post) operator(=) constant(Post)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert) operator(!)ident(post)operator(.)ident(comments)operator(.)ident(empty?) ident(assert) operator(!)ident(post)operator(.)ident(comments)operator(.)ident(any?)operator(()operator(&)symbol(:readonly?)operator(\)) ident(assert) operator(!)ident(post)operator(.)ident(comments)operator(.)ident(find)operator(()symbol(:all)operator(\))operator(.)ident(any?)operator(()operator(&)symbol(:readonly?)operator(\)) ident(assert) ident(post)operator(.)ident(comments)operator(.)ident(find)operator(()symbol(:all)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(true)operator(\))operator(.)ident(all?)operator(()operator(&)symbol(:readonly?)operator(\)) reserved(end) reserved(def) method(test_has_many_with_through_is_not_implicitly_marked_readonly) ident(assert) ident(people) operator(=) constant(Post)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(people) ident(assert) operator(!)ident(people)operator(.)ident(any?)operator(()operator(&)symbol(:readonly?)operator(\)) reserved(end) reserved(def) method(test_readonly_scoping) constant(Post)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:conditions) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert) operator(!)constant(Post)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(readonly?) ident(assert) constant(Post)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(true)operator(\))operator(.)ident(readonly?) ident(assert) operator(!)constant(Post)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(false)operator(\))operator(.)ident(readonly?) reserved(end) constant(Post)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:joins) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert) operator(!)constant(Post)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(readonly?) ident(assert) constant(Post)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(true)operator(\))operator(.)ident(readonly?) ident(assert) operator(!)constant(Post)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(false)operator(\))operator(.)ident(readonly?) reserved(end) comment(# Oracle barfs on this because the join includes unqualified and) comment(# conflicting column names) reserved(unless) ident(current_adapter?)operator(()symbol(:OracleAdapter)operator(\)) constant(Post)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:joins) operator(=)operator(>) string operator(})operator(\)) reserved(do) ident(assert) constant(Post)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(readonly?) ident(assert) constant(Post)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(true)operator(\))operator(.)ident(readonly?) ident(assert) operator(!)constant(Post)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(false)operator(\))operator(.)ident(readonly?) reserved(end) reserved(end) constant(Post)operator(.)ident(with_scope)operator(()symbol(:find) operator(=)operator(>) operator({) symbol(:readonly) operator(=)operator(>) pre_constant(true) operator(})operator(\)) reserved(do) ident(assert) constant(Post)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(readonly?) ident(assert) constant(Post)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(true)operator(\))operator(.)ident(readonly?) ident(assert) operator(!)constant(Post)operator(.)ident(find)operator(()integer(1)operator(,) symbol(:readonly) operator(=)operator(>) pre_constant(false)operator(\))operator(.)ident(readonly?) reserved(end) reserved(end) reserved(def) method(test_association_collection_method_missing_scoping_not_readonly) ident(assert) operator(!)constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(projects)operator(.)ident(foo)operator(.)ident(readonly?) ident(assert) operator(!)constant(Post)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(comments)operator(.)ident(foo)operator(.)ident(readonly?) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string reserved(class) class(ReflectionTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:topics)operator(,) symbol(:customers)operator(,) symbol(:companies)operator(,) symbol(:subscribers) reserved(def) method(setup) instance_variable(@first) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\)) reserved(end) reserved(def) method(test_column_null_not_null) ident(subscriber) operator(=) constant(Subscriber)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(assert) ident(subscriber)operator(.)ident(column_for_attribute)operator(()stringoperator(\))operator(.)ident(null) ident(assert) operator(!)ident(subscriber)operator(.)ident(column_for_attribute)operator(()stringoperator(\))operator(.)ident(null) reserved(end) reserved(def) method(test_read_attribute_names) ident(assert_equal)operator(() stringoperator(.)ident(sort)operator(,) instance_variable(@first)operator(.)ident(attribute_names) operator(\)) reserved(end) reserved(def) method(test_columns) ident(assert_equal) integer(12)operator(,) constant(Topic)operator(.)ident(columns)operator(.)ident(length) reserved(end) reserved(def) method(test_columns_are_returned_in_the_order_they_were_declared) ident(column_names) operator(=) constant(Topic)operator(.)ident(columns)operator(.)ident(map) operator({) operator(|)ident(column)operator(|) ident(column)operator(.)ident(name) operator(}) ident(assert_equal) stringoperator(,) ident(column_names) reserved(end) reserved(def) method(test_content_columns) ident(content_columns) operator(=) constant(Topic)operator(.)ident(content_columns) ident(content_column_names) operator(=) ident(content_columns)operator(.)ident(map) operator({)operator(|)ident(column)operator(|) ident(column)operator(.)ident(name)operator(}) ident(assert_equal) integer(8)operator(,) ident(content_columns)operator(.)ident(length) ident(assert_equal) stringoperator(.)ident(sort)operator(,) ident(content_column_names)operator(.)ident(sort) reserved(end) reserved(def) method(test_column_string_type_and_limit) ident(assert_equal) symbol(:string)operator(,) instance_variable(@first)operator(.)ident(column_for_attribute)operator(()stringoperator(\))operator(.)ident(type) ident(assert_equal) integer(255)operator(,) instance_variable(@first)operator(.)ident(column_for_attribute)operator(()stringoperator(\))operator(.)ident(limit) reserved(end) reserved(def) method(test_human_name_for_column) ident(assert_equal) stringoperator(,) instance_variable(@first)operator(.)ident(column_for_attribute)operator(()stringoperator(\))operator(.)ident(human_name) reserved(end) reserved(def) method(test_integer_columns) ident(assert_equal) symbol(:integer)operator(,) instance_variable(@first)operator(.)ident(column_for_attribute)operator(()stringoperator(\))operator(.)ident(type) reserved(end) reserved(def) method(test_aggregation_reflection) ident(reflection_for_address) operator(=) constant(ActiveRecord)operator(::)constant(Reflection)operator(::)constant(AggregateReflection)operator(.)ident(new)operator(() symbol(:composed_of)operator(,) symbol(:address)operator(,) operator({) symbol(:mapping) operator(=)operator(>) operator([) stringoperator(,) stringoperator(,) string operator(]) operator(})operator(,) constant(Customer) operator(\)) ident(reflection_for_balance) operator(=) constant(ActiveRecord)operator(::)constant(Reflection)operator(::)constant(AggregateReflection)operator(.)ident(new)operator(() symbol(:composed_of)operator(,) symbol(:balance)operator(,) operator({) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:mapping) operator(=)operator(>) string operator(})operator(,) constant(Customer) operator(\)) ident(reflection_for_gps_location) operator(=) constant(ActiveRecord)operator(::)constant(Reflection)operator(::)constant(AggregateReflection)operator(.)ident(new)operator(() symbol(:composed_of)operator(,) symbol(:gps_location)operator(,) operator({) operator(})operator(,) constant(Customer) operator(\)) ident(assert) constant(Customer)operator(.)ident(reflect_on_all_aggregations)operator(.)ident(include?)operator(()ident(reflection_for_gps_location)operator(\)) ident(assert) constant(Customer)operator(.)ident(reflect_on_all_aggregations)operator(.)ident(include?)operator(()ident(reflection_for_balance)operator(\)) ident(assert) constant(Customer)operator(.)ident(reflect_on_all_aggregations)operator(.)ident(include?)operator(()ident(reflection_for_address)operator(\)) ident(assert_equal) ident(reflection_for_address)operator(,) constant(Customer)operator(.)ident(reflect_on_aggregation)operator(()symbol(:address)operator(\)) ident(assert_equal) constant(Address)operator(,) constant(Customer)operator(.)ident(reflect_on_aggregation)operator(()symbol(:address)operator(\))operator(.)ident(klass) ident(assert_equal) constant(Money)operator(,) constant(Customer)operator(.)ident(reflect_on_aggregation)operator(()symbol(:balance)operator(\))operator(.)ident(klass) reserved(end) reserved(def) method(test_has_many_reflection) ident(reflection_for_clients) operator(=) constant(ActiveRecord)operator(::)constant(Reflection)operator(::)constant(AssociationReflection)operator(.)ident(new)operator(()symbol(:has_many)operator(,) symbol(:clients)operator(,) operator({) symbol(:order) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy) operator(})operator(,) constant(Firm)operator(\)) ident(assert_equal) ident(reflection_for_clients)operator(,) constant(Firm)operator(.)ident(reflect_on_association)operator(()symbol(:clients)operator(\)) ident(assert_equal) constant(Client)operator(,) constant(Firm)operator(.)ident(reflect_on_association)operator(()symbol(:clients)operator(\))operator(.)ident(klass) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(reflect_on_association)operator(()symbol(:clients)operator(\))operator(.)ident(table_name) ident(assert_equal) constant(Client)operator(,) constant(Firm)operator(.)ident(reflect_on_association)operator(()symbol(:clients_of_firm)operator(\))operator(.)ident(klass) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(reflect_on_association)operator(()symbol(:clients_of_firm)operator(\))operator(.)ident(table_name) reserved(end) reserved(def) method(test_has_one_reflection) ident(reflection_for_account) operator(=) constant(ActiveRecord)operator(::)constant(Reflection)operator(::)constant(AssociationReflection)operator(.)ident(new)operator(()symbol(:has_one)operator(,) symbol(:account)operator(,) operator({) symbol(:foreign_key) operator(=)operator(>) stringoperator(,) symbol(:dependent) operator(=)operator(>) symbol(:destroy) operator(})operator(,) constant(Firm)operator(\)) ident(assert_equal) ident(reflection_for_account)operator(,) constant(Firm)operator(.)ident(reflect_on_association)operator(()symbol(:account)operator(\)) ident(assert_equal) constant(Account)operator(,) constant(Firm)operator(.)ident(reflect_on_association)operator(()symbol(:account)operator(\))operator(.)ident(klass) ident(assert_equal) stringoperator(,) constant(Firm)operator(.)ident(reflect_on_association)operator(()symbol(:account)operator(\))operator(.)ident(table_name) reserved(end) reserved(def) method(test_association_reflection_in_modules) ident(assert_reflection) constant(MyApplication)operator(::)constant(Business)operator(::)constant(Firm)operator(,) symbol(:clients_of_firm)operator(,) symbol(:klass) operator(=)operator(>) constant(MyApplication)operator(::)constant(Business)operator(::)constant(Client)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:table_name) operator(=)operator(>) string ident(assert_reflection) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Account)operator(,) symbol(:firm)operator(,) symbol(:klass) operator(=)operator(>) constant(MyApplication)operator(::)constant(Business)operator(::)constant(Firm)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:table_name) operator(=)operator(>) string ident(assert_reflection) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Account)operator(,) symbol(:qualified_billing_firm)operator(,) symbol(:klass) operator(=)operator(>) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Firm)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:table_name) operator(=)operator(>) string ident(assert_reflection) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Account)operator(,) symbol(:unqualified_billing_firm)operator(,) symbol(:klass) operator(=)operator(>) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Firm)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:table_name) operator(=)operator(>) string ident(assert_reflection) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Account)operator(,) symbol(:nested_qualified_billing_firm)operator(,) symbol(:klass) operator(=)operator(>) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Nested)operator(::)constant(Firm)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:table_name) operator(=)operator(>) string ident(assert_reflection) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Account)operator(,) symbol(:nested_unqualified_billing_firm)operator(,) symbol(:klass) operator(=)operator(>) constant(MyApplication)operator(::)constant(Billing)operator(::)constant(Nested)operator(::)constant(Firm)operator(,) symbol(:class_name) operator(=)operator(>) stringoperator(,) symbol(:table_name) operator(=)operator(>) string reserved(end) reserved(def) method(test_reflection_of_all_associations) ident(assert_equal) integer(13)operator(,) constant(Firm)operator(.)ident(reflect_on_all_associations)operator(.)ident(size) ident(assert_equal) integer(11)operator(,) constant(Firm)operator(.)ident(reflect_on_all_associations)operator(()symbol(:has_many)operator(\))operator(.)ident(size) ident(assert_equal) integer(2)operator(,) constant(Firm)operator(.)ident(reflect_on_all_associations)operator(()symbol(:has_one)operator(\))operator(.)ident(size) ident(assert_equal) integer(0)operator(,) constant(Firm)operator(.)ident(reflect_on_all_associations)operator(()symbol(:belongs_to)operator(\))operator(.)ident(size) reserved(end) ident(private) reserved(def) method(assert_reflection)operator(()ident(klass)operator(,) ident(association)operator(,) ident(options)operator(\)) ident(assert) ident(reflection) operator(=) ident(klass)operator(.)ident(reflect_on_association)operator(()ident(association)operator(\)) ident(options)operator(.)ident(each) reserved(do) operator(|)ident(method)operator(,) ident(value)operator(|) ident(assert_equal)operator(()ident(value)operator(,) ident(reflection)operator(.)ident(send)operator(()ident(method)operator(\))operator(\)) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) stringcontent(/../lib/active_record/schema_dumper)delimiter(")> ident(require) string reserved(if) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(.)ident(respond_to?)operator(()symbol(:tables)operator(\)) reserved(class) class(SchemaDumperTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_schema_dump) ident(stream) operator(=) constant(StringIO)operator(.)ident(new) constant(ActiveRecord)operator(::)constant(SchemaDumper)operator(.)ident(dump)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(,) ident(stream)operator(\)) ident(output) operator(=) ident(stream)operator(.)ident(string) ident(assert_match) regexpoperator(,) ident(output) ident(assert_match) regexpoperator(,) ident(output) ident(assert_no_match) regexpoperator(,) ident(output) reserved(end) reserved(def) method(test_schema_dump_includes_not_null_columns) ident(stream) operator(=) constant(StringIO)operator(.)ident(new) constant(ActiveRecord)operator(::)constant(SchemaDumper)operator(.)ident(ignore_tables) operator(=) operator([)regexpoperator(]) constant(ActiveRecord)operator(::)constant(SchemaDumper)operator(.)ident(dump)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(,) ident(stream)operator(\)) ident(output) operator(=) ident(stream)operator(.)ident(string) ident(assert_match) regexp false)delimiter(})>operator(,) ident(output) reserved(end) reserved(def) method(test_schema_dump_with_string_ignored_table) ident(stream) operator(=) constant(StringIO)operator(.)ident(new) constant(ActiveRecord)operator(::)constant(SchemaDumper)operator(.)ident(ignore_tables) operator(=) operator([)stringoperator(]) constant(ActiveRecord)operator(::)constant(SchemaDumper)operator(.)ident(dump)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(,) ident(stream)operator(\)) ident(output) operator(=) ident(stream)operator(.)ident(string) ident(assert_no_match) regexpoperator(,) ident(output) ident(assert_match) regexpoperator(,) ident(output) ident(assert_no_match) regexpoperator(,) ident(output) reserved(end) reserved(def) method(test_schema_dump_with_regexp_ignored_table) ident(stream) operator(=) constant(StringIO)operator(.)ident(new) constant(ActiveRecord)operator(::)constant(SchemaDumper)operator(.)ident(ignore_tables) operator(=) operator([)regexpoperator(]) constant(ActiveRecord)operator(::)constant(SchemaDumper)operator(.)ident(dump)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(,) ident(stream)operator(\)) ident(output) operator(=) ident(stream)operator(.)ident(string) ident(assert_no_match) regexpoperator(,) ident(output) ident(assert_match) regexpoperator(,) ident(output) ident(assert_no_match) regexpoperator(,) ident(output) reserved(end) reserved(def) method(test_schema_dump_illegal_ignored_table_value) ident(stream) operator(=) constant(StringIO)operator(.)ident(new) constant(ActiveRecord)operator(::)constant(SchemaDumper)operator(.)ident(ignore_tables) operator(=) operator([)integer(5)operator(]) ident(assert_raise)operator(()constant(StandardError)operator(\)) reserved(do) constant(ActiveRecord)operator(::)constant(SchemaDumper)operator(.)ident(dump)operator(()constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection)operator(,) ident(stream)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(class) class(SchemaTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) constant(SCHEMA_NAME) operator(=) string constant(TABLE_NAME) operator(=) string constant(COLUMNS) operator(=) operator([) stringoperator(,) stringoperator(,) string operator(]) reserved(def) method(setup) instance_variable(@connection) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) instance_variable(@connection)operator(.)ident(execute) stringcontent( CREATE TABLE )inlinecontent( ()inlineoperator(\))inline_delimiter(})>content(\))delimiter(")> reserved(end) reserved(def) method(teardown) instance_variable(@connection)operator(.)ident(execute) stringcontent( CASCADE)delimiter(")> reserved(end) reserved(def) method(test_with_schema_prefixed_table_name) ident(assert_nothing_raised) reserved(do) ident(assert_equal) constant(COLUMNS)operator(,) ident(columns)operator(()stringcontent(.)inlinedelimiter(")>operator(\)) reserved(end) reserved(end) reserved(def) method(test_with_schema_search_path) ident(assert_nothing_raised) reserved(do) ident(with_schema_search_path)operator(()constant(SCHEMA_NAME)operator(\)) reserved(do) ident(assert_equal) constant(COLUMNS)operator(,) ident(columns)operator(()constant(TABLE_NAME)operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(test_raise_on_unquoted_schema_name) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(\)) reserved(do) ident(with_schema_search_path) string reserved(end) reserved(end) reserved(def) method(test_without_schema_search_path) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(StatementInvalid)operator(\)) operator({) ident(columns)operator(()constant(TABLE_NAME)operator(\)) operator(}) reserved(end) reserved(def) method(test_ignore_nil_schema_search_path) ident(assert_nothing_raised) operator({) ident(with_schema_search_path) pre_constant(nil) operator(}) reserved(end) ident(private) reserved(def) method(columns)operator(()ident(table_name)operator(\)) instance_variable(@connection)operator(.)ident(send)operator(()symbol(:column_definitions)operator(,) ident(table_name)operator(\))operator(.)ident(map) reserved(do) operator(|)ident(name)operator(,) ident(type)operator(,) ident(default)operator(|) stringcontent( )inlinedelimiter(")> operator(+) operator(()ident(default) operator(?) stringdelimiter(")> operator(:) stringoperator(\)) reserved(end) reserved(end) reserved(def) method(with_schema_search_path)operator(()ident(schema_search_path)operator(\)) instance_variable(@connection)operator(.)ident(schema_search_path) operator(=) ident(schema_search_path) reserved(yield) reserved(if) ident(block_given?) reserved(ensure) instance_variable(@connection)operator(.)ident(schema_search_path) operator(=) string reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string comment(# confirm that synonyms work just like tables; in this case) comment(# the "subjects" table in Oracle (defined in oci.sql\) is just) comment(# a synonym to the "topics" table) reserved(class) class(TestOracleSynonym) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) reserved(def) method(test_oracle_synonym) ident(topic) operator(=) constant(Topic)operator(.)ident(new) ident(subject) operator(=) constant(Subject)operator(.)ident(new) ident(assert_equal)operator(()ident(topic)operator(.)ident(attributes)operator(,) ident(subject)operator(.)ident(attributes)operator(\)) reserved(end) reserved(end) ident(require) string ident(require) string reserved(class) class(ThreadedConnectionsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) ident(fixtures) symbol(:topics) reserved(def) method(setup) instance_variable(@connection) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(remove_connection) instance_variable(@connections) operator(=) operator([)operator(]) instance_variable(@allow_concurrency) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(allow_concurrency) reserved(end) reserved(def) method(teardown) comment(# clear the connection cache) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(send)operator(()symbol(:clear_all_cached_connections!)operator(\)) comment(# set allow_concurrency to saved value) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(allow_concurrency) operator(=) instance_variable(@allow_concurrency) comment(# reestablish old connection) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(()instance_variable(@connection)operator(\)) reserved(end) reserved(def) method(gather_connections)operator(()ident(use_threaded_connections)operator(\)) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(allow_concurrency) operator(=) ident(use_threaded_connections) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(()instance_variable(@connection)operator(\)) integer(5)operator(.)ident(times) reserved(do) constant(Thread)operator(.)ident(new) reserved(do) constant(Topic)operator(.)ident(find) symbol(:first) instance_variable(@connections) operator(<<) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(active_connections)operator(.)ident(values)operator(.)ident(first) reserved(end)operator(.)ident(join) reserved(end) reserved(end) reserved(def) method(test_threaded_connections) ident(gather_connections)operator(()pre_constant(true)operator(\)) ident(assert_equal) instance_variable(@connections)operator(.)ident(uniq)operator(.)ident(length)operator(,) integer(5) reserved(end) reserved(def) method(test_unthreaded_connections) ident(gather_connections)operator(()pre_constant(false)operator(\)) ident(assert_equal) instance_variable(@connections)operator(.)ident(uniq)operator(.)ident(length)operator(,) integer(1) reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string reserved(class) class(TransactionTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) ident(fixtures) symbol(:topics)operator(,) symbol(:developers) reserved(def) method(setup) comment(# sqlite does not seem to return these in the right order, so we sort them) comment(# explicitly for sqlite's sake. sqlite3 does fine.) instance_variable(@first)operator(,) instance_variable(@second) operator(=) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(,) integer(2)operator(\))operator(.)ident(sort_by) operator({) operator(|)ident(t)operator(|) ident(t)operator(.)ident(id) operator(}) reserved(end) reserved(def) method(test_successful) constant(Topic)operator(.)ident(transaction) reserved(do) instance_variable(@first)operator(.)ident(approved) operator(=) pre_constant(true) instance_variable(@second)operator(.)ident(approved) operator(=) pre_constant(false) instance_variable(@first)operator(.)ident(save) instance_variable(@second)operator(.)ident(save) reserved(end) ident(assert) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?)operator(,) string ident(assert) operator(!)constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(approved?)operator(,) string reserved(end) reserved(def) method(transaction_with_return) constant(Topic)operator(.)ident(transaction) reserved(do) instance_variable(@first)operator(.)ident(approved) operator(=) pre_constant(true) instance_variable(@second)operator(.)ident(approved) operator(=) pre_constant(false) instance_variable(@first)operator(.)ident(save) instance_variable(@second)operator(.)ident(save) reserved(return) reserved(end) reserved(end) reserved(def) method(test_successful_with_return) reserved(class) operator(<<) class(Topic)operator(.)ident(connection) reserved(alias) symbol(:real_commit_db_transaction) symbol(:commit_db_transaction) reserved(def) method(commit_db_transaction) global_variable($committed) operator(=) pre_constant(true) ident(real_commit_db_transaction) reserved(end) reserved(end) global_variable($committed) operator(=) pre_constant(false) ident(transaction_with_return) ident(assert) global_variable($committed) ident(assert) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?)operator(,) string ident(assert) operator(!)constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(approved?)operator(,) string reserved(ensure) reserved(class) operator(<<) class(Topic)operator(.)ident(connection) reserved(alias) symbol(:commit_db_transaction) symbol(:real_commit_db_transaction) reserved(rescue) pre_constant(nil) reserved(end) reserved(end) reserved(def) method(test_successful_with_instance_method) instance_variable(@first)operator(.)ident(transaction) reserved(do) instance_variable(@first)operator(.)ident(approved) operator(=) pre_constant(true) instance_variable(@second)operator(.)ident(approved) operator(=) pre_constant(false) instance_variable(@first)operator(.)ident(save) instance_variable(@second)operator(.)ident(save) reserved(end) ident(assert) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?)operator(,) string ident(assert) operator(!)constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(approved?)operator(,) string reserved(end) reserved(def) method(test_failing_on_exception) reserved(begin) constant(Topic)operator(.)ident(transaction) reserved(do) instance_variable(@first)operator(.)ident(approved) operator(=) pre_constant(true) instance_variable(@second)operator(.)ident(approved) operator(=) pre_constant(false) instance_variable(@first)operator(.)ident(save) instance_variable(@second)operator(.)ident(save) ident(raise) string reserved(end) reserved(rescue) comment(# caught it) reserved(end) ident(assert) instance_variable(@first)operator(.)ident(approved?)operator(,) string ident(assert) operator(!)instance_variable(@second)operator(.)ident(approved?)operator(,) string ident(assert) operator(!)constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?)operator(,) string ident(assert) constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(approved?)operator(,) string reserved(end) reserved(def) method(test_failing_with_object_rollback) ident(assert) operator(!)instance_variable(@first)operator(.)ident(approved?)operator(,) string reserved(begin) constant(Topic)operator(.)ident(transaction)operator(()instance_variable(@first)operator(,) instance_variable(@second)operator(\)) reserved(do) instance_variable(@first)operator(.)ident(approved) operator(=) pre_constant(true) instance_variable(@second)operator(.)ident(approved) operator(=) pre_constant(false) instance_variable(@first)operator(.)ident(save) instance_variable(@second)operator(.)ident(save) ident(raise) string reserved(end) reserved(rescue) comment(# caught it) reserved(end) ident(assert) operator(!)instance_variable(@first)operator(.)ident(approved?)operator(,) string ident(assert) instance_variable(@second)operator(.)ident(approved?)operator(,) string reserved(end) reserved(def) method(test_callback_rollback_in_save) ident(add_exception_raising_after_save_callback_to_topic) reserved(begin) instance_variable(@first)operator(.)ident(approved) operator(=) pre_constant(true) instance_variable(@first)operator(.)ident(save) ident(flunk) reserved(rescue) operator(=)operator(>) ident(e) ident(assert_equal) stringoperator(,) ident(e)operator(.)ident(message) ident(assert) operator(!)constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?) reserved(ensure) ident(remove_exception_raising_after_save_callback_to_topic) reserved(end) reserved(end) reserved(def) method(test_nested_explicit_transactions) constant(Topic)operator(.)ident(transaction) reserved(do) constant(Topic)operator(.)ident(transaction) reserved(do) instance_variable(@first)operator(.)ident(approved) operator(=) pre_constant(true) instance_variable(@second)operator(.)ident(approved) operator(=) pre_constant(false) instance_variable(@first)operator(.)ident(save) instance_variable(@second)operator(.)ident(save) reserved(end) reserved(end) ident(assert) constant(Topic)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(approved?)operator(,) string ident(assert) operator(!)constant(Topic)operator(.)ident(find)operator(()integer(2)operator(\))operator(.)ident(approved?)operator(,) string reserved(end) comment(# This will cause transactions to overlap and fail unless they are) comment(# performed on separate database connections.) reserved(def) method(test_transaction_per_thread) ident(assert_nothing_raised) reserved(do) ident(threads) operator(=) operator(()integer(1)operator(..)integer(20)operator(\))operator(.)ident(map) reserved(do) constant(Thread)operator(.)ident(new) reserved(do) constant(Topic)operator(.)ident(transaction) reserved(do) ident(topic) operator(=) constant(Topic)operator(.)ident(find)operator(()symbol(:first)operator(\)) ident(topic)operator(.)ident(approved) operator(=) operator(!)ident(topic)operator(.)ident(approved?) ident(topic)operator(.)ident(save!) ident(topic)operator(.)ident(approved) operator(=) operator(!)ident(topic)operator(.)ident(approved?) ident(topic)operator(.)ident(save!) reserved(end) reserved(end) reserved(end) ident(threads)operator(.)ident(each) operator({) operator(|)ident(t)operator(|) ident(t)operator(.)ident(join) operator(}) reserved(end) reserved(end) comment(# Test for dirty reads among simultaneous transactions.) reserved(def) method(test_transaction_isolation__read_committed) comment(# Should be invariant.) ident(original_salary) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(salary) ident(temporary_salary) operator(=) integer(200000) ident(assert_nothing_raised) reserved(do) ident(threads) operator(=) operator(()integer(1)operator(..)integer(20)operator(\))operator(.)ident(map) reserved(do) constant(Thread)operator(.)ident(new) reserved(do) constant(Developer)operator(.)ident(transaction) reserved(do) comment(# Expect original salary.) ident(dev) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) ident(original_salary)operator(,) ident(dev)operator(.)ident(salary) ident(dev)operator(.)ident(salary) operator(=) ident(temporary_salary) ident(dev)operator(.)ident(save!) comment(# Expect temporary salary.) ident(dev) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) ident(temporary_salary)operator(,) ident(dev)operator(.)ident(salary) ident(dev)operator(.)ident(salary) operator(=) ident(original_salary) ident(dev)operator(.)ident(save!) comment(# Expect original salary.) ident(dev) operator(=) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\)) ident(assert_equal) ident(original_salary)operator(,) ident(dev)operator(.)ident(salary) reserved(end) reserved(end) reserved(end) comment(# Keep our eyes peeled.) ident(threads) operator(<<) constant(Thread)operator(.)ident(new) reserved(do) integer(10)operator(.)ident(times) reserved(do) ident(sleep) float(0.05) constant(Developer)operator(.)ident(transaction) reserved(do) comment(# Always expect original salary.) ident(assert_equal) ident(original_salary)operator(,) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(salary) reserved(end) reserved(end) reserved(end) ident(threads)operator(.)ident(each) operator({) operator(|)ident(t)operator(|) ident(t)operator(.)ident(join) operator(}) reserved(end) ident(assert_equal) ident(original_salary)operator(,) constant(Developer)operator(.)ident(find)operator(()integer(1)operator(\))operator(.)ident(salary) reserved(end) ident(private) reserved(def) method(add_exception_raising_after_save_callback_to_topic) constant(Topic)operator(.)ident(class_eval) operator({) reserved(def) method(after_save)operator(()operator(\)) ident(raise) string reserved(end) operator(}) reserved(end) reserved(def) method(remove_exception_raising_after_save_callback_to_topic) constant(Topic)operator(.)ident(class_eval) operator({) ident(remove_method) symbol(:after_save) operator(}) reserved(end) reserved(end) ident(require) string reserved(class) class(TestRecord) operator(<) constant(ActiveRecord)operator(::)constant(Base) reserved(end) reserved(class) class(TestUnconnectedAdaptor) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) pre_constant(self)operator(.)ident(use_transactional_fixtures) operator(=) pre_constant(false) reserved(def) method(setup) instance_variable(@underlying) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(connection) instance_variable(@specification) operator(=) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(remove_connection) reserved(end) reserved(def) method(teardown) instance_variable(@underlying) operator(=) pre_constant(nil) constant(ActiveRecord)operator(::)constant(Base)operator(.)ident(establish_connection)operator(()instance_variable(@specification)operator(\)) reserved(end) reserved(def) method(test_connection_no_longer_established) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(ConnectionNotEstablished)operator(\)) reserved(do) constant(TestRecord)operator(.)ident(find)operator(()integer(1)operator(\)) reserved(end) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(ConnectionNotEstablished)operator(\)) reserved(do) constant(TestRecord)operator(.)ident(new)operator(.)ident(save) reserved(end) reserved(end) reserved(def) method(test_underlying_adapter_no_longer_active) ident(assert) operator(!)instance_variable(@underlying)operator(.)ident(active?)operator(,) string reserved(end) reserved(end) ident(require) string ident(require) string ident(require) string ident(require) string comment(# The following methods in Topic are used in test_conditional_validation_*) reserved(class) class(Topic) reserved(def) method(condition_is_true) reserved(return) pre_constant(true) reserved(end) reserved(def) method(condition_is_true_but_its_not) reserved(return) pre_constant(false) reserved(end) reserved(end) reserved(class) class(ValidationsTest) operator(<) constant(Test)operator(::)constant(Unit)operator(::)constant(TestCase) ident(fixtures) symbol(:topics)operator(,) symbol(:developers) reserved(def) method(setup) constant(Topic)operator(.)ident(write_inheritable_attribute)operator(()symbol(:validate)operator(,) pre_constant(nil)operator(\)) constant(Topic)operator(.)ident(write_inheritable_attribute)operator(()symbol(:validate_on_create)operator(,) pre_constant(nil)operator(\)) constant(Topic)operator(.)ident(write_inheritable_attribute)operator(()symbol(:validate_on_update)operator(,) pre_constant(nil)operator(\)) reserved(end) reserved(def) method(test_single_field_validation) ident(r) operator(=) constant(Reply)operator(.)ident(new) ident(r)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(r)operator(.)ident(save)operator(,) string ident(r)operator(.)ident(content) operator(=) string ident(assert) ident(r)operator(.)ident(save)operator(,) string reserved(end) reserved(def) method(test_single_attr_validation_and_error_msg) ident(r) operator(=) constant(Reply)operator(.)ident(new) ident(r)operator(.)ident(title) operator(=) string ident(r)operator(.)ident(save) ident(assert) ident(r)operator(.)ident(errors)operator(.)ident(invalid?)operator(()stringoperator(\))operator(,) string ident(assert_equal) stringoperator(,) ident(r)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\))operator(,) string ident(assert_equal) integer(1)operator(,) ident(r)operator(.)ident(errors)operator(.)ident(count) reserved(end) reserved(def) method(test_double_attr_validation_and_error_msg) ident(r) operator(=) constant(Reply)operator(.)ident(new) ident(assert) operator(!)ident(r)operator(.)ident(save) ident(assert) ident(r)operator(.)ident(errors)operator(.)ident(invalid?)operator(()stringoperator(\))operator(,) string ident(assert_equal) stringoperator(,) ident(r)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\))operator(,) string ident(assert) ident(r)operator(.)ident(errors)operator(.)ident(invalid?)operator(()stringoperator(\))operator(,) string ident(assert_equal) stringoperator(,) ident(r)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\))operator(,) string ident(assert_equal) integer(2)operator(,) ident(r)operator(.)ident(errors)operator(.)ident(count) reserved(end) reserved(def) method(test_error_on_create) ident(r) operator(=) constant(Reply)operator(.)ident(new) ident(r)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(r)operator(.)ident(save) ident(assert) ident(r)operator(.)ident(errors)operator(.)ident(invalid?)operator(()stringoperator(\))operator(,) string ident(assert_equal) stringoperator(,) ident(r)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\))operator(,) string reserved(end) reserved(def) method(test_error_on_update) ident(r) operator(=) constant(Reply)operator(.)ident(new) ident(r)operator(.)ident(title) operator(=) string ident(r)operator(.)ident(content) operator(=) string ident(assert) ident(r)operator(.)ident(save)operator(,) string ident(r)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(r)operator(.)ident(save)operator(,) string ident(assert) ident(r)operator(.)ident(errors)operator(.)ident(invalid?)operator(()stringoperator(\))operator(,) string ident(assert_equal) stringoperator(,) ident(r)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\))operator(,) string reserved(end) reserved(def) method(test_invalid_record_exception) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordInvalid)operator(\)) operator({) constant(Reply)operator(.)ident(create!) operator(}) ident(assert_raises)operator(()constant(ActiveRecord)operator(::)constant(RecordInvalid)operator(\)) operator({) constant(Reply)operator(.)ident(new)operator(.)ident(save!) operator(}) reserved(begin) ident(r) operator(=) constant(Reply)operator(.)ident(new) ident(r)operator(.)ident(save!) ident(flunk) reserved(rescue) constant(ActiveRecord)operator(::)constant(RecordInvalid) operator(=)operator(>) ident(invalid) ident(assert_equal) ident(r)operator(,) ident(invalid)operator(.)ident(record) reserved(end) reserved(end) reserved(def) method(test_single_error_per_attr_iteration) ident(r) operator(=) constant(Reply)operator(.)ident(new) ident(r)operator(.)ident(save) ident(errors) operator(=) operator([)operator(]) ident(r)operator(.)ident(errors)operator(.)ident(each) operator({) operator(|)ident(attr)operator(,) ident(msg)operator(|) ident(errors) operator(<<) operator([)ident(attr)operator(,) ident(msg)operator(]) operator(}) ident(assert) ident(errors)operator(.)ident(include?)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) ident(assert) ident(errors)operator(.)ident(include?)operator(()operator([)stringoperator(,) stringoperator(])operator(\)) reserved(end) reserved(def) method(test_multiple_errors_per_attr_iteration_with_full_error_composition) ident(r) operator(=) constant(Reply)operator(.)ident(new) ident(r)operator(.)ident(title) operator(=) string ident(r)operator(.)ident(content) operator(=) string ident(r)operator(.)ident(save) ident(errors) operator(=) operator([)operator(]) ident(r)operator(.)ident(errors)operator(.)ident(each_full) operator({) operator(|)ident(error)operator(|) ident(errors) operator(<<) ident(error) operator(}) ident(assert_equal) stringoperator(,) ident(errors)operator([)integer(0)operator(]) ident(assert_equal) stringoperator(,) ident(errors)operator([)integer(1)operator(]) ident(assert_equal) integer(2)operator(,) ident(r)operator(.)ident(errors)operator(.)ident(count) reserved(end) reserved(def) method(test_errors_on_base) ident(r) operator(=) constant(Reply)operator(.)ident(new) ident(r)operator(.)ident(content) operator(=) string ident(r)operator(.)ident(save) ident(r)operator(.)ident(errors)operator(.)ident(add_to_base) string ident(errors) operator(=) operator([)operator(]) ident(r)operator(.)ident(errors)operator(.)ident(each_full) operator({) operator(|)ident(error)operator(|) ident(errors) operator(<<) ident(error) operator(}) ident(assert_equal) stringoperator(,) ident(r)operator(.)ident(errors)operator(.)ident(on_base) ident(assert) ident(errors)operator(.)ident(include?)operator(()stringoperator(\)) ident(assert) ident(errors)operator(.)ident(include?)operator(()stringoperator(\)) ident(assert_equal) integer(2)operator(,) ident(r)operator(.)ident(errors)operator(.)ident(count) reserved(end) reserved(def) method(test_create_without_validation) ident(reply) operator(=) constant(Reply)operator(.)ident(new) ident(assert) operator(!)ident(reply)operator(.)ident(save) ident(assert) ident(reply)operator(.)ident(save)operator(()pre_constant(false)operator(\)) reserved(end) reserved(def) method(test_validates_each) ident(perform) operator(=) pre_constant(true) ident(hits) operator(=) integer(0) constant(Topic)operator(.)ident(validates_each)operator(()symbol(:title)operator(,) symbol(:content)operator(,) operator([)symbol(:title)operator(,) symbol(:content)operator(])operator(\)) reserved(do) operator(|)ident(record)operator(,) ident(attr)operator(|) reserved(if) ident(perform) ident(record)operator(.)ident(errors)operator(.)ident(add) ident(attr)operator(,) string ident(hits) operator(+=) integer(1) reserved(end) reserved(end) ident(t) operator(=) constant(Topic)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert_equal) integer(4)operator(,) ident(hits) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) reserved(ensure) ident(perform) operator(=) pre_constant(false) reserved(end) reserved(def) method(test_errors_on_boundary_breaking) ident(developer) operator(=) constant(Developer)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(developer)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(developer)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\)) ident(developer)operator(.)ident(name) operator(=) string ident(assert) operator(!)ident(developer)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(developer)operator(.)ident(errors)operator(.)ident(on)operator(()stringoperator(\)) ident(developer)operator(.)ident(name) operator(=) string ident(assert) ident(developer)operator(.)ident(save) reserved(end) reserved(def) method(test_title_confirmation_no_confirm) constant(Topic)operator(.)ident(validates_confirmation_of)operator(()symbol(:title)operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(def) method(test_title_confirmation) constant(Topic)operator(.)ident(validates_confirmation_of)operator(()symbol(:title)operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,)string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(t)operator(.)ident(title_confirmation) operator(=) string ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(def) method(test_terms_of_service_agreement_no_acceptance) constant(Topic)operator(.)ident(validates_acceptance_of)operator(()symbol(:terms_of_service)operator(,) symbol(:on) operator(=)operator(>) symbol(:create)operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(def) method(test_terms_of_service_agreement) constant(Topic)operator(.)ident(validates_acceptance_of)operator(()symbol(:terms_of_service)operator(,) symbol(:on) operator(=)operator(>) symbol(:create)operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,)string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:terms_of_service)operator(\)) ident(t)operator(.)ident(terms_of_service) operator(=) string ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(def) method(test_eula) constant(Topic)operator(.)ident(validates_acceptance_of)operator(()symbol(:eula)operator(,) symbol(:message) operator(=)operator(>) stringoperator(,) symbol(:on) operator(=)operator(>) symbol(:create)operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,)string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:eula)operator(\)) ident(t)operator(.)ident(eula) operator(=) string ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(def) method(test_terms_of_service_agreement_with_accept_value) constant(Topic)operator(.)ident(validates_acceptance_of)operator(()symbol(:terms_of_service)operator(,) symbol(:on) operator(=)operator(>) symbol(:create)operator(,) symbol(:accept) operator(=)operator(>) stringoperator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:terms_of_service)operator(\)) ident(t)operator(.)ident(terms_of_service) operator(=) string ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(def) method(test_validate_presences) constant(Topic)operator(.)ident(validates_presence_of)operator(()symbol(:title)operator(,) symbol(:content)operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) ident(t)operator(.)ident(title) operator(=) string ident(t)operator(.)ident(content) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) ident(t)operator(.)ident(content) operator(=) string ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(def) method(test_validate_uniqueness) constant(Topic)operator(.)ident(validates_uniqueness_of)operator(()symbol(:title)operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(save)operator(,) string ident(t)operator(.)ident(content) operator(=) string ident(assert) ident(t)operator(.)ident(save)operator(,) string ident(t2) operator(=) constant(Topic)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t2)operator(.)ident(valid?)operator(,) string ident(assert) operator(!)ident(t2)operator(.)ident(save)operator(,) string ident(assert_equal) stringoperator(,) ident(t2)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(t2)operator(.)ident(title) operator(=) string ident(assert) ident(t2)operator(.)ident(save)operator(,) string reserved(end) reserved(def) method(test_validate_uniqueness_with_scope) constant(Reply)operator(.)ident(validates_uniqueness_of)operator(()symbol(:content)operator(,) symbol(:scope) operator(=)operator(>) stringoperator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(r1) operator(=) ident(t)operator(.)ident(replies)operator(.)ident(create) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert) ident(r1)operator(.)ident(valid?)operator(,) string ident(r2) operator(=) ident(t)operator(.)ident(replies)operator(.)ident(create) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert) operator(!)ident(r2)operator(.)ident(valid?)operator(,) string ident(r2)operator(.)ident(content) operator(=) string ident(assert) ident(r2)operator(.)ident(save)operator(,) string ident(t2) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(r3) operator(=) ident(t2)operator(.)ident(replies)operator(.)ident(create) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert) ident(r3)operator(.)ident(valid?)operator(,) string reserved(end) reserved(def) method(test_validate_uniqueness_with_scope_array) constant(Reply)operator(.)ident(validates_uniqueness_of)operator(()symbol(:author_name)operator(,) symbol(:scope) operator(=)operator(>) operator([)symbol(:author_email_address)operator(,) symbol(:parent_id)operator(])operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(r1) operator(=) ident(t)operator(.)ident(replies)operator(.)ident(create) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert) ident(r1)operator(.)ident(valid?)operator(,) string ident(r2) operator(=) ident(t)operator(.)ident(replies)operator(.)ident(create) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert) operator(!)ident(r2)operator(.)ident(valid?)operator(,) string ident(r2)operator(.)ident(author_email_address) operator(=) string ident(assert) ident(r2)operator(.)ident(save)operator(,) string ident(r3) operator(=) ident(t)operator(.)ident(replies)operator(.)ident(create) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert) operator(!)ident(r3)operator(.)ident(valid?)operator(,) string ident(r3)operator(.)ident(author_name) operator(=) string ident(assert) ident(r3)operator(.)ident(save)operator(,) string ident(r3)operator(.)ident(author_name) operator(=) string ident(assert) operator(!)ident(r3)operator(.)ident(save)operator(,) string reserved(end) reserved(def) method(test_validate_format) constant(Topic)operator(.)ident(validates_format_of)operator(()symbol(:title)operator(,) symbol(:content)operator(,) symbol(:with) operator(=)operator(>) regexpoperator(,) symbol(:message) operator(=)operator(>) stringoperator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?)operator(,) string ident(assert) operator(!)ident(t)operator(.)ident(save)operator(,) string ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_nil) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) ident(t)operator(.)ident(title) operator(=) string ident(assert) ident(t)operator(.)ident(save) ident(assert_nil) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_format_of)operator(()symbol(:title)operator(,) symbol(:content)operator(\)) operator(}) reserved(end) comment(# testing ticket #3142) reserved(def) method(test_validate_format_numeric) constant(Topic)operator(.)ident(validates_format_of)operator(()symbol(:title)operator(,) symbol(:content)operator(,) symbol(:with) operator(=)operator(>) regexpoperator(,) symbol(:message) operator(=)operator(>) stringoperator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?)operator(,) string ident(assert) operator(!)ident(t)operator(.)ident(save)operator(,) string ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_nil) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?)operator(,) string ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?)operator(,) string ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?)operator(,) string ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?)operator(,) string ident(t)operator(.)ident(title) operator(=) string ident(assert) ident(t)operator(.)ident(save) ident(assert_nil) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) reserved(end) reserved(def) method(test_validates_inclusion_of) constant(Topic)operator(.)ident(validates_inclusion_of)operator(() symbol(:title)operator(,) symbol(:in) operator(=)operator(>) string operator(\)) ident(assert) operator(!)constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(.)ident(valid?) ident(assert) operator(!)constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(.)ident(valid?) ident(assert) operator(!)constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) pre_constant(nil)operator(,) string operator(=)operator(>) stringoperator(\))operator(.)ident(valid?) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_inclusion_of)operator(() symbol(:title)operator(,) symbol(:in) operator(=)operator(>) pre_constant(nil) operator(\)) operator(}) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_inclusion_of)operator(() symbol(:title)operator(,) symbol(:in) operator(=)operator(>) integer(0)operator(\)) operator(}) ident(assert_nothing_raised)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_inclusion_of)operator(() symbol(:title)operator(,) symbol(:in) operator(=)operator(>) string operator(\)) operator(}) ident(assert_nothing_raised)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_inclusion_of)operator(() symbol(:title)operator(,) symbol(:in) operator(=)operator(>) operator({)operator(}) operator(\)) operator(}) ident(assert_nothing_raised)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_inclusion_of)operator(() symbol(:title)operator(,) symbol(:in) operator(=)operator(>) operator([)operator(]) operator(\)) operator(}) reserved(end) reserved(def) method(test_validates_inclusion_of_with_allow_nil) constant(Topic)operator(.)ident(validates_inclusion_of)operator(() symbol(:title)operator(,) symbol(:in) operator(=)operator(>) stringoperator(,) symbol(:allow_nil)operator(=)operator(>)pre_constant(true) operator(\)) ident(assert) operator(!)constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(.)ident(valid?) ident(assert) operator(!)constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(.)ident(valid?) ident(assert) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) pre_constant(nil)operator(,) string operator(=)operator(>) stringoperator(\))operator(.)ident(valid?) reserved(end) reserved(def) method(test_numericality_with_allow_nil_and_getter_method) constant(Developer)operator(.)ident(validates_numericality_of)operator(() symbol(:salary)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(true)operator(\)) ident(developer) operator(=) constant(Developer)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) pre_constant(nil)operator(\)) ident(developer)operator(.)ident(instance_eval)operator(()stringoperator(\)) ident(assert) ident(developer)operator(.)ident(valid?) reserved(end) reserved(def) method(test_validates_exclusion_of) constant(Topic)operator(.)ident(validates_exclusion_of)operator(() symbol(:title)operator(,) symbol(:in) operator(=)operator(>) string operator(\)) ident(assert) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(.)ident(valid?) ident(assert) operator(!)constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\))operator(.)ident(valid?) reserved(end) reserved(def) method(test_validates_length_of_using_minimum) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:minimum) operator(=)operator(>) integer(5) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) ident(t)operator(.)ident(title) operator(=) pre_constant(nil) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_optionally_validates_length_of_using_minimum) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:minimum) operator(=)operator(>) integer(5)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(true) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) pre_constant(nil) ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(def) method(test_validates_length_of_using_maximum) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:maximum) operator(=)operator(>) integer(5) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) ident(t)operator(.)ident(title) operator(=) string ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) pre_constant(nil) ident(assert) operator(!)ident(t)operator(.)ident(valid?) reserved(end) reserved(def) method(test_optionally_validates_length_of_using_maximum) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:maximum) operator(=)operator(>) integer(5)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(true) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) pre_constant(nil) ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(def) method(test_validates_length_of_using_within) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:content)operator(,) symbol(:within) operator(=)operator(>) integer(3)operator(..)integer(5)operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) ident(t)operator(.)ident(title) operator(=) pre_constant(nil) ident(t)operator(.)ident(content) operator(=) pre_constant(nil) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) ident(t)operator(.)ident(title) operator(=) string ident(t)operator(.)ident(content) operator(=) string ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(def) method(test_optionally_validates_length_of_using_within) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:content)operator(,) symbol(:within) operator(=)operator(>) integer(3)operator(..)integer(5)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(true) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) pre_constant(nil) ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(def) method(test_optionally_validates_length_of_using_within_on_create) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:content)operator(,) symbol(:within) operator(=)operator(>) integer(5)operator(..)integer(10)operator(,) symbol(:on) operator(=)operator(>) symbol(:create)operator(,) symbol(:too_long) operator(=)operator(>) string ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)symbol(:title)operator(]) ident(t)operator(.)ident(title) operator(=) string ident(assert) ident(t)operator(.)ident(save) ident(t)operator(.)ident(title) operator(=) string ident(assert) ident(t)operator(.)ident(save) ident(t)operator(.)ident(content) operator(=) string ident(assert) ident(t)operator(.)ident(save) ident(t)operator(.)ident(content) operator(=) ident(t)operator(.)ident(title) operator(=) string ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(def) method(test_optionally_validates_length_of_using_within_on_update) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:content)operator(,) symbol(:within) operator(=)operator(>) integer(5)operator(..)integer(10)operator(,) symbol(:on) operator(=)operator(>) symbol(:update)operator(,) symbol(:too_short) operator(=)operator(>) string ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)symbol(:title)operator(]) ident(t)operator(.)ident(title) operator(=) string ident(t)operator(.)ident(content) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) ident(t)operator(.)ident(content) operator(=) string ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(def) method(test_validates_length_of_using_is) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:is) operator(=)operator(>) integer(5) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) pre_constant(nil) ident(assert) operator(!)ident(t)operator(.)ident(valid?) reserved(end) reserved(def) method(test_optionally_validates_length_of_using_is) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:is) operator(=)operator(>) integer(5)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(true) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) pre_constant(nil) ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(def) method(test_validates_length_of_using_bignum) ident(bigmin) operator(=) integer(2) operator(**) integer(30) ident(bigmax) operator(=) integer(2) operator(**) integer(32) ident(bigrange) operator(=) ident(bigmin)operator(...)ident(bigmax) ident(assert_nothing_raised) reserved(do) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:is) operator(=)operator(>) ident(bigmin) operator(+) integer(5) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:within) operator(=)operator(>) ident(bigrange) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:in) operator(=)operator(>) ident(bigrange) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:minimum) operator(=)operator(>) ident(bigmin) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:maximum) operator(=)operator(>) ident(bigmax) reserved(end) reserved(end) reserved(def) method(test_validates_length_with_globaly_modified_error_message) constant(ActiveRecord)operator(::)constant(Errors)operator(.)ident(default_error_messages)operator([)symbol(:too_short)operator(]) operator(=) string constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:minimum) operator(=)operator(>) integer(10) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()symbol(:title) operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_validates_size_of_association) ident(assert_nothing_raised) operator({) constant(Topic)operator(.)ident(validates_size_of) symbol(:replies)operator(,) symbol(:minimum) operator(=)operator(>) integer(1) operator(}) ident(t) operator(=) constant(Topic)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:replies)operator(\)) ident(t)operator(.)ident(replies)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(def) method(test_validates_length_of_nasty_params) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:minimum)operator(=)operator(>)integer(6)operator(,) symbol(:maximum)operator(=)operator(>)integer(9)operator(\)) operator(}) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:within)operator(=)operator(>)integer(6)operator(,) symbol(:maximum)operator(=)operator(>)integer(9)operator(\)) operator(}) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:within)operator(=)operator(>)integer(6)operator(,) symbol(:minimum)operator(=)operator(>)integer(9)operator(\)) operator(}) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:within)operator(=)operator(>)integer(6)operator(,) symbol(:is)operator(=)operator(>)integer(9)operator(\)) operator(}) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:minimum)operator(=)operator(>)stringoperator(\)) operator(}) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:maximum)operator(=)operator(>)stringoperator(\)) operator(}) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:within)operator(=)operator(>)stringoperator(\)) operator(}) ident(assert_raise)operator(()constant(ArgumentError)operator(\)) operator({) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:is)operator(=)operator(>)stringoperator(\)) operator(}) reserved(end) reserved(def) method(test_validates_length_of_custom_errors_for_minimum_with_message) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:minimum)operator(=)operator(>)integer(5)operator(,) symbol(:message)operator(=)operator(>)string operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_validates_length_of_custom_errors_for_minimum_with_too_short) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:minimum)operator(=)operator(>)integer(5)operator(,) symbol(:too_short)operator(=)operator(>)string operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_validates_length_of_custom_errors_for_maximum_with_message) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:maximum)operator(=)operator(>)integer(5)operator(,) symbol(:message)operator(=)operator(>)string operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_validates_length_of_custom_errors_for_maximum_with_too_long) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:maximum)operator(=)operator(>)integer(5)operator(,) symbol(:too_long)operator(=)operator(>)string operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_validates_length_of_custom_errors_for_is_with_message) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:is)operator(=)operator(>)integer(5)operator(,) symbol(:message)operator(=)operator(>)string operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_validates_length_of_custom_errors_for_is_with_wrong_length) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:is)operator(=)operator(>)integer(5)operator(,) symbol(:wrong_length)operator(=)operator(>)string operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(kcode_scope)operator(()ident(kcode)operator(\)) ident(orig_kcode) operator(=) global_variable($KCODE) global_variable($KCODE) operator(=) ident(kcode) reserved(begin) reserved(yield) reserved(ensure) global_variable($KCODE) operator(=) ident(orig_kcode) reserved(end) reserved(end) reserved(def) method(test_validates_length_of_using_minimum_utf8) ident(kcode_scope)operator(()stringoperator(\)) reserved(do) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:minimum) operator(=)operator(>) integer(5) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(end) reserved(def) method(test_validates_length_of_using_maximum_utf8) ident(kcode_scope)operator(()stringoperator(\)) reserved(do) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:maximum) operator(=)operator(>) integer(5) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(end) reserved(def) method(test_validates_length_of_using_within_utf8) ident(kcode_scope)operator(()stringoperator(\)) reserved(do) constant(Topic)operator(.)ident(validates_length_of)operator(()symbol(:title)operator(,) symbol(:content)operator(,) symbol(:within) operator(=)operator(>) integer(3)operator(..)integer(5)operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) ident(t)operator(.)ident(title) operator(=) string ident(t)operator(.)ident(content) operator(=) string ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(end) reserved(def) method(test_optionally_validates_length_of_using_within_utf8) ident(kcode_scope)operator(()stringoperator(\)) reserved(do) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:content)operator(,) symbol(:within) operator(=)operator(>) integer(3)operator(..)integer(5)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(true) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) pre_constant(nil) ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(end) reserved(def) method(test_optionally_validates_length_of_using_within_on_create_utf8) ident(kcode_scope)operator(()stringoperator(\)) reserved(do) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:content)operator(,) symbol(:within) operator(=)operator(>) integer(5)operator(..)integer(10)operator(,) symbol(:on) operator(=)operator(>) symbol(:create)operator(,) symbol(:too_long) operator(=)operator(>) string ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)symbol(:title)operator(]) ident(t)operator(.)ident(title) operator(=) string ident(assert) ident(t)operator(.)ident(save) ident(t)operator(.)ident(title) operator(=) string ident(assert) ident(t)operator(.)ident(save) ident(t)operator(.)ident(content) operator(=) string ident(assert) ident(t)operator(.)ident(save) ident(t)operator(.)ident(content) operator(=) ident(t)operator(.)ident(title) operator(=) string ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(end) reserved(def) method(test_optionally_validates_length_of_using_within_on_update_utf8) ident(kcode_scope)operator(()stringoperator(\)) reserved(do) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:content)operator(,) symbol(:within) operator(=)operator(>) integer(5)operator(..)integer(10)operator(,) symbol(:on) operator(=)operator(>) symbol(:update)operator(,) symbol(:too_short) operator(=)operator(>) string ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)symbol(:title)operator(]) ident(t)operator(.)ident(title) operator(=) string ident(t)operator(.)ident(content) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:content)operator(\)) ident(t)operator(.)ident(content) operator(=) string ident(assert) ident(t)operator(.)ident(save) reserved(end) reserved(end) reserved(def) method(test_validates_length_of_using_is_utf8) ident(kcode_scope)operator(()stringoperator(\)) reserved(do) constant(Topic)operator(.)ident(validates_length_of) symbol(:title)operator(,) symbol(:is) operator(=)operator(>) integer(5) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(t)operator(.)ident(title) operator(=) string ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(end) reserved(def) method(test_validates_size_of_association_utf8) ident(kcode_scope)operator(()stringoperator(\)) reserved(do) ident(assert_nothing_raised) operator({) constant(Topic)operator(.)ident(validates_size_of) symbol(:replies)operator(,) symbol(:minimum) operator(=)operator(>) integer(1) operator(}) ident(t) operator(=) constant(Topic)operator(.)ident(new)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(save) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:replies)operator(\)) ident(t)operator(.)ident(replies)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(end) reserved(def) method(test_validates_associated_many) constant(Topic)operator(.)ident(validates_associated)operator(() symbol(:replies) operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(t)operator(.)ident(replies) operator(<<) operator([)ident(r) operator(=) constant(Reply)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\))operator(,) ident(r2) operator(=) constant(Reply)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\))operator(]) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:replies)operator(\)) ident(assert_equal) integer(1)operator(,) ident(r)operator(.)ident(errors)operator(.)ident(count) comment(# make sure all associated objects have been validated) ident(assert_equal) integer(1)operator(,) ident(r2)operator(.)ident(errors)operator(.)ident(count) ident(r)operator(.)ident(content) operator(=) ident(r2)operator(.)ident(content) operator(=) string ident(assert) ident(t)operator(.)ident(valid?) reserved(end) reserved(def) method(test_validates_associated_one) constant(Reply)operator(.)ident(validates_associated)operator(() symbol(:topic) operator(\)) constant(Topic)operator(.)ident(validates_presence_of)operator(() symbol(:content) operator(\)) ident(r) operator(=) constant(Reply)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(r)operator(.)ident(topic) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(r)operator(.)ident(valid?) ident(assert) ident(r)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:topic)operator(\)) ident(r)operator(.)ident(topic)operator(.)ident(content) operator(=) string ident(assert) ident(r)operator(.)ident(valid?) reserved(end) reserved(def) method(test_validate_block) constant(Topic)operator(.)ident(validate) operator({) operator(|)ident(topic)operator(|) ident(topic)operator(.)ident(errors)operator(.)ident(add)operator(()stringoperator(,) stringoperator(\)) operator(}) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_invalid_validator) constant(Topic)operator(.)ident(validate) integer(3) ident(assert_raise)operator(()constant(ActiveRecord)operator(::)constant(ActiveRecordError)operator(\)) operator({) ident(t) operator(=) constant(Topic)operator(.)ident(create) operator(}) reserved(end) reserved(def) method(test_throw_away_typing) ident(d) operator(=) constant(Developer)operator(.)ident(create) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) integer(100)operator(,) ident(d)operator(.)ident(salary) ident(assert_equal) stringoperator(,) ident(d)operator(.)ident(salary_before_type_cast) reserved(end) reserved(def) method(test_validates_acceptance_of_with_custom_error_using_quotes) constant(Developer)operator(.)ident(validates_acceptance_of) symbol(:salary)operator(,) symbol(:message)operator(=)operator(>) string ident(d) operator(=) constant(Developer)operator(.)ident(new) ident(d)operator(.)ident(salary) operator(=) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) ident(d)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:salary)operator(\))operator(.)ident(first)operator(,) string reserved(end) reserved(def) method(test_validates_confirmation_of_with_custom_error_using_quotes) constant(Developer)operator(.)ident(validates_confirmation_of) symbol(:name)operator(,) symbol(:message)operator(=)operator(>) string ident(d) operator(=) constant(Developer)operator(.)ident(new) ident(d)operator(.)ident(name) operator(=) string ident(d)operator(.)ident(name_confirmation) operator(=) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) ident(d)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:name)operator(\))operator(,) string reserved(end) reserved(def) method(test_validates_format_of_with_custom_error_using_quotes) constant(Developer)operator(.)ident(validates_format_of) symbol(:name)operator(,) symbol(:with) operator(=)operator(>) regexpoperator(,) symbol(:message)operator(=)operator(>) string ident(d) operator(=) constant(Developer)operator(.)ident(new) ident(d)operator(.)ident(name) operator(=) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) ident(d)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:name)operator(\))operator(,) string reserved(end) reserved(def) method(test_validates_inclusion_of_with_custom_error_using_quotes) constant(Developer)operator(.)ident(validates_inclusion_of) symbol(:salary)operator(,) symbol(:in) operator(=)operator(>) integer(1000)operator(..)integer(80000)operator(,) symbol(:message)operator(=)operator(>) string ident(d) operator(=) constant(Developer)operator(.)ident(new) ident(d)operator(.)ident(salary) operator(=) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) ident(d)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:salary)operator(\))operator(.)ident(first)operator(,) string reserved(end) reserved(def) method(test_validates_length_of_with_custom_too_long_using_quotes) constant(Developer)operator(.)ident(validates_length_of) symbol(:name)operator(,) symbol(:maximum) operator(=)operator(>) integer(4)operator(,) symbol(:too_long)operator(=)operator(>) string ident(d) operator(=) constant(Developer)operator(.)ident(new) ident(d)operator(.)ident(name) operator(=) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) ident(d)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:name)operator(\))operator(.)ident(first)operator(,) string reserved(end) reserved(def) method(test_validates_length_of_with_custom_too_short_using_quotes) constant(Developer)operator(.)ident(validates_length_of) symbol(:name)operator(,) symbol(:minimum) operator(=)operator(>) integer(4)operator(,) symbol(:too_short)operator(=)operator(>) string ident(d) operator(=) constant(Developer)operator(.)ident(new) ident(d)operator(.)ident(name) operator(=) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) ident(d)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:name)operator(\))operator(.)ident(first)operator(,) string reserved(end) reserved(def) method(test_validates_length_of_with_custom_message_using_quotes) constant(Developer)operator(.)ident(validates_length_of) symbol(:name)operator(,) symbol(:minimum) operator(=)operator(>) integer(4)operator(,) symbol(:message)operator(=)operator(>) string ident(d) operator(=) constant(Developer)operator(.)ident(new) ident(d)operator(.)ident(name) operator(=) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) ident(d)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:name)operator(\))operator(.)ident(first)operator(,) string reserved(end) reserved(def) method(test_validates_presence_of_with_custom_message_using_quotes) constant(Developer)operator(.)ident(validates_presence_of) symbol(:non_existent)operator(,) symbol(:message)operator(=)operator(>) string ident(d) operator(=) constant(Developer)operator(.)ident(new) ident(d)operator(.)ident(name) operator(=) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) ident(d)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:non_existent)operator(\))operator(,) string reserved(end) reserved(def) method(test_validates_uniqueness_of_with_custom_message_using_quotes) constant(Developer)operator(.)ident(validates_uniqueness_of) symbol(:name)operator(,) symbol(:message)operator(=)operator(>) string ident(d) operator(=) constant(Developer)operator(.)ident(new) ident(d)operator(.)ident(name) operator(=) string ident(assert) operator(!)ident(d)operator(.)ident(valid?) ident(assert_equal) ident(d)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:name)operator(\))operator(.)ident(first)operator(,) string reserved(end) reserved(def) method(test_validates_associated_with_custom_message_using_quotes) constant(Reply)operator(.)ident(validates_associated) symbol(:topic)operator(,) symbol(:message)operator(=)operator(>) string constant(Topic)operator(.)ident(validates_presence_of) symbol(:content) ident(r) operator(=) constant(Reply)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(r)operator(.)ident(topic) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(r)operator(.)ident(valid?) ident(assert_equal) ident(r)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:topic)operator(\))operator(.)ident(first)operator(,) string reserved(end) reserved(def) method(test_conditional_validation_using_method_true) comment(# When the method returns true) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:maximum)operator(=)operator(>)integer(5)operator(,) symbol(:too_long)operator(=)operator(>)stringoperator(,) symbol(:if) operator(=)operator(>) symbol(:condition_is_true) operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_conditional_validation_using_method_false) comment(# When the method returns false) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:maximum)operator(=)operator(>)integer(5)operator(,) symbol(:too_long)operator(=)operator(>)stringoperator(,) symbol(:if) operator(=)operator(>) symbol(:condition_is_true_but_its_not) operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(assert) operator(!)ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) reserved(end) reserved(def) method(test_conditional_validation_using_string_true) comment(# When the evaluated string returns true) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:maximum)operator(=)operator(>)integer(5)operator(,) symbol(:too_long)operator(=)operator(>)stringoperator(,) symbol(:if) operator(=)operator(>) string operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_conditional_validation_using_string_false) comment(# When the evaluated string returns false) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:maximum)operator(=)operator(>)integer(5)operator(,) symbol(:too_long)operator(=)operator(>)stringoperator(,) symbol(:if) operator(=)operator(>) stringoperator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(assert) operator(!)ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) reserved(end) reserved(def) method(test_conditional_validation_using_block_true) comment(# When the block returns true) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:maximum)operator(=)operator(>)integer(5)operator(,) symbol(:too_long)operator(=)operator(>)stringoperator(,) symbol(:if) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(r)operator(|) ident(r)operator(.)ident(content)operator(.)ident(size) operator(>) integer(4) operator(}) operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(t)operator(.)ident(valid?) ident(assert) ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) ident(assert_equal) stringoperator(,) ident(t)operator(.)ident(errors)operator([)stringoperator(]) reserved(end) reserved(def) method(test_conditional_validation_using_block_false) comment(# When the block returns false) constant(Topic)operator(.)ident(validates_length_of)operator(() symbol(:title)operator(,) symbol(:maximum)operator(=)operator(>)integer(5)operator(,) symbol(:too_long)operator(=)operator(>)stringoperator(,) symbol(:if) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(r)operator(|) ident(r)operator(.)ident(title) operator(!=) stringoperator(}) operator(\)) ident(t) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) ident(t)operator(.)ident(valid?) ident(assert) operator(!)ident(t)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:title)operator(\)) reserved(end) reserved(def) method(test_validates_associated_missing) constant(Reply)operator(.)ident(validates_presence_of)operator(()symbol(:topic)operator(\)) ident(r) operator(=) constant(Reply)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(\)) ident(assert) operator(!)ident(r)operator(.)ident(valid?) ident(assert) ident(r)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:topic)operator(\)) ident(r)operator(.)ident(topic) operator(=) constant(Topic)operator(.)ident(find) symbol(:first) ident(assert) ident(r)operator(.)ident(valid?) reserved(end) reserved(end) reserved(class) class(ValidatesNumericalityTest) pre_constant(NIL) operator(=) operator([)pre_constant(nil)operator(,) stringoperator(,) stringoperator(,) stringoperator(]) constant(FLOAT_STRINGS) operator(=) string constant(INTEGER_STRINGS) operator(=) string constant(FLOATS) operator(=) operator([)float(0.0)operator(,) float(10.0)operator(,) float(10.5)operator(,) float(-10.5)operator(,) float(-0.0001)operator(]) operator(+) constant(FLOAT_STRINGS) constant(INTEGERS) operator(=) operator([)integer(0)operator(,) integer(10)operator(,) integer(-10)operator(]) operator(+) constant(INTEGER_STRINGS) constant(JUNK) operator(=) operator([)stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(]) reserved(def) method(setup) constant(Topic)operator(.)ident(write_inheritable_attribute)operator(()symbol(:validate)operator(,) pre_constant(nil)operator(\)) constant(Topic)operator(.)ident(write_inheritable_attribute)operator(()symbol(:validate_on_create)operator(,) pre_constant(nil)operator(\)) constant(Topic)operator(.)ident(write_inheritable_attribute)operator(()symbol(:validate_on_update)operator(,) pre_constant(nil)operator(\)) reserved(end) reserved(def) method(test_default_validates_numericality_of) constant(Topic)operator(.)ident(validates_numericality_of) symbol(:approved) ident(invalid!)operator(()pre_constant(NIL) operator(+) constant(JUNK)operator(\)) ident(valid!)operator(()constant(FLOATS) operator(+) constant(INTEGERS)operator(\)) reserved(end) reserved(def) method(test_validates_numericality_of_with_nil_allowed) constant(Topic)operator(.)ident(validates_numericality_of) symbol(:approved)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(true) ident(invalid!)operator(()constant(JUNK)operator(\)) ident(valid!)operator(()pre_constant(NIL) operator(+) constant(FLOATS) operator(+) constant(INTEGERS)operator(\)) reserved(end) reserved(def) method(test_validates_numericality_of_with_integer_only) constant(Topic)operator(.)ident(validates_numericality_of) symbol(:approved)operator(,) symbol(:only_integer) operator(=)operator(>) pre_constant(true) ident(invalid!)operator(()pre_constant(NIL) operator(+) constant(JUNK) operator(+) constant(FLOATS)operator(\)) ident(valid!)operator(()constant(INTEGERS)operator(\)) reserved(end) reserved(def) method(test_validates_numericality_of_with_integer_only_and_nil_allowed) constant(Topic)operator(.)ident(validates_numericality_of) symbol(:approved)operator(,) symbol(:only_integer) operator(=)operator(>) pre_constant(true)operator(,) symbol(:allow_nil) operator(=)operator(>) pre_constant(true) ident(invalid!)operator(()constant(JUNK) operator(+) constant(FLOATS)operator(\)) ident(valid!)operator(()pre_constant(NIL) operator(+) constant(INTEGERS)operator(\)) reserved(end) ident(private) reserved(def) method(invalid!)operator(()ident(values)operator(\)) ident(values)operator(.)ident(each) reserved(do) operator(|)ident(value)operator(|) ident(topic) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(value)operator(\)) ident(assert) operator(!)ident(topic)operator(.)ident(valid?)operator(,) stringcontent( not rejected as a number)delimiter(")> ident(assert) ident(topic)operator(.)ident(errors)operator(.)ident(on)operator(()symbol(:approved)operator(\)) reserved(end) reserved(end) reserved(def) method(valid!)operator(()ident(values)operator(\)) ident(values)operator(.)ident(each) reserved(do) operator(|)ident(value)operator(|) ident(topic) operator(=) constant(Topic)operator(.)ident(create)operator(()string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) ident(value)operator(\)) ident(assert) ident(topic)operator(.)ident(valid?)operator(,) stringcontent( not accepted as a number)delimiter(")> reserved(end) reserved(end) reserved(end) reserved(begin) ident(require) string reserved(rescue) constant(LoadError) reserved(class) class(Continuation) comment(# :nodoc: # for RDoc) reserved(end) reserved(def) constant(Continuation)operator(.)method(create)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) comment(# :nodoc:) ident(cc) operator(=) pre_constant(nil)operator(;) ident(result) operator(=) ident(callcc) operator({)operator(|)ident(c)operator(|) ident(cc) operator(=) ident(c)operator(;) ident(block)operator(.)ident(call)operator(()ident(cc)operator(\)) reserved(if) ident(block) reserved(and) ident(args)operator(.)ident(empty?)operator(}) ident(result) operator(||=) ident(args) reserved(return) operator(*)operator([)ident(cc)operator(,) operator(*)ident(result)operator(]) reserved(end) reserved(end) reserved(class) class(Binding)operator(;) reserved(end) comment(# for RDoc) comment(# This method returns the binding of the method that called your) comment(# method. It will raise an Exception when you're not inside a method.) comment(#) comment(# It's used like this:) comment(# def inc_counter(amount = 1\)) comment(# Binding.of_caller do |binding|) comment(# # Create a lambda that will increase the variable 'counter') comment(# # in the caller of this method when called.) comment(# inc = eval("lambda { |arg| counter += arg }", binding\)) comment(# # We can refer to amount from inside this block safely.) comment(# inc.call(amount\)) comment(# end) comment(# # No other statements can go here. Put them inside the block.) comment(# end) comment(# counter = 0) comment(# 2.times { inc_counter }) comment(# counter # => 2) comment(#) comment(# Binding.of_caller must be the last statement in the method.) comment(# This means that you will have to put everything you want to) comment(# do after the call to Binding.of_caller into the block of it.) comment(# This should be no problem however, because Ruby has closures.) comment(# If you don't do this an Exception will be raised. Because of) comment(# the way that Binding.of_caller is implemented it has to be) comment(# done this way.) reserved(def) constant(Binding)operator(.)method(of_caller)operator(()operator(&)ident(block)operator(\)) ident(old_critical) operator(=) constant(Thread)operator(.)ident(critical) constant(Thread)operator(.)ident(critical) operator(=) pre_constant(true) ident(count) operator(=) integer(0) ident(cc)operator(,) ident(result)operator(,) ident(error)operator(,) ident(extra_data) operator(=) constant(Continuation)operator(.)ident(create)operator(()pre_constant(nil)operator(,) pre_constant(nil)operator(\)) ident(error)operator(.)ident(call) reserved(if) ident(error) ident(tracer) operator(=) ident(lambda) reserved(do) operator(|*)ident(args)operator(|) ident(type)operator(,) ident(context)operator(,) ident(extra_data) operator(=) ident(args)operator([)integer(0)operator(])operator(,) ident(args)operator([)integer(4)operator(])operator(,) ident(args) reserved(if) ident(type) operator(==) string ident(count) operator(+=) integer(1) comment(# First this method and then calling one will return --) comment(# the trace event of the second event gets the context) comment(# of the method which called the method that called this) comment(# method.) reserved(if) ident(count) operator(==) integer(2) comment(# It would be nice if we could restore the trace_func) comment(# that was set before we swapped in our own one, but) comment(# this is impossible without overloading set_trace_func) comment(# in current Ruby.) ident(set_trace_func)operator(()pre_constant(nil)operator(\)) ident(cc)operator(.)ident(call)operator(()ident(eval)operator(()stringoperator(,) ident(context)operator(\))operator(,) pre_constant(nil)operator(,) ident(extra_data)operator(\)) reserved(end) reserved(elsif) ident(type) operator(==) string reserved(then) pre_constant(nil) reserved(elsif) ident(type) operator(==) string reserved(and) ident(extra_data)operator([)integer(3)operator(]) operator(==) symbol(:set_trace_func) reserved(then) pre_constant(nil) reserved(else) ident(set_trace_func)operator(()pre_constant(nil)operator(\)) ident(error_msg) operator(=) string operator(+) string ident(cc)operator(.)ident(call)operator(()pre_constant(nil)operator(,) ident(lambda) operator({) ident(raise)operator(()constant(ArgumentError)operator(,) ident(error_msg)operator(\)) operator(})operator(,) pre_constant(nil)operator(\)) reserved(end) reserved(end) reserved(unless) ident(result) ident(set_trace_func)operator(()ident(tracer)operator(\)) reserved(return) pre_constant(nil) reserved(else) constant(Thread)operator(.)ident(critical) operator(=) ident(old_critical) reserved(case) ident(block)operator(.)ident(arity) reserved(when) integer(1) reserved(then) reserved(yield)operator(()ident(result)operator(\)) reserved(else) reserved(yield)operator(()ident(result)operator(,) ident(extra_data)operator(\)) reserved(end) reserved(end) reserved(end) comment(# The Breakpoint library provides the convenience of) comment(# being able to inspect and modify state, diagnose) comment(# bugs all via IRB by simply setting breakpoints in) comment(# your applications by the call of a method.) comment(#) comment(# This library was written and is supported by me,) comment(# Florian Gross. I can be reached at flgr@ccan.de) comment(# and enjoy getting feedback about my libraries.) comment(#) comment(# The whole library (including breakpoint_client.rb) comment(# and binding_of_caller.rb\) is licensed under the) comment(# same license that Ruby uses. (Which is currently) comment(# either the GNU General Public License or a custom) comment(# one that allows for commercial usage.\) If you for) comment(# some good reason need to use this under another) comment(# license please contact me.) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(unless) reserved(defined?) constant(Binding)operator(.)ident(of_caller) ident(require) string ident(require) string reserved(module) class(Breakpoint) ident(id) operator(=) string constant(Version) operator(=) ident(id)operator(.)ident(split)operator(()stringoperator(\))operator([)integer(2)operator(])operator(.)ident(to_i) ident(extend) pre_constant(self) comment(# This will pop up an interactive ruby session at a) comment(# pre-defined break point in a Ruby application. In) comment(# this session you can examine the environment of) comment(# the break point.) comment(#) comment(# You can get a list of variables in the context using) comment(# local_variables via +local_variables+. You can then) comment(# examine their values by typing their names.) comment(#) comment(# You can have a look at the call stack via +caller+.) comment(#) comment(# The source code around the location where the breakpoint) comment(# was executed can be examined via +source_lines+. Its) comment(# argument specifies how much lines of context to display.) comment(# The default amount of context is 5 lines. Note that) comment(# the call to +source_lines+ can raise an exception when) comment(# it isn't able to read in the source code.) comment(#) comment(# breakpoints can also return a value. They will execute) comment(# a supplied block for getting a default return value.) comment(# A custom value can be returned from the session by doing) comment(# +throw(:debug_return, value\)+.) comment(#) comment(# You can also give names to break points which will be) comment(# used in the message that is displayed upon execution ) comment(# of them.) comment(#) comment(# Here's a sample of how breakpoints should be placed:) comment(#) comment(# class Person) comment(# def initialize(name, age\)) comment(# @name, @age = name, age) comment(# breakpoint("Person#initialize"\)) comment(# end) comment(#) comment(# attr_reader :age) comment(# def name) comment(# breakpoint("Person#name"\) { @name }) comment(# end) comment(# end) comment(#) comment(# person = Person.new("Random Person", 23\)) comment(# puts "Name: #{person.name}") comment(#) comment(# And here is a sample debug session:) comment(#) comment(# Executing break point "Person#initialize" at file.rb:4 in `initialize') comment(# irb(#\):001:0> local_variables) comment(# => ["name", "age", "_", "__"]) comment(# irb(#\):002:0> [name, age]) comment(# => ["Random Person", 23]) comment(# irb(#\):003:0> [@name, @age]) comment(# => ["Random Person", 23]) comment(# irb(#\):004:0> self) comment(# => #) comment(# irb(#\):005:0> @age += 1; self) comment(# => #) comment(# irb(#\):006:0> exit) comment(# Executing break point "Person#name" at file.rb:9 in `name') comment(# irb(#\):001:0> throw(:debug_return, "Overriden name"\)) comment(# Name: Overriden name) comment(#) comment(# Breakpoint sessions will automatically have a few) comment(# convenience methods available. See Breakpoint::CommandBundle) comment(# for a list of them.) comment(#) comment(# Breakpoints can also be used remotely over sockets.) comment(# This is implemented by running part of the IRB session) comment(# in the application and part of it in a special client.) comment(# You have to call Breakpoint.activate_drb to enable) comment(# support for remote breakpoints and then run) comment(# breakpoint_client.rb which is distributed with this) comment(# library. See the documentation of Breakpoint.activate_drb) comment(# for details.) reserved(def) method(breakpoint)operator(()ident(id) operator(=) pre_constant(nil)operator(,) ident(context) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) ident(callstack) operator(=) ident(caller) ident(callstack)operator(.)ident(slice!)operator(()integer(0)operator(,) integer(3)operator(\)) reserved(if) ident(callstack)operator(.)ident(first)operator([)stringoperator(]) ident(file)operator(,) ident(line)operator(,) ident(method) operator(=) operator(*)ident(callstack)operator(.)ident(first)operator(.)ident(match)operator(()regexpoperator(\))operator(.)ident(captures) ident(message) operator(=) string operator(+) operator(()ident(id) operator(?) stringcontent( )delimiter(")> operator(:) stringoperator(\)) operator(+) stringcontent(:)inlinedelimiter(")> operator(+) operator(()ident(method) operator(?) stringcontent(')delimiter(")> operator(:) stringoperator(\)) reserved(if) ident(context) reserved(then) reserved(return) ident(handle_breakpoint)operator(()ident(context)operator(,) ident(message)operator(,) ident(file)operator(,) ident(line)operator(,) operator(&)ident(block)operator(\)) reserved(end) constant(Binding)operator(.)ident(of_caller) reserved(do) operator(|)ident(binding_context)operator(|) ident(handle_breakpoint)operator(()ident(binding_context)operator(,) ident(message)operator(,) ident(file)operator(,) ident(line)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(module) class(CommandBundle) comment(#:nodoc:) comment(# Proxy to a Breakpoint client. Lets you directly execute code) comment(# in the context of the client.) reserved(class) class(Client) comment(#:nodoc:) reserved(def) method(initialize)operator(()ident(eval_handler)operator(\)) comment(# :nodoc:) ident(eval_handler)operator(.)ident(untaint) instance_variable(@eval_handler) operator(=) ident(eval_handler) reserved(end) ident(instance_methods)operator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) reserved(next) reserved(if) ident(method)operator([)regexpoperator(]) ident(undef_method) ident(method) reserved(end) comment(# Executes the specified code at the client.) reserved(def) method(eval)operator(()ident(code)operator(\)) instance_variable(@eval_handler)operator(.)ident(call)operator(()ident(code)operator(\)) reserved(end) comment(# Will execute the specified statement at the client.) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(if) ident(args)operator(.)ident(empty?) reserved(and) reserved(not) ident(block) ident(result) operator(=) ident(eval) stringdelimiter(")> reserved(else) comment(# This is a bit ugly. The alternative would be using an) comment(# eval context instead of an eval handler for executing) comment(# the code at the client. The problem with that approach) comment(# is that we would have to handle special expressions) comment(# like "self", "nil" or constants ourself which is hard.) ident(remote) operator(=) ident(eval) stringcontent((*args, &block\) )nesting_delimiter(})content( def result.call_with_block(*args, &block\) call(block, *args\) end result )delimiter(})> ident(remote)operator(.)ident(call_with_block)operator(()operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(return) ident(result) reserved(end) reserved(end) comment(# Returns the source code surrounding the location where the) comment(# breakpoint was issued.) reserved(def) method(source_lines)operator(()ident(context) operator(=) integer(5)operator(,) ident(return_line_numbers) operator(=) pre_constant(false)operator(\)) ident(lines) operator(=) constant(File)operator(.)ident(readlines)operator(()instance_variable(@__bp_file)operator(\))operator(.)ident(map) operator({) operator(|)ident(line)operator(|) ident(line)operator(.)ident(chomp) operator(}) ident(break_line) operator(=) instance_variable(@__bp_line) ident(start_line) operator(=) operator([)ident(break_line) operator(-) ident(context)operator(,) integer(1)operator(])operator(.)ident(max) ident(end_line) operator(=) ident(break_line) operator(+) ident(context) ident(result) operator(=) ident(lines)operator([)operator(()ident(start_line) operator(-) integer(1)operator(\)) operator(..) operator(()ident(end_line) operator(-) integer(1)operator(\))operator(]) reserved(if) ident(return_line_numbers) reserved(then) reserved(return) operator([)ident(start_line)operator(,) ident(break_line)operator(,) ident(result)operator(]) reserved(else) reserved(return) ident(result) reserved(end) reserved(end) comment(# Lets an object that will forward method calls to the breakpoint) comment(# client. This is useful for outputting longer things at the client) comment(# and so on. You can for example do these things:) comment(#) comment(# client.puts "Hello" # outputs "Hello" at client console) comment(# # outputs "Hello" into the file temp.txt at the client) comment(# client.File.open("temp.txt", "w"\) { |f| f.puts "Hello" } ) reserved(def) method(client)operator(()operator(\)) reserved(if) constant(Breakpoint)operator(.)ident(use_drb?) reserved(then) ident(sleep)operator(()float(0.5)operator(\)) reserved(until) constant(Breakpoint)operator(.)ident(drb_service)operator(.)ident(eval_handler) constant(Client)operator(.)ident(new)operator(()constant(Breakpoint)operator(.)ident(drb_service)operator(.)ident(eval_handler)operator(\)) reserved(else) constant(Client)operator(.)ident(new)operator(()ident(lambda) operator({) operator(|)ident(code)operator(|) ident(eval)operator(()ident(code)operator(,) pre_constant(TOPLEVEL_BINDING)operator(\)) operator(})operator(\)) reserved(end) reserved(end) reserved(end) reserved(def) method(handle_breakpoint)operator(()ident(context)operator(,) ident(message)operator(,) ident(file) operator(=) stringoperator(,) ident(line) operator(=) stringoperator(,) operator(&)ident(block)operator(\)) comment(# :nodoc:) ident(catch)operator(()symbol(:debug_return)operator(\)) reserved(do) operator(|)ident(value)operator(|) ident(eval)operator(()stringcontent( @__bp_line = )inlinecontent( extend Breakpoint::CommandBundle extend DRbUndumped if self )delimiter(})>operator(,) ident(context)operator(\)) reserved(rescue) pre_constant(nil) reserved(if) reserved(not) ident(use_drb?) reserved(then) ident(puts) ident(message) constant(IRB)operator(.)ident(start)operator(()pre_constant(nil)operator(,) constant(IRB)operator(::)constant(WorkSpace)operator(.)ident(new)operator(()ident(context)operator(\))operator(\)) reserved(else) instance_variable(@drb_service)operator(.)ident(add_breakpoint)operator(()ident(context)operator(,) ident(message)operator(\)) reserved(end) ident(block)operator(.)ident(call) reserved(if) ident(block) reserved(end) reserved(end) comment(# These exceptions will be raised on failed asserts) comment(# if Breakpoint.asserts_cause_exceptions is set to) comment(# true.) reserved(class) class(FailedAssertError) operator(<) constant(RuntimeError) comment(#:nodoc:) reserved(end) comment(# This asserts that the block evaluates to true.) comment(# If it doesn't evaluate to true a breakpoint will) comment(# automatically be created at that execution point.) comment(#) comment(# You can disable assert checking in production) comment(# code by setting Breakpoint.optimize_asserts to) comment(# true. (It will still be enabled when Ruby is run) comment(# via the -d argument.\)) comment(#) comment(# Example:) comment(# person_name = "Foobar") comment(# assert { not person_name.nil? }) comment(#) comment(# Note: If you want to use this method from an) comment(# unit test, you will have to call it by its full) comment(# name, Breakpoint.assert.) reserved(def) method(assert)operator(()ident(context) operator(=) pre_constant(nil)operator(,) operator(&)ident(condition)operator(\)) reserved(return) reserved(if) constant(Breakpoint)operator(.)ident(optimize_asserts) reserved(and) reserved(not) global_variable($DEBUG) reserved(return) reserved(if) reserved(yield) ident(callstack) operator(=) ident(caller) ident(callstack)operator(.)ident(slice!)operator(()integer(0)operator(,) integer(3)operator(\)) reserved(if) ident(callstack)operator(.)ident(first)operator([)stringoperator(]) ident(file)operator(,) ident(line)operator(,) ident(method) operator(=) operator(*)ident(callstack)operator(.)ident(first)operator(.)ident(match)operator(()regexpoperator(\))operator(.)ident(captures) ident(message) operator(=) stringcontent(:)inlineinlinecontent(')delimiter(")> reserved(if) ident(method)inline_delimiter(})>content(.)delimiter(")> reserved(if) constant(Breakpoint)operator(.)ident(asserts_cause_exceptions) reserved(and) reserved(not) global_variable($DEBUG) reserved(then) ident(raise)operator(()constant(Breakpoint)operator(::)constant(FailedAssertError)operator(,) ident(message)operator(\)) reserved(end) ident(message) operator(+=) string reserved(if) ident(context) reserved(then) reserved(return) ident(handle_breakpoint)operator(()ident(context)operator(,) ident(message)operator(,) ident(file)operator(,) ident(line)operator(\)) reserved(end) constant(Binding)operator(.)ident(of_caller) reserved(do) operator(|)ident(context)operator(|) ident(handle_breakpoint)operator(()ident(context)operator(,) ident(message)operator(,) ident(file)operator(,) ident(line)operator(\)) reserved(end) reserved(end) comment(# Whether asserts should be ignored if not in debug mode.) comment(# Debug mode can be enabled by running ruby with the -d) comment(# switch or by setting $DEBUG to true.) ident(attr_accessor) symbol(:optimize_asserts) pre_constant(self)operator(.)ident(optimize_asserts) operator(=) pre_constant(false) comment(# Whether an Exception should be raised on failed asserts) comment(# in non-$DEBUG code or not. By default this is disabled.) ident(attr_accessor) symbol(:asserts_cause_exceptions) pre_constant(self)operator(.)ident(asserts_cause_exceptions) operator(=) pre_constant(false) instance_variable(@use_drb) operator(=) pre_constant(false) ident(attr_reader) symbol(:drb_service) comment(# :nodoc:) reserved(class) class(DRbService) comment(# :nodoc:) ident(include) constant(DRbUndumped) reserved(def) method(initialize) instance_variable(@handler) operator(=) instance_variable(@eval_handler) operator(=) instance_variable(@collision_handler) operator(=) pre_constant(nil) constant(IRB)operator(.)ident(instance_eval) operator({) instance_variable(@CONF)operator([)symbol(:RC)operator(]) operator(=) pre_constant(true) operator(}) constant(IRB)operator(.)ident(run_config) reserved(end) reserved(def) method(collision) ident(sleep)operator(()float(0.5)operator(\)) reserved(until) instance_variable(@collision_handler) instance_variable(@collision_handler)operator(.)ident(untaint) instance_variable(@collision_handler)operator(.)ident(call) reserved(end) reserved(def) method(ping)operator(()operator(\)) reserved(end) reserved(def) method(add_breakpoint)operator(()ident(context)operator(,) ident(message)operator(\)) ident(workspace) operator(=) constant(IRB)operator(::)constant(WorkSpace)operator(.)ident(new)operator(()ident(context)operator(\)) ident(workspace)operator(.)ident(extend)operator(()constant(DRbUndumped)operator(\)) ident(sleep)operator(()float(0.5)operator(\)) reserved(until) instance_variable(@handler) instance_variable(@handler)operator(.)ident(untaint) instance_variable(@handler)operator(.)ident(call)operator(()ident(workspace)operator(,) ident(message)operator(\)) reserved(end) ident(attr_accessor) symbol(:handler)operator(,) symbol(:eval_handler)operator(,) symbol(:collision_handler) reserved(end) comment(# Will run Breakpoint in DRb mode. This will spawn a server) comment(# that can be attached to via the breakpoint-client command) comment(# whenever a breakpoint is executed. This is useful when you) comment(# are debugging CGI applications or other applications where) comment(# you can't access debug sessions via the standard input and) comment(# output of your application.) comment(#) comment(# You can specify an URI where the DRb server will run at.) comment(# This way you can specify the port the server runs on. The) comment(# default URI is druby://localhost:42531.) comment(#) comment(# Please note that breakpoints will be skipped silently in) comment(# case the DRb server can not spawned. (This can happen if) comment(# the port is already used by another instance of your) comment(# application on CGI or another application.\)) comment(#) comment(# Also note that by default this will only allow access) comment(# from localhost. You can however specify a list of) comment(# allowed hosts or nil (to allow access from everywhere\).) comment(# But that will still not protect you from somebody) comment(# reading the data as it goes through the net.) comment(#) comment(# A good approach for getting security and remote access) comment(# is setting up an SSH tunnel between the DRb service) comment(# and the client. This is usually done like this:) comment(#) comment(# $ ssh -L20000:127.0.0.1:20000 -R10000:127.0.0.1:10000 example.com) comment(# (This will connect port 20000 at the client side to port) comment(# 20000 at the server side, and port 10000 at the server) comment(# side to port 10000 at the client side.\)) comment(#) comment(# After that do this on the server side: (the code being debugged\)) comment(# Breakpoint.activate_drb("druby://127.0.0.1:20000", "localhost"\)) comment(#) comment(# And at the client side:) comment(# ruby breakpoint_client.rb -c druby://127.0.0.1:10000 -s druby://127.0.0.1:20000) comment(#) comment(# Running through such a SSH proxy will also let you use ) comment(# breakpoint.rb in case you are behind a firewall.) comment(#) comment(# Detailed information about running DRb through firewalls is) comment(# available at http://www.rubygarden.org/ruby?DrbTutorial) reserved(def) method(activate_drb)operator(()ident(uri) operator(=) pre_constant(nil)operator(,) ident(allowed_hosts) operator(=) operator([)stringoperator(,) stringoperator(,) stringoperator(])operator(,) ident(ignore_collisions) operator(=) pre_constant(false)operator(\)) reserved(return) pre_constant(false) reserved(if) instance_variable(@use_drb) ident(uri) operator(||=) string reserved(if) ident(allowed_hosts) reserved(then) ident(acl) operator(=) operator([)stringoperator(,) stringoperator(]) ident(Array)operator(()ident(allowed_hosts)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(host)operator(|) ident(acl) operator(+=) operator([)stringoperator(,) ident(host)operator(]) reserved(end) constant(DRb)operator(.)ident(install_acl)operator(()constant(ACL)operator(.)ident(new)operator(()ident(acl)operator(\))operator(\)) reserved(end) instance_variable(@use_drb) operator(=) pre_constant(true) instance_variable(@drb_service) operator(=) constant(DRbService)operator(.)ident(new) ident(did_collision) operator(=) pre_constant(false) reserved(begin) instance_variable(@service) operator(=) constant(DRb)operator(.)ident(start_service)operator(()ident(uri)operator(,) instance_variable(@drb_service)operator(\)) reserved(rescue) constant(Errno)operator(::)constant(EADDRINUSE) reserved(if) ident(ignore_collisions) reserved(then) pre_constant(nil) reserved(else) comment(# The port is already occupied by another) comment(# Breakpoint service. We will try to tell) comment(# the old service that we want its port.) comment(# It will then forward that request to the) comment(# user and retry.) reserved(unless) ident(did_collision) reserved(then) constant(DRbObject)operator(.)ident(new)operator(()pre_constant(nil)operator(,) ident(uri)operator(\))operator(.)ident(collision) ident(did_collision) operator(=) pre_constant(true) reserved(end) ident(sleep)operator(()integer(10)operator(\)) reserved(retry) reserved(end) reserved(end) reserved(return) pre_constant(true) reserved(end) comment(# Deactivates a running Breakpoint service.) reserved(def) method(deactivate_drb) instance_variable(@service)operator(.)ident(stop_service) reserved(unless) instance_variable(@service)operator(.)ident(nil?) instance_variable(@service) operator(=) pre_constant(nil) instance_variable(@use_drb) operator(=) pre_constant(false) instance_variable(@drb_service) operator(=) pre_constant(nil) reserved(end) comment(# Returns true when Breakpoints are used over DRb.) comment(# Breakpoint.activate_drb causes this to be true.) reserved(def) method(use_drb?) instance_variable(@use_drb) operator(==) pre_constant(true) reserved(end) reserved(end) reserved(module) class(IRB) comment(#:nodoc:) reserved(class) operator(<<) class(self)operator(;) ident(remove_method) symbol(:start)operator(;) reserved(end) reserved(def) pre_constant(self)operator(.)method(start)operator(()ident(ap_path) operator(=) pre_constant(nil)operator(,) ident(main_context) operator(=) pre_constant(nil)operator(,) ident(workspace) operator(=) pre_constant(nil)operator(\)) global_variable($0) operator(=) constant(File)operator(::)ident(basename)operator(()ident(ap_path)operator(,) stringoperator(\)) reserved(if) ident(ap_path) comment(# suppress some warnings about redefined constants) ident(old_verbose)operator(,) global_variable($VERBOSE) operator(=) global_variable($VERBOSE)operator(,) pre_constant(nil) constant(IRB)operator(.)ident(setup)operator(()ident(ap_path)operator(\)) global_variable($VERBOSE) operator(=) ident(old_verbose) reserved(if) instance_variable(@CONF)operator([)symbol(:SCRIPT)operator(]) reserved(then) ident(irb) operator(=) constant(Irb)operator(.)ident(new)operator(()ident(main_context)operator(,) instance_variable(@CONF)operator([)symbol(:SCRIPT)operator(])operator(\)) reserved(else) ident(irb) operator(=) constant(Irb)operator(.)ident(new)operator(()ident(main_context)operator(\)) reserved(end) reserved(if) ident(workspace) reserved(then) ident(irb)operator(.)ident(context)operator(.)ident(workspace) operator(=) ident(workspace) reserved(end) instance_variable(@CONF)operator([)symbol(:IRB_RC)operator(])operator(.)ident(call)operator(()ident(irb)operator(.)ident(context)operator(\)) reserved(if) instance_variable(@CONF)operator([)symbol(:IRB_RC)operator(]) instance_variable(@CONF)operator([)symbol(:MAIN_CONTEXT)operator(]) operator(=) ident(irb)operator(.)ident(context) ident(old_sigint) operator(=) ident(trap)operator(()stringoperator(\)) reserved(do) reserved(begin) ident(irb)operator(.)ident(signal_handle) reserved(rescue) constant(RubyLex)operator(::)constant(TerminateLineInput) comment(# ignored) reserved(end) reserved(end) ident(catch)operator(()symbol(:IRB_EXIT)operator(\)) reserved(do) ident(irb)operator(.)ident(eval_input) reserved(end) reserved(ensure) ident(trap)operator(()stringoperator(,) ident(old_sigint)operator(\)) reserved(end) reserved(class) operator(<<) class(self) reserved(alias) symbol(:old_CurrentContext) symbol(:CurrentContext) ident(remove_method) symbol(:CurrentContext) reserved(end) reserved(def) constant(IRB)operator(.)method(CurrentContext) reserved(if) ident(old_CurrentContext)operator(.)ident(nil?) reserved(and) constant(Breakpoint)operator(.)ident(use_drb?) reserved(then) ident(result) operator(=) constant(Object)operator(.)ident(new) reserved(def) ident(result)operator(.)method(last_value)operator(;) reserved(end) reserved(return) ident(result) reserved(else) ident(old_CurrentContext) reserved(end) reserved(end) reserved(def) constant(IRB)operator(.)method(parse_opts)operator(()operator(\)) reserved(end) reserved(class) class(Context) comment(#:nodoc:) reserved(alias) symbol(:old_evaluate) symbol(:evaluate) reserved(def) method(evaluate)operator(()ident(line)operator(,) ident(line_no)operator(\)) reserved(if) ident(line)operator(.)ident(chomp) operator(==) string reserved(then) ident(exit) reserved(else) ident(old_evaluate)operator(()ident(line)operator(,) ident(line_no)operator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(WorkSpace) comment(#:nodoc:) reserved(alias) symbol(:old_evaluate) symbol(:evaluate) reserved(def) method(evaluate)operator(()operator(*)ident(args)operator(\)) reserved(if) constant(Breakpoint)operator(.)ident(use_drb?) reserved(then) ident(result) operator(=) ident(old_evaluate)operator(()operator(*)ident(args)operator(\)) reserved(if) ident(args)operator([)integer(0)operator(]) operator(!=) symbol(:no_proxy) reserved(and) reserved(not) operator([)pre_constant(true)operator(,) pre_constant(false)operator(,) pre_constant(nil)operator(])operator(.)ident(include?)operator(()ident(result)operator(\)) reserved(then) ident(result)operator(.)ident(extend)operator(()constant(DRbUndumped)operator(\)) reserved(rescue) pre_constant(nil) reserved(end) reserved(return) ident(result) reserved(else) ident(old_evaluate)operator(()operator(*)ident(args)operator(\)) reserved(end) reserved(end) reserved(end) reserved(module) class(InputCompletor) comment(#:nodoc:) reserved(def) pre_constant(self)operator(.)method(eval)operator(()ident(code)operator(,) ident(context)operator(,) operator(*)ident(more)operator(\)) comment(# Big hack, this assumes that InputCompletor) comment(# will only call eval(\) when it wants code) comment(# to be executed in the IRB context.) constant(IRB)operator(.)ident(conf)operator([)symbol(:MAIN_CONTEXT)operator(])operator(.)ident(workspace)operator(.)ident(evaluate)operator(()symbol(:no_proxy)operator(,) ident(code)operator(,) operator(*)ident(more)operator(\)) reserved(end) reserved(end) reserved(end) reserved(module) class(DRb) comment(# :nodoc:) reserved(class) class(DRbObject) comment(#:nodoc:) reserved(undef) symbol(:inspect) reserved(if) ident(method_defined?)operator(()symbol(:inspect)operator(\)) reserved(undef) symbol(:clone) reserved(if) ident(method_defined?)operator(()symbol(:clone)operator(\)) reserved(end) reserved(end) comment(# See Breakpoint.breakpoint) reserved(def) method(breakpoint)operator(()ident(id) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) constant(Binding)operator(.)ident(of_caller) reserved(do) operator(|)ident(context)operator(|) constant(Breakpoint)operator(.)ident(breakpoint)operator(()ident(id)operator(,) ident(context)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) comment(# See Breakpoint.assert) reserved(def) method(assert)operator(()operator(&)ident(block)operator(\)) constant(Binding)operator(.)ident(of_caller) reserved(do) operator(|)ident(context)operator(|) constant(Breakpoint)operator(.)ident(assert)operator(()ident(context)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(module) class(ActiveSupport) reserved(module) class(CachingTools) comment(#:nodoc:) comment(# Provide shortcuts to simply the creation of nested default hashes. This) comment(# pattern is useful, common practice, and unsightly when done manually.) reserved(module) class(HashCaching) comment(# Dynamically create a nested hash structure used to cache calls to +method_name+) comment(# The cache method is named +#{method_name}_cache+ unless :as => :alternate_name) comment(# is given.) comment(#) comment(# The hash structure is created using nested Hash.new. For example:) comment(# ) comment(# def slow_method(a, b\) a ** b end) comment(# ) comment(# can be cached using hash_cache :slow_method, which will define the method) comment(# slow_method_cache. We can then find the result of a ** b using:) comment(# ) comment(# slow_method_cache[a][b]) comment(# ) comment(# The hash structure returned by slow_method_cache would look like this:) comment(# ) comment(# Hash.new do |as, a|) comment(# as[a] = Hash.new do |bs, b|) comment(# bs[b] = slow_method(a, b\)) comment(# end) comment(# end) comment(# ) comment(# The generated code is actually compressed onto a single line to maintain) comment(# sensible backtrace signatures.) comment(#) reserved(def) method(hash_cache)operator(()ident(method_name)operator(,) ident(options) operator(=) operator({)operator(})operator(\)) ident(selector) operator(=) ident(options)operator([)symbol(:as)operator(]) operator(||) stringcontent(_cache)delimiter(")> ident(method) operator(=) pre_constant(self)operator(.)ident(instance_method)operator(()ident(method_name)operator(\)) ident(args) operator(=) operator([)operator(]) ident(code) operator(=) stringcontent((\); @)inlinecontent( ||= )delimiter(")> operator(()integer(1)operator(..)ident(method)operator(.)ident(arity)operator(\))operator(.)ident(each) reserved(do) operator(|)ident(n)operator(|) ident(args) operator(<<) stringdelimiter(")> ident(code) operator(<<) stringcontent(, v)inlinecontent(| h)inlinecontent([v)inlinecontent(] = )delimiter(")> reserved(end) comment(# Add the method call with arguments, followed by closing braces and end.) ident(code) operator(<<) stringcontent(()inlineinline_delimiter(})>content(\) )inline operator(*) ident(method)operator(.)ident(arity)inline_delimiter(})>content( end)delimiter(")> comment(# Extract the line number information from the caller. Exceptions arising) comment(# in the generated code should point to the +hash_cache :...+ line.) reserved(if) ident(caller)operator([)integer(0)operator(]) operator(&&) regexp operator(=)operator(~) ident(caller)operator([)integer(0)operator(]) ident(file)operator(,) ident(line_number) operator(=) global_variable($1)operator(,) global_variable($2)operator(.)ident(to_i) reserved(else) comment(# We can't give good trackback info; fallback to this line:) ident(file)operator(,) ident(line_number) operator(=) pre_constant(__FILE__)operator(,) pre_constant(__LINE__) reserved(end) comment(# We use eval rather than building proc's because it allows us to avoid) comment(# linking the Hash's to this method's binding. Experience has shown that) comment(# doing so can cause obtuse memory leaks.) ident(class_eval) ident(code)operator(,) ident(file)operator(,) ident(line_number) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Logger) comment(#:nodoc:) ident(cattr_accessor) symbol(:silencer) pre_constant(self)operator(.)ident(silencer) operator(=) pre_constant(true) comment(# Silences the logger for the duration of the block.) reserved(def) method(silence)operator(()ident(temporary_level) operator(=) constant(Logger)operator(::)constant(ERROR)operator(\)) reserved(if) ident(silencer) reserved(begin) ident(old_logger_level)operator(,) pre_constant(self)operator(.)ident(level) operator(=) ident(level)operator(,) ident(temporary_level) reserved(yield) pre_constant(self) reserved(ensure) pre_constant(self)operator(.)ident(level) operator(=) ident(old_logger_level) reserved(end) reserved(else) reserved(yield) pre_constant(self) reserved(end) reserved(end) ident(private) reserved(alias) method(old_format_message) method(format_message) comment(# Ruby 1.8.3 transposed the msg and progname arguments to format_message.) comment(# We can't test RUBY_VERSION because some distributions don't keep Ruby) comment(# and its standard library in sync, leading to installations of Ruby 1.8.2) comment(# with Logger from 1.8.3 and vice versa.) reserved(if) ident(method_defined?)operator(()symbol(:formatter=)operator(\)) reserved(def) method(format_message)operator(()ident(severity)operator(,) ident(timestamp)operator(,) ident(progname)operator(,) ident(msg)operator(\)) stringchar(\\n)delimiter(")> reserved(end) reserved(else) reserved(def) method(format_message)operator(()ident(severity)operator(,) ident(timestamp)operator(,) ident(msg)operator(,) ident(progname)operator(\)) stringchar(\\n)delimiter(")> reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Array) comment(#:nodoc:) reserved(module) class(Conversions) comment(# Converts the array to comma-seperated sentence where the last element is joined by the connector word. Options:) comment(# * :connector: The word used to join the last element in arrays with more than two elements (default: "and"\)) comment(# * :skip_last_comma: Set to true to return "a, b, and c" instead of "a, b and c".) reserved(def) method(to_sentence)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator(.)ident(assert_valid_keys)operator(()symbol(:connector)operator(,) symbol(:skip_last_comma)operator(\)) ident(options)operator(.)ident(reverse_merge!) symbol(:connector) operator(=)operator(>) stringoperator(,) symbol(:skip_last_comma) operator(=)operator(>) pre_constant(false) reserved(case) ident(length) reserved(when) integer(0) string reserved(when) integer(1) pre_constant(self)operator([)integer(0)operator(]) reserved(when) integer(2) stringcontent( )inlinecontent( )inlinedelimiter(")> reserved(else) stringoperator(\))inline_delimiter(})>inline operator(:) stringinline_delimiter(})>content( )inlinecontent( )inlinedelimiter(")> reserved(end) reserved(end) comment(# When an array is given to url_for, it is converted to a slash separated string.) reserved(def) method(to_param) ident(join) string reserved(end) reserved(def) method(to_xml)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(raise) string reserved(unless) ident(all?) operator({) operator(|)ident(e)operator(|) ident(e)operator(.)ident(respond_to?) symbol(:to_xml) operator(}) ident(options)operator([)symbol(:root)operator(]) operator(||=) ident(all?) operator({) operator(|)ident(e)operator(|) ident(e)operator(.)ident(is_a?)operator(()ident(first)operator(.)ident(class)operator(\)) operator(&&) ident(first)operator(.)ident(class)operator(.)ident(to_s) operator(!=) string operator(}) operator(?) ident(first)operator(.)ident(class)operator(.)ident(to_s)operator(.)ident(underscore)operator(.)ident(pluralize) operator(:) string ident(options)operator([)symbol(:children)operator(]) operator(||=) ident(options)operator([)symbol(:root)operator(])operator(.)ident(singularize) ident(options)operator([)symbol(:indent)operator(]) operator(||=) integer(2) ident(options)operator([)symbol(:builder)operator(]) operator(||=) constant(Builder)operator(::)constant(XmlMarkup)operator(.)ident(new)operator(()symbol(:indent) operator(=)operator(>) ident(options)operator([)symbol(:indent)operator(])operator(\)) ident(root) operator(=) ident(options)operator(.)ident(delete)operator(()symbol(:root)operator(\)) ident(children) operator(=) ident(options)operator(.)ident(delete)operator(()symbol(:children)operator(\)) ident(options)operator([)symbol(:builder)operator(])operator(.)ident(instruct!) reserved(unless) ident(options)operator(.)ident(delete)operator(()symbol(:skip_instruct)operator(\)) ident(options)operator([)symbol(:builder)operator(])operator(.)ident(tag!)operator(()ident(root)operator(.)ident(to_s)operator(.)ident(dasherize)operator(\)) operator({) ident(each) operator({) operator(|)ident(e)operator(|) ident(e)operator(.)ident(to_xml)operator(()ident(options)operator(.)ident(merge)operator(()operator({) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(,) symbol(:root) operator(=)operator(>) ident(children) operator(})operator(\))operator(\)) operator(}) operator(}) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Array) comment(#:nodoc:) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Array)operator(::)constant(Conversions) comment(# Iterate over an array in groups of a certain size, padding any remaining ) comment(# slots with specified value (nil by default\).) comment(# ) comment(# E.g.) comment(# ) comment(# %w(1 2 3 4 5 6 7\).in_groups_of(3\) {|g| p g}) comment(# ["1", "2", "3"]) comment(# ["4", "5", "6"]) comment(# ["7", nil, nil]) reserved(def) method(in_groups_of)operator(()ident(number)operator(,) ident(fill_with) operator(=) pre_constant(nil)operator(,) operator(&)ident(block)operator(\)) ident(require) string ident(collection) operator(=) ident(dup) ident(collection) operator(<<) ident(fill_with) reserved(until) ident(collection)operator(.)ident(size)operator(.)ident(modulo)operator(()ident(number)operator(\))operator(.)ident(zero?) ident(collection)operator(.)ident(each_slice)operator(()ident(number)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(end) reserved(class) class(Object) comment(#:nodoc:) comment(# "", " ", nil, [], and {} are blank) reserved(def) method(blank?) reserved(if) ident(respond_to?)operator(()symbol(:empty?)operator(\)) operator(&&) ident(respond_to?)operator(()symbol(:strip)operator(\)) ident(empty?) reserved(or) ident(strip)operator(.)ident(empty?) reserved(elsif) ident(respond_to?)operator(()symbol(:empty?)operator(\)) ident(empty?) reserved(else) operator(!)pre_constant(self) reserved(end) reserved(end) reserved(end) reserved(class) class(NilClass) comment(#:nodoc:) reserved(def) method(blank?) pre_constant(true) reserved(end) reserved(end) reserved(class) class(FalseClass) comment(#:nodoc:) reserved(def) method(blank?) pre_constant(true) reserved(end) reserved(end) reserved(class) class(TrueClass) comment(#:nodoc:) reserved(def) method(blank?) pre_constant(false) reserved(end) reserved(end) reserved(class) class(Array) comment(#:nodoc:) ident(alias_method) symbol(:blank?)operator(,) symbol(:empty?) reserved(end) reserved(class) class(Hash) comment(#:nodoc:) ident(alias_method) symbol(:blank?)operator(,) symbol(:empty?) reserved(end) reserved(class) class(String) comment(#:nodoc:) reserved(def) method(blank?) ident(empty?) operator(||) ident(strip)operator(.)ident(empty?) reserved(end) reserved(end) reserved(class) class(Numeric) comment(#:nodoc:) reserved(def) method(blank?) pre_constant(false) reserved(end) ident(endmodule) constant(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(CGI) comment(#:nodoc:) reserved(module) class(EscapeSkippingSlashes) comment(#:nodoc:) reserved(def) method(escape_skipping_slashes)operator(()ident(str)operator(\)) ident(str) operator(=) ident(str)operator(.)ident(join)operator(()stringoperator(\)) reserved(if) ident(str)operator(.)ident(respond_to?) symbol(:join) ident(str)operator(.)ident(gsub)operator(()regexpoperator(\)) reserved(do) stringoperator(\))operator(.)ident(first)operator(.)ident(upcase)inline_delimiter(})>delimiter(")> reserved(end)operator(.)ident(tr)operator(()stringoperator(,) stringoperator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(CGI) comment(#:nodoc:) ident(extend)operator(()constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(CGI)operator(::)constant(EscapeSkippingSlashes)operator(\)) reserved(end) comment(# Extends the class object with class and instance accessors for class attributes,) comment(# just like the native attr* accessors for instance attributes.) reserved(class) class(Class) comment(# :nodoc:) reserved(def) method(cattr_reader)operator(()operator(*)ident(syms)operator(\)) ident(syms)operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(sym)operator(|) ident(class_eval)operator(()stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)operator(\))stringcontent( @@)inlinecontent( = nil end def self.)inlinecontent( @@)inlinecontent( end def )inlinecontent( @@)inlinecontent( end)delimiter( EOS)> reserved(end) reserved(end) reserved(def) method(cattr_writer)operator(()operator(*)ident(syms)operator(\)) ident(syms)operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(sym)operator(|) ident(class_eval)operator(()stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)operator(\))stringcontent( @@)inlinecontent( = nil end def self.)inlinecontent(=(obj\) @@)inlinecontent( = obj end def )inlinecontent(=(obj\) @@)inlinecontent( = obj end)delimiter( EOS)> reserved(end) reserved(end) reserved(def) method(cattr_accessor)operator(()operator(*)ident(syms)operator(\)) ident(cattr_reader)operator(()operator(*)ident(syms)operator(\)) ident(cattr_writer)operator(()operator(*)ident(syms)operator(\)) reserved(end) reserved(end) comment(# Retain for backward compatibility. Methods are now included in Class.) reserved(module) class(ClassInheritableAttributes) comment(# :nodoc:) reserved(end) comment(# Allows attributes to be shared within an inheritance hierarchy, but where each descendant gets a copy of) comment(# their parents' attributes, instead of just a pointer to the same. This means that the child can add elements) comment(# to, for example, an array without those additions being shared with either their parent, siblings, or) comment(# children, which is unlike the regular class-level attributes that are shared across the entire hierarchy.) reserved(class) class(Class) comment(# :nodoc:) reserved(def) method(class_inheritable_reader)operator(()operator(*)ident(syms)operator(\)) ident(syms)operator(.)ident(each) reserved(do) operator(|)ident(sym)operator(|) ident(class_eval) stringstringcontent( read_inheritable_attribute(:)inlinecontent(\) end def )inlinecontent( self.class.)inlinecontent( end)delimiter( EOS)> reserved(end) reserved(end) reserved(def) method(class_inheritable_writer)operator(()operator(*)ident(syms)operator(\)) ident(syms)operator(.)ident(each) reserved(do) operator(|)ident(sym)operator(|) ident(class_eval) stringstringcontent(=(obj\) write_inheritable_attribute(:)inlinecontent(, obj\) end def )inlinecontent(=(obj\) self.class.)inlinecontent( = obj end)delimiter( EOS)> reserved(end) reserved(end) reserved(def) method(class_inheritable_array_writer)operator(()operator(*)ident(syms)operator(\)) ident(syms)operator(.)ident(each) reserved(do) operator(|)ident(sym)operator(|) ident(class_eval) stringstringcontent(=(obj\) write_inheritable_array(:)inlinecontent(, obj\) end def )inlinecontent(=(obj\) self.class.)inlinecontent( = obj end)delimiter( EOS)> reserved(end) reserved(end) reserved(def) method(class_inheritable_hash_writer)operator(()operator(*)ident(syms)operator(\)) ident(syms)operator(.)ident(each) reserved(do) operator(|)ident(sym)operator(|) ident(class_eval) stringstringcontent(=(obj\) write_inheritable_hash(:)inlinecontent(, obj\) end def )inlinecontent(=(obj\) self.class.)inlinecontent( = obj end)delimiter( EOS)> reserved(end) reserved(end) reserved(def) method(class_inheritable_accessor)operator(()operator(*)ident(syms)operator(\)) ident(class_inheritable_reader)operator(()operator(*)ident(syms)operator(\)) ident(class_inheritable_writer)operator(()operator(*)ident(syms)operator(\)) reserved(end) reserved(def) method(class_inheritable_array)operator(()operator(*)ident(syms)operator(\)) ident(class_inheritable_reader)operator(()operator(*)ident(syms)operator(\)) ident(class_inheritable_array_writer)operator(()operator(*)ident(syms)operator(\)) reserved(end) reserved(def) method(class_inheritable_hash)operator(()operator(*)ident(syms)operator(\)) ident(class_inheritable_reader)operator(()operator(*)ident(syms)operator(\)) ident(class_inheritable_hash_writer)operator(()operator(*)ident(syms)operator(\)) reserved(end) reserved(def) method(inheritable_attributes) instance_variable(@inheritable_attributes) operator(||=) operator({)operator(}) reserved(end) reserved(def) method(write_inheritable_attribute)operator(()ident(key)operator(,) ident(value)operator(\)) ident(inheritable_attributes)operator([)ident(key)operator(]) operator(=) ident(value) reserved(end) reserved(def) method(write_inheritable_array)operator(()ident(key)operator(,) ident(elements)operator(\)) ident(write_inheritable_attribute)operator(()ident(key)operator(,) operator([)operator(])operator(\)) reserved(if) ident(read_inheritable_attribute)operator(()ident(key)operator(\))operator(.)ident(nil?) ident(write_inheritable_attribute)operator(()ident(key)operator(,) ident(read_inheritable_attribute)operator(()ident(key)operator(\)) operator(+) ident(elements)operator(\)) reserved(end) reserved(def) method(write_inheritable_hash)operator(()ident(key)operator(,) ident(hash)operator(\)) ident(write_inheritable_attribute)operator(()ident(key)operator(,) operator({)operator(})operator(\)) reserved(if) ident(read_inheritable_attribute)operator(()ident(key)operator(\))operator(.)ident(nil?) ident(write_inheritable_attribute)operator(()ident(key)operator(,) ident(read_inheritable_attribute)operator(()ident(key)operator(\))operator(.)ident(merge)operator(()ident(hash)operator(\))operator(\)) reserved(end) reserved(def) method(read_inheritable_attribute)operator(()ident(key)operator(\)) ident(inheritable_attributes)operator([)ident(key)operator(]) reserved(end) reserved(def) method(reset_inheritable_attributes) ident(inheritable_attributes)operator(.)ident(clear) reserved(end) ident(private) reserved(def) method(inherited_with_inheritable_attributes)operator(()ident(child)operator(\)) ident(inherited_without_inheritable_attributes)operator(()ident(child)operator(\)) reserved(if) ident(respond_to?)operator(()symbol(:inherited_without_inheritable_attributes)operator(\)) ident(child)operator(.)ident(instance_variable_set)operator(()stringoperator(,) ident(inheritable_attributes)operator(.)ident(dup)operator(\)) reserved(end) reserved(alias) method(inherited_without_inheritable_attributes) method(inherited) reserved(alias) method(inherited) method(inherited_with_inheritable_attributes) reserved(end) reserved(class) class(Class) comment(#:nodoc:) reserved(def) method(remove_subclasses) constant(Object)operator(.)ident(remove_subclasses_of)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(subclasses) constant(Object)operator(.)ident(subclasses_of)operator(()pre_constant(self)operator(\))operator(.)ident(map) operator({) operator(|)ident(o)operator(|) ident(o)operator(.)ident(to_s) operator(}) reserved(end) reserved(def) method(remove_class)operator(()operator(*)ident(klasses)operator(\)) ident(klasses)operator(.)ident(flatten)operator(.)ident(each) reserved(do) operator(|)ident(klass)operator(|) comment(# Skip this class if there is nothing bound to this name) reserved(next) reserved(unless) reserved(defined?)operator(()ident(klass)operator(.)ident(name)operator(\)) ident(basename) operator(=) ident(klass)operator(.)ident(to_s)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(last) ident(parent) operator(=) ident(klass)operator(.)ident(parent) comment(# Skip this class if it does not match the current one bound to this name) reserved(next) reserved(unless) ident(parent)operator(.)ident(const_defined?)operator(()ident(basename)operator(\)) operator(&&) ident(klass) operator(=) ident(parent)operator(.)ident(const_get)operator(()ident(basename)operator(\)) ident(parent)operator(.)ident(send) symbol(:remove_const)operator(,) ident(basename) reserved(unless) ident(parent) operator(==) ident(klass) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringreserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Date) comment(#:nodoc:) comment(# Getting dates in different convenient string representations and other objects) reserved(module) class(Conversions) constant(DATE_FORMATS) operator(=) operator({) symbol(:short) operator(=)operator(>) stringoperator(,) symbol(:long) operator(=)operator(>) string operator(}) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(klass)operator(\)) comment(#:nodoc:) ident(klass)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) symbol(:to_default_s)operator(,) symbol(:to_s)operator(\)) ident(klass)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) symbol(:to_s)operator(,) symbol(:to_formatted_s)operator(\)) reserved(end) reserved(def) method(to_formatted_s)operator(()ident(format) operator(=) symbol(:default)operator(\)) constant(DATE_FORMATS)operator([)ident(format)operator(]) operator(?) ident(strftime)operator(()constant(DATE_FORMATS)operator([)ident(format)operator(])operator(\))operator(.)ident(strip) operator(:) ident(to_default_s) reserved(end) comment(# To be able to keep Dates and Times interchangeable on conversions) reserved(def) method(to_date) pre_constant(self) reserved(end) reserved(def) method(to_time)operator(()ident(form) operator(=) symbol(:local)operator(\)) operator(::)constant(Time)operator(.)ident(send)operator(()ident(form)operator(,) ident(year)operator(,) ident(month)operator(,) ident(day)operator(\)) reserved(end) reserved(alias) symbol(:xmlschema) symbol(:to_s) reserved(end) reserved(end) reserved(end) ident(endrequire) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Date)comment(#:nodoc:) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Date)operator(::)constant(Conversions) reserved(end) reserved(module) class(Enumerable) comment(#:nodoc:) reserved(def) method(first_match) ident(match) operator(=) pre_constant(nil) ident(each) reserved(do) operator(|)ident(items)operator(|) reserved(break) reserved(if) ident(match) operator(=) reserved(yield)operator(()ident(items)operator(\)) reserved(end) ident(match) reserved(end) comment(# Collect an enumerable into sets, grouped by the result of a block. Useful,) comment(# for example, for grouping records by date.) comment(#) comment(# e.g. ) comment(#) comment(# latest_transcripts.group_by(&:day\).each do |day, transcripts| ) comment(# p "#{day} -> #{transcripts.map(&:class\) * ', '}") comment(# end) comment(# "2006-03-01 -> Transcript") comment(# "2006-02-28 -> Transcript") comment(# "2006-02-27 -> Transcript, Transcript") comment(# "2006-02-26 -> Transcript, Transcript") comment(# "2006-02-25 -> Transcript") comment(# "2006-02-24 -> Transcript, Transcript") comment(# "2006-02-23 -> Transcript") reserved(def) method(group_by) ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(groups)operator(,) ident(element)operator(|) operator(()ident(groups)operator([)reserved(yield)operator(()ident(element)operator(\))operator(]) operator(||=) operator([)operator(])operator(\)) operator(<<) ident(element) ident(groups) reserved(end) reserved(end) reserved(end) reserved(class) class(Exception) comment(# :nodoc:) reserved(def) method(clean_message) constant(Pathname)operator(.)ident(clean_within) ident(message) reserved(end) constant(TraceSubstitutions) operator(=) operator([)operator(]) constant(FrameworkRegexp) operator(=) regexp reserved(def) method(clean_backtrace) ident(backtrace)operator(.)ident(collect) reserved(do) operator(|)ident(line)operator(|) constant(Pathname)operator(.)ident(clean_within)operator(()constant(TraceSubstitutions)operator(.)ident(inject)operator(()ident(line)operator(\)) reserved(do) operator(|)ident(line)operator(,) operator(()ident(regexp)operator(,) ident(sub)operator(\))operator(|) ident(line)operator(.)ident(gsub) ident(regexp)operator(,) ident(sub) reserved(end)operator(\)) reserved(end) reserved(end) reserved(def) method(application_backtrace) ident(before_application_frame) operator(=) pre_constant(true) ident(trace) operator(=) ident(clean_backtrace)operator(.)ident(reject) reserved(do) operator(|)ident(line)operator(|) ident(non_app_frame) operator(=) operator(()ident(line) operator(=)operator(~) constant(FrameworkRegexp)operator(\)) ident(before_application_frame) operator(=) pre_constant(false) reserved(unless) ident(non_app_frame) ident(non_app_frame) operator(&&) operator(!) ident(before_application_frame) reserved(end) comment(# If we didn't find any application frames, return an empty app trace.) ident(before_application_frame) operator(?) operator([)operator(]) operator(:) ident(trace) reserved(end) reserved(def) method(framework_backtrace) ident(clean_backtrace)operator(.)ident(select) operator({)operator(|)ident(line)operator(|) ident(line) operator(=)operator(~) constant(FrameworkRegexp)operator(}) reserved(end) ident(endmodule) constant(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Hash) comment(#:nodoc:) reserved(module) class(Conversions) constant(XML_TYPE_NAMES) operator(=) operator({) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) stringoperator(,) string operator(=)operator(>) string operator(}) constant(XML_FORMATTING) operator(=) operator({) string operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(date)operator(|) ident(date)operator(.)ident(to_s)operator(()symbol(:db)operator(\)) operator(})operator(,) string operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(time)operator(|) ident(time)operator(.)ident(xmlschema) operator(}) operator(}) reserved(def) method(to_xml)operator(()ident(options) operator(=) operator({)operator(})operator(\)) ident(options)operator([)symbol(:indent)operator(]) operator(||=) integer(2) ident(options)operator(.)ident(reverse_merge!)operator(()operator({) symbol(:builder) operator(=)operator(>) constant(Builder)operator(::)constant(XmlMarkup)operator(.)ident(new)operator(()symbol(:indent) operator(=)operator(>) ident(options)operator([)symbol(:indent)operator(])operator(\))operator(,) symbol(:root) operator(=)operator(>) string operator(})operator(\)) ident(options)operator([)symbol(:builder)operator(])operator(.)ident(instruct!) reserved(unless) ident(options)operator(.)ident(delete)operator(()symbol(:skip_instruct)operator(\)) ident(options)operator([)symbol(:builder)operator(])operator(.)ident(__send__)operator(()ident(options)operator([)symbol(:root)operator(])operator(.)ident(to_s)operator(.)ident(dasherize)operator(\)) reserved(do) ident(each) reserved(do) operator(|)ident(key)operator(,) ident(value)operator(|) reserved(case) ident(value) reserved(when) operator(::)constant(Hash) ident(value)operator(.)ident(to_xml)operator(()ident(options)operator(.)ident(merge)operator(()operator({) symbol(:root) operator(=)operator(>) ident(key)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true) operator(})operator(\))operator(\)) reserved(when) operator(::)constant(Array) ident(value)operator(.)ident(to_xml)operator(()ident(options)operator(.)ident(merge)operator(()operator({) symbol(:root) operator(=)operator(>) ident(key)operator(,) symbol(:children) operator(=)operator(>) ident(key)operator(.)ident(to_s)operator(.)ident(singularize)operator(,) symbol(:skip_instruct) operator(=)operator(>) pre_constant(true)operator(})operator(\))operator(\)) reserved(else) ident(type_name) operator(=) constant(XML_TYPE_NAMES)operator([)ident(value)operator(.)ident(class)operator(.)ident(to_s)operator(]) ident(options)operator([)symbol(:builder)operator(])operator(.)ident(tag!)operator(()ident(key)operator(.)ident(to_s)operator(.)ident(dasherize)operator(,) constant(XML_FORMATTING)operator([)ident(type_name)operator(]) operator(?) constant(XML_FORMATTING)operator([)ident(type_name)operator(])operator(.)ident(call)operator(()ident(value)operator(\)) operator(:) ident(value)operator(,) ident(options)operator([)symbol(:skip_types)operator(]) operator(||) ident(value)operator(.)ident(nil?) operator(||) ident(type_name)operator(.)ident(nil?) operator(?) operator({) operator(}) operator(:) operator({) symbol(:type) operator(=)operator(>) ident(type_name) operator(}) operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Hash) comment(#:nodoc:) reserved(module) class(Diff) reserved(def) method(diff)operator(()ident(h2)operator(\)) pre_constant(self)operator(.)ident(dup)operator(.)ident(delete_if) operator({) operator(|)ident(k)operator(,) ident(v)operator(|) ident(h2)operator([)ident(k)operator(]) operator(==) ident(v) operator(})operator(.)ident(merge)operator(()ident(h2)operator(.)ident(dup)operator(.)ident(delete_if) operator({) operator(|)ident(k)operator(,) ident(v)operator(|) pre_constant(self)operator(.)ident(has_key?)operator(()ident(k)operator(\)) operator(})operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) comment(# this class has dubious semantics and we only have it so that) comment(# people can write params[:key] instead of params['key']) reserved(class) class(HashWithIndifferentAccess) operator(<) constant(Hash) reserved(def) method(initialize)operator(()ident(constructor) operator(=) operator({)operator(})operator(\)) reserved(if) ident(constructor)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) reserved(super)operator(()operator(\)) ident(update)operator(()ident(constructor)operator(\)) reserved(else) reserved(super)operator(()ident(constructor)operator(\)) reserved(end) reserved(end) reserved(def) method(default)operator(()ident(key)operator(\)) pre_constant(self)operator([)ident(key)operator(.)ident(to_s)operator(]) reserved(if) ident(key)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) reserved(end) ident(alias_method) symbol(:regular_writer)operator(,) symbol(:[]=) reserved(unless) ident(method_defined?)operator(()symbol(:regular_writer)operator(\)) ident(alias_method) symbol(:regular_update)operator(,) symbol(:update) reserved(unless) ident(method_defined?)operator(()symbol(:regular_update)operator(\)) reserved(def) method([]=)operator(()ident(key)operator(,) ident(value)operator(\)) ident(regular_writer)operator(()ident(convert_key)operator(()ident(key)operator(\))operator(,) ident(convert_value)operator(()ident(value)operator(\))operator(\)) reserved(end) reserved(def) method(update)operator(()ident(other_hash)operator(\)) ident(other_hash)operator(.)ident(each_pair) operator({) operator(|)ident(key)operator(,) ident(value)operator(|) ident(regular_writer)operator(()ident(convert_key)operator(()ident(key)operator(\))operator(,) ident(convert_value)operator(()ident(value)operator(\))operator(\)) operator(}) pre_constant(self) reserved(end) ident(alias_method) symbol(:merge!)operator(,) symbol(:update) reserved(def) method(key?)operator(()ident(key)operator(\)) reserved(super)operator(()ident(convert_key)operator(()ident(key)operator(\))operator(\)) reserved(end) ident(alias_method) symbol(:include?)operator(,) symbol(:key?) ident(alias_method) symbol(:has_key?)operator(,) symbol(:key?) ident(alias_method) symbol(:member?)operator(,) symbol(:key?) reserved(def) method(fetch)operator(()ident(key)operator(,) operator(*)ident(extras)operator(\)) reserved(super)operator(()ident(convert_key)operator(()ident(key)operator(\))operator(,) operator(*)ident(extras)operator(\)) reserved(end) reserved(def) method(values_at)operator(()operator(*)ident(indices)operator(\)) ident(indices)operator(.)ident(collect) operator({)operator(|)ident(key)operator(|) pre_constant(self)operator([)ident(convert_key)operator(()ident(key)operator(\))operator(])operator(}) reserved(end) reserved(def) method(dup) constant(HashWithIndifferentAccess)operator(.)ident(new)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(merge)operator(()ident(hash)operator(\)) pre_constant(self)operator(.)ident(dup)operator(.)ident(update)operator(()ident(hash)operator(\)) reserved(end) reserved(def) method(delete)operator(()ident(key)operator(\)) reserved(super)operator(()ident(convert_key)operator(()ident(key)operator(\))operator(\)) reserved(end) ident(protected) reserved(def) method(convert_key)operator(()ident(key)operator(\)) ident(key)operator(.)ident(kind_of?)operator(()constant(Symbol)operator(\)) operator(?) ident(key)operator(.)ident(to_s) operator(:) ident(key) reserved(end) reserved(def) method(convert_value)operator(()ident(value)operator(\)) ident(value)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(?) ident(value)operator(.)ident(with_indifferent_access) operator(:) ident(value) reserved(end) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Hash) comment(#:nodoc:) reserved(module) class(IndifferentAccess) comment(#:nodoc:) reserved(def) method(with_indifferent_access) constant(HashWithIndifferentAccess)operator(.)ident(new)operator(()pre_constant(self)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Hash) comment(#:nodoc:) reserved(module) class(Keys) comment(# Return a new hash with all keys converted to strings.) reserved(def) method(stringify_keys) ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(options)operator(,) operator(()ident(key)operator(,) ident(value)operator(\))operator(|) ident(options)operator([)ident(key)operator(.)ident(to_s)operator(]) operator(=) ident(value) ident(options) reserved(end) reserved(end) comment(# Destructively convert all keys to strings.) reserved(def) method(stringify_keys!) ident(keys)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(|) reserved(unless) ident(key)operator(.)ident(class)operator(.)ident(to_s) operator(==) string comment(# weird hack to make the tests run when string_ext_test.rb is also running) pre_constant(self)operator([)ident(key)operator(.)ident(to_s)operator(]) operator(=) pre_constant(self)operator([)ident(key)operator(]) ident(delete)operator(()ident(key)operator(\)) reserved(end) reserved(end) pre_constant(self) reserved(end) comment(# Return a new hash with all keys converted to symbols.) reserved(def) method(symbolize_keys) ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(options)operator(,) operator(()ident(key)operator(,) ident(value)operator(\))operator(|) ident(options)operator([)ident(key)operator(.)ident(to_sym)operator(]) operator(=) ident(value) ident(options) reserved(end) reserved(end) comment(# Destructively convert all keys to symbols.) reserved(def) method(symbolize_keys!) ident(keys)operator(.)ident(each) reserved(do) operator(|)ident(key)operator(|) reserved(unless) ident(key)operator(.)ident(is_a?)operator(()constant(Symbol)operator(\)) pre_constant(self)operator([)ident(key)operator(.)ident(to_sym)operator(]) operator(=) pre_constant(self)operator([)ident(key)operator(]) ident(delete)operator(()ident(key)operator(\)) reserved(end) reserved(end) pre_constant(self) reserved(end) ident(alias_method) symbol(:to_options)operator(,) symbol(:symbolize_keys) ident(alias_method) symbol(:to_options!)operator(,) symbol(:symbolize_keys!) reserved(def) method(assert_valid_keys)operator(()operator(*)ident(valid_keys)operator(\)) ident(unknown_keys) operator(=) ident(keys) operator(-) operator([)ident(valid_keys)operator(])operator(.)ident(flatten) ident(raise)operator(()constant(ArgumentError)operator(,) stringoperator(\))inline_delimiter(})>delimiter(")>operator(\)) reserved(unless) ident(unknown_keys)operator(.)ident(empty?) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Hash) comment(#:nodoc:) comment(# Allows for reverse merging where its the keys in the calling hash that wins over those in the other_hash.) comment(# This is particularly useful for initializing an incoming option hash with default values:) comment(#) comment(# def setup(options = {}\)) comment(# options.reverse_merge! :size => 25, :velocity => 10) comment(# end) comment(#) comment(# The default :size and :velocity is only set if the +options+ passed in doesn't already have those keys set.) reserved(module) class(ReverseMerge) reserved(def) method(reverse_merge)operator(()ident(other_hash)operator(\)) ident(other_hash)operator(.)ident(merge)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(reverse_merge!)operator(()ident(other_hash)operator(\)) ident(replace)operator(()ident(reverse_merge)operator(()ident(other_hash)operator(\))operator(\)) reserved(end) ident(alias_method) symbol(:reverse_update)operator(,) symbol(:reverse_merge) reserved(end) reserved(end) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Hash) comment(#:nodoc:) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Hash)operator(::)constant(Keys) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Hash)operator(::)constant(IndifferentAccess) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Hash)operator(::)constant(ReverseMerge) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Hash)operator(::)constant(Conversions) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Hash)operator(::)constant(Diff) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Integer) comment(#:nodoc:) comment(# For checking if a fixnum is even or odd. ) comment(# * 1.even? # => false) comment(# * 1.odd? # => true) comment(# * 2.even? # => true) comment(# * 2.odd? # => false) reserved(module) class(EvenOdd) reserved(def) method(multiple_of?)operator(()ident(number)operator(\)) pre_constant(self) operator(%) ident(number) operator(==) integer(0) reserved(end) reserved(def) method(even?) ident(multiple_of?) integer(2) reserved(end) reserved(def) method(odd?) operator(!)ident(even?) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(unless) reserved(defined?) constant(Inflector) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Integer) comment(#:nodoc:) reserved(module) class(Inflections) comment(# 1.ordinalize # => "1st") comment(# 3.ordinalize # => "3rd") comment(# 10.ordinalize # => "10th") reserved(def) method(ordinalize) constant(Inflector)operator(.)ident(ordinalize)operator(()pre_constant(self)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Integer) comment(#:nodoc:) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Integer)operator(::)constant(EvenOdd) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Integer)operator(::)constant(Inflections) reserved(end) reserved(class) class(Object) comment(# Makes backticks behave (somewhat more\) similarly on all platforms.) comment(# On win32 `nonexistent_command` raises Errno::ENOENT; on Unix, the) comment(# spawned shell prints a message to stderr and sets $?. We emulate) comment(# Unix on the former but not the latter.) reserved(def) method(`)operator(()ident(command)operator(\)) comment(#:nodoc:) reserved(super) reserved(rescue) constant(Errno)operator(::)constant(ENOENT) operator(=)operator(>) ident(e) pre_constant(STDERR)operator(.)ident(puts) stringdelimiter(")> reserved(end) ident(endmodule) constant(Kernel) comment(# Turns the current script into a daemon process that detaches from the console.) comment(# It can be shut down with a TERM signal.) reserved(def) method(daemonize) ident(exit) reserved(if) ident(fork) comment(# Parent exits, child continues.) constant(Process)operator(.)ident(setsid) comment(# Become session leader.) ident(exit) reserved(if) ident(fork) comment(# Zap session leader. See [1].) constant(Dir)operator(.)ident(chdir) string comment(# Release old working directory.) constant(File)operator(.)ident(umask) integer(0000) comment(# Ensure sensible umask. Adjust as needed.) pre_constant(STDIN)operator(.)ident(reopen) string comment(# Free file descriptors and) pre_constant(STDOUT)operator(.)ident(reopen) stringoperator(,) string comment(# point them somewhere sensible.) pre_constant(STDERR)operator(.)ident(reopen) pre_constant(STDOUT) comment(# STDOUT/ERR should better go to a logfile.) ident(trap)operator(()stringoperator(\)) operator({) ident(exit) operator(}) reserved(end) ident(endmodule) constant(Kernel) comment(# Sets $VERBOSE to nil for the duration of the block and back to its original value afterwards.) comment(#) comment(# silence_warnings do) comment(# value = noisy_call # no warning voiced) comment(# end) comment(#) comment(# noisy_call # warning voiced) reserved(def) method(silence_warnings) ident(old_verbose)operator(,) global_variable($VERBOSE) operator(=) global_variable($VERBOSE)operator(,) pre_constant(nil) reserved(yield) reserved(ensure) global_variable($VERBOSE) operator(=) ident(old_verbose) reserved(end) comment(# Sets $VERBOSE to true for the duration of the block and back to its original value afterwards.) reserved(def) method(enable_warnings) ident(old_verbose)operator(,) global_variable($VERBOSE) operator(=) global_variable($VERBOSE)operator(,) pre_constant(true) reserved(yield) reserved(ensure) global_variable($VERBOSE) operator(=) ident(old_verbose) reserved(end) comment(# For compatibility) reserved(def) method(silence_stderr) comment(#:nodoc:) ident(silence_stream)operator(()pre_constant(STDERR)operator(\)) operator({) reserved(yield) operator(}) reserved(end) comment(# Silences any stream for the duration of the block.) comment(#) comment(# silence_stream(STDOUT\) do) comment(# puts 'This will never be seen') comment(# end) comment(#) comment(# puts 'But this will') reserved(def) method(silence_stream)operator(()ident(stream)operator(\)) ident(old_stream) operator(=) ident(stream)operator(.)ident(dup) ident(stream)operator(.)ident(reopen)operator(()pre_constant(RUBY_PLATFORM) operator(=)operator(~) regexp operator(?) string operator(:) stringoperator(\)) ident(stream)operator(.)ident(sync) operator(=) pre_constant(true) reserved(yield) reserved(ensure) ident(stream)operator(.)ident(reopen)operator(()ident(old_stream)operator(\)) reserved(end) reserved(def) method(suppress)operator(()operator(*)ident(exception_classes)operator(\)) reserved(begin) reserved(yield) reserved(rescue) constant(Exception) operator(=)operator(>) ident(e) ident(raise) reserved(unless) ident(exception_classes)operator(.)ident(any?) operator({) operator(|)ident(cls)operator(|) ident(e)operator(.)ident(kind_of?)operator(()ident(cls)operator(\)) operator(}) reserved(end) reserved(end) ident(endmodule) constant(Kernel) comment(# Require a library with fallback to RubyGems. Warnings during library) comment(# loading are silenced to increase signal/noise for application warnings.) reserved(def) method(require_library_or_gem)operator(()ident(library_name)operator(\)) ident(silence_warnings) reserved(do) reserved(begin) ident(require) ident(library_name) reserved(rescue) constant(LoadError) operator(=)operator(>) ident(cannot_require) comment(# 1. Requiring the module is unsuccessful, maybe it's a gem and nobody required rubygems yet. Try.) reserved(begin) ident(require) string reserved(rescue) constant(LoadError) operator(=)operator(>) ident(rubygems_not_installed) ident(raise) ident(cannot_require) reserved(end) comment(# 2. Rubygems is installed and loaded. Try to load the library again) reserved(begin) ident(require) ident(library_name) reserved(rescue) constant(LoadError) operator(=)operator(>) ident(gem_not_installed) ident(raise) ident(cannot_require) reserved(end) reserved(end) reserved(end) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(MissingSourceFile) operator(<) constant(LoadError) comment(#:nodoc:) ident(attr_reader) symbol(:path) reserved(def) method(initialize)operator(()ident(message)operator(,) ident(path)operator(\)) reserved(super)operator(()ident(message)operator(\)) instance_variable(@path) operator(=) ident(path) reserved(end) reserved(def) method(is_missing?)operator(()ident(path)operator(\)) ident(path)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) operator(==) pre_constant(self)operator(.)ident(path)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) pre_constant(self)operator(.)method(from_message)operator(()ident(message)operator(\)) constant(REGEXPS)operator(.)ident(each) reserved(do) operator(|)ident(regexp)operator(,) ident(capture)operator(|) ident(match) operator(=) ident(regexp)operator(.)ident(match)operator(()ident(message)operator(\)) reserved(return) constant(MissingSourceFile)operator(.)ident(new)operator(()ident(message)operator(,) ident(match)operator([)ident(capture)operator(])operator(\)) reserved(unless) ident(match)operator(.)ident(nil?) reserved(end) pre_constant(nil) reserved(end) constant(REGEXPS) operator(=) operator([) operator([)regexpoperator(,) integer(1)operator(])operator(,) operator([)regexpoperator(,) integer(2)operator(])operator(,) operator([)regexpoperator(,) integer(1)operator(]) operator(]) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(LoadErrorExtensions) comment(#:nodoc:) reserved(module) class(LoadErrorClassMethods) comment(#:nodoc:) reserved(def) method(new)operator(()operator(*)ident(args)operator(\)) operator(()pre_constant(self) operator(==) constant(LoadError) operator(&&) constant(MissingSourceFile)operator(.)ident(from_message)operator(()ident(args)operator(.)ident(first)operator(\))operator(\)) operator(||) reserved(super) reserved(end) reserved(end) operator(::)constant(LoadError)operator(.)ident(extend)operator(()constant(LoadErrorClassMethods)operator(\)) reserved(end) reserved(end) reserved(end) comment(# Adds the 'around_level' method to Logger.) reserved(class) class(Logger) reserved(def) pre_constant(self)operator(.)method(define_around_helper)operator(()ident(level)operator(\)) ident(module_eval) stringstringcontent((before_message, after_message, &block\) self.)inlinecontent((before_message\) return_value = block.call(self\) self.)inlinecontent((after_message\) return return_value end)delimiter( end_eval)> reserved(end) operator([)symbol(:debug)operator(,) symbol(:info)operator(,) symbol(:error)operator(,) symbol(:fatal)operator(])operator(.)ident(each) operator({)operator(|)ident(level)operator(|) ident(define_around_helper)operator(()ident(level)operator(\)) operator(}) reserved(end)comment(# Extends the module object with module and instance accessors for class attributes, ) comment(# just like the native attr* accessors for instance attributes.) reserved(class) class(Module) comment(# :nodoc:) reserved(def) method(mattr_reader)operator(()operator(*)ident(syms)operator(\)) ident(syms)operator(.)ident(each) reserved(do) operator(|)ident(sym)operator(|) ident(class_eval)operator(()stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)operator(\))stringcontent( @@)inlinecontent( = nil end def self.)inlinecontent( @@)inlinecontent( end def )inlinecontent( @@)inlinecontent( end)delimiter( EOS)> reserved(end) reserved(end) reserved(def) method(mattr_writer)operator(()operator(*)ident(syms)operator(\)) ident(syms)operator(.)ident(each) reserved(do) operator(|)ident(sym)operator(|) ident(class_eval)operator(()stringoperator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)operator(\))stringcontent( @@)inlinecontent( = nil end def self.)inlinecontent(=(obj\) @@)inlinecontent( = obj end def )inlinecontent(=(obj\) @@)inlinecontent( = obj end)delimiter( EOS)> reserved(end) reserved(end) reserved(def) method(mattr_accessor)operator(()operator(*)ident(syms)operator(\)) ident(mattr_reader)operator(()operator(*)ident(syms)operator(\)) ident(mattr_writer)operator(()operator(*)ident(syms)operator(\)) reserved(end) reserved(end) reserved(class) class(Module) reserved(def) method(delegate)operator(()operator(*)ident(methods)operator(\)) ident(options) operator(=) ident(methods)operator(.)ident(pop) reserved(unless) ident(options)operator(.)ident(is_a?)operator(()constant(Hash)operator(\)) operator(&&) ident(to) operator(=) ident(options)operator([)symbol(:to)operator(]) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(methods)operator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(module_eval)operator(()stringoperator(,) stringoperator(,) integer(1)operator(\))stringcontent((*args, &block\) )inlinecontent(.__send__()inlinecontent(, *args, &block\) end)delimiter( EOS)> reserved(end) reserved(end) ident(endclass) constant(Module) reserved(def) method(included_in_classes) ident(classes) operator(=) operator([)operator(]) constant(ObjectSpace)operator(.)ident(each_object)operator(()constant(Class)operator(\)) operator({) operator(|)ident(k)operator(|) ident(classes) operator(<<) ident(k) reserved(if) ident(k)operator(.)ident(included_modules)operator(.)ident(include?)operator(()pre_constant(self)operator(\)) operator(}) ident(classes)operator(.)ident(reverse)operator(.)ident(inject)operator(()operator([)operator(])operator(\)) reserved(do) operator(|)ident(unique_classes)operator(,) ident(klass)operator(|) ident(unique_classes) operator(<<) ident(klass) reserved(unless) ident(unique_classes)operator(.)ident(collect) operator({) operator(|)ident(k)operator(|) ident(k)operator(.)ident(to_s) operator(})operator(.)ident(include?)operator(()ident(klass)operator(.)ident(to_s)operator(\)) ident(unique_classes) reserved(end) reserved(end) ident(endclass) constant(Module) comment(# Return the module which contains this one; if this is a root module, such as) comment(# +::MyModule+, then Object is returned.) reserved(def) method(parent) ident(parent_name) operator(=) ident(name)operator(.)ident(split)operator(()stringoperator(\))operator([)integer(0)operator(..)integer(-2)operator(]) operator(*) string ident(parent_name)operator(.)ident(empty?) operator(?) constant(Object) operator(:) ident(parent_name)operator(.)ident(constantize) reserved(end) comment(# Return all the parents of this module, ordered from nested outwards. The) comment(# receiver is not contained within the result.) reserved(def) method(parents) ident(parents) operator(=) operator([)operator(]) ident(parts) operator(=) ident(name)operator(.)ident(split)operator(()stringoperator(\))operator([)integer(0)operator(..)integer(-2)operator(]) reserved(until) ident(parts)operator(.)ident(empty?) ident(parents) operator(<<) operator(()ident(parts) operator(*) stringoperator(\))operator(.)ident(constantize) ident(parts)operator(.)ident(pop) reserved(end) ident(parents) operator(<<) constant(Object) reserved(unless) ident(parents)operator(.)ident(include?) constant(Object) ident(parents) reserved(end) reserved(end) reserved(class) class(Module) reserved(def) method(as_load_path) reserved(if) pre_constant(self) operator(==) constant(Object) operator(||) pre_constant(self) operator(==) constant(Kernel) string reserved(elsif) ident(is_a?) constant(Class) ident(parent) operator(==) pre_constant(self) operator(?) string operator(:) ident(parent)operator(.)ident(as_load_path) reserved(else) ident(name)operator(.)ident(split)operator(()stringoperator(\))operator(.)ident(collect) reserved(do) operator(|)ident(word)operator(|) ident(word)operator(.)ident(underscore) reserved(end) operator(*) string reserved(end) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Numeric) comment(#:nodoc:) comment(# Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes) reserved(module) class(Bytes) reserved(def) method(bytes) pre_constant(self) reserved(end) reserved(alias) symbol(:byte) symbol(:bytes) reserved(def) method(kilobytes) pre_constant(self) operator(*) integer(1024) reserved(end) reserved(alias) symbol(:kilobyte) symbol(:kilobytes) reserved(def) method(megabytes) pre_constant(self) operator(*) integer(1024)operator(.)ident(kilobytes) reserved(end) reserved(alias) symbol(:megabyte) symbol(:megabytes) reserved(def) method(gigabytes) pre_constant(self) operator(*) integer(1024)operator(.)ident(megabytes) reserved(end) reserved(alias) symbol(:gigabyte) symbol(:gigabytes) reserved(def) method(terabytes) pre_constant(self) operator(*) integer(1024)operator(.)ident(gigabytes) reserved(end) reserved(alias) symbol(:terabyte) symbol(:terabytes) reserved(def) method(petabytes) pre_constant(self) operator(*) integer(1024)operator(.)ident(terabytes) reserved(end) reserved(alias) symbol(:petabyte) symbol(:petabytes) reserved(def) method(exabytes) pre_constant(self) operator(*) integer(1024)operator(.)ident(petabytes) reserved(end) reserved(alias) symbol(:exabyte) symbol(:exabytes) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Numeric) comment(#:nodoc:) comment(# Enables the use of time calculations and declarations, like 45.minutes + 2.hours + 4.years.) comment(#) comment(# If you need precise date calculations that doesn't just treat months as 30 days, then have) comment(# a look at Time#advance.) comment(# ) comment(# Some of these methods are approximations, Ruby's core ) comment(# Date[http://stdlib.rubyonrails.org/libdoc/date/rdoc/index.html] and ) comment(# Time[http://stdlib.rubyonrails.org/libdoc/time/rdoc/index.html] should be used for precision) comment(# date and time arithmetic) reserved(module) class(Time) reserved(def) method(seconds) pre_constant(self) reserved(end) reserved(alias) symbol(:second) symbol(:seconds) reserved(def) method(minutes) pre_constant(self) operator(*) integer(60) reserved(end) reserved(alias) symbol(:minute) symbol(:minutes) reserved(def) method(hours) pre_constant(self) operator(*) integer(60)operator(.)ident(minutes) reserved(end) reserved(alias) symbol(:hour) symbol(:hours) reserved(def) method(days) pre_constant(self) operator(*) integer(24)operator(.)ident(hours) reserved(end) reserved(alias) symbol(:day) symbol(:days) reserved(def) method(weeks) pre_constant(self) operator(*) integer(7)operator(.)ident(days) reserved(end) reserved(alias) symbol(:week) symbol(:weeks) reserved(def) method(fortnights) pre_constant(self) operator(*) integer(2)operator(.)ident(weeks) reserved(end) reserved(alias) symbol(:fortnight) symbol(:fortnights) reserved(def) method(months) pre_constant(self) operator(*) integer(30)operator(.)ident(days) reserved(end) reserved(alias) symbol(:month) symbol(:months) reserved(def) method(years) operator(()pre_constant(self) operator(*) float(365.25)operator(.)ident(days)operator(\))operator(.)ident(to_i) reserved(end) reserved(alias) symbol(:year) symbol(:years) comment(# Reads best without arguments: 10.minutes.ago) reserved(def) method(ago)operator(()ident(time) operator(=) operator(::)constant(Time)operator(.)ident(now)operator(\)) ident(time) operator(-) pre_constant(self) reserved(end) comment(# Reads best with argument: 10.minutes.until(time\)) reserved(alias) symbol(:until) symbol(:ago) comment(# Reads best with argument: 10.minutes.since(time\)) reserved(def) method(since)operator(()ident(time) operator(=) operator(::)constant(Time)operator(.)ident(now)operator(\)) ident(time) operator(+) pre_constant(self) reserved(end) comment(# Reads best without arguments: 10.minutes.from_now) reserved(alias) symbol(:from_now) symbol(:since) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Numeric) comment(#:nodoc:) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Numeric)operator(::)constant(Time) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Numeric)operator(::)constant(Bytes) reserved(end) reserved(class) class(Object) comment(#:nodoc:) reserved(def) method(remove_subclasses_of)operator(()operator(*)ident(superclasses)operator(\)) constant(Class)operator(.)ident(remove_class)operator(()operator(*)ident(subclasses_of)operator(()operator(*)ident(superclasses)operator(\))operator(\)) reserved(end) reserved(def) method(subclasses_of)operator(()operator(*)ident(superclasses)operator(\)) ident(subclasses) operator(=) operator([)operator(]) constant(ObjectSpace)operator(.)ident(each_object)operator(()constant(Class)operator(\)) reserved(do) operator(|)ident(k)operator(|) reserved(next) reserved(if) comment(# Exclude this class if) operator(()ident(k)operator(.)ident(ancestors) operator(&) ident(superclasses)operator(\))operator(.)ident(empty?) operator(||) comment(# It's not a subclass of our supers) ident(superclasses)operator(.)ident(include?)operator(()ident(k)operator(\)) operator(||) comment(# It *is* one of the supers) ident(eval)operator(()stringcontent(\))delimiter(")>operator(\)) operator(||) comment(# It's not defined.) ident(eval)operator(()stringdelimiter(")>operator(\))operator(.)ident(object_id) operator(!=) ident(k)operator(.)ident(object_id) ident(subclasses) operator(<<) ident(k) reserved(end) ident(subclasses) reserved(end) reserved(def) method(extended_by) ident(ancestors) operator(=) reserved(class) operator(<<) class(self)operator(;) ident(ancestors) reserved(end) ident(ancestors)operator(.)ident(select) operator({) operator(|)ident(mod)operator(|) ident(mod)operator(.)ident(class) operator(==) constant(Module) operator(}) operator(-) operator([) constant(Object)operator(,) constant(Kernel) operator(]) reserved(end) reserved(def) method(copy_instance_variables_from)operator(()ident(object)operator(,) ident(exclude) operator(=) operator([)operator(])operator(\)) ident(exclude) operator(+=) ident(object)operator(.)ident(protected_instance_variables) reserved(if) ident(object)operator(.)ident(respond_to?) symbol(:protected_instance_variables) ident(instance_variables) operator(=) ident(object)operator(.)ident(instance_variables) operator(-) ident(exclude)operator(.)ident(map) operator({) operator(|)ident(name)operator(|) ident(name)operator(.)ident(to_s) operator(}) ident(instance_variables)operator(.)ident(each) operator({) operator(|)ident(name)operator(|) ident(instance_variable_set)operator(()ident(name)operator(,) ident(object)operator(.)ident(instance_variable_get)operator(()ident(name)operator(\))operator(\)) operator(}) reserved(end) reserved(def) method(extend_with_included_modules_from)operator(()ident(object)operator(\)) ident(object)operator(.)ident(extended_by)operator(.)ident(each) operator({) operator(|)ident(mod)operator(|) ident(extend) ident(mod) operator(}) reserved(end) reserved(def) method(instance_values) ident(instance_variables)operator(.)ident(inject)operator(()operator({)operator(})operator(\)) reserved(do) operator(|)ident(values)operator(,) ident(name)operator(|) ident(values)operator([)ident(name)operator([)integer(1)operator(..)integer(-1)operator(])operator(]) operator(=) ident(instance_variable_get)operator(()ident(name)operator(\)) ident(values) reserved(end) reserved(end) reserved(unless) reserved(defined?) ident(instance_exec) comment(# 1.9) reserved(def) method(instance_exec)operator(()operator(*)ident(arguments)operator(,) operator(&)ident(block)operator(\)) ident(block)operator(.)ident(bind)operator(()pre_constant(self)operator(\))operator([)operator(*)ident(arguments)operator(]) reserved(end) reserved(end) reserved(end) reserved(class) class(Object) comment(#:nodoc:) comment(# A Ruby-ized realization of the K combinator, courtesy of Mikael Brockman.) comment(#) comment(# def foo) comment(# returning values = [] do) comment(# values << 'bar') comment(# values << 'baz') comment(# end) comment(# end) comment(#) comment(# foo # => ['bar', 'baz']) comment(#) comment(# def foo) comment(# returning [] do |values|) comment(# values << 'bar') comment(# values << 'baz') comment(# end) comment(# end) comment(#) comment(# foo # => ['bar', 'baz']) comment(#) reserved(def) method(returning)operator(()ident(value)operator(\)) reserved(yield)operator(()ident(value)operator(\)) ident(value) reserved(end) reserved(def) method(with_options)operator(()ident(options)operator(\)) reserved(yield) constant(ActiveSupport)operator(::)constant(OptionMerger)operator(.)ident(new)operator(()pre_constant(self)operator(,) ident(options)operator(\)) reserved(end) reserved(def) method(to_json) constant(ActiveSupport)operator(::)constant(JSON)operator(.)ident(encode)operator(()pre_constant(self)operator(\)) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringreserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Pathname) comment(#:nodoc:) reserved(module) class(CleanWithin) comment(# Clean the paths contained in the provided string.) reserved(def) method(clean_within)operator(()ident(string)operator(\)) ident(string)operator(.)ident(gsub)operator(()regexpoperator(\)) reserved(do) operator(|)ident(path)operator(|) ident(new)operator(()ident(path)operator(\))operator(.)ident(cleanpath) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Pathname)comment(#:nodoc:) ident(extend) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Pathname)operator(::)constant(CleanWithin) reserved(end) reserved(class) class(Proc) comment(#:nodoc:) reserved(def) method(bind)operator(()ident(object)operator(\)) ident(block)operator(,) ident(time) operator(=) pre_constant(self)operator(,) constant(Time)operator(.)ident(now) operator(()reserved(class) operator(<<) class(object)operator(;) pre_constant(self) reserved(end)operator(\))operator(.)ident(class_eval) reserved(do) ident(method_name) operator(=) stringcontent(_)inlinedelimiter(")> ident(define_method)operator(()ident(method_name)operator(,) operator(&)ident(block)operator(\)) ident(method) operator(=) ident(instance_method)operator(()ident(method_name)operator(\)) ident(remove_method)operator(()ident(method_name)operator(\)) ident(method) reserved(end)operator(.)ident(bind)operator(()ident(object)operator(\)) reserved(end) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Range) comment(#:nodoc:) comment(# Getting dates in different convenient string representations and other objects) reserved(module) class(Conversions) constant(DATE_FORMATS) operator(=) operator({) symbol(:db) operator(=)operator(>) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(start)operator(,) ident(stop)operator(|) stringcontent(' AND ')inlinecontent(')delimiter(")> operator(}) operator(}) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(klass)operator(\)) comment(#:nodoc:) ident(klass)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) symbol(:to_default_s)operator(,) symbol(:to_s)operator(\)) ident(klass)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) symbol(:to_s)operator(,) symbol(:to_formatted_s)operator(\)) reserved(end) reserved(def) method(to_formatted_s)operator(()ident(format) operator(=) symbol(:default)operator(\)) constant(DATE_FORMATS)operator([)ident(format)operator(]) operator(?) constant(DATE_FORMATS)operator([)ident(format)operator(])operator(.)ident(call)operator(()ident(first)operator(,) ident(last)operator(\)) operator(:) ident(to_default_s) reserved(end) reserved(end) reserved(end) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Range) comment(#:nodoc:) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Range)operator(::)constant(Conversions) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(String) comment(#:nodoc:) comment(# Makes it easier to access parts of a string, such as specific characters and substrings.) reserved(module) class(Access) comment(# Returns the character at the +position+ treating the string as an array (where 0 is the first character\).) comment(#) comment(# Examples: ) comment(# "hello".at(0\) # => "h") comment(# "hello".at(4\) # => "o") comment(# "hello".at(10\) # => nil) reserved(def) method(at)operator(()ident(position)operator(\)) pre_constant(self)operator([)ident(position)operator(,) integer(1)operator(]) reserved(end) comment(# Returns the remaining of the string from the +position+ treating the string as an array (where 0 is the first character\).) comment(#) comment(# Examples: ) comment(# "hello".from(0\) # => "hello") comment(# "hello".from(2\) # => "llo") comment(# "hello".from(10\) # => nil) reserved(def) method(from)operator(()ident(position)operator(\)) pre_constant(self)operator([)ident(position)operator(..)integer(-1)operator(]) reserved(end) comment(# Returns the beginning of the string up to the +position+ treating the string as an array (where 0 is the first character\).) comment(#) comment(# Examples: ) comment(# "hello".to(0\) # => "h") comment(# "hello".to(2\) # => "hel") comment(# "hello".to(10\) # => "hello") reserved(def) method(to)operator(()ident(position)operator(\)) pre_constant(self)operator([)integer(0)operator(..)ident(position)operator(]) reserved(end) comment(# Returns the first character of the string or the first +limit+ characters.) comment(#) comment(# Examples: ) comment(# "hello".first # => "h") comment(# "hello".first(2\) # => "he") comment(# "hello".first(10\) # => "hello") reserved(def) method(first)operator(()ident(limit) operator(=) integer(1)operator(\)) pre_constant(self)operator([)integer(0)operator(..)operator(()ident(limit) operator(-) integer(1)operator(\))operator(]) reserved(end) comment(# Returns the last character of the string or the last +limit+ characters.) comment(#) comment(# Examples: ) comment(# "hello".last # => "o") comment(# "hello".last(2\) # => "lo") comment(# "hello".last(10\) # => "hello") reserved(def) method(last)operator(()ident(limit) operator(=) integer(1)operator(\)) pre_constant(self)operator([)operator(()operator(-)ident(limit)operator(\))operator(..)integer(-1)operator(]) operator(||) pre_constant(self) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(String) comment(#:nodoc:) comment(# Converting strings to other objects) reserved(module) class(Conversions) comment(# Form can be either :utc (default\) or :local.) reserved(def) method(to_time)operator(()ident(form) operator(=) symbol(:utc)operator(\)) operator(::)constant(Time)operator(.)ident(send)operator(()ident(form)operator(,) operator(*)constant(ParseDate)operator(.)ident(parsedate)operator(()pre_constant(self)operator(\))operator(\)) reserved(end) reserved(def) method(to_date) operator(::)constant(Date)operator(.)ident(new)operator(()operator(*)constant(ParseDate)operator(.)ident(parsedate)operator(()pre_constant(self)operator(\))operator([)integer(0)operator(..)integer(2)operator(])operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) ident(endrequire) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(unless) reserved(defined?) constant(Inflector) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(String) comment(#:nodoc:) comment(# Makes it possible to do "posts".singularize that returns "post" and "MegaCoolClass".underscore that returns "mega_cool_class".) reserved(module) class(Inflections) reserved(def) method(pluralize) constant(Inflector)operator(.)ident(pluralize)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(singularize) constant(Inflector)operator(.)ident(singularize)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(camelize)operator(()ident(first_letter) operator(=) symbol(:upper)operator(\)) reserved(case) ident(first_letter) reserved(when) symbol(:upper) reserved(then) constant(Inflector)operator(.)ident(camelize)operator(()pre_constant(self)operator(,) pre_constant(true)operator(\)) reserved(when) symbol(:lower) reserved(then) constant(Inflector)operator(.)ident(camelize)operator(()pre_constant(self)operator(,) pre_constant(false)operator(\)) reserved(end) reserved(end) ident(alias_method) symbol(:camelcase)operator(,) symbol(:camelize) reserved(def) method(titleize) constant(Inflector)operator(.)ident(titleize)operator(()pre_constant(self)operator(\)) reserved(end) ident(alias_method) symbol(:titlecase)operator(,) symbol(:titleize) reserved(def) method(underscore) constant(Inflector)operator(.)ident(underscore)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(dasherize) constant(Inflector)operator(.)ident(dasherize)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(demodulize) constant(Inflector)operator(.)ident(demodulize)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(tableize) constant(Inflector)operator(.)ident(tableize)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(classify) constant(Inflector)operator(.)ident(classify)operator(()pre_constant(self)operator(\)) reserved(end) comment(# Capitalizes the first word and turns underscores into spaces and strips _id, so "employee_salary" becomes "Employee salary" ) comment(# and "author_id" becomes "Author".) reserved(def) method(humanize) constant(Inflector)operator(.)ident(humanize)operator(()pre_constant(self)operator(\)) reserved(end) reserved(def) method(foreign_key)operator(()ident(separate_class_name_and_id_with_underscore) operator(=) pre_constant(true)operator(\)) constant(Inflector)operator(.)ident(foreign_key)operator(()pre_constant(self)operator(,) ident(separate_class_name_and_id_with_underscore)operator(\)) reserved(end) reserved(def) method(constantize) constant(Inflector)operator(.)ident(constantize)operator(()pre_constant(self)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(String) comment(#:nodoc:) comment(# Custom string iterators) reserved(module) class(Iterators) comment(# Yields a single-character string for each character in the string.) comment(# When $KCODE = 'UTF8', multi-byte characters are yielded appropriately.) reserved(def) method(each_char) ident(scanner)operator(,) ident(char) operator(=) constant(StringScanner)operator(.)ident(new)operator(()pre_constant(self)operator(\))operator(,) regexp ident(loop) operator({) reserved(yield)operator(()ident(scanner)operator(.)ident(scan)operator(()ident(char)operator(\)) operator(||) reserved(break)operator(\)) operator(}) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(String) comment(#:nodoc:) comment(# Additional string tests.) reserved(module) class(StartsEndsWith) comment(# Does the string start with the specified +prefix+?) reserved(def) method(starts_with?)operator(()ident(prefix)operator(\)) ident(prefix) operator(=) ident(prefix)operator(.)ident(to_s) pre_constant(self)operator([)integer(0)operator(,) ident(prefix)operator(.)ident(length)operator(]) operator(==) ident(prefix) reserved(end) comment(# Does the string end with the specified +suffix+?) reserved(def) method(ends_with?)operator(()ident(suffix)operator(\)) ident(suffix) operator(=) ident(suffix)operator(.)ident(to_s) pre_constant(self)operator([)operator(-)ident(suffix)operator(.)ident(length)operator(,) ident(suffix)operator(.)ident(length)operator(]) operator(==) ident(suffix) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(String) comment(#:nodoc:) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(String)operator(::)constant(Access) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(String)operator(::)constant(Conversions) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(String)operator(::)constant(Inflections) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(String)operator(::)constant(StartsEndsWith) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(String)operator(::)constant(Iterators) reserved(end) reserved(class) class(Symbol) comment(# Turns the symbol into a simple proc, which is especially useful for enumerations. Examples:) comment(#) comment(# # The same as people.collect { |p| p.name }) comment(# people.collect(&:name\)) comment(#) comment(# # The same as people.select { |p| p.manager? }.collect { |p| p.salary }) comment(# people.select(&:manager?\).collect(&:salary\)) reserved(def) method(to_proc) constant(Proc)operator(.)ident(new) operator({) operator(|)ident(obj)operator(,) operator(*)ident(args)operator(|) ident(obj)operator(.)ident(send)operator(()pre_constant(self)operator(,) operator(*)ident(args)operator(\)) operator(}) reserved(end) reserved(end) reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Time) comment(#:nodoc:) comment(# Enables the use of time calculations within Time itself) reserved(module) class(Calculations) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(base)operator(\)) comment(#:nodoc:) reserved(super) ident(base)operator(.)ident(extend)operator(()constant(ClassMethods)operator(\)) reserved(end) reserved(module) class(ClassMethods) comment(# Return the number of days in the given month. If a year is given,) comment(# February will return the correct number of days for leap years.) comment(# Otherwise, this method will always report February as having 28) comment(# days.) reserved(def) method(days_in_month)operator(()ident(month)operator(,) ident(year)operator(=)pre_constant(nil)operator(\)) reserved(if) ident(month) operator(==) integer(2) operator(!)ident(year)operator(.)ident(nil?) operator(&&) operator(()ident(year) operator(%) integer(4) operator(==) integer(0)operator(\)) operator(&&) operator(()operator(()ident(year) operator(%) integer(100) operator(!=) integer(0)operator(\)) operator(||) operator(()ident(year) operator(%) integer(400) operator(==) integer(0)operator(\))operator(\)) operator(?) integer(29) operator(:) integer(28) reserved(elsif) ident(month) operator(<=) integer(7) ident(month) operator(%) integer(2) operator(==) integer(0) operator(?) integer(30) operator(:) integer(31) reserved(else) ident(month) operator(%) integer(2) operator(==) integer(0) operator(?) integer(31) operator(:) integer(30) reserved(end) reserved(end) reserved(end) comment(# Seconds since midnight: Time.now.seconds_since_midnight) reserved(def) method(seconds_since_midnight) pre_constant(self)operator(.)ident(hour)operator(.)ident(hours) operator(+) pre_constant(self)operator(.)ident(min)operator(.)ident(minutes) operator(+) pre_constant(self)operator(.)ident(sec) operator(+) operator(()pre_constant(self)operator(.)ident(usec)operator(/)float(1.0e+6)operator(\)) reserved(end) comment(# Returns a new Time where one or more of the elements have been changed according to the +options+ parameter. The time options) comment(# (hour, minute, sec, usec\) reset cascadingly, so if only the hour is passed, then minute, sec, and usec is set to 0. If the hour and ) comment(# minute is passed, then sec and usec is set to 0.) reserved(def) method(change)operator(()ident(options)operator(\)) operator(::)constant(Time)operator(.)ident(send)operator(() pre_constant(self)operator(.)ident(utc?) operator(?) symbol(:utc) operator(:) symbol(:local)operator(,) ident(options)operator([)symbol(:year)operator(]) operator(||) pre_constant(self)operator(.)ident(year)operator(,) ident(options)operator([)symbol(:month)operator(]) operator(||) pre_constant(self)operator(.)ident(month)operator(,) ident(options)operator([)symbol(:mday)operator(]) operator(||) pre_constant(self)operator(.)ident(mday)operator(,) ident(options)operator([)symbol(:hour)operator(]) operator(||) pre_constant(self)operator(.)ident(hour)operator(,) ident(options)operator([)symbol(:min)operator(]) operator(||) operator(()ident(options)operator([)symbol(:hour)operator(]) operator(?) integer(0) operator(:) pre_constant(self)operator(.)ident(min)operator(\))operator(,) ident(options)operator([)symbol(:sec)operator(]) operator(||) operator(()operator(()ident(options)operator([)symbol(:hour)operator(]) operator(||) ident(options)operator([)symbol(:min)operator(])operator(\)) operator(?) integer(0) operator(:) pre_constant(self)operator(.)ident(sec)operator(\))operator(,) ident(options)operator([)symbol(:usec)operator(]) operator(||) operator(()operator(()ident(options)operator([)symbol(:hour)operator(]) operator(||) ident(options)operator([)symbol(:min)operator(]) operator(||) ident(options)operator([)symbol(:sec)operator(])operator(\)) operator(?) integer(0) operator(:) pre_constant(self)operator(.)ident(usec)operator(\)) operator(\)) reserved(end) comment(# Uses Date to provide precise Time calculations for years, months, and days. The +options+ parameter takes a hash with ) comment(# any of these keys: :months, :days, :years.) reserved(def) method(advance)operator(()ident(options)operator(\)) ident(d) operator(=) operator(::)constant(Date)operator(.)ident(new)operator(()ident(year) operator(+) operator(()ident(options)operator(.)ident(delete)operator(()symbol(:years)operator(\)) operator(||) integer(0)operator(\))operator(,) ident(month)operator(,) ident(day)operator(\)) ident(d) operator(=) ident(d) operator(>>) ident(options)operator(.)ident(delete)operator(()symbol(:months)operator(\)) reserved(if) ident(options)operator([)symbol(:months)operator(]) ident(d) operator(=) ident(d) operator(+) ident(options)operator(.)ident(delete)operator(()symbol(:days)operator(\)) reserved(if) ident(options)operator([)symbol(:days)operator(]) ident(change)operator(()ident(options)operator(.)ident(merge)operator(()symbol(:year) operator(=)operator(>) ident(d)operator(.)ident(year)operator(,) symbol(:month) operator(=)operator(>) ident(d)operator(.)ident(month)operator(,) symbol(:mday) operator(=)operator(>) ident(d)operator(.)ident(day)operator(\))operator(\)) reserved(end) comment(# Returns a new Time representing the time a number of seconds ago, this is basically a wrapper around the Numeric extension) comment(# Do not use this method in combination with x.months, use months_ago instead!) reserved(def) method(ago)operator(()ident(seconds)operator(\)) ident(seconds)operator(.)ident(until)operator(()pre_constant(self)operator(\)) reserved(end) comment(# Returns a new Time representing the time a number of seconds since the instance time, this is basically a wrapper around ) comment(#the Numeric extension. Do not use this method in combination with x.months, use months_since instead!) reserved(def) method(since)operator(()ident(seconds)operator(\)) ident(seconds)operator(.)ident(since)operator(()pre_constant(self)operator(\)) reserved(end) reserved(alias) symbol(:in) symbol(:since) comment(# Returns a new Time representing the time a number of specified months ago) reserved(def) method(months_ago)operator(()ident(months)operator(\)) ident(months_since)operator(()operator(-)ident(months)operator(\)) reserved(end) reserved(def) method(months_since)operator(()ident(months)operator(\)) ident(year)operator(,) ident(month)operator(,) ident(mday) operator(=) pre_constant(self)operator(.)ident(year)operator(,) pre_constant(self)operator(.)ident(month)operator(,) pre_constant(self)operator(.)ident(mday) ident(month) operator(+=) ident(months) comment(# in case months is negative) reserved(while) ident(month) operator(<) integer(1) ident(month) operator(+=) integer(12) ident(year) operator(-=) integer(1) reserved(end) comment(# in case months is positive) reserved(while) ident(month) operator(>) integer(12) ident(month) operator(-=) integer(12) ident(year) operator(+=) integer(1) reserved(end) ident(max) operator(=) operator(::)constant(Time)operator(.)ident(days_in_month)operator(()ident(month)operator(,) ident(year)operator(\)) ident(mday) operator(=) ident(max) reserved(if) ident(mday) operator(>) ident(max) ident(change)operator(()symbol(:year) operator(=)operator(>) ident(year)operator(,) symbol(:month) operator(=)operator(>) ident(month)operator(,) symbol(:mday) operator(=)operator(>) ident(mday)operator(\)) reserved(end) comment(# Returns a new Time representing the time a number of specified years ago) reserved(def) method(years_ago)operator(()ident(years)operator(\)) ident(change)operator(()symbol(:year) operator(=)operator(>) pre_constant(self)operator(.)ident(year) operator(-) ident(years)operator(\)) reserved(end) reserved(def) method(years_since)operator(()ident(years)operator(\)) ident(change)operator(()symbol(:year) operator(=)operator(>) pre_constant(self)operator(.)ident(year) operator(+) ident(years)operator(\)) reserved(end) comment(# Short-hand for years_ago(1\)) reserved(def) method(last_year) ident(years_ago)operator(()integer(1)operator(\)) reserved(end) comment(# Short-hand for years_since(1\)) reserved(def) method(next_year) ident(years_since)operator(()integer(1)operator(\)) reserved(end) comment(# Short-hand for months_ago(1\)) reserved(def) method(last_month) ident(months_ago)operator(()integer(1)operator(\)) reserved(end) comment(# Short-hand for months_since(1\)) reserved(def) method(next_month) ident(months_since)operator(()integer(1)operator(\)) reserved(end) comment(# Returns a new Time representing the "start" of this week (Monday, 0:00\)) reserved(def) method(beginning_of_week) ident(days_to_monday) operator(=) pre_constant(self)operator(.)ident(wday!)operator(=)integer(0) operator(?) pre_constant(self)operator(.)ident(wday)operator(-)integer(1) operator(:) integer(6) operator(()pre_constant(self) operator(-) ident(days_to_monday)operator(.)ident(days)operator(\))operator(.)ident(midnight) reserved(end) reserved(alias) symbol(:monday) symbol(:beginning_of_week) reserved(alias) symbol(:at_beginning_of_week) symbol(:beginning_of_week) comment(# Returns a new Time representing the start of the given day in next week (default is Monday\).) reserved(def) method(next_week)operator(()ident(day) operator(=) symbol(:monday)operator(\)) ident(days_into_week) operator(=) operator({) symbol(:monday) operator(=)operator(>) integer(0)operator(,) symbol(:tuesday) operator(=)operator(>) integer(1)operator(,) symbol(:wednesday) operator(=)operator(>) integer(2)operator(,) symbol(:thursday) operator(=)operator(>) integer(3)operator(,) symbol(:friday) operator(=)operator(>) integer(4)operator(,) symbol(:saturday) operator(=)operator(>) integer(5)operator(,) symbol(:sunday) operator(=)operator(>) integer(6)operator(}) ident(since)operator(()integer(1)operator(.)ident(week)operator(\))operator(.)ident(beginning_of_week)operator(.)ident(since)operator(()ident(days_into_week)operator([)ident(day)operator(])operator(.)ident(day)operator(\))operator(.)ident(change)operator(()symbol(:hour) operator(=)operator(>) integer(0)operator(\)) reserved(end) comment(# Returns a new Time representing the start of the day (0:00\)) reserved(def) method(beginning_of_day) operator(()pre_constant(self) operator(-) pre_constant(self)operator(.)ident(seconds_since_midnight)operator(\))operator(.)ident(change)operator(()symbol(:usec) operator(=)operator(>) integer(0)operator(\)) reserved(end) reserved(alias) symbol(:midnight) symbol(:beginning_of_day) reserved(alias) symbol(:at_midnight) symbol(:beginning_of_day) reserved(alias) symbol(:at_beginning_of_day) symbol(:beginning_of_day) comment(# Returns a new Time representing the start of the month (1st of the month, 0:00\)) reserved(def) method(beginning_of_month) comment(#self - ((self.mday-1\).days + self.seconds_since_midnight\)) ident(change)operator(()symbol(:mday) operator(=)operator(>) integer(1)operator(,)symbol(:hour) operator(=)operator(>) integer(0)operator(,) symbol(:min) operator(=)operator(>) integer(0)operator(,) symbol(:sec) operator(=)operator(>) integer(0)operator(,) symbol(:usec) operator(=)operator(>) integer(0)operator(\)) reserved(end) reserved(alias) symbol(:at_beginning_of_month) symbol(:beginning_of_month) comment(# Returns a new Time representing the end of the month (last day of the month, 0:00\)) reserved(def) method(end_of_month) comment(#self - ((self.mday-1\).days + self.seconds_since_midnight\)) ident(last_day) operator(=) operator(::)constant(Time)operator(.)ident(days_in_month)operator(() pre_constant(self)operator(.)ident(month)operator(,) pre_constant(self)operator(.)ident(year) operator(\)) ident(change)operator(()symbol(:mday) operator(=)operator(>) ident(last_day)operator(,)symbol(:hour) operator(=)operator(>) integer(0)operator(,) symbol(:min) operator(=)operator(>) integer(0)operator(,) symbol(:sec) operator(=)operator(>) integer(0)operator(,) symbol(:usec) operator(=)operator(>) integer(0)operator(\)) reserved(end) reserved(alias) symbol(:at_end_of_month) symbol(:end_of_month) comment(# Returns a new Time representing the start of the quarter (1st of january, april, july, october, 0:00\)) reserved(def) method(beginning_of_quarter) ident(beginning_of_month)operator(.)ident(change)operator(()symbol(:month) operator(=)operator(>) operator([)integer(10)operator(,) integer(7)operator(,) integer(4)operator(,) integer(1)operator(])operator(.)ident(detect) operator({) operator(|)ident(m)operator(|) ident(m) operator(<=) pre_constant(self)operator(.)ident(month) operator(})operator(\)) reserved(end) reserved(alias) symbol(:at_beginning_of_quarter) symbol(:beginning_of_quarter) comment(# Returns a new Time representing the start of the year (1st of january, 0:00\)) reserved(def) method(beginning_of_year) ident(change)operator(()symbol(:month) operator(=)operator(>) integer(1)operator(,)symbol(:mday) operator(=)operator(>) integer(1)operator(,)symbol(:hour) operator(=)operator(>) integer(0)operator(,) symbol(:min) operator(=)operator(>) integer(0)operator(,) symbol(:sec) operator(=)operator(>) integer(0)operator(,) symbol(:usec) operator(=)operator(>) integer(0)operator(\)) reserved(end) reserved(alias) symbol(:at_beginning_of_year) symbol(:beginning_of_year) comment(# Convenience method which returns a new Time representing the time 1 day ago) reserved(def) method(yesterday) pre_constant(self)operator(.)ident(ago)operator(()integer(1)operator(.)ident(day)operator(\)) reserved(end) comment(# Convenience method which returns a new Time representing the time 1 day since the instance time) reserved(def) method(tomorrow) pre_constant(self)operator(.)ident(since)operator(()integer(1)operator(.)ident(day)operator(\)) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) string ident(require) string reserved(module) class(ActiveSupport) comment(#:nodoc:) reserved(module) class(CoreExtensions) comment(#:nodoc:) reserved(module) class(Time) comment(#:nodoc:) comment(# Getting times in different convenient string representations and other objects) reserved(module) class(Conversions) constant(DATE_FORMATS) operator(=) operator({) symbol(:db) operator(=)operator(>) stringoperator(,) symbol(:short) operator(=)operator(>) stringoperator(,) symbol(:long) operator(=)operator(>) stringoperator(,) symbol(:rfc822) operator(=)operator(>) string operator(}) reserved(def) pre_constant(self)operator(.)method(append_features)operator(()ident(klass)operator(\)) reserved(super) ident(klass)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) symbol(:to_default_s)operator(,) symbol(:to_s)operator(\)) ident(klass)operator(.)ident(send)operator(()symbol(:alias_method)operator(,) symbol(:to_s)operator(,) symbol(:to_formatted_s)operator(\)) reserved(end) reserved(def) method(to_formatted_s)operator(()ident(format) operator(=) symbol(:default)operator(\)) constant(DATE_FORMATS)operator([)ident(format)operator(]) operator(?) ident(strftime)operator(()constant(DATE_FORMATS)operator([)ident(format)operator(])operator(\))operator(.)ident(strip) operator(:) ident(to_default_s) reserved(end) reserved(def) method(to_date) operator(::)constant(Date)operator(.)ident(new)operator(()ident(year)operator(,) ident(month)operator(,) ident(day)operator(\)) reserved(end) comment(# To be able to keep Dates and Times interchangeable on conversions) reserved(def) method(to_time) pre_constant(self) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(class) class(Time)comment(#:nodoc:) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Time)operator(::)constant(Calculations) ident(include) constant(ActiveSupport)operator(::)constant(CoreExtensions)operator(::)constant(Time)operator(::)constant(Conversions) reserved(end) constant(Dir)operator([)constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(])operator(.)ident(each) operator({) operator(|)ident(file)operator(|) ident(require)operator(()ident(file)operator(\)) operator(}) ident(require) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(Dependencies) comment(#:nodoc:) ident(extend) pre_constant(self) comment(# Should we turn on Ruby warnings on the first load of dependent files?) ident(mattr_accessor) symbol(:warnings_on_first_load) pre_constant(self)operator(.)ident(warnings_on_first_load) operator(=) pre_constant(false) comment(# All files ever loaded.) ident(mattr_accessor) symbol(:history) pre_constant(self)operator(.)ident(history) operator(=) constant(Set)operator(.)ident(new) comment(# All files currently loaded.) ident(mattr_accessor) symbol(:loaded) pre_constant(self)operator(.)ident(loaded) operator(=) constant(Set)operator(.)ident(new) comment(# Should we load files or require them?) ident(mattr_accessor) symbol(:mechanism) pre_constant(self)operator(.)ident(mechanism) operator(=) symbol(:load) reserved(def) method(load?) ident(mechanism) operator(==) symbol(:load) reserved(end) reserved(def) method(depend_on)operator(()ident(file_name)operator(,) ident(swallow_load_errors) operator(=) pre_constant(false)operator(\)) ident(require_or_load)operator(()ident(file_name)operator(\)) reserved(rescue) constant(LoadError) ident(raise) reserved(unless) ident(swallow_load_errors) reserved(end) reserved(def) method(associate_with)operator(()ident(file_name)operator(\)) ident(depend_on)operator(()ident(file_name)operator(,) pre_constant(true)operator(\)) reserved(end) reserved(def) method(clear) ident(loaded)operator(.)ident(clear) reserved(end) reserved(def) method(require_or_load)operator(()ident(file_name)operator(\)) ident(file_name) operator(=) global_variable($1) reserved(if) ident(file_name) operator(=)operator(~) regexp reserved(return) reserved(if) ident(loaded)operator(.)ident(include?)operator(()ident(file_name)operator(\)) comment(# Record that we've seen this file *before* loading it to avoid an) comment(# infinite loop with mutual dependencies.) ident(loaded) operator(<<) ident(file_name) reserved(if) ident(load?) reserved(begin) comment(# Enable warnings iff this file has not been loaded before and) comment(# warnings_on_first_load is set.) reserved(if) operator(!)ident(warnings_on_first_load) reserved(or) ident(history)operator(.)ident(include?)operator(()ident(file_name)operator(\)) ident(load) stringcontent(.rb)delimiter(")> reserved(else) ident(enable_warnings) operator({) ident(load) stringcontent(.rb)delimiter(")> operator(}) reserved(end) reserved(rescue) ident(loaded)operator(.)ident(delete) ident(file_name) ident(raise) reserved(end) reserved(else) ident(require) ident(file_name) reserved(end) comment(# Record history *after* loading so first load gets warnings.) ident(history) operator(<<) ident(file_name) reserved(end) reserved(class) class(LoadingModule) comment(# Old style environment.rb referenced this method directly. Please note, it doesn't) comment(# actualy *do* anything any more.) reserved(def) pre_constant(self)operator(.)method(root)operator(()operator(*)ident(args)operator(\)) reserved(if) reserved(defined?)operator(()constant(RAILS_DEFAULT_LOGGER)operator(\)) constant(RAILS_DEFAULT_LOGGER)operator(.)ident(warn) string constant(RAILS_DEFAULT_LOGGER)operator(.)ident(warn) string reserved(end) reserved(end) reserved(end) reserved(end) constant(Object)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:require_or_load)operator(\)) operator({) operator(|)ident(file_name)operator(|) constant(Dependencies)operator(.)ident(require_or_load)operator(()ident(file_name)operator(\)) operator(}) reserved(unless) constant(Object)operator(.)ident(respond_to?)operator(()symbol(:require_or_load)operator(\)) constant(Object)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:require_dependency)operator(\)) operator({) operator(|)ident(file_name)operator(|) constant(Dependencies)operator(.)ident(depend_on)operator(()ident(file_name)operator(\)) operator(}) reserved(unless) constant(Object)operator(.)ident(respond_to?)operator(()symbol(:require_dependency)operator(\)) constant(Object)operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:require_association)operator(\)) operator({) operator(|)ident(file_name)operator(|) constant(Dependencies)operator(.)ident(associate_with)operator(()ident(file_name)operator(\)) operator(}) reserved(unless) constant(Object)operator(.)ident(respond_to?)operator(()symbol(:require_association)operator(\)) reserved(class) class(Module) comment(#:nodoc:) comment(# Rename the original handler so we can chain it to the new one) reserved(alias) symbol(:rails_original_const_missing) symbol(:const_missing) comment(# Use const_missing to autoload associations so we don't have to) comment(# require_association when using single-table inheritance.) reserved(def) method(const_missing)operator(()ident(class_id)operator(\)) ident(file_name) operator(=) ident(class_id)operator(.)ident(to_s)operator(.)ident(demodulize)operator(.)ident(underscore) ident(file_path) operator(=) ident(as_load_path)operator(.)ident(empty?) operator(?) ident(file_name) operator(:) stringcontent(/)inlinedelimiter(")> reserved(begin) ident(require_dependency)operator(()ident(file_path)operator(\)) ident(brief_name) operator(=) pre_constant(self) operator(==) constant(Object) operator(?) string operator(:) stringcontent(::)delimiter(")> ident(raise) constant(NameError)operator(.)ident(new)operator(()stringinlinedelimiter(")>operator(\)) reserved(unless) ident(const_defined?)operator(()ident(class_id)operator(\)) reserved(return) ident(const_get)operator(()ident(class_id)operator(\)) reserved(rescue) constant(MissingSourceFile) operator(=)operator(>) ident(e) comment(# Re-raise the error if it does not concern the file we were trying to load.) ident(raise) reserved(unless) ident(e)operator(.)ident(is_missing?) ident(file_path) comment(# Look for a directory in the load path that we ought to load.) reserved(if) global_variable($LOAD_PATH)operator(.)ident(any?) operator({) operator(|)ident(base)operator(|) constant(File)operator(.)ident(directory?) stringcontent(/)inlinedelimiter(")> operator(}) ident(mod) operator(=) constant(Module)operator(.)ident(new) ident(const_set) ident(class_id)operator(,) ident(mod) comment(# Create the new module) reserved(return) ident(mod) reserved(end) comment(# Attempt to access the name from the parent, unless we don't have a valid) comment(# parent, or the constant is already defined in the parent. If the latter) comment(# is the case, then we are being queried via self::class_id, and we should) comment(# avoid returning the constant from the parent if possible.) reserved(if) ident(parent) operator(&&) ident(parent) operator(!=) pre_constant(self) operator(&&) operator(!) ident(parents)operator(.)ident(any?) operator({) operator(|)ident(p)operator(|) ident(p)operator(.)ident(const_defined?)operator(()ident(class_id)operator(\)) operator(}) ident(suppress)operator(()constant(NameError)operator(\)) reserved(do) reserved(return) ident(parent)operator(.)ident(send)operator(()symbol(:const_missing)operator(,) ident(class_id)operator(\)) reserved(end) reserved(end) ident(raise) constant(NameError)operator(.)ident(new)operator(()stringdelimiter(")>operator(\))operator(.)ident(copy_blame!)operator(()ident(e)operator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(Class) reserved(def) method(const_missing)operator(()ident(class_id)operator(\)) reserved(if) operator([)constant(Object)operator(,) constant(Kernel)operator(])operator(.)ident(include?)operator(()pre_constant(self)operator(\)) operator(||) ident(parent) operator(==) pre_constant(self) reserved(super) reserved(else) ident(parent)operator(.)ident(send) symbol(:const_missing)operator(,) ident(class_id) reserved(end) reserved(end) reserved(end) reserved(class) class(Object) comment(#:nodoc:) reserved(def) method(load)operator(()ident(file)operator(,) operator(*)ident(extras)operator(\)) reserved(super)operator(()ident(file)operator(,) operator(*)ident(extras)operator(\)) reserved(rescue) constant(Object) operator(=)operator(>) ident(exception) ident(exception)operator(.)ident(blame_file!) ident(file) ident(raise) reserved(end) reserved(def) method(require)operator(()ident(file)operator(,) operator(*)ident(extras)operator(\)) reserved(super)operator(()ident(file)operator(,) operator(*)ident(extras)operator(\)) reserved(rescue) constant(Object) operator(=)operator(>) ident(exception) ident(exception)operator(.)ident(blame_file!) ident(file) ident(raise) reserved(end) reserved(end) comment(# Add file-blaming to exceptions) reserved(class) class(Exception) comment(#:nodoc:) reserved(def) method(blame_file!)operator(()ident(file)operator(\)) operator(()instance_variable(@blamed_files) operator(||=) operator([)operator(])operator(\))operator(.)ident(unshift) ident(file) reserved(end) reserved(def) method(blamed_files) instance_variable(@blamed_files) operator(||=) operator([)operator(]) reserved(end) reserved(def) method(describe_blame) reserved(return) pre_constant(nil) reserved(if) ident(blamed_files)operator(.)ident(empty?) stringinline_delimiter(})>delimiter(")> reserved(end) reserved(def) method(copy_blame!)operator(()ident(exc)operator(\)) instance_variable(@blamed_files) operator(=) ident(exc)operator(.)ident(blamed_files)operator(.)ident(clone) pre_constant(self) reserved(end) ident(endInflector)operator(.)ident(inflections) reserved(do) operator(|)ident(inflect)operator(|) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(plural)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(singular)operator(()regexpoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(irregular)operator(()stringoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(irregular)operator(()stringoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(irregular)operator(()stringoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(irregular)operator(()stringoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(irregular)operator(()stringoperator(,) stringoperator(\)) ident(inflect)operator(.)ident(uncountable)operator(()stringoperator(\)) reserved(end) ident(require) string comment(# The Inflector transforms words from singular to plural, class names to table names, modularized class names to ones without,) comment(# and class names to foreign keys. The default inflections for pluralization, singularization, and uncountable words are kept) comment(# in inflections.rb.) reserved(module) class(Inflector) comment(# A singleton instance of this class is yielded by Inflector.inflections, which can then be used to specify additional) comment(# inflection rules. Examples:) comment(#) comment(# Inflector.inflections do |inflect|) comment(# inflect.plural /^(ox\)$/i, '\\1\\2en') comment(# inflect.singular /^(ox\)en/i, '\\1') comment(#) comment(# inflect.irregular 'octopus', 'octopi') comment(#) comment(# inflect.uncountable "equipment") comment(# end) comment(#) comment(# New rules are added at the top. So in the example above, the irregular rule for octopus will now be the first of the) comment(# pluralization and singularization rules that is runs. This guarantees that your rules run before any of the rules that may) comment(# already have been loaded.) reserved(class) class(Inflections) ident(include) constant(Singleton) ident(attr_reader) symbol(:plurals)operator(,) symbol(:singulars)operator(,) symbol(:uncountables) reserved(def) method(initialize) instance_variable(@plurals)operator(,) instance_variable(@singulars)operator(,) instance_variable(@uncountables) operator(=) operator([)operator(])operator(,) operator([)operator(])operator(,) operator([)operator(]) reserved(end) comment(# Specifies a new pluralization rule and its replacement. The rule can either be a string or a regular expression. ) comment(# The replacement should always be a string that may include references to the matched data from the rule.) reserved(def) method(plural)operator(()ident(rule)operator(,) ident(replacement)operator(\)) instance_variable(@plurals)operator(.)ident(insert)operator(()integer(0)operator(,) operator([)ident(rule)operator(,) ident(replacement)operator(])operator(\)) reserved(end) comment(# Specifies a new singularization rule and its replacement. The rule can either be a string or a regular expression. ) comment(# The replacement should always be a string that may include references to the matched data from the rule.) reserved(def) method(singular)operator(()ident(rule)operator(,) ident(replacement)operator(\)) instance_variable(@singulars)operator(.)ident(insert)operator(()integer(0)operator(,) operator([)ident(rule)operator(,) ident(replacement)operator(])operator(\)) reserved(end) comment(# Specifies a new irregular that applies to both pluralization and singularization at the same time. This can only be used) comment(# for strings, not regular expressions. You simply pass the irregular in singular and plural form.) comment(# ) comment(# Examples:) comment(# irregular 'octopus', 'octopi') comment(# irregular 'person', 'people') reserved(def) method(irregular)operator(()ident(singular)operator(,) ident(plural)operator(\)) ident(plural)operator(()constant(Regexp)operator(.)ident(new)operator(()stringcontent(\))inlinecontent($)delimiter(")>operator(,) stringoperator(\))operator(,) string operator(+) ident(plural)operator([)integer(1)operator(..)integer(-1)operator(])operator(\)) ident(singular)operator(()constant(Regexp)operator(.)ident(new)operator(()stringcontent(\))inlinecontent($)delimiter(")>operator(,) stringoperator(\))operator(,) string operator(+) ident(singular)operator([)integer(1)operator(..)integer(-1)operator(])operator(\)) reserved(end) comment(# Add uncountable words that shouldn't be attempted inflected.) comment(# ) comment(# Examples:) comment(# uncountable "money") comment(# uncountable "money", "information") comment(# uncountable %w( money information rice \)) reserved(def) method(uncountable)operator(()operator(*)ident(words)operator(\)) operator(()instance_variable(@uncountables) operator(<<) ident(words)operator(\))operator(.)ident(flatten!) reserved(end) comment(# Clears the loaded inflections within a given scope (default is :all\). Give the scope as a symbol of the inflection type,) comment(# the options are: :plurals, :singulars, :uncountables) comment(#) comment(# Examples:) comment(# clear :all) comment(# clear :plurals) reserved(def) method(clear)operator(()ident(scope) operator(=) symbol(:all)operator(\)) reserved(case) ident(scope) reserved(when) symbol(:all) instance_variable(@plurals)operator(,) instance_variable(@singulars)operator(,) instance_variable(@uncountables) operator(=) operator([)operator(])operator(,) operator([)operator(])operator(,) operator([)operator(]) reserved(else) ident(instance_variable_set) stringdelimiter(")>operator(,) operator([)operator(]) reserved(end) reserved(end) reserved(end) ident(extend) pre_constant(self) reserved(def) method(inflections) reserved(if) ident(block_given?) reserved(yield) constant(Inflections)operator(.)ident(instance) reserved(else) constant(Inflections)operator(.)ident(instance) reserved(end) reserved(end) reserved(def) method(pluralize)operator(()ident(word)operator(\)) ident(result) operator(=) ident(word)operator(.)ident(to_s)operator(.)ident(dup) reserved(if) ident(inflections)operator(.)ident(uncountables)operator(.)ident(include?)operator(()ident(result)operator(.)ident(downcase)operator(\)) ident(result) reserved(else) ident(inflections)operator(.)ident(plurals)operator(.)ident(each) operator({) operator(|)operator(()ident(rule)operator(,) ident(replacement)operator(\))operator(|) reserved(break) reserved(if) ident(result)operator(.)ident(gsub!)operator(()ident(rule)operator(,) ident(replacement)operator(\)) operator(}) ident(result) reserved(end) reserved(end) reserved(def) method(singularize)operator(()ident(word)operator(\)) ident(result) operator(=) ident(word)operator(.)ident(to_s)operator(.)ident(dup) reserved(if) ident(inflections)operator(.)ident(uncountables)operator(.)ident(include?)operator(()ident(result)operator(.)ident(downcase)operator(\)) ident(result) reserved(else) ident(inflections)operator(.)ident(singulars)operator(.)ident(each) operator({) operator(|)operator(()ident(rule)operator(,) ident(replacement)operator(\))operator(|) reserved(break) reserved(if) ident(result)operator(.)ident(gsub!)operator(()ident(rule)operator(,) ident(replacement)operator(\)) operator(}) ident(result) reserved(end) reserved(end) reserved(def) method(camelize)operator(()ident(lower_case_and_underscored_word)operator(,) ident(first_letter_in_uppercase) operator(=) pre_constant(true)operator(\)) reserved(if) ident(first_letter_in_uppercase) ident(lower_case_and_underscored_word)operator(.)ident(to_s)operator(.)ident(gsub)operator(()regexpoperator(\)) operator({) string operator(+) global_variable($1)operator(.)ident(upcase) operator(})operator(.)ident(gsub)operator(()regexpoperator(\)) operator({) global_variable($2)operator(.)ident(upcase) operator(}) reserved(else) ident(lower_case_and_underscored_word)operator(.)ident(first) operator(+) ident(camelize)operator(()ident(lower_case_and_underscored_word)operator(\))operator([)integer(1)operator(..)integer(-1)operator(]) reserved(end) reserved(end) reserved(def) method(titleize)operator(()ident(word)operator(\)) ident(humanize)operator(()ident(underscore)operator(()ident(word)operator(\))operator(\))operator(.)ident(gsub)operator(()regexpoperator(\)) operator({) global_variable($1)operator(.)ident(capitalize) operator(}) reserved(end) reserved(def) method(underscore)operator(()ident(camel_cased_word)operator(\)) ident(camel_cased_word)operator(.)ident(to_s)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.) ident(gsub)operator(()regexpoperator(,)stringoperator(\))operator(.) ident(gsub)operator(()regexpoperator(,)stringoperator(\))operator(.) ident(tr)operator(()stringoperator(,) stringoperator(\))operator(.) ident(downcase) reserved(end) reserved(def) method(dasherize)operator(()ident(underscored_word)operator(\)) ident(underscored_word)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) method(humanize)operator(()ident(lower_case_and_underscored_word)operator(\)) ident(lower_case_and_underscored_word)operator(.)ident(to_s)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.)ident(capitalize) reserved(end) reserved(def) method(demodulize)operator(()ident(class_name_in_module)operator(\)) ident(class_name_in_module)operator(.)ident(to_s)operator(.)ident(gsub)operator(()regexpoperator(,) stringoperator(\)) reserved(end) reserved(def) method(tableize)operator(()ident(class_name)operator(\)) ident(pluralize)operator(()ident(underscore)operator(()ident(class_name)operator(\))operator(\)) reserved(end) reserved(def) method(classify)operator(()ident(table_name)operator(\)) ident(camelize)operator(()ident(singularize)operator(()ident(table_name)operator(\))operator(\)) reserved(end) reserved(def) method(foreign_key)operator(()ident(class_name)operator(,) ident(separate_class_name_and_id_with_underscore) operator(=) pre_constant(true)operator(\)) ident(underscore)operator(()ident(demodulize)operator(()ident(class_name)operator(\))operator(\)) operator(+) operator(()ident(separate_class_name_and_id_with_underscore) operator(?) string operator(:) stringoperator(\)) reserved(end) reserved(def) method(constantize)operator(()ident(camel_cased_word)operator(\)) ident(raise) constant(NameError)operator(,) stringcontent( is not a valid constant name!)delimiter(")> reserved(unless) regexp operator(=)operator(~) ident(camel_cased_word) ident(camel_cased_word) operator(=) stringdelimiter(")> reserved(unless) global_variable($1) constant(Object)operator(.)ident(module_eval)operator(()ident(camel_cased_word)operator(,) pre_constant(__FILE__)operator(,) pre_constant(__LINE__)operator(\)) reserved(end) reserved(def) method(ordinalize)operator(()ident(number)operator(\)) reserved(if) operator(()integer(11)operator(..)integer(13)operator(\))operator(.)ident(include?)operator(()ident(number)operator(.)ident(to_i) operator(%) integer(100)operator(\)) stringcontent(th)delimiter(")> reserved(else) reserved(case) ident(number)operator(.)ident(to_i) operator(%) integer(10) reserved(when) integer(1)operator(:) stringcontent(st)delimiter(")> reserved(when) integer(2)operator(:) stringcontent(nd)delimiter(")> reserved(when) integer(3)operator(:) stringcontent(rd)delimiter(")> reserved(else) stringcontent(th)delimiter(")> reserved(end) reserved(end) reserved(end) reserved(end) ident(require) constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) string reserved(module) class(ActiveSupport) reserved(module) class(JSON) comment(#:nodoc:) reserved(module) class(Encoders) comment(#:nodoc:) ident(define_encoder) constant(Object) reserved(do) operator(|)ident(object)operator(|) ident(object)operator(.)ident(instance_values)operator(.)ident(to_json) reserved(end) ident(define_encoder) constant(TrueClass) reserved(do) string reserved(end) ident(define_encoder) constant(FalseClass) reserved(do) string reserved(end) ident(define_encoder) constant(NilClass) reserved(do) string reserved(end) ident(define_encoder) constant(String) reserved(do) operator(|)ident(string)operator(|) ident(returning) ident(value) operator(=) string reserved(do) ident(string)operator(.)ident(each_char) reserved(do) operator(|)ident(char)operator(|) ident(value) operator(<<) reserved(case) reserved(when) ident(char) operator(==) stringoperator(:) string reserved(when) ident(char) operator(==) stringoperator(:) string reserved(when) ident(char) operator(==) stringoperator(:) string reserved(when) ident(char) operator(==) stringoperator(:) string reserved(when) ident(char) operator(==) stringoperator(:) string reserved(when) ident(char) operator(==) stringoperator(:) string reserved(when) ident(char) operator(==) stringoperator(:) string reserved(when) ident(char)operator(.)ident(length) operator(>) integer(1)operator(:) string operator(%) ident(char)operator(.)ident(unpack)operator(()stringoperator(\))operator(.)ident(first)inline_delimiter(})>delimiter(")> reserved(else)operator(;) ident(char) reserved(end) reserved(end) ident(value) operator(<<) string reserved(end) reserved(end) ident(define_encoder) constant(Numeric) reserved(do) operator(|)ident(numeric)operator(|) ident(numeric)operator(.)ident(to_s) reserved(end) ident(define_encoder) constant(Symbol) reserved(do) operator(|)ident(symbol)operator(|) ident(symbol)operator(.)ident(to_s)operator(.)ident(to_json) reserved(end) ident(define_encoder) constant(Enumerable) reserved(do) operator(|)ident(enumerable)operator(|) stringinline_delimiter(})>content(])delimiter(")> reserved(end) ident(define_encoder) constant(Hash) reserved(do) operator(|)ident(hash)operator(|) ident(returning) ident(result) operator(=) string reserved(do) ident(result) operator(<<) ident(hash)operator(.)ident(map) reserved(do) operator(|)ident(pair)operator(|) ident(pair)operator(.)ident(map) operator({) operator(|)ident(value)operator(|) ident(value)operator(.)ident(to_json) operator(}) operator(*) string reserved(end) operator(*) string ident(result) operator(<<) string reserved(end) reserved(end) ident(define_encoder) constant(Regexp) reserved(do) operator(|)ident(regexp)operator(|) ident(regexp)operator(.)ident(inspect) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveSupport) reserved(module) class(JSON) comment(#:nodoc:) reserved(module) class(Encoders) ident(mattr_accessor) symbol(:encoders) class_variable(@@encoders) operator(=) operator({)operator(}) reserved(class) operator(<<) class(self) reserved(def) method(define_encoder)operator(()ident(klass)operator(,) operator(&)ident(block)operator(\)) ident(encoders)operator([)ident(klass)operator(]) operator(=) ident(block) reserved(end) reserved(def) method([])operator(()ident(klass)operator(\)) ident(klass)operator(.)ident(ancestors)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(|) ident(encoder) operator(=) ident(encoders)operator([)ident(k)operator(]) reserved(return) ident(encoder) reserved(if) ident(encoder) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) reserved(end) constant(Dir)operator([)constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(])operator(.)ident(each) reserved(do) operator(|)ident(file)operator(|) ident(require) ident(file)operator([)integer(0)operator(..)integer(-4)operator(]) reserved(end) ident(require) string reserved(module) class(ActiveSupport) reserved(module) class(JSON) comment(#:nodoc:) reserved(class) class(CircularReferenceError) operator(<) constant(StandardError) comment(#:nodoc:) reserved(end) comment(# returns the literal string as its JSON encoded form. Useful for passing javascript variables into functions.) comment(#) comment(# page.call 'Element.show', ActiveSupport::JSON::Variable.new("$$(#items li\)"\)) reserved(class) class(Variable) operator(<) constant(String) comment(#:nodoc:) reserved(def) method(to_json) pre_constant(self) reserved(end) reserved(end) reserved(class) operator(<<) class(self) constant(REFERENCE_STACK_VARIABLE) operator(=) symbol(:json_reference_stack) reserved(def) method(encode)operator(()ident(value)operator(\)) ident(raise_on_circular_reference)operator(()ident(value)operator(\)) reserved(do) constant(Encoders)operator([)ident(value)operator(.)ident(class)operator(])operator(.)ident(call)operator(()ident(value)operator(\)) reserved(end) reserved(end) ident(protected) reserved(def) method(raise_on_circular_reference)operator(()ident(value)operator(\)) ident(stack) operator(=) constant(Thread)operator(.)ident(current)operator([)constant(REFERENCE_STACK_VARIABLE)operator(]) operator(||=) operator([)operator(]) ident(raise) constant(CircularReferenceError)operator(,) string reserved(if) ident(stack)operator(.)ident(include?) ident(value) ident(stack) operator(<<) ident(value) reserved(yield) reserved(ensure) ident(stack)operator(.)ident(pop) reserved(end) reserved(end) reserved(end) reserved(end) reserved(module) class(ActiveSupport) reserved(class) class(OptionMerger) comment(#:nodoc:) ident(instance_methods)operator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) ident(undef_method)operator(()ident(method)operator(\)) reserved(if) ident(method) operator(!)operator(~) regexp reserved(end) reserved(def) method(initialize)operator(()ident(context)operator(,) ident(options)operator(\)) instance_variable(@context)operator(,) instance_variable(@options) operator(=) ident(context)operator(,) ident(options) reserved(end) ident(private) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(arguments)operator(,) operator(&)ident(block)operator(\)) ident(merge_argument_options!) ident(arguments) instance_variable(@context)operator(.)ident(send)operator(()ident(method)operator(,) operator(*)ident(arguments)operator(,) operator(&)ident(block)operator(\)) reserved(end) reserved(def) method(merge_argument_options!)operator(()ident(arguments)operator(\)) ident(arguments) operator(<<) reserved(if) ident(arguments)operator(.)ident(last)operator(.)ident(respond_to?) symbol(:merge!) ident(arguments)operator(.)ident(pop)operator(.)ident(dup)operator(.)ident(merge!)operator(()instance_variable(@options)operator(\)) reserved(else) instance_variable(@options)operator(.)ident(dup) reserved(end) reserved(end) reserved(end) reserved(end) reserved(class) class(OrderedHash) operator(<) constant(Array) comment(#:nodoc:) reserved(def) method([]=)operator(()ident(key)operator(,) ident(value)operator(\)) reserved(if) ident(pair) operator(=) ident(find_pair)operator(()ident(key)operator(\)) ident(pair)operator(.)ident(pop) ident(pair) operator(<<) ident(value) reserved(else) pre_constant(self) operator(<<) operator([)ident(key)operator(,) ident(value)operator(]) reserved(end) reserved(end) reserved(def) method([])operator(()ident(key)operator(\)) ident(pair) operator(=) ident(find_pair)operator(()ident(key)operator(\)) ident(pair) operator(?) ident(pair)operator(.)ident(last) operator(:) pre_constant(nil) reserved(end) reserved(def) method(keys) pre_constant(self)operator(.)ident(collect) operator({) operator(|)ident(i)operator(|) ident(i)operator(.)ident(first) operator(}) reserved(end) ident(private) reserved(def) method(find_pair)operator(()ident(key)operator(\)) pre_constant(self)operator(.)ident(each) operator({) operator(|)ident(i)operator(|) reserved(return) ident(i) reserved(if) ident(i)operator(.)ident(first) operator(==) ident(key) operator(}) reserved(return) pre_constant(false) reserved(end) reserved(end) reserved(class) class(OrderedOptions) operator(<) constant(OrderedHash) comment(#:nodoc:) reserved(def) method([]=)operator(()ident(key)operator(,) ident(value)operator(\)) reserved(super)operator(()ident(key)operator(.)ident(to_sym)operator(,) ident(value)operator(\)) reserved(end) reserved(def) method([])operator(()ident(key)operator(\)) reserved(super)operator(()ident(key)operator(.)ident(to_sym)operator(\)) reserved(end) reserved(def) method(method_missing)operator(()ident(name)operator(,) operator(*)ident(args)operator(\)) reserved(if) ident(name)operator(.)ident(to_s) operator(=)operator(~) regexp pre_constant(self)operator([)global_variable($1)operator(.)ident(to_sym)operator(]) operator(=) ident(args)operator(.)ident(first) reserved(else) pre_constant(self)operator([)ident(name)operator(]) reserved(end) reserved(end) reserved(end)comment(# Classes that include this module will automatically be reloaded) comment(# by the Rails dispatcher when Dependencies.mechanism = :load.) reserved(module) class(Reloadable) reserved(class) operator(<<) class(self) reserved(def) method(included)operator(()ident(base)operator(\)) comment(#nodoc:) ident(raise) constant(TypeError)operator(,) string reserved(unless) ident(base)operator(.)ident(is_a?) constant(Class) reserved(unless) ident(base)operator(.)ident(respond_to?)operator(()symbol(:reloadable?)operator(\)) reserved(class) operator(<<) class(base) ident(define_method)operator(()symbol(:reloadable?)operator(\)) operator({) pre_constant(true) operator(}) reserved(end) reserved(end) reserved(end) reserved(def) method(reloadable_classes) ident(included_in_classes)operator(.)ident(select) operator({) operator(|)ident(klass)operator(|) ident(klass)operator(.)ident(reloadable?) operator(}) reserved(end) reserved(end) comment(# Captures the common pattern where a base class should not be reloaded,) comment(# but its subclasses should be.) reserved(module) class(Subclasses) reserved(def) pre_constant(self)operator(.)method(included)operator(()ident(base)operator(\)) comment(#nodoc:) ident(base)operator(.)ident(send) symbol(:include)operator(,) constant(Reloadable) operator(()reserved(class) operator(<<) class(base)operator(;) pre_constant(self)operator(;) reserved(end)operator(\))operator(.)ident(send)operator(()symbol(:define_method)operator(,) symbol(:reloadable?)operator(\)) reserved(do) ident(base) operator(!=) pre_constant(self) reserved(end) reserved(end) reserved(end) reserved(end)comment(# A value object representing a time zone. A time zone is simply a named) comment(# offset (in seconds\) from GMT. Note that two time zone objects are only) comment(# equivalent if they have both the same offset, and the same name.) comment(#) comment(# A TimeZone instance may be used to convert a Time value to the corresponding) comment(# time zone.) comment(#) comment(# The class also includes #all, which returns a list of all TimeZone objects.) reserved(class) class(TimeZone) ident(include) constant(Comparable) ident(attr_reader) symbol(:name)operator(,) symbol(:utc_offset) comment(# Create a new TimeZone object with the given name and offset. The offset is) comment(# the number of seconds that this time zone is offset from UTC (GMT\). Seconds) comment(# were chosen as the offset unit because that is the unit that Ruby uses) comment(# to represent time zone offsets (see Time#utc_offset\).) reserved(def) method(initialize)operator(()ident(name)operator(,) ident(utc_offset)operator(\)) instance_variable(@name) operator(=) ident(name) instance_variable(@utc_offset) operator(=) ident(utc_offset) reserved(end) comment(# Returns the offset of this time zone as a formatted string, of the) comment(# format "+HH:MM". If the offset is zero, this returns the empty) comment(# string. If +colon+ is false, a colon will not be inserted into the) comment(# result.) reserved(def) method(formatted_offset)operator(() ident(colon)operator(=)pre_constant(true) operator(\)) reserved(return) string reserved(if) ident(utc_offset) operator(==) integer(0) ident(sign) operator(=) operator(()ident(utc_offset) operator(<) integer(0) operator(?) integer(-1) operator(:) integer(1)operator(\)) ident(hours) operator(=) ident(utc_offset)operator(.)ident(abs) operator(/) integer(3600) ident(minutes) operator(=) operator(()ident(utc_offset)operator(.)ident(abs) operator(%) integer(3600)operator(\)) operator(/) integer(60) string operator(%) operator([) ident(hours) operator(*) ident(sign)operator(,) ident(colon) operator(?) string operator(:) stringoperator(,) ident(minutes) operator(]) reserved(end) comment(# Compute and return the current time, in the time zone represented by) comment(# +self+.) reserved(def) method(now) ident(adjust)operator(()constant(Time)operator(.)ident(now)operator(\)) reserved(end) comment(# Return the current date in this time zone.) reserved(def) method(today) ident(now)operator(.)ident(to_date) reserved(end) comment(# Adjust the given time to the time zone represented by +self+.) reserved(def) method(adjust)operator(()ident(time)operator(\)) ident(time) operator(=) ident(time)operator(.)ident(to_time) ident(time) operator(+) ident(utc_offset) operator(-) ident(time)operator(.)ident(utc_offset) reserved(end) comment(# Reinterprets the given time value as a time in the current time) comment(# zone, and then adjusts it to return the corresponding time in the) comment(# local time zone.) reserved(def) method(unadjust)operator(()ident(time)operator(\)) ident(time) operator(=) constant(Time)operator(.)ident(local)operator(()operator(*)ident(time)operator(.)ident(to_time)operator(.)ident(to_a)operator(\)) ident(time) operator(-) ident(utc_offset) operator(+) ident(time)operator(.)ident(utc_offset) reserved(end) comment(# Compare this time zone to the parameter. The two are comapred first on) comment(# their offsets, and then by name.) reserved(def) method(<=>)operator(()ident(zone)operator(\)) ident(result) operator(=) operator(()ident(utc_offset) operator(<=>) ident(zone)operator(.)ident(utc_offset)operator(\)) ident(result) operator(=) operator(()ident(name) operator(<=>) ident(zone)operator(.)ident(name)operator(\)) reserved(if) ident(result) operator(==) integer(0) ident(result) reserved(end) comment(# Returns a textual representation of this time zone.) reserved(def) method(to_s) stringcontent(\) )inlinedelimiter(")> reserved(end) class_variable(@@zones) operator(=) pre_constant(nil) reserved(class) operator(<<) class(self) comment(# Create a new TimeZone instance with the given name and offset.) reserved(def) method(create)operator(()ident(name)operator(,) ident(offset)operator(\)) ident(zone) operator(=) ident(allocate) ident(zone)operator(.)ident(send) symbol(:initialize)operator(,) ident(name)operator(,) ident(offset) ident(zone) reserved(end) comment(# Return a TimeZone instance with the given name, or +nil+ if no) comment(# such TimeZone instance exists. (This exists to support the use of) comment(# this class with the #composed_of macro.\)) reserved(def) method(new)operator(()ident(name)operator(\)) pre_constant(self)operator([)ident(name)operator(]) reserved(end) comment(# Return an array of all TimeZone objects. There are multiple TimeZone) comment(# objects per time zone, in many cases, to make it easier for users to) comment(# find their own time zone.) reserved(def) method(all) reserved(unless) class_variable(@@zones) class_variable(@@zones) operator(=) operator([)operator(]) operator([)operator([)integer(-43_200)operator(,) string operator(])operator(,) operator([)integer(-39_600)operator(,) stringoperator(,) string operator(])operator(,) operator([)integer(-36_000)operator(,) string operator(])operator(,) operator([)integer(-32_400)operator(,) string operator(])operator(,) operator([)integer(-28_800)operator(,) stringoperator(,) string operator(])operator(,) operator([)integer(-25_200)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([)integer(-21_600)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([)integer(-18_000)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([)integer(-14_400)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([)integer(-12_600)operator(,) string operator(])operator(,) operator([)integer(-10_800)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(-7_200)operator(,) string operator(])operator(,) operator([) integer(-3_600)operator(,) stringoperator(,) string operator(])operator(,) operator([) integer(0)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(3_600)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(7_200)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(10_800)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(12_600)operator(,) string operator(])operator(,) operator([) integer(14_400)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(16_200)operator(,) string operator(])operator(,) operator([) integer(18_000)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(19_800)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(20_700)operator(,) string operator(])operator(,) operator([) integer(21_600)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(23_400)operator(,) string operator(])operator(,) operator([) integer(25_200)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(28_800)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(32_400)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(34_200)operator(,) stringoperator(,) string operator(])operator(,) operator([) integer(36_000)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(39_600)operator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(43_200)operator(,) stringoperator(,) stringoperator(,) stringoperator(,) stringoperator(,) string operator(])operator(,) operator([) integer(46_800)operator(,) string operator(])operator(])operator(.) ident(each) reserved(do) operator(|)ident(offset)operator(,) operator(*)ident(places)operator(|) ident(places)operator(.)ident(each) operator({) operator(|)ident(place)operator(|) class_variable(@@zones) operator(<<) ident(create)operator(()ident(place)operator(,) ident(offset)operator(\))operator(.)ident(freeze) operator(}) reserved(end) class_variable(@@zones)operator(.)ident(sort!) reserved(end) class_variable(@@zones) reserved(end) comment(# Locate a specific time zone object. If the argument is a string, it) comment(# is interpreted to mean the name of the timezone to locate. If it is a) comment(# numeric value it is either the hour offset, or the second offset, of the) comment(# timezone to find. (The first one with that offset will be returned.\)) comment(# Returns +nil+ if no such time zone is known to the system.) reserved(def) method([])operator(()ident(arg)operator(\)) reserved(case) ident(arg) reserved(when) constant(String) ident(all)operator(.)ident(find) operator({) operator(|)ident(z)operator(|) ident(z)operator(.)ident(name) operator(==) ident(arg) operator(}) reserved(when) constant(Numeric) ident(arg) operator(*=) integer(3600) reserved(if) ident(arg)operator(.)ident(abs) operator(<=) integer(13) ident(all)operator(.)ident(find) operator({) operator(|)ident(z)operator(|) ident(z)operator(.)ident(utc_offset) operator(==) ident(arg)operator(.)ident(to_i) operator(}) reserved(else) ident(raise) constant(ArgumentError)operator(,) stringdelimiter(")> reserved(end) reserved(end) comment(# A regular expression that matches the names of all time zones in) comment(# the USA.) constant(US_ZONES) operator(=) regexp comment(# A convenience method for returning a collection of TimeZone objects) comment(# for time zones in the USA.) reserved(def) method(us_zones) ident(all)operator(.)ident(find_all) operator({) operator(|)ident(z)operator(|) ident(z)operator(.)ident(name) operator(=)operator(~) constant(US_ZONES) operator(}) reserved(end) reserved(end) reserved(end) doctype(#!/usr/bin/env ruby) comment(#--) comment(# Copyright 2004 by Jim Weirich (jim@weirichhouse.org\).) comment(# All rights reserved.) comment(# Permission is granted for use, copying, modification, distribution,) comment(# and distribution of modified versions of this work as long as the) comment(# above copyright notice is included.) comment(#++) reserved(module) class(Builder) comment(#:nodoc:) comment(# BlankSlate provides an abstract base class with no predefined) comment(# methods (except for \\_\\_send__ and \\_\\_id__\).) comment(# BlankSlate is useful as a base class when writing classes that) comment(# depend upon method_missing (e.g. dynamic proxies\).) reserved(class) class(BlankSlate) comment(#:nodoc:) reserved(class) operator(<<) class(self) reserved(def) method(hide)operator(()ident(name)operator(\)) ident(undef_method) ident(name) reserved(if) ident(instance_methods)operator(.)ident(include?)operator(()ident(name)operator(.)ident(to_s)operator(\)) reserved(and) ident(name) operator(!)operator(~) regexp reserved(end) reserved(end) ident(instance_methods)operator(.)ident(each) operator({) operator(|)ident(m)operator(|) ident(hide)operator(()ident(m)operator(\)) operator(}) reserved(end) reserved(end) comment(# Since Ruby is very dynamic, methods added to the ancestors of) comment(# BlankSlate after BlankSlate is defined will show up in the) comment(# list of available BlankSlate methods. We handle this by defining a hook in the Object and Kernel classes that will hide any defined ) reserved(module) class(Kernel) comment(#:nodoc:) reserved(class) operator(<<) class(self) ident(alias_method) symbol(:blank_slate_method_added)operator(,) symbol(:method_added) reserved(def) method(method_added)operator(()ident(name)operator(\)) ident(blank_slate_method_added)operator(()ident(name)operator(\)) reserved(return) reserved(if) pre_constant(self) operator(!=) constant(Kernel) constant(Builder)operator(::)constant(BlankSlate)operator(.)ident(hide)operator(()ident(name)operator(\)) reserved(end) reserved(end) reserved(end) reserved(class) class(Object) comment(#:nodoc:) reserved(class) operator(<<) class(self) ident(alias_method) symbol(:blank_slate_method_added)operator(,) symbol(:method_added) reserved(def) method(method_added)operator(()ident(name)operator(\)) ident(blank_slate_method_added)operator(()ident(name)operator(\)) reserved(return) reserved(if) pre_constant(self) operator(!=) constant(Object) constant(Builder)operator(::)constant(BlankSlate)operator(.)ident(hide)operator(()ident(name)operator(\)) reserved(end) reserved(end) reserved(end) doctype(#!/usr/bin/env ruby) ident(require) string reserved(module) class(Builder) comment(#:nodoc:) comment(# Generic error for builder) reserved(class) class(IllegalBlockError) operator(<) constant(RuntimeError) comment(#:nodoc:) reserved(end) comment(# XmlBase is a base class for building XML builders. See) comment(# Builder::XmlMarkup and Builder::XmlEvents for examples.) reserved(class) class(XmlBase) operator(<) constant(BlankSlate) comment(#:nodoc:) comment(# Create an XML markup builder.) comment(#) comment(# out:: Object receiving the markup.1 +out+ must respond to) comment(# <<.) comment(# indent:: Number of spaces used for indentation (0 implies no) comment(# indentation and no line breaks\).) comment(# initial:: Level of initial indentation.) comment(#) reserved(def) method(initialize)operator(()ident(indent)operator(=)integer(0)operator(,) ident(initial)operator(=)integer(0)operator(\)) instance_variable(@indent) operator(=) ident(indent) instance_variable(@level) operator(=) ident(initial) reserved(end) comment(# Create a tag named +sym+. Other than the first argument which) comment(# is the tag name, the arguements are the same as the tags) comment(# implemented via method_missing.) reserved(def) method(tag!)operator(()ident(sym)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) pre_constant(self)operator(.)ident(__send__)operator(()ident(sym)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) reserved(end) comment(# Create XML markup based on the name of the method. This method) comment(# is never invoked directly, but is called for each markup method) comment(# in the markup block.) reserved(def) method(method_missing)operator(()ident(sym)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(text) operator(=) pre_constant(nil) ident(attrs) operator(=) pre_constant(nil) ident(sym) operator(=) stringcontent(:)inlinedelimiter(")> reserved(if) ident(args)operator(.)ident(first)operator(.)ident(kind_of?)operator(()constant(Symbol)operator(\)) ident(args)operator(.)ident(each) reserved(do) operator(|)ident(arg)operator(|) reserved(case) ident(arg) reserved(when) constant(Hash) ident(attrs) operator(||=) operator({)operator(}) ident(attrs)operator(.)ident(merge!)operator(()ident(arg)operator(\)) reserved(else) ident(text) operator(||=) string ident(text) operator(<<) ident(arg)operator(.)ident(to_s) reserved(end) reserved(end) reserved(if) ident(block) reserved(unless) ident(text)operator(.)ident(nil?) ident(raise) constant(ArgumentError)operator(,) string reserved(end) ident(_capture_outer_self)operator(()ident(block)operator(\)) reserved(if) instance_variable(@self)operator(.)ident(nil?) ident(_indent) ident(_start_tag)operator(()ident(sym)operator(,) ident(attrs)operator(\)) ident(_newline) ident(_nested_structures)operator(()ident(block)operator(\)) ident(_indent) ident(_end_tag)operator(()ident(sym)operator(\)) ident(_newline) reserved(elsif) ident(text)operator(.)ident(nil?) ident(_indent) ident(_start_tag)operator(()ident(sym)operator(,) ident(attrs)operator(,) pre_constant(true)operator(\)) ident(_newline) reserved(else) ident(_indent) ident(_start_tag)operator(()ident(sym)operator(,) ident(attrs)operator(\)) ident(text!) ident(text) ident(_end_tag)operator(()ident(sym)operator(\)) ident(_newline) reserved(end) instance_variable(@target) reserved(end) comment(# Append text to the output target. Escape any markup. May be) comment(# used within the markup brackets as:) comment(#) comment(# builder.p { br; text! "HI" } #=>


    HI

    ) reserved(def) method(text!)operator(()ident(text)operator(\)) ident(_text)operator(()ident(_escape)operator(()ident(text)operator(\))operator(\)) reserved(end) comment(# Append text to the output target without escaping any markup.) comment(# May be used within the markup brackets as:) comment(#) comment(# builder.p { |x| x << "
    HI" } #=>


    HI

    ) comment(#) comment(# This is useful when using non-builder enabled software that) comment(# generates strings. Just insert the string directly into the) comment(# builder without changing the inserted markup.) comment(#) comment(# It is also useful for stacking builder objects. Builders only) comment(# use << to append to the target, so by supporting this) comment(# method/operation builders can use other builders as their) comment(# targets.) reserved(def) method(<<)operator(()ident(text)operator(\)) ident(_text)operator(()ident(text)operator(\)) reserved(end) comment(# For some reason, nil? is sent to the XmlMarkup object. If nil?) comment(# is not defined and method_missing is invoked, some strange kind) comment(# of recursion happens. Since nil? won't ever be an XML tag, it) comment(# is pretty safe to define it here. (Note: this is an example of) comment(# cargo cult programming,) comment(# cf. http://fishbowl.pastiche.org/2004/10/13/cargo_cult_programming\).) reserved(def) method(nil?) pre_constant(false) reserved(end) ident(private) reserved(def) method(_escape)operator(()ident(text)operator(\)) ident(text)operator(.) ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.) ident(gsub)operator(()regexpoperator(,) stringoperator(\))operator(.) ident(gsub)operator(()regexp)delimiter(})>operator(,) stringoperator(\)) reserved(end) reserved(def) method(_capture_outer_self)operator(()ident(block)operator(\)) instance_variable(@self) operator(=) ident(eval)operator(()stringoperator(,) ident(block)operator(\)) reserved(end) reserved(def) method(_newline) reserved(return) reserved(if) instance_variable(@indent) operator(==) integer(0) ident(text!) string reserved(end) reserved(def) method(_indent) reserved(return) reserved(if) instance_variable(@indent) operator(==) integer(0) operator(||) instance_variable(@level) operator(==) integer(0) ident(text!)operator(()string operator(*) operator(()instance_variable(@level) operator(*) instance_variable(@indent)operator(\))operator(\)) reserved(end) reserved(def) method(_nested_structures)operator(()ident(block)operator(\)) instance_variable(@level) operator(+=) integer(1) ident(block)operator(.)ident(call)operator(()pre_constant(self)operator(\)) reserved(ensure) instance_variable(@level) operator(-=) integer(1) reserved(end) reserved(end) reserved(end) doctype(#!/usr/bin/env ruby) comment(#--) comment(# Copyright 2004 by Jim Weirich (jim@weirichhouse.org\).) comment(# All rights reserved.) comment(# Permission is granted for use, copying, modification, distribution,) comment(# and distribution of modified versions of this work as long as the) comment(# above copyright notice is included.) comment(#++) ident(require) string reserved(module) class(Builder) comment(# Create a series of SAX-like XML events (e.g. start_tag, end_tag\)) comment(# from the markup code. XmlEvent objects are used in a way similar) comment(# to XmlMarkup objects, except that a series of events are generated) comment(# and passed to a handler rather than generating character-based) comment(# markup.) comment(#) comment(# Usage:) comment(# xe = Builder::XmlEvents.new(hander\)) comment(# xe.title("HI"\) # Sends start_tag/end_tag/text messages to the handler.) comment(#) comment(# Indentation may also be selected by providing value for the) comment(# indentation size and initial indentation level.) comment(#) comment(# xe = Builder::XmlEvents.new(handler, indent_size, initial_indent_level\)) comment(#) comment(# == XML Event Handler) comment(#) comment(# The handler object must expect the following events.) comment(#) comment(# [start_tag(tag, attrs\)]) comment(# Announces that a new tag has been found. +tag+ is the name of) comment(# the tag and +attrs+ is a hash of attributes for the tag.) comment(#) comment(# [end_tag(tag\)]) comment(# Announces that an end tag for +tag+ has been found.) comment(#) comment(# [text(text\)]) comment(# Announces that a string of characters (+text+\) has been found.) comment(# A series of characters may be broken up into more than one) comment(# +text+ call, so the client cannot assume that a single) comment(# callback contains all the text data.) comment(#) reserved(class) class(XmlEvents) operator(<) constant(XmlMarkup) comment(#:nodoc:) reserved(def) method(text!)operator(()ident(text)operator(\)) instance_variable(@target)operator(.)ident(text)operator(()ident(text)operator(\)) reserved(end) reserved(def) method(_start_tag)operator(()ident(sym)operator(,) ident(attrs)operator(,) ident(end_too)operator(=)pre_constant(false)operator(\)) instance_variable(@target)operator(.)ident(start_tag)operator(()ident(sym)operator(,) ident(attrs)operator(\)) ident(_end_tag)operator(()ident(sym)operator(\)) reserved(if) ident(end_too) reserved(end) reserved(def) method(_end_tag)operator(()ident(sym)operator(\)) instance_variable(@target)operator(.)ident(end_tag)operator(()ident(sym)operator(\)) reserved(end) reserved(end) reserved(end) doctype(#!/usr/bin/env ruby) comment(#--) comment(# Copyright 2004 by Jim Weirich (jim@weirichhouse.org\).) comment(# All rights reserved.) comment(# Permission is granted for use, copying, modification, distribution,) comment(# and distribution of modified versions of this work as long as the) comment(# above copyright notice is included.) comment(#++) comment(# Provide a flexible and easy to use Builder for creating XML markup.) comment(# See XmlBuilder for usage details.) ident(require) string reserved(module) class(Builder) comment(# Create XML markup easily. All (well, almost all\) methods sent to) comment(# an XmlMarkup object will be translated to the equivalent XML) comment(# markup. Any method with a block will be treated as an XML markup) comment(# tag with nested markup in the block.) comment(#) comment(# Examples will demonstrate this easier than words. In the) comment(# following, +xm+ is an +XmlMarkup+ object.) comment(#) comment(# xm.em("emphasized"\) # => emphasized) comment(# xm.em { xmm.b("emp & bold"\) } # => emph & bold) comment(# xm.a("A Link", "href"=>"http://onestepback.org"\)) comment(# # => A Link) comment(# xm.div { br } # =>

    ) comment(# xm.target("name"=>"compile", "option"=>"fast"\)) comment(# # => ) comment(# # NOTE: order of attributes is not specified.) comment(#) comment(# xm.instruct! # ) comment(# xm.html { # ) comment(# xm.head { # ) comment(# xm.title("History"\) # History) comment(# } # ) comment(# xm.body { # ) comment(# xm.comment! "HI" # ) comment(# xm.h1("Header"\) #

    Header

    ) comment(# xm.p("paragraph"\) #

    paragraph

    ) comment(# } # ) comment(# } # ) comment(#) comment(# == Notes:) comment(#) comment(# * The order that attributes are inserted in markup tags is) comment(# undefined. ) comment(#) comment(# * Sometimes you wish to insert text without enclosing tags. Use) comment(# the text! method to accomplish this.) comment(#) comment(# Example:) comment(#) comment(# xm.div { #
    ) comment(# xm.text! "line"; xm.br # line
    ) comment(# xm.text! "another line"; xmbr # another line
    ) comment(# } #
    ) comment(#) comment(# * The special XML characters <, >, and & are converted to <,) comment(# > and & automatically. Use the << operation to) comment(# insert text without modification.) comment(#) comment(# * Sometimes tags use special characters not allowed in ruby) comment(# identifiers. Use the tag! method to handle these) comment(# cases.) comment(#) comment(# Example:) comment(#) comment(# xml.tag!("SOAP:Envelope"\) { ... }) comment(#) comment(# will produce ...) comment(#) comment(# ... ") comment(#) comment(# tag! will also take text and attribute arguments (after) comment(# the tag name\) like normal markup methods. (But see the next) comment(# bullet item for a better way to handle XML namespaces\).) comment(# ) comment(# * Direct support for XML namespaces is now available. If the) comment(# first argument to a tag call is a symbol, it will be joined to) comment(# the tag to produce a namespace:tag combination. It is easier to) comment(# show this than describe it.) comment(#) comment(# xml.SOAP :Envelope do ... end) comment(#) comment(# Just put a space before the colon in a namespace to produce the) comment(# right form for builder (e.g. "SOAP:Envelope" =>) comment(# "xml.SOAP :Envelope"\)) comment(#) comment(# * XmlMarkup builds the markup in any object (called a _target_\)) comment(# that accepts the << method. If no target is given,) comment(# then XmlMarkup defaults to a string target.) comment(# ) comment(# Examples:) comment(#) comment(# xm = Builder::XmlMarkup.new) comment(# result = xm.title("yada"\)) comment(# # result is a string containing the markup.) comment(#) comment(# buffer = "") comment(# xm = Builder::XmlMarkup.new(buffer\)) comment(# # The markup is appended to buffer (using <<\)) comment(#) comment(# xm = Builder::XmlMarkup.new(STDOUT\)) comment(# # The markup is written to STDOUT (using <<\)) comment(#) comment(# xm = Builder::XmlMarkup.new) comment(# x2 = Builder::XmlMarkup.new(:target=>xm\)) comment(# # Markup written to +x2+ will be send to +xm+.) comment(# ) comment(# * Indentation is enabled by providing the number of spaces to) comment(# indent for each level as a second argument to XmlBuilder.new.) comment(# Initial indentation may be specified using a third parameter.) comment(#) comment(# Example:) comment(#) comment(# xm = Builder.new(:ident=>2\)) comment(# # xm will produce nicely formatted and indented XML.) comment(# ) comment(# xm = Builder.new(:indent=>2, :margin=>4\)) comment(# # xm will produce nicely formatted and indented XML with 2) comment(# # spaces per indent and an over all indentation level of 4.) comment(#) comment(# builder = Builder::XmlMarkup.new(:target=>$stdout, :indent=>2\)) comment(# builder.name { |b| b.first("Jim"\); b.last("Weirich\) }) comment(# # prints:) comment(# # ) comment(# # Jim) comment(# # Weirich) comment(# # ) comment(#) comment(# * The instance_eval implementation which forces self to refer to) comment(# the message receiver as self is now obsolete. We now use normal) comment(# block calls to execute the markup block. This means that all) comment(# markup methods must now be explicitly send to the xml builder.) comment(# For instance, instead of) comment(#) comment(# xml.div { strong("text"\) }) comment(#) comment(# you need to write:) comment(#) comment(# xml.div { xml.strong("text"\) }) comment(#) comment(# Although more verbose, the subtle change in semantics within the) comment(# block was found to be prone to error. To make this change a) comment(# little less cumbersome, the markup block now gets the markup) comment(# object sent as an argument, allowing you to use a shorter alias) comment(# within the block.) comment(#) comment(# For example:) comment(#) comment(# xml_builder = Builder::XmlMarkup.new) comment(# xml_builder.div { |xml|) comment(# xml.stong("text"\)) comment(# }) comment(#) reserved(class) class(XmlMarkup) operator(<) constant(XmlBase) comment(# Create an XML markup builder. Parameters are specified by an) comment(# option hash.) comment(#) comment(# :target=>target_object::) comment(# Object receiving the markup. +out+ must respond to the) comment(# << operator. The default is a plain string target.) comment(# :indent=>indentation::) comment(# Number of spaces used for indentation. The default is no) comment(# indentation and no line breaks.) comment(# :margin=>initial_indentation_level::) comment(# Amount of initial indentation (specified in levels, not) comment(# spaces\).) comment(# ) reserved(def) method(initialize)operator(()ident(options)operator(=)operator({)operator(})operator(\)) ident(indent) operator(=) ident(options)operator([)symbol(:indent)operator(]) operator(||) integer(0) ident(margin) operator(=) ident(options)operator([)symbol(:margin)operator(]) operator(||) integer(0) reserved(super)operator(()ident(indent)operator(,) ident(margin)operator(\)) instance_variable(@target) operator(=) ident(options)operator([)symbol(:target)operator(]) operator(||) string reserved(end) comment(# Return the target of the builder.) reserved(def) method(target!) instance_variable(@target) reserved(end) reserved(def) method(comment!)operator(()ident(comment_text)operator(\)) ident(_ensure_no_block) ident(block_given?) ident(_special)operator(()stringoperator(,) string)delimiter(")>operator(,) ident(comment_text)operator(,) pre_constant(nil)operator(\)) reserved(end) comment(# Insert an XML declaration into the XML markup.) comment(#) comment(# For example:) comment(#) comment(# xml.declare! :ELEMENT, :blah, "yada") comment(# # => ) reserved(def) method(declare!)operator(()ident(inst)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(_indent) instance_variable(@target) operator(<<) stringdelimiter(")> ident(args)operator(.)ident(each) reserved(do) operator(|)ident(arg)operator(|) reserved(case) ident(arg) reserved(when) constant(String) instance_variable(@target) operator(<<) stringcontent(")delimiter(})> reserved(when) constant(Symbol) instance_variable(@target) operator(<<) stringdelimiter(")> reserved(end) reserved(end) reserved(if) ident(block_given?) instance_variable(@target) operator(<<) string ident(_newline) ident(_nested_structures)operator(()ident(block)operator(\)) instance_variable(@target) operator(<<) string reserved(end) instance_variable(@target) operator(<<) string)delimiter(")> ident(_newline) reserved(end) comment(# Insert a processing instruction into the XML markup. E.g.) comment(#) comment(# For example:) comment(#) comment(# xml.instruct!) comment(# #=> ) comment(# xml.instruct! :aaa, :bbb=>"ccc") comment(# #=> ) comment(#) reserved(def) method(instruct!)operator(()ident(directive_tag)operator(=)symbol(:xml)operator(,) ident(attrs)operator(=)operator({)operator(})operator(\)) ident(_ensure_no_block) ident(block_given?) reserved(if) ident(directive_tag) operator(==) symbol(:xml) ident(a) operator(=) operator({) symbol(:version)operator(=)operator(>)stringoperator(,) symbol(:encoding)operator(=)operator(>)string operator(}) ident(attrs) operator(=) ident(a)operator(.)ident(merge) ident(attrs) reserved(end) ident(_special)operator(() stringdelimiter(")>operator(,) string)delimiter(")>operator(,) pre_constant(nil)operator(,) ident(attrs)operator(,) operator([)symbol(:version)operator(,) symbol(:encoding)operator(,) symbol(:standalone)operator(])operator(\)) reserved(end) comment(# Surrounds the given text with a CDATA tag) comment(#) comment(# For example:) comment(#) comment(# xml.cdata! "blah blah blah") comment(# # => ) reserved(def) method(cdata!)operator(()ident(text)operator(\)) ident(_ensure_no_block) ident(block_given?) ident(_special)operator(()stringoperator(,) string)delimiter(")>operator(,) ident(text)operator(,) pre_constant(nil)operator(\)) reserved(end) ident(private) comment(# NOTE: All private methods of a builder object are prefixed when) comment(# a "_" character to avoid possible conflict with XML tag names.) comment(# Insert text directly in to the builder's target.) reserved(def) method(_text)operator(()ident(text)operator(\)) instance_variable(@target) operator(<<) ident(text) reserved(end) comment(# Insert special instruction. ) reserved(def) method(_special)operator(()ident(open)operator(,) ident(close)operator(,) ident(data)operator(=)pre_constant(nil)operator(,) ident(attrs)operator(=)pre_constant(nil)operator(,) ident(order)operator(=)operator([)operator(])operator(\)) ident(_indent) instance_variable(@target) operator(<<) ident(open) instance_variable(@target) operator(<<) ident(data) reserved(if) ident(data) ident(_insert_attributes)operator(()ident(attrs)operator(,) ident(order)operator(\)) reserved(if) ident(attrs) instance_variable(@target) operator(<<) ident(close) ident(_newline) reserved(end) comment(# Start an XML tag. If end_too is true, then the start) comment(# tag is also the end tag (e.g.
    ) reserved(def) method(_start_tag)operator(()ident(sym)operator(,) ident(attrs)operator(,) ident(end_too)operator(=)pre_constant(false)operator(\)) instance_variable(@target) operator(<<) stringdelimiter(")> ident(_insert_attributes)operator(()ident(attrs)operator(\)) instance_variable(@target) operator(<<) string reserved(if) ident(end_too) instance_variable(@target) operator(<<) string)delimiter(")> reserved(end) comment(# Insert an ending tag.) reserved(def) method(_end_tag)operator(()ident(sym)operator(\)) instance_variable(@target) operator(<<) stringcontent(>)delimiter(")> reserved(end) comment(# Insert the attributes (given in the hash\).) reserved(def) method(_insert_attributes)operator(()ident(attrs)operator(,) ident(order)operator(=)operator([)operator(])operator(\)) reserved(return) reserved(if) ident(attrs)operator(.)ident(nil?) ident(order)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(|) ident(v) operator(=) ident(attrs)operator([)ident(k)operator(]) instance_variable(@target) operator(<<) stringcontent(=")inlinecontent(")delimiter(})> reserved(if) ident(v) reserved(end) ident(attrs)operator(.)ident(each) reserved(do) operator(|)ident(k)operator(,) ident(v)operator(|) instance_variable(@target) operator(<<) stringcontent(=")inlinecontent(")delimiter(})> reserved(unless) ident(order)operator(.)ident(member?)operator(()ident(k)operator(\)) reserved(end) reserved(end) reserved(def) method(_ensure_no_block)operator(()ident(got_block)operator(\)) reserved(if) ident(got_block) ident(fail) constant(IllegalBlockError)operator(,) string reserved(end) reserved(end) reserved(end) reserved(end) doctype(#!/usr/bin/env ruby) comment(#--) comment(# Copyright 2004 by Jim Weirich (jim@weirichhouse.org\).) comment(# All rights reserved.) comment(# Permission is granted for use, copying, modification, distribution,) comment(# and distribution of modified versions of this work as long as the) comment(# above copyright notice is included.) comment(#++) ident(require) string ident(require) string reserved(module) class(ActiveSupport) reserved(module) class(VERSION) comment(#:nodoc:) constant(MAJOR) operator(=) integer(1) constant(MINOR) operator(=) integer(3) constant(TINY) operator(=) integer(1) constant(STRING) operator(=) operator([)constant(MAJOR)operator(,) constant(MINOR)operator(,) constant(TINY)operator(])operator(.)ident(join)operator(()stringoperator(\)) reserved(end) reserved(end) comment(# Extensions to nil which allow for more helpful error messages for ) comment(# people who are new to rails.) comment(#) comment(# The aim is to ensure that when users pass nil to methods where that isn't) comment(# appropriate, instead of NoMethodError and the name of some method used) comment(# by the framework users will see a message explaining what type of object ) comment(# was expected.) reserved(class) class(NilClass) constant(WHINERS) operator(=) operator([) operator(::)constant(ActiveRecord)operator(::)constant(Base)operator(,) operator(::)constant(Array) operator(]) class_variable(@@method_class_map) operator(=) constant(Hash)operator(.)ident(new) constant(WHINERS)operator(.)ident(each) reserved(do) operator(|)ident(klass)operator(|) ident(methods) operator(=) ident(klass)operator(.)ident(public_instance_methods) operator(-) ident(public_instance_methods) ident(methods)operator(.)ident(each) reserved(do) operator(|)ident(method)operator(|) class_variable(@@method_class_map)operator([)ident(method)operator(.)ident(to_sym)operator(]) operator(=) ident(klass) reserved(end) reserved(end) reserved(def) method(id) ident(raise) constant(RuntimeError)operator(,) stringoperator(,) ident(caller) reserved(end) ident(private) reserved(def) method(method_missing)operator(()ident(method)operator(,) operator(*)ident(args)operator(,) operator(&)ident(block)operator(\)) ident(raise_nil_warning_for) class_variable(@@method_class_map)operator([)ident(method)operator(])operator(,) ident(method)operator(,) ident(caller) reserved(end) reserved(def) method(raise_nil_warning_for)operator(()ident(klass) operator(=) pre_constant(nil)operator(,) ident(selector) operator(=) pre_constant(nil)operator(,) ident(with_caller) operator(=) pre_constant(nil)operator(\)) ident(message) operator(=) string ident(message) operator(<<) stringcontent(.)delimiter(")> reserved(if) ident(klass) ident(message) operator(<<) stringdelimiter(")> reserved(if) ident(selector) ident(raise) constant(NoMethodError)operator(,) ident(message)operator(,) ident(with_caller) operator(||) ident(caller) reserved(end) reserved(end) comment(#--) comment(# Copyright (c\) 2005 David Heinemeier Hansson) comment(#) comment(# Permission is hereby granted, free of charge, to any person obtaining) comment(# a copy of this software and associated documentation files (the) comment(# "Software"\), to deal in the Software without restriction, including) comment(# without limitation the rights to use, copy, modify, merge, publish,) comment(# distribute, sublicense, and/or sell copies of the Software, and to) comment(# permit persons to whom the Software is furnished to do so, subject to) comment(# the following conditions:) comment(#) comment(# The above copyright notice and this permission notice shall be) comment(# included in all copies or substantial portions of the Software.) comment(#) comment(# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,) comment(# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF) comment(# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND) comment(# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE) comment(# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION) comment(# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION) comment(# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.) comment(#++) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\))operator(\)) global_variable($:)operator(.)ident(unshift)operator(()constant(File)operator(.)ident(dirname)operator(()pre_constant(__FILE__)operator(\)) operator(+) stringoperator(\)) ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string ident(require) string