railroader 4.3.5 → 4.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +16 -0
  3. data/README.md +15 -0
  4. data/bin/railroader +1 -1
  5. data/lib/railroader/call_index.rb +11 -11
  6. data/lib/railroader/checks/base_check.rb +43 -43
  7. data/lib/railroader/checks/check_basic_auth.rb +3 -3
  8. data/lib/railroader/checks/check_content_tag.rb +9 -9
  9. data/lib/railroader/checks/check_create_with.rb +2 -2
  10. data/lib/railroader/checks/check_cross_site_scripting.rb +24 -24
  11. data/lib/railroader/checks/check_default_routes.rb +5 -5
  12. data/lib/railroader/checks/check_deserialize.rb +1 -1
  13. data/lib/railroader/checks/check_dynamic_finders.rb +1 -1
  14. data/lib/railroader/checks/check_escape_function.rb +3 -3
  15. data/lib/railroader/checks/check_evaluation.rb +4 -4
  16. data/lib/railroader/checks/check_execute.rb +8 -8
  17. data/lib/railroader/checks/check_file_access.rb +2 -2
  18. data/lib/railroader/checks/check_filter_skipping.rb +2 -2
  19. data/lib/railroader/checks/check_forgery_setting.rb +3 -3
  20. data/lib/railroader/checks/check_jruby_xml.rb +1 -1
  21. data/lib/railroader/checks/check_json_parsing.rb +2 -2
  22. data/lib/railroader/checks/check_link_to.rb +12 -12
  23. data/lib/railroader/checks/check_link_to_href.rb +9 -9
  24. data/lib/railroader/checks/check_mail_to.rb +4 -4
  25. data/lib/railroader/checks/check_mass_assignment.rb +5 -5
  26. data/lib/railroader/checks/check_model_attributes.rb +6 -6
  27. data/lib/railroader/checks/check_model_serialize.rb +2 -2
  28. data/lib/railroader/checks/check_nested_attributes.rb +2 -2
  29. data/lib/railroader/checks/check_nested_attributes_bypass.rb +1 -1
  30. data/lib/railroader/checks/check_quote_table_name.rb +3 -3
  31. data/lib/railroader/checks/check_redirect.rb +19 -19
  32. data/lib/railroader/checks/check_regex_dos.rb +3 -3
  33. data/lib/railroader/checks/check_render.rb +4 -4
  34. data/lib/railroader/checks/check_response_splitting.rb +2 -2
  35. data/lib/railroader/checks/check_safe_buffer_manipulation.rb +4 -4
  36. data/lib/railroader/checks/check_sanitize_methods.rb +2 -2
  37. data/lib/railroader/checks/check_select_tag.rb +4 -4
  38. data/lib/railroader/checks/check_select_vulnerability.rb +3 -3
  39. data/lib/railroader/checks/check_send.rb +1 -1
  40. data/lib/railroader/checks/check_send_file.rb +1 -1
  41. data/lib/railroader/checks/check_session_settings.rb +10 -10
  42. data/lib/railroader/checks/check_single_quotes.rb +8 -8
  43. data/lib/railroader/checks/check_skip_before_filter.rb +5 -5
  44. data/lib/railroader/checks/check_sql.rb +41 -41
  45. data/lib/railroader/checks/check_strip_tags.rb +6 -6
  46. data/lib/railroader/checks/check_symbol_dos_cve.rb +0 -1
  47. data/lib/railroader/checks/check_translate_bug.rb +4 -4
  48. data/lib/railroader/checks/check_unsafe_reflection.rb +1 -1
  49. data/lib/railroader/checks/check_validation_regex.rb +7 -7
  50. data/lib/railroader/checks/check_weak_hash.rb +1 -1
  51. data/lib/railroader/checks/check_without_protection.rb +9 -9
  52. data/lib/railroader/checks/check_yaml_parsing.rb +5 -5
  53. data/lib/railroader/checks.rb +18 -18
  54. data/lib/railroader/commandline.rb +1 -1
  55. data/lib/railroader/differ.rb +2 -2
  56. data/lib/railroader/options.rb +7 -7
  57. data/lib/railroader/parsers/rails2_erubis.rb +1 -1
  58. data/lib/railroader/parsers/rails2_xss_plugin_erubis.rb +4 -4
  59. data/lib/railroader/parsers/template_parser.rb +1 -1
  60. data/lib/railroader/processor.rb +17 -17
  61. data/lib/railroader/processors/alias_processor.rb +72 -72
  62. data/lib/railroader/processors/base_processor.rb +31 -31
  63. data/lib/railroader/processors/controller_alias_processor.rb +31 -31
  64. data/lib/railroader/processors/controller_processor.rb +29 -29
  65. data/lib/railroader/processors/erb_template_processor.rb +8 -8
  66. data/lib/railroader/processors/erubis_template_processor.rb +6 -6
  67. data/lib/railroader/processors/gem_processor.rb +1 -1
  68. data/lib/railroader/processors/haml_template_processor.rb +14 -14
  69. data/lib/railroader/processors/lib/call_conversion_helper.rb +1 -1
  70. data/lib/railroader/processors/lib/find_all_calls.rb +15 -15
  71. data/lib/railroader/processors/lib/find_call.rb +26 -26
  72. data/lib/railroader/processors/lib/find_return_value.rb +11 -11
  73. data/lib/railroader/processors/lib/module_helper.rb +1 -1
  74. data/lib/railroader/processors/lib/processor_helper.rb +4 -4
  75. data/lib/railroader/processors/lib/rails2_config_processor.rb +20 -20
  76. data/lib/railroader/processors/lib/rails2_route_processor.rb +38 -38
  77. data/lib/railroader/processors/lib/rails3_config_processor.rb +14 -14
  78. data/lib/railroader/processors/lib/rails3_route_processor.rb +16 -16
  79. data/lib/railroader/processors/lib/render_helper.rb +32 -32
  80. data/lib/railroader/processors/lib/route_helper.rb +12 -12
  81. data/lib/railroader/processors/library_processor.rb +1 -1
  82. data/lib/railroader/processors/model_processor.rb +9 -9
  83. data/lib/railroader/processors/output_processor.rb +3 -3
  84. data/lib/railroader/processors/slim_template_processor.rb +4 -4
  85. data/lib/railroader/processors/template_alias_processor.rb +10 -10
  86. data/lib/railroader/processors/template_processor.rb +7 -7
  87. data/lib/railroader/report/renderer.rb +1 -1
  88. data/lib/railroader/report/report_base.rb +12 -12
  89. data/lib/railroader/report/report_csv.rb +2 -2
  90. data/lib/railroader/report/report_html.rb +5 -5
  91. data/lib/railroader/report/report_markdown.rb +2 -2
  92. data/lib/railroader/report/report_table.rb +3 -3
  93. data/lib/railroader/report/report_tabs.rb +2 -2
  94. data/lib/railroader/report/report_text.rb +3 -4
  95. data/lib/railroader/report.rb +3 -3
  96. data/lib/railroader/rescanner.rb +36 -36
  97. data/lib/railroader/scanner.rb +23 -23
  98. data/lib/railroader/tracker/config.rb +3 -3
  99. data/lib/railroader/tracker/controller.rb +2 -2
  100. data/lib/railroader/tracker.rb +42 -42
  101. data/lib/railroader/util.rb +47 -47
  102. data/lib/railroader/version.rb +1 -1
  103. data/lib/railroader/warning.rb +9 -10
  104. data/lib/railroader.rb +32 -32
  105. data/lib/ruby_parser/bm_sexp.rb +63 -63
  106. data/lib/ruby_parser/bm_sexp_processor.rb +3 -3
  107. metadata +4 -4
