<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>fileTypes</key>
	<array>
		<string>rxml</string>
		<string>builder</string>
	</array>
	<key>foldingStartMarker</key>
	<string>(?x)^
	    (\s*+
	        (module|class|def
	        |unless|if
	        |case
	        |begin
	        |for|while|until
	        |(  "(\\.|[^"])*+"          # eat a double quoted string
	         | '(\\.|[^'])*+'        # eat a single quoted string
	         |   [^#"']                # eat all but comments and strings
	         )*
	         (                 \s   (do|begin|case)
	         | [-+=&amp;|*/~%^&lt;&gt;~] \s*+ (if|unless)
	         )
	        )\b
	        (?! [^;]*+ ; .*? \bend\b )
	    |(  "(\\.|[^"])*+"              # eat a double quoted string
	     | '(\\.|[^'])*+'            # eat a single quoted string
	     |   [^#"']                    # eat all but comments and strings
	     )*
	     ( \{ (?!  [^}]*+ \} )
	     | \[ (?! [^\]]*+ \] )
	     )
	    ).*$
	|   [#] .*? \(fold\) \s*+ $         # Sune’s special marker
	</string>
	<key>foldingStopMarker</key>
	<string>(?x)
		(   (^|;) \s*+ end   \s*+ ([#].*)? $
		|   ^     \s*+ [}\]] \s*+ ([#].*)? $
		|   [#] .*? \(end\) \s*+ $    # Sune’s special marker
		)</string>
	<key>keyEquivalent</key>
	<string>^~R</string>
	<key>name</key>
	<string>Ruby on Rails</string>
	<key>patterns</key>
	<array>
		<dict>
			<key>begin</key>
			<string>(^\s*)(?=class\s+(([.a-zA-Z0-9_:]+ControllerTest(\s*&lt;\s*[.a-zA-Z0-9_:]+)?)))</string>
			<key>comment</key>
			<string>Uses lookahead to match classes with the ControllerTest suffix; includes 'source.ruby' to avoid infinite recursion</string>
			<key>end</key>
			<string>^\1(?=end)\b</string>
			<key>name</key>
			<string>meta.rails.functional_test</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.ruby</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(^\s*)(?=class\s+(([.a-zA-Z0-9_:]+Controller\b(\s*&lt;\s*[.a-zA-Z0-9_:]+)?)|(&lt;&lt;\s*[.a-zA-Z0-9_:]+)))(?!.+\bend\b)</string>
			<key>comment</key>
			<string>Uses lookahead to match classes with the Controller suffix; includes 'source.ruby' to avoid infinite recursion</string>
			<key>end</key>
			<string>^\1(?=end)\b</string>
			<key>name</key>
			<string>meta.rails.controller</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.ruby</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(^\s*)(?=module\s+((([A-Z]\w*::)*)[A-Z]\w*)Helper)</string>
			<key>comment</key>
			<string>Uses lookahead to match modules with the Helper suffix; includes 'source.ruby' to avoid infinite recursion</string>
			<key>end</key>
			<string>^\1(?=end)\b</string>
			<key>name</key>
			<string>meta.rails.helper</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.ruby</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(^\s*)(?=class\s+(([.a-zA-Z0-9_:]+(\s*&lt;\s*ActionMailer::Base))))</string>
			<key>comment</key>
			<string>Uses lookahead to match classes that inherit from ActionMailer::Base; includes 'source.ruby' to avoid infinite recursion</string>
			<key>end</key>
			<string>^\1(?=end)\b</string>
			<key>name</key>
			<string>meta.rails.mailer</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.ruby</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(^\s*)(?=class\s+.+ActiveRecord::Base)</string>
			<key>comment</key>
			<string>Uses lookahead to match classes that (may) inherit from ActiveRecord::Base; includes 'source.ruby' to avoid infinite recursion</string>
			<key>end</key>
			<string>^\1(?=end)\b</string>
			<key>name</key>
			<string>meta.rails.model</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.ruby</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(^\s*)(?=class\s+.+ActiveRecord::Migration)</string>
			<key>comment</key>
			<string>Uses lookahead to match classes that (may) inherit from ActiveRecord::Migration; includes 'source.ruby' to avoid infinite recursion</string>
			<key>end</key>
			<string>^\1(?=end)\b</string>
			<key>name</key>
			<string>meta.rails.migration</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>(^\s*)(?=change_table)\b</string>
					<key>comment</key>
					<string>Uses lookahead to match methods change_table; includes 'source.ruby' to avoid infinite recursion</string>
					<key>contentName</key>
					<string>meta.rails.migration.change_table</string>
					<key>end</key>
					<string>^\1(?=end)\b</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>source.ruby</string>
						</dict>
						<dict>
							<key>include</key>
							<string>$self</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>(^\s*)(?=create_table)\b</string>
					<key>comment</key>
					<string>Uses lookahead to match methods create_table; includes 'source.ruby' to avoid infinite recursion</string>
					<key>contentName</key>
					<string>meta.rails.migration.create_table</string>
					<key>end</key>
					<string>^\1(?=end)\b</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>source.ruby</string>
						</dict>
						<dict>
							<key>include</key>
							<string>$self</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>include</key>
					<string>source.ruby</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(^\s*)(?=class\s+(?![.a-zA-Z0-9_:]+ControllerTest)(([.a-zA-Z0-9_:]+Test(\s*&lt;\s*[.a-zA-Z0-9_:]+)?)|(&lt;&lt;\s*[.a-zA-Z0-9_:]+)))</string>
			<key>comment</key>
			<string>Uses lookahead to match classes with the Test suffix; includes 'source.ruby' to avoid infinite recursion</string>
			<key>end</key>
			<string>^\1(?=end)\b</string>
			<key>name</key>
			<string>meta.rails.unit_test</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.ruby</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(^\s*)ActionController::Routing::Routes</string>
			<key>comment</key>
			<string>Uses ActionController::Routing::Routes to determine it is a routes file; includes 'source.ruby' to avoid infinite recursion</string>
			<key>end</key>
			<string>^\1(?=end)\b</string>
			<key>name</key>
			<string>meta.rails.routes</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.ruby</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(before_filter|skip_before_filter|skip_after_filter|after_filter|around_filter|filter|filter_parameter_logging|layout|require_dependency|render|render_action|render_text|render_file|render_template|render_nothing|render_component|render_without_layout|rescue_from|url_for|redirect_to|redirect_to_path|redirect_to_url|respond_to|helper|helper_method|model|service|observer|serialize|scaffold|verify|hide_action)\b</string>
			<key>name</key>
			<string>support.function.actionpack.rails</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(named_scope|after_create|after_destroy|after_save|after_update|after_validation|after_validation_on_create|after_validation_on_update|before_create|before_destroy|before_save|before_update|before_validation|before_validation_on_create|before_validation_on_update|composed_of|belongs_to|has_one|has_many|has_and_belongs_to_many|validate|validate_on_create|validates_numericality_of|validate_on_update|validates_acceptance_of|validates_associated|validates_confirmation_of|validates_each|validates_format_of|validates_inclusion_of|validates_exclusion_of|validates_length_of|validates_presence_of|validates_size_of|validates_uniqueness_of|attr_protected|attr_accessible|attr_readonly)\b</string>
			<key>name</key>
			<string>support.function.activerecord.rails</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(alias_method_chain|alias_attribute|delegate|cattr_accessor|mattr_accessor|returning)\b</string>
			<key>name</key>
			<string>support.function.activesupport.rails</string>
		</dict>
		<dict>
			<key>include</key>
			<string>source.ruby</string>
		</dict>
	</array>
	<key>scopeName</key>
	<string>source.ruby.rails</string>
	<key>uuid</key>
	<string>54D6E91E-8F31-11D9-90C5-0011242E4184</string>
</dict>
</plist>