@@ -1,10 +1,10 @@
1
1
  require 'railroader/processors/lib/basic_processor'
2
2
 
3
- #Finds method calls matching the given target(s).
3
+ # Finds method calls matching the given target(s).
4
4
  # #-- This should be deprecated --#
5
5
  # #-- Do not use for new code --#
6
6
  #
7
- #Targets/methods can be:
7
+ # Targets/methods can be:
8
8
  #
9
9
  # - nil: matches anything, including nothing
10
10
  # - Empty array: matches nothing
@@ -13,12 +13,12 @@ require 'railroader/processors/lib/basic_processor'
13
13
  # - Regular expression: matches the expression
14
14
  # - Array of regular expressions: matches any of the expressions
15
15
  #
16
- #If a target is also the name of a class, methods called on instances
17
- #of that class will also be matched, in a very limited way.
18
- #(Any methods called on Klass.new, basically. More useful when used
19
- #in conjunction with AliasProcessor.)
16
+ # If a target is also the name of a class, methods called on instances
17
+ # of that class will also be matched, in a very limited way.
18
+ # (Any methods called on Klass.new, basically. More useful when used
19
+ # in conjunction with AliasProcessor.)
20
20
  #
21
- #Examples:
21
+ # Examples:
22
22
  #
23
23
  # #To find any uses of this class:
24
24
  # FindCall.new :FindCall, nil
@@ -43,23 +43,23 @@ class Railroader::FindCall < Railroader::BasicProcessor
43
43
  @in_depth = in_depth
44
44
  end
45
45
 
46
- #Returns a list of results.
46
+ # Returns a list of results.
47
47
  #
48
- #A result looks like:
48
+ # A result looks like:
49
49
  #
50
50
  # s(:result, :ClassName, :method_name, s(:call, ...))
51
51
  #
52
- #or
52
+ # or
53
53
  #
54
54
  # s(:result, :template_name, s(:call, ...))
55
55
  def matches
56
56
  @calls
57
57
  end
58
58
 
59
- #Process the given source. Provide either class and method being searched
60
- #or the template. These names are used when reporting results.
59
+ # Process the given source. Provide either class and method being searched
60
+ # or the template. These names are used when reporting results.
61
61
  #
62
- #Use FindCall#matches to retrieve results.
62
+ # Use FindCall#matches to retrieve results.
63
63
  def process_source exp, klass = nil, method = nil, template = nil
64
64
  @current_class = klass
65
65
  @current_method = method
@@ -67,19 +67,19 @@ class Railroader::FindCall < Railroader::BasicProcessor
67
67
  process exp
68
68
  end
69
69
 
70
- #Process body of method
70
+ # Process body of method
71
71
  def process_defn exp
72
72
  process_all exp.body
73
73
  end
74
74
 
75
75
  alias :process_defs :process_defn
76
76
 
77
- #Process body of block
77
+ # Process body of block
78
78
  def process_rlist exp
79
79
  process_all exp
80
80
  end
81
81
 
82
- #Look for matching calls and add them to results
82
+ # Look for matching calls and add them to results
83
83
  def process_call exp
84
84
  target = get_target exp.target
85
85
  method = exp.method
@@ -95,13 +95,13 @@ class Railroader::FindCall < Railroader::BasicProcessor
95
95
  end
96
96
 
97
97
  end
98
-
99
- #Normally FindCall won't match a method invocation that is the target of
100
- #another call, such as:
98
+
99
+ # Normally FindCall won't match a method invocation that is the target of
100
+ # another call, such as:
101
101
  #
102
102
  # User.find(:first, :conditions => "user = '#{params['user']}').name
103
103
  #
104
- #A search for User.find will not match this unless @in_depth is true.
104
+ # A search for User.find will not match this unless @in_depth is true.
105
105
  if @in_depth and call? exp.target
106
106
  process exp.target
107
107
  end
@@ -109,15 +109,15 @@ class Railroader::FindCall < Railroader::BasicProcessor
109
109
  exp
110
110
  end
111
111
 
112
- #Process an assignment like a call
112
+ # Process an assignment like a call
113
113
  def process_attrasgn exp
114
114
  process_call exp
115
115
  end
116
116
 
117
117
  private
118
118
 
119
- #Gets the target of a call as a Symbol
120
- #if possible
119
+ # Gets the target of a call as a Symbol
120
+ # if possible
121
121
  def get_target exp
122
122
  if sexp? exp
123
123
  case exp.node_type
@@ -135,7 +135,7 @@ class Railroader::FindCall < Railroader::BasicProcessor
135
135
  end
136
136
  end
137
137
 
138
- #Checks if the search terms match the given item
138
+ # Checks if the search terms match the given item
139
139
  def match search_terms, item
140
140
  case search_terms
141
141
  when Symbol
@@ -152,7 +152,7 @@ class Railroader::FindCall < Railroader::BasicProcessor
152
152
  if search_terms.empty?
153
153
  item == nil
154
154
  else
155
- search_terms.each do|term|
155
+ search_terms.each do |term|
156
156
  if match(term, item)
157
157
  return true
158
158
  end
@@ -168,7 +168,7 @@ class Railroader::FindCall < Railroader::BasicProcessor
168
168
  end
169
169
  end
170
170
 
171
- #Checks if +item+ is an instance of +klass+ by looking for Klass.new
171
+ # Checks if +item+ is an instance of +klass+ by looking for Klass.new
172
172
  def is_instance_of? item, klass
173
173
  if call? item
174
174
  if sexp? item.target
@@ -1,16 +1,16 @@
1
1
  require 'railroader/processors/alias_processor'
2
2
 
3
- #Attempts to determine the return value of a method.
3
+ # Attempts to determine the return value of a method.
4
4
  #
5
- #Preferred usage:
5
+ # Preferred usage:
6
6
  #
7
7
  # Railroader::FindReturnValue.return_value exp
8
8
  class Railroader::FindReturnValue
9
9
  include Railroader::Util
10
10
 
11
- #Returns a guess at the return value of a given method or other block of code.
11
+ # Returns a guess at the return value of a given method or other block of code.
12
12
  #
13
- #If multiple return values are possible, returns all values in an :or Sexp.
13
+ # If multiple return values are possible, returns all values in an :or Sexp.
14
14
  def self.return_value exp, env = nil
15
15
  self.new.get_return_value exp, env
16
16
  end
@@ -24,7 +24,7 @@ class Railroader::FindReturnValue
24
24
  @uses_ivars
25
25
  end
26
26
 
27
- #Find return value of Sexp. Takes an optional starting environment.
27
+ # Find return value of Sexp. Takes an optional starting environment.
28
28
  def get_return_value exp, env = nil
29
29
  process_method exp, env
30
30
  value = make_return_value
@@ -32,7 +32,7 @@ class Railroader::FindReturnValue
32
32
  value
33
33
  end
34
34
 
35
- #Process method (or, actually, any Sexp) for return value.
35
+ # Process method (or, actually, any Sexp) for return value.
36
36
  def process_method exp, env = nil
37
37
  exp = Railroader::AliasProcessor.new.process_safely exp, env
38
38
 
@@ -55,7 +55,7 @@ class Railroader::FindReturnValue
55
55
  exp
56
56
  end
57
57
 
58
- #Searches expression for return statements.
58
+ # Searches expression for return statements.
59
59
  def find_explicit_return_values exp
60
60
  todo = [exp]
61
61
 
@@ -72,7 +72,7 @@ class Railroader::FindReturnValue
72
72
  end
73
73
  end
74
74
 
75
- #Determines the "last value" of an expression.
75
+ # Determines the "last value" of an expression.
76
76
  def last_value exp
77
77
  case exp.node_type
78
78
  when :rlist, :block, :scope, Sexp
@@ -95,7 +95,7 @@ class Railroader::FindReturnValue
95
95
  value = make_or(true_branch, false_branch)
96
96
  value.original_line = value.rhs.line
97
97
  value
98
- else #Unlikely?
98
+ else # Unlikely?
99
99
  true_branch or false_branch
100
100
  end
101
101
  end
@@ -140,7 +140,7 @@ class Railroader::FindReturnValue
140
140
  end
141
141
 
142
142
  def make_or lhs, rhs
143
- #Better checks in future
143
+ # Better checks in future
144
144
  if lhs == rhs
145
145
  lhs
146
146
  else
@@ -148,7 +148,7 @@ class Railroader::FindReturnValue
148
148
  end
149
149
  end
150
150
 
151
- #Turns the array of return values into an :or Sexp
151
+ # Turns the array of return values into an :or Sexp
152
152
  def make_return_value
153
153
  @return_values.compact!
154
154
  @return_values.uniq!
@@ -47,7 +47,7 @@ module Railroader::ModuleHelper
47
47
  @current_class = collection[name]
48
48
  @current_class.add_file @file_name, exp
49
49
  else
50
- @current_class = tracker_class.new name, parent, @file_name, exp, @tracker
50
+ @current_class = tracker_class.new name, parent, @file_name, exp, @tracker
51
51
  collection[name] = @current_class
52
52
  end
53
53
 
@@ -1,4 +1,4 @@
1
- #Contains a couple shared methods for Processors.
1
+ # Contains a couple shared methods for Processors.
2
2
  module Railroader::ProcessorHelper
3
3
  def process_all exp
4
4
  exp.each_sexp do |e|
@@ -19,9 +19,9 @@ module Railroader::ProcessorHelper
19
19
  exp
20
20
  end
21
21
 
22
- #Process the arguments of a method call. Does not store results.
22
+ # Process the arguments of a method call. Does not store results.
23
23
  #
24
- #This method is used because Sexp#args and Sexp#arglist create new objects.
24
+ # This method is used because Sexp#args and Sexp#arglist create new objects.
25
25
  def process_call_args exp
26
26
  exp.each_arg do |a|
27
27
  process a if sexp? a
@@ -38,7 +38,7 @@ module Railroader::ProcessorHelper
38
38
  exp
39
39
  end
40
40
 
41
- #Sets the current module.
41
+ # Sets the current module.
42
42
  def process_module exp
43
43
  module_name = class_name(exp.class_name).to_s
44
44
  prev_module = @current_module
@@ -1,39 +1,39 @@
1
1
  require 'railroader/processors/lib/basic_processor'
2
2
 
3
- #Processes configuration. Results are put in tracker.config.
3
+ # Processes configuration. Results are put in tracker.config.
4
4
  #
5
- #Configuration of Rails via Rails::Initializer are stored in tracker.config.rails.
6
- #For example:
5
+ # Configuration of Rails via Rails::Initializer are stored in tracker.config.rails.
6
+ # For example:
7
7
  #
8
8
  # Rails::Initializer.run |config|
9
9
  # config.action_controller.session_store = :cookie_store
10
10
  # end
11
11
  #
12
- #will be stored in
12
+ # will be stored in
13
13
  #
14
14
  # tracker.config[:rails][:action_controller][:session_store]
15
15
  #
16
- #Values for tracker.config.rails will still be Sexps.
16
+ # Values for tracker.config.rails will still be Sexps.
17
17
  class Railroader::Rails2ConfigProcessor < Railroader::BasicProcessor
18
- #Replace block variable in
18
+ # Replace block variable in
19
19
  #
20
20
  # Rails::Initializer.run |config|
21
21
  #
22
- #with this value so we can keep track of it.
22
+ # with this value so we can keep track of it.
23
23
  RAILS_CONFIG = Sexp.new(:const, :"!BRAKEMAN_RAILS_CONFIG")
24
24
 
25
25
  def initialize *args
26
26
  super
27
27
  end
28
28
 
29
- #Use this method to process configuration file
29
+ # Use this method to process configuration file
30
30
  def process_config src, file_name
31
31
  @file_name = file_name
32
32
  res = Railroader::ConfigAliasProcessor.new.process_safely(src, nil, file_name)
33
33
  process res
34
34
  end
35
35
 
36
- #Check if config is set to use Erubis
36
+ # Check if config is set to use Erubis
37
37
  def process_call exp
38
38
  target = exp.target
39
39
  target = process target if sexp? target
@@ -46,13 +46,13 @@ class Railroader::Rails2ConfigProcessor < Railroader::BasicProcessor
46
46
  exp
47
47
  end
48
48
 
49
- #Look for configuration settings
49
+ # Look for configuration settings
50
50
  def process_attrasgn exp
51
51
  if exp.target == RAILS_CONFIG
52
- #Get rid of '=' at end
52
+ # Get rid of '=' at end
53
53
  attribute = exp.method.to_s[0..-2].to_sym
54
54
  if exp.args.length > 1
55
- #Multiple arguments?...not sure if this will ever happen
55
+ # Multiple arguments?...not sure if this will ever happen
56
56
  @tracker.config.rails[attribute] = exp.args
57
57
  else
58
58
  @tracker.config.rails[attribute] = exp.first_arg
@@ -71,9 +71,9 @@ class Railroader::Rails2ConfigProcessor < Railroader::BasicProcessor
71
71
  exp
72
72
  end
73
73
 
74
- #Check for Rails version
74
+ # Check for Rails version
75
75
  def process_cdecl exp
76
- #Set Rails version required
76
+ # Set Rails version required
77
77
  if exp.lhs == :RAILS_GEM_VERSION
78
78
  @tracker.config.rails_version = exp.rhs.value
79
79
  end
@@ -81,7 +81,7 @@ class Railroader::Rails2ConfigProcessor < Railroader::BasicProcessor
81
81
  exp
82
82
  end
83
83
 
84
- #Check if an expression includes a call to set Rails config
84
+ # Check if an expression includes a call to set Rails config
85
85
  def include_rails_config? exp
86
86
  target = exp.target
87
87
  if call? target
@@ -97,11 +97,11 @@ class Railroader::Rails2ConfigProcessor < Railroader::BasicProcessor
97
97
  end
98
98
  end
99
99
 
100
- #Returns an array of symbols for each 'level' in the config
100
+ # Returns an array of symbols for each 'level' in the config
101
101
  #
102
102
  # config.action_controller.session_store = :cookie
103
103
  #
104
- #becomes
104
+ # becomes
105
105
  #
106
106
  # [:action_controller, :session_store]
107
107
  def get_rails_config exp
@@ -120,18 +120,18 @@ class Railroader::Rails2ConfigProcessor < Railroader::BasicProcessor
120
120
  end
121
121
  end
122
122
 
123
- #This is necessary to replace block variable so we can track config settings
123
+ # This is necessary to replace block variable so we can track config settings
124
124
  class Railroader::ConfigAliasProcessor < Railroader::AliasProcessor
125
125
 
126
126
  RAILS_INIT = Sexp.new(:colon2, Sexp.new(:const, :Rails), :Initializer)
127
127
 
128
- #Look for a call to
128
+ # Look for a call to
129
129
  #
130
130
  # Rails::Initializer.run do |config|
131
131
  # ...
132
132
  # end
133
133
  #
134
- #and replace config with RAILS_CONFIG
134
+ # and replace config with RAILS_CONFIG
135
135
  def process_iter exp
136
136
  target = exp.block_call.target
137
137
  method = exp.block_call.method
@@ -1,9 +1,9 @@
1
1
  require 'railroader/processors/lib/basic_processor'
2
2
 
3
- #Processes the Sexp from routes.rb. Stores results in tracker.routes.
3
+ # Processes the Sexp from routes.rb. Stores results in tracker.routes.
4
4
  #
5
- #Note that it is only interested in determining what methods on which
6
- #controllers are used as routes, not the generated URLs for routes.
5
+ # Note that it is only interested in determining what methods on which
6
+ # controllers are used as routes, not the generated URLs for routes.
7
7
  class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
8
8
  include Railroader::RouteHelper
9
9
 
@@ -12,22 +12,22 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
12
12
  def initialize tracker
13
13
  super
14
14
  @map = Sexp.new(:lvar, :map)
15
- @nested = nil #used for identifying nested targets
16
- @prefix = [] #Controller name prefix (a module name, usually)
15
+ @nested = nil # used for identifying nested targets
16
+ @prefix = [] # Controller name prefix (a module name, usually)
17
17
  @current_controller = nil
18
- @with_options = nil #For use inside map.with_options
18
+ @with_options = nil # For use inside map.with_options
19
19
  @file_name = "config/routes.rb"
20
20
  end
21
21
 
22
- #Call this with parsed route file information.
22
+ # Call this with parsed route file information.
23
23
  #
24
- #This method first calls RouteAliasProcessor#process_safely on the +exp+,
25
- #so it does not modify the +exp+.
24
+ # This method first calls RouteAliasProcessor#process_safely on the +exp+,
25
+ # so it does not modify the +exp+.
26
26
  def process_routes exp
27
27
  process Railroader::RouteAliasProcessor.new.process_safely(exp, nil, @file_name)
28
28
  end
29
29
 
30
- #Looking for mapping of routes
30
+ # Looking for mapping of routes
31
31
  def process_call exp
32
32
  target = exp.target
33
33
 
@@ -40,8 +40,8 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
40
40
  exp
41
41
  end
42
42
 
43
- #Process a map.something call
44
- #based on the method used
43
+ # Process a map.something call
44
+ # based on the method used
45
45
  def process_map exp
46
46
  args = exp.args
47
47
 
@@ -59,8 +59,8 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
59
59
  exp
60
60
  end
61
61
 
62
- #Look for map calls that take a block.
63
- #Otherwise, just do the default processing.
62
+ # Look for map calls that take a block.
63
+ # Otherwise, just do the default processing.
64
64
  def process_iter exp
65
65
  target = exp.block_call.target
66
66
 
@@ -81,9 +81,9 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
81
81
  end
82
82
  end
83
83
 
84
- #Process
84
+ # Process
85
85
  # map.resources :x, :controller => :y, :member => ...
86
- #etc.
86
+ # etc.
87
87
  def process_resources exp
88
88
  controller = check_for_controller_name exp
89
89
  if controller
@@ -100,8 +100,8 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
100
100
  end
101
101
  end
102
102
 
103
- #Process all the options that might be in the hash passed to
104
- #map.resource, et al.
103
+ # Process all the options that might be in the hash passed to
104
+ # map.resource, et al.
105
105
  def process_resource_options exp
106
106
  if exp.nil? and @with_options
107
107
  exp = @with_options
@@ -115,12 +115,12 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
115
115
  when :controller, :requirements, :singular, :path_prefix, :as,
116
116
  :path_names, :shallow, :name_prefix, :member_path, :nested_member_path,
117
117
  :belongs_to, :conditions, :active_scaffold
118
- #should be able to skip
118
+ # should be able to skip
119
119
  when :collection, :member, :new
120
120
  process_collection value
121
121
  when :has_one
122
122
  save_controller = current_controller
123
- process_resource value[1..-1] #Verify this is proper behavior
123
+ process_resource value[1..-1] # Verify this is proper behavior
124
124
  self.current_controller = save_controller
125
125
  when :has_many
126
126
  save_controller = current_controller
@@ -136,7 +136,7 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
136
136
  end
137
137
  end
138
138
 
139
- #Process route option :only => ...
139
+ # Process route option :only => ...
140
140
  def process_option_only exp
141
141
  routes = @tracker.routes[@current_controller]
142
142
  [:index, :new, :create, :show, :edit, :update, :destroy].each do |r|
@@ -150,7 +150,7 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
150
150
  end
151
151
  end
152
152
 
153
- #Process route option :except => ...
153
+ # Process route option :except => ...
154
154
  def process_option_except exp
155
155
  return unless exp.node_type == :array
156
156
  routes = @tracker.routes[@current_controller]
@@ -177,7 +177,7 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
177
177
  end
178
178
  end
179
179
 
180
- #Process
180
+ # Process
181
181
  # map.connect '/something', :controller => 'blah', :action => 'whatever'
182
182
  def process_connect exp
183
183
  return if exp.empty?
@@ -185,7 +185,7 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
185
185
  controller = check_for_controller_name exp
186
186
  self.current_controller = controller if controller
187
187
 
188
- #Check for default route
188
+ # Check for default route
189
189
  if string? exp.first
190
190
  if exp.first.value == ":controller/:action/:id"
191
191
  @tracker.routes[:allow_all_actions] = exp.first
@@ -195,11 +195,11 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
195
195
  end
196
196
  end
197
197
 
198
- #This -seems- redundant, but people might connect actions
199
- #to a controller which already allows them all
198
+ # This -seems- redundant, but people might connect actions
199
+ # to a controller which already allows them all
200
200
  return if @tracker.routes[@current_controller].is_a? Array and @tracker.routes[@current_controller][0] == :allow_all_actions
201
201
 
202
- exp.last.each_with_index do |e,i|
202
+ exp.last.each_with_index do |e, i|
203
203
  if symbol? e and e.value == :action
204
204
  action = exp.last[i + 1]
205
205
 
@@ -221,7 +221,7 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
221
221
 
222
222
  self.current_controller = check_for_controller_name exp.block_call.args
223
223
 
224
- #process block
224
+ # process block
225
225
  process exp.block
226
226
 
227
227
  @with_options = nil
@@ -252,7 +252,7 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
252
252
  process_connect exp
253
253
  end
254
254
 
255
- #Process collection option
255
+ # Process collection option
256
256
  # :collection => { :some_action => :http_actions }
257
257
  def process_collection exp
258
258
  return unless exp.node_type == :hash
@@ -265,10 +265,10 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
265
265
 
266
266
  private
267
267
 
268
- #Checks an argument list for a hash that has a key :controller.
269
- #If it does, returns the value.
268
+ # Checks an argument list for a hash that has a key :controller.
269
+ # If it does, returns the value.
270
270
  #
271
- #Otherwise, returns nil.
271
+ # Otherwise, returns nil.
272
272
  def check_for_controller_name args
273
273
  args.each do |a|
274
274
  if hash? a and value = hash_access(a, :controller)
@@ -280,13 +280,13 @@ class Railroader::Rails2RoutesProcessor < Railroader::BasicProcessor
280
280
  end
281
281
  end
282
282
 
283
- #This is for a really specific case where a hash is used as arguments
284
- #to one of the map methods.
283
+ # This is for a really specific case where a hash is used as arguments
284
+ # to one of the map methods.
285
285
  class Railroader::RouteAliasProcessor < Railroader::AliasProcessor
286
286
 
287
- #This replaces
287
+ # This replaces
288
288
  # { :some => :hash }.keys
289
- #with
289
+ # with
290
290
  # [:some]
291
291
  def process_call exp
292
292
  process_default exp
@@ -294,14 +294,14 @@ class Railroader::RouteAliasProcessor < Railroader::AliasProcessor
294
294
  if hash? exp.target and exp.method == :keys
295
295
  keys = get_keys exp.target
296
296
  exp.clear
297
- keys.each_with_index do |e,i|
297
+ keys.each_with_index do |e, i|
298
298
  exp[i] = e
299
299
  end
300
300
  end
301
301
  exp
302
302
  end
303
303
 
304
- #Returns an array Sexp containing the keys from the hash
304
+ # Returns an array Sexp containing the keys from the hash
305
305
  def get_keys hash
306
306
  keys = Sexp.new(:array)
307
307
  hash_iterate(hash) do |key, _value|
@@ -1,20 +1,20 @@
1
1
 
2
2
  require 'railroader/processors/lib/basic_processor'
3
3
 
4
- #Processes configuration. Results are put in tracker.config.
4
+ # Processes configuration. Results are put in tracker.config.
5
5
  #
6
- #Configuration of Rails via Rails::Initializer are stored in tracker.config.rails.
7
- #For example:
6
+ # Configuration of Rails via Rails::Initializer are stored in tracker.config.rails.
7
+ # For example:
8
8
  #
9
9
  # MyApp::Application.configure do
10
10
  # config.active_record.whitelist_attributes = true
11
11
  # end
12
12
  #
13
- #will be stored in
13
+ # will be stored in
14
14
  #
15
15
  # tracker.config.rails[:active_record][:whitelist_attributes]
16
16
  #
17
- #Values for tracker.config.rails will still be Sexps.
17
+ # Values for tracker.config.rails will still be Sexps.
18
18
  class Railroader::Rails3ConfigProcessor < Railroader::BasicProcessor
19
19
  RAILS_CONFIG = Sexp.new(:call, nil, :config)
20
20
 
@@ -23,14 +23,14 @@ class Railroader::Rails3ConfigProcessor < Railroader::BasicProcessor
23
23
  @inside_config = false
24
24
  end
25
25
 
26
- #Use this method to process configuration file
26
+ # Use this method to process configuration file
27
27
  def process_config src, file_name
28
28
  @file_name = file_name
29
29
  res = Railroader::AliasProcessor.new(@tracker).process_safely(src, nil, @file_name)
30
30
  process res
31
31
  end
32
32
 
33
- #Look for MyApp::Application.configure do ... end
33
+ # Look for MyApp::Application.configure do ... end
34
34
  def process_iter exp
35
35
  call = exp.block_call
36
36
 
@@ -46,7 +46,7 @@ class Railroader::Rails3ConfigProcessor < Railroader::BasicProcessor
46
46
  exp
47
47
  end
48
48
 
49
- #Look for class Application < Rails::Application
49
+ # Look for class Application < Rails::Application
50
50
  def process_class exp
51
51
  if exp.class_name == :Application
52
52
  @inside_config = true
@@ -57,15 +57,15 @@ class Railroader::Rails3ConfigProcessor < Railroader::BasicProcessor
57
57
  exp
58
58
  end
59
59
 
60
- #Look for configuration settings
60
+ # Look for configuration settings
61
61
  def process_attrasgn exp
62
62
  return exp unless @inside_config
63
63
 
64
64
  if exp.target == RAILS_CONFIG
65
- #Get rid of '=' at end
65
+ # Get rid of '=' at end
66
66
  attribute = exp.method.to_s[0..-2].to_sym
67
67
  if exp.args.length > 1
68
- #Multiple arguments?...not sure if this will ever happen
68
+ # Multiple arguments?...not sure if this will ever happen
69
69
  @tracker.config.rails[attribute] = exp.args
70
70
  else
71
71
  @tracker.config.rails[attribute] = exp.first_arg
@@ -92,7 +92,7 @@ class Railroader::Rails3ConfigProcessor < Railroader::BasicProcessor
92
92
  exp
93
93
  end
94
94
 
95
- #Check if an expression includes a call to set Rails config
95
+ # Check if an expression includes a call to set Rails config
96
96
  def include_rails_config? exp
97
97
  target = exp.target
98
98
  if call? target
@@ -108,11 +108,11 @@ class Railroader::Rails3ConfigProcessor < Railroader::BasicProcessor
108
108
  end
109
109
  end
110
110
 
111
- #Returns an array of symbols for each 'level' in the config
111
+ # Returns an array of symbols for each 'level' in the config
112
112
  #
113
113
  # config.action_controller.session_store = :cookie
114
114
  #
115
- #becomes
115
+ # becomes
116
116
  #
117
117
  # [:action_controller, :session_store]
118
118
  def get_rails_config exp