actionpack 3.1.12 → 3.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of actionpack might be problematic. Click here for more details.

Files changed (128) hide show
  1. data/CHANGELOG.md +5503 -108
  2. data/README.rdoc +3 -3
  3. data/lib/abstract_controller/asset_paths.rb +1 -1
  4. data/lib/abstract_controller/base.rb +1 -1
  5. data/lib/abstract_controller/callbacks.rb +102 -18
  6. data/lib/abstract_controller/helpers.rb +1 -1
  7. data/lib/abstract_controller/layouts.rb +116 -50
  8. data/lib/abstract_controller/logger.rb +1 -1
  9. data/lib/abstract_controller/railties/routes_helpers.rb +2 -2
  10. data/lib/abstract_controller/rendering.rb +1 -6
  11. data/lib/abstract_controller/view_paths.rb +6 -5
  12. data/lib/action_controller.rb +0 -15
  13. data/lib/action_controller/caching.rb +0 -1
  14. data/lib/action_controller/caching/actions.rb +5 -6
  15. data/lib/action_controller/caching/fragments.rb +18 -18
  16. data/lib/action_controller/caching/pages.rb +7 -6
  17. data/lib/action_controller/caching/sweeping.rb +1 -1
  18. data/lib/action_controller/log_subscriber.rb +8 -4
  19. data/lib/action_controller/metal.rb +7 -1
  20. data/lib/action_controller/metal/conditional_get.rb +49 -4
  21. data/lib/action_controller/metal/data_streaming.rb +17 -5
  22. data/lib/action_controller/metal/force_ssl.rb +8 -5
  23. data/lib/action_controller/metal/helpers.rb +7 -4
  24. data/lib/action_controller/metal/http_authentication.rb +9 -12
  25. data/lib/action_controller/metal/instrumentation.rb +9 -4
  26. data/lib/action_controller/metal/mime_responds.rb +4 -4
  27. data/lib/action_controller/metal/params_wrapper.rb +12 -8
  28. data/lib/action_controller/metal/redirecting.rb +7 -6
  29. data/lib/action_controller/metal/renderers.rb +9 -11
  30. data/lib/action_controller/metal/request_forgery_protection.rb +2 -1
  31. data/lib/action_controller/metal/rescue.rb +13 -0
  32. data/lib/action_controller/metal/responder.rb +11 -23
  33. data/lib/action_controller/metal/streaming.rb +0 -25
  34. data/lib/action_controller/railtie.rb +1 -0
  35. data/lib/action_controller/railties/paths.rb +4 -3
  36. data/lib/action_controller/record_identifier.rb +4 -4
  37. data/lib/action_controller/test_case.rb +60 -56
  38. data/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +6 -6
  39. data/lib/action_dispatch.rb +5 -1
  40. data/lib/action_dispatch/http/cache.rb +27 -15
  41. data/lib/action_dispatch/http/filter_parameters.rb +3 -1
  42. data/lib/action_dispatch/http/headers.rb +3 -5
  43. data/lib/action_dispatch/http/mime_negotiation.rb +2 -1
  44. data/lib/action_dispatch/http/mime_type.rb +7 -3
  45. data/lib/action_dispatch/http/mime_types.rb +12 -0
  46. data/lib/action_dispatch/http/parameter_filter.rb +3 -1
  47. data/lib/action_dispatch/http/parameters.rb +0 -4
  48. data/lib/action_dispatch/http/request.rb +18 -68
  49. data/lib/action_dispatch/http/response.rb +11 -32
  50. data/lib/action_dispatch/http/upload.rb +3 -14
  51. data/lib/action_dispatch/http/url.rb +1 -1
  52. data/lib/action_dispatch/middleware/callbacks.rb +1 -2
  53. data/lib/action_dispatch/middleware/cookies.rb +20 -16
  54. data/lib/action_dispatch/middleware/debug_exceptions.rb +82 -0
  55. data/lib/action_dispatch/middleware/exception_wrapper.rb +78 -0
  56. data/lib/action_dispatch/middleware/flash.rb +6 -9
  57. data/lib/action_dispatch/middleware/params_parser.rb +6 -11
  58. data/lib/action_dispatch/middleware/public_exceptions.rb +30 -0
  59. data/lib/action_dispatch/middleware/reloader.rb +38 -14
  60. data/lib/action_dispatch/middleware/remote_ip.rb +66 -36
  61. data/lib/action_dispatch/middleware/request_id.rb +39 -0
  62. data/lib/action_dispatch/middleware/session/abstract_store.rb +4 -16
  63. data/lib/action_dispatch/middleware/session/cache_store.rb +50 -0
  64. data/lib/action_dispatch/middleware/session/cookie_store.rb +1 -1
  65. data/lib/action_dispatch/middleware/show_exceptions.rb +58 -142
  66. data/lib/action_dispatch/middleware/static.rb +2 -10
  67. data/lib/action_dispatch/middleware/templates/rescues/layout.erb +1 -0
  68. data/lib/action_dispatch/middleware/templates/rescues/routing_error.erb +13 -8
  69. data/lib/action_dispatch/railtie.rb +15 -1
  70. data/lib/action_dispatch/routing.rb +1 -2
  71. data/lib/action_dispatch/routing/mapper.rb +108 -107
  72. data/lib/action_dispatch/routing/redirection.rb +63 -69
  73. data/lib/action_dispatch/routing/route_set.rb +75 -43
  74. data/lib/action_dispatch/routing/routes_proxy.rb +0 -4
  75. data/lib/action_dispatch/routing/url_for.rb +3 -3
  76. data/lib/action_dispatch/testing/assertions/response.rb +5 -7
  77. data/lib/action_dispatch/testing/assertions/routing.rb +10 -9
  78. data/lib/action_dispatch/testing/integration.rb +8 -25
  79. data/lib/action_dispatch/testing/test_process.rb +3 -2
  80. data/lib/action_dispatch/testing/test_request.rb +4 -23
  81. data/lib/action_pack/version.rb +3 -3
  82. data/lib/action_view.rb +1 -5
  83. data/lib/action_view/asset_paths.rb +7 -8
  84. data/lib/action_view/base.rb +7 -5
  85. data/lib/action_view/helpers/asset_paths.rb +1 -1
  86. data/lib/action_view/helpers/asset_tag_helper.rb +4 -8
  87. data/lib/action_view/helpers/asset_tag_helpers/stylesheet_tag_helpers.rb +3 -0
  88. data/lib/action_view/helpers/atom_feed_helper.rb +2 -2
  89. data/lib/action_view/helpers/capture_helper.rb +3 -3
  90. data/lib/action_view/helpers/controller_helper.rb +1 -1
  91. data/lib/action_view/helpers/date_helper.rb +26 -18
  92. data/lib/action_view/helpers/debug_helper.rb +1 -1
  93. data/lib/action_view/helpers/form_helper.rb +71 -13
  94. data/lib/action_view/helpers/form_options_helper.rb +65 -34
  95. data/lib/action_view/helpers/form_tag_helper.rb +24 -18
  96. data/lib/action_view/helpers/javascript_helper.rb +12 -3
  97. data/lib/action_view/helpers/number_helper.rb +3 -2
  98. data/lib/action_view/helpers/record_tag_helper.rb +51 -5
  99. data/lib/action_view/helpers/rendering_helper.rb +2 -2
  100. data/lib/action_view/helpers/sanitize_helper.rb +6 -7
  101. data/lib/action_view/helpers/tag_helper.rb +1 -1
  102. data/lib/action_view/helpers/text_helper.rb +5 -4
  103. data/lib/action_view/helpers/url_helper.rb +19 -11
  104. data/lib/action_view/locale/en.yml +6 -0
  105. data/lib/action_view/log_subscriber.rb +1 -1
  106. data/lib/action_view/lookup_context.rb +123 -125
  107. data/lib/action_view/path_set.rb +60 -13
  108. data/lib/action_view/renderer/abstract_renderer.rb +16 -11
  109. data/lib/action_view/renderer/partial_renderer.rb +59 -40
  110. data/lib/action_view/renderer/template_renderer.rb +29 -17
  111. data/lib/action_view/template.rb +0 -1
  112. data/lib/action_view/template/error.rb +6 -5
  113. data/lib/action_view/template/handlers.rb +0 -6
  114. data/lib/action_view/template/handlers/builder.rb +10 -1
  115. data/lib/action_view/template/handlers/erb.rb +2 -2
  116. data/lib/action_view/template/resolver.rb +20 -31
  117. data/lib/action_view/test_case.rb +7 -10
  118. data/lib/sprockets/assets.rake +1 -1
  119. data/lib/sprockets/bootstrap.rb +3 -31
  120. data/lib/sprockets/compressors.rb +69 -7
  121. data/lib/sprockets/helpers/rails_helper.rb +6 -11
  122. data/lib/sprockets/railtie.rb +1 -0
  123. data/lib/sprockets/static_compiler.rb +0 -3
  124. metadata +57 -86
  125. checksums.yaml +0 -7
  126. data/lib/action_dispatch/middleware/closed_error.rb +0 -7
  127. data/lib/action_dispatch/routing/route.rb +0 -67
  128. data/lib/action_view/template/handler.rb +0 -49
@@ -1,5 +1,5 @@
1
- require 'active_support/core_ext/class/attribute_accessors'
2
- require 'action_view/template/handler'
1
+ require 'action_dispatch/http/mime_type'
2
+ require 'active_support/core_ext/class/attribute'
3
3
  require 'erubis'
4
4
 
5
5
  module ActionView
@@ -1,5 +1,6 @@
1
1
  require "pathname"
2
2
  require "active_support/core_ext/class"
3
+ require "active_support/core_ext/io"
3
4
  require "action_view/template"
4
5
 
5
6
  module ActionView
@@ -68,7 +69,7 @@ module ActionView
68
69
  # before returning it.
69
70
  def cached(key, path_info, details, locals) #:nodoc:
70
71
  name, prefix, partial = path_info
71
- locals = sort_locals(locals)
72
+ locals = locals.map { |x| x.to_s }.sort!
72
73
 
73
74
  if key && caching?
74
75
  @cached[key][name][prefix][partial][locals] ||= decorate(yield, path_info, details, locals)
@@ -97,18 +98,6 @@ module ActionView
97
98
  t.virtual_path ||= (cached ||= build_path(*path_info))
98
99
  end
99
100
  end
100
-
101
- if :symbol.respond_to?("<=>")
102
- def sort_locals(locals) #:nodoc:
103
- locals.sort.freeze
104
- end
105
- else
106
- def sort_locals(locals) #:nodoc:
107
- locals = locals.map{ |l| l.to_s }
108
- locals.sort!
109
- locals.freeze
110
- end
111
- end
112
101
  end
113
102
 
114
103
  # An abstract class that implements a Resolver with path semantics.
@@ -130,20 +119,24 @@ module ActionView
130
119
 
131
120
  def query(path, details, formats)
132
121
  query = build_query(path, details)
133
- templates = []
134
- sanitizer = Hash.new { |h,k| h[k] = Dir["#{File.dirname(k)}/*"] }
135
122
 
136
- Dir[query].each do |p|
137
- next if File.directory?(p) || !sanitizer[p].include?(p)
123
+ # deals with case-insensitive file systems.
124
+ sanitizer = Hash.new { |h,dir| h[dir] = Dir["#{dir}/*"] }
138
125
 
139
- handler, format = extract_handler_and_format(p, formats)
140
- contents = File.open(p, "rb") { |io| io.read }
126
+ template_paths = Dir[query].reject { |filename|
127
+ File.directory?(filename) ||
128
+ !sanitizer[File.dirname(filename)].include?(filename)
129
+ }
141
130
 
142
- templates << Template.new(contents, File.expand_path(p), handler,
143
- :virtual_path => path.virtual, :format => format, :updated_at => mtime(p))
144
- end
131
+ template_paths.map { |template|
132
+ handler, format = extract_handler_and_format(template, formats)
133
+ contents = File.binread template
145
134
 
146
- templates
135
+ Template.new(contents, File.expand_path(template), handler,
136
+ :virtual_path => path.virtual,
137
+ :format => format,
138
+ :updated_at => mtime(template))
139
+ }
147
140
  end
148
141
 
149
142
  # Helper for building query glob string based on resolver's pattern.
@@ -169,7 +162,7 @@ module ActionView
169
162
 
170
163
  # Returns the file mtime from the filesystem.
171
164
  def mtime(p)
172
- File.stat(p).mtime
165
+ File.mtime(p)
173
166
  end
174
167
 
175
168
  # Extract handler and formats from path. If a format cannot be a found neither
@@ -245,13 +238,9 @@ module ActionView
245
238
  exts = EXTENSIONS.map { |ext| details[ext] }
246
239
  query = escape_entry(File.join(@path, path))
247
240
 
248
- exts.each do |ext|
249
- query << "{"
250
- ext.compact.uniq.each { |e| query << ".#{e}," }
251
- query << "}"
252
- end
253
-
254
- query
241
+ query + exts.map { |ext|
242
+ "{#{ext.compact.uniq.map { |e| ".#{e}," }.join}}"
243
+ }.join
255
244
  end
256
245
  end
257
246
 
@@ -50,14 +50,17 @@ module ActionView
50
50
 
51
51
  module ClassMethods
52
52
  def tests(helper_class)
53
- self.helper_class = helper_class
53
+ case helper_class
54
+ when String, Symbol
55
+ self.helper_class = "#{helper_class.to_s.underscore}_helper".camelize.safe_constantize
56
+ when Module
57
+ self.helper_class = helper_class
58
+ end
54
59
  end
55
60
 
56
61
  def determine_default_helper_class(name)
57
- mod = name.sub(/Test$/, '').constantize
62
+ mod = name.sub(/Test$/, '').safe_constantize
58
63
  mod.is_a?(Class) ? nil : mod
59
- rescue NameError
60
- nil
61
64
  end
62
65
 
63
66
  def helper_method(*methods)
@@ -218,12 +221,6 @@ module ActionView
218
221
  end]
219
222
  end
220
223
 
221
- def _assigns
222
- ActiveSupport::Deprecation.warn "ActionView::TestCase#_assigns is deprecated and will be removed in future versions. " <<
223
- "Please use view_assigns instead."
224
- view_assigns
225
- end
226
-
227
224
  def _routes
228
225
  @controller._routes if @controller.respond_to?(:_routes)
229
226
  end
@@ -6,7 +6,7 @@ namespace :assets do
6
6
  groups = ENV['RAILS_GROUPS'] || 'assets'
7
7
  args = [$0, task,"RAILS_ENV=#{env}","RAILS_GROUPS=#{groups}"]
8
8
  args << "--trace" if Rake.application.options.trace
9
- ruby *args
9
+ ruby(*args)
10
10
  end
11
11
 
12
12
  # We are currently running with no explicit bundler group
@@ -15,11 +15,11 @@ module Sprockets
15
15
  # temporarily hardcode default JS compressor to uglify. Soon, it will work
16
16
  # the same as SCSS, where a default plugin sets the default.
17
17
  unless config.assets.js_compressor == false
18
- app.assets.js_compressor = LazyCompressor.new { expand_js_compressor(config.assets.js_compressor || :uglifier) }
18
+ app.assets.js_compressor = LazyCompressor.new { Sprockets::Compressors.registered_js_compressor(config.assets.js_compressor || :uglifier) }
19
19
  end
20
20
 
21
21
  unless config.assets.css_compressor == false
22
- app.assets.css_compressor = LazyCompressor.new { expand_css_compressor(config.assets.css_compressor) }
22
+ app.assets.css_compressor = LazyCompressor.new { Sprockets::Compressors.registered_css_compressor(config.assets.css_compressor) }
23
23
  end
24
24
  end
25
25
 
@@ -33,33 +33,5 @@ module Sprockets
33
33
  app.assets = app.assets.index
34
34
  end
35
35
  end
36
-
37
- protected
38
-
39
- def expand_js_compressor(sym)
40
- case sym
41
- when :closure
42
- require 'closure-compiler'
43
- Closure::Compiler.new
44
- when :uglifier
45
- require 'uglifier'
46
- Uglifier.new
47
- when :yui
48
- require 'yui/compressor'
49
- YUI::JavaScriptCompressor.new
50
- else
51
- sym
52
- end
53
- end
54
-
55
- def expand_css_compressor(sym)
56
- case sym
57
- when :yui
58
- require 'yui/compressor'
59
- YUI::CssCompressor.new
60
- else
61
- sym
62
- end
63
- end
64
36
  end
65
- end
37
+ end
@@ -1,21 +1,83 @@
1
1
  module Sprockets
2
- class NullCompressor
2
+ module Compressors
3
+ @@css_compressors = {}
4
+ @@js_compressors = {}
5
+ @@default_css_compressor = nil
6
+ @@default_js_compressor = nil
7
+
8
+ def self.register_css_compressor(name, klass, options = {})
9
+ @@default_css_compressor = name.to_sym if options[:default] || @@default_css_compressor.nil?
10
+ @@css_compressors[name.to_sym] = {:klass => klass.to_s, :require => options[:require]}
11
+ end
12
+
13
+ def self.register_js_compressor(name, klass, options = {})
14
+ @@default_js_compressor = name.to_sym if options[:default] || @@default_js_compressor.nil?
15
+ @@js_compressors[name.to_sym] = {:klass => klass.to_s, :require => options[:require]}
16
+ end
17
+
18
+ def self.registered_css_compressor(name)
19
+ if name.respond_to?(:to_sym)
20
+ compressor = @@css_compressors[name.to_sym] || @@css_compressors[@@default_css_compressor]
21
+ require compressor[:require] if compressor[:require]
22
+ compressor[:klass].constantize.new
23
+ else
24
+ name
25
+ end
26
+ end
27
+
28
+ def self.registered_js_compressor(name)
29
+ if name.respond_to?(:to_sym)
30
+ compressor = @@js_compressors[name.to_sym] || @@js_compressors[@@default_js_compressor]
31
+ require compressor[:require] if compressor[:require]
32
+ compressor[:klass].constantize.new
33
+ else
34
+ name
35
+ end
36
+ end
37
+
38
+ # The default compressors must be registered in default plugins (ex. Sass-Rails)
39
+ register_css_compressor(:scss, 'Sass::Rails::Compressor', :require => 'sass/rails/compressor', :default => true)
40
+ register_js_compressor(:uglifier, 'Uglifier', :require => 'uglifier', :default => true)
41
+
42
+ # Automaticaly register some compressors
43
+ register_css_compressor(:yui, 'YUI::CssCompressor', :require => 'yui/compressor')
44
+ register_js_compressor(:closure, 'Closure::Compiler', :require => 'closure-compiler')
45
+ register_js_compressor(:yui, 'YUI::JavaScriptCompressor', :require => 'yui/compressor')
46
+ end
47
+
48
+ # An asset compressor which does nothing.
49
+ #
50
+ # This compressor simply returns the asset as-is, without any compression
51
+ # whatsoever. It is useful in development mode, when compression isn't
52
+ # needed but using the same asset pipeline as production is desired.
53
+ class NullCompressor #:nodoc:
3
54
  def compress(content)
4
55
  content
5
56
  end
6
57
  end
7
58
 
8
- class LazyCompressor
59
+ # An asset compressor which only initializes the underlying compression
60
+ # engine when needed.
61
+ #
62
+ # This postpones the initialization of the compressor until
63
+ # <code>#compress</code> is called the first time.
64
+ class LazyCompressor #:nodoc:
65
+ # Initializes a new LazyCompressor.
66
+ #
67
+ # The block should return a compressor when called, i.e. an object
68
+ # which responds to <code>#compress</code>.
9
69
  def initialize(&block)
10
70
  @block = block
11
71
  end
12
72
 
13
- def compressor
14
- @compressor ||= @block.call || NullCompressor.new
15
- end
16
-
17
73
  def compress(content)
18
74
  compressor.compress(content)
19
75
  end
76
+
77
+ private
78
+
79
+ def compressor
80
+ @compressor ||= (@block.call || NullCompressor.new)
81
+ end
20
82
  end
21
- end
83
+ end
@@ -64,25 +64,20 @@ module Sprockets
64
64
  alias_method :path_to_image, :image_path # aliased to avoid conflicts with an image_path named route
65
65
 
66
66
  def javascript_path(source)
67
- path_to_asset(source, :ext => 'js')
67
+ path_to_asset(source)
68
68
  end
69
69
  alias_method :path_to_javascript, :javascript_path # aliased to avoid conflicts with an javascript_path named route
70
70
 
71
71
  def stylesheet_path(source)
72
- path_to_asset(source, :ext => 'css')
72
+ path_to_asset(source)
73
73
  end
74
74
  alias_method :path_to_stylesheet, :stylesheet_path # aliased to avoid conflicts with an stylesheet_path named route
75
75
 
76
76
  private
77
77
  def debug_assets?
78
- begin
79
- compile_assets? &&
80
- (Rails.application.config.assets.debug ||
81
- params[:debug_assets] == '1' ||
82
- params[:debug_assets] == 'true')
83
- rescue NoMethodError
84
- false
85
- end
78
+ compile_assets? && (Rails.application.config.assets.debug || params[:debug_assets])
79
+ rescue NoMethodError
80
+ false
86
81
  end
87
82
 
88
83
  # Override to specify an alternative prefix for asset path generation.
@@ -160,7 +155,7 @@ module Sprockets
160
155
  end
161
156
 
162
157
  def rewrite_extension(source, dir, ext)
163
- if ext && File.extname(source).empty?
158
+ if ext && File.extname(source) != ".#{ext}"
164
159
  "#{source}.#{ext}"
165
160
  else
166
161
  source
@@ -3,6 +3,7 @@ require "action_controller/railtie"
3
3
  module Sprockets
4
4
  autoload :Bootstrap, "sprockets/bootstrap"
5
5
  autoload :Helpers, "sprockets/helpers"
6
+ autoload :Compressors, "sprockets/compressors"
6
7
  autoload :LazyCompressor, "sprockets/compressors"
7
8
  autoload :NullCompressor, "sprockets/compressors"
8
9
  autoload :StaticCompiler, "sprockets/static_compiler"
@@ -16,9 +16,6 @@ module Sprockets
16
16
  def compile
17
17
  manifest = {}
18
18
  env.each_logical_path do |logical_path|
19
- if File.basename(logical_path)[/[^\.]+/, 0] == 'index'
20
- logical_path.sub!(/\/index\./, '.')
21
- end
22
19
  next unless compile_path?(logical_path)
23
20
  if asset = env.find_asset(logical_path)
24
21
  manifest[logical_path] = write_asset(asset)
metadata CHANGED
@@ -1,169 +1,137 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionpack
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.12
4
+ version: 3.2.0.rc1
5
+ prerelease: 6
5
6
  platform: ruby
6
7
  authors:
7
8
  - David Heinemeier Hansson
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-03-18 00:00:00.000000000 Z
12
+ date: 2011-12-20 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: activesupport
15
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &2156023280 !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '='
19
+ - - =
18
20
  - !ruby/object:Gem::Version
19
- version: 3.1.12
21
+ version: 3.2.0.rc1
20
22
  type: :runtime
21
23
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '='
25
- - !ruby/object:Gem::Version
26
- version: 3.1.12
24
+ version_requirements: *2156023280
27
25
  - !ruby/object:Gem::Dependency
28
26
  name: activemodel
29
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &2156021980 !ruby/object:Gem::Requirement
28
+ none: false
30
29
  requirements:
31
- - - '='
30
+ - - =
32
31
  - !ruby/object:Gem::Version
33
- version: 3.1.12
32
+ version: 3.2.0.rc1
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '='
39
- - !ruby/object:Gem::Version
40
- version: 3.1.12
35
+ version_requirements: *2156021980
41
36
  - !ruby/object:Gem::Dependency
42
37
  name: rack-cache
43
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &2156037660 !ruby/object:Gem::Requirement
39
+ none: false
44
40
  requirements:
45
41
  - - ~>
46
42
  - !ruby/object:Gem::Version
47
- version: '1.2'
43
+ version: '1.1'
48
44
  type: :runtime
49
45
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ~>
53
- - !ruby/object:Gem::Version
54
- version: '1.2'
46
+ version_requirements: *2156037660
55
47
  - !ruby/object:Gem::Dependency
56
48
  name: builder
57
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &2156037100 !ruby/object:Gem::Requirement
50
+ none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
61
54
  version: 3.0.0
62
55
  type: :runtime
63
56
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: 3.0.0
57
+ version_requirements: *2156037100
69
58
  - !ruby/object:Gem::Dependency
70
59
  name: i18n
71
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &2156036440 !ruby/object:Gem::Requirement
61
+ none: false
72
62
  requirements:
73
63
  - - ~>
74
64
  - !ruby/object:Gem::Version
75
65
  version: '0.6'
76
66
  type: :runtime
77
67
  prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ~>
81
- - !ruby/object:Gem::Version
82
- version: '0.6'
68
+ version_requirements: *2156036440
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rack
85
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &2156035940 !ruby/object:Gem::Requirement
72
+ none: false
86
73
  requirements:
87
74
  - - ~>
88
75
  - !ruby/object:Gem::Version
89
- version: 1.3.6
76
+ version: 1.3.5
90
77
  type: :runtime
91
78
  prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ~>
95
- - !ruby/object:Gem::Version
96
- version: 1.3.6
79
+ version_requirements: *2156035940
97
80
  - !ruby/object:Gem::Dependency
98
81
  name: rack-test
99
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &2156035260 !ruby/object:Gem::Requirement
83
+ none: false
100
84
  requirements:
101
85
  - - ~>
102
86
  - !ruby/object:Gem::Version
103
87
  version: 0.6.1
104
88
  type: :runtime
105
89
  prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ~>
109
- - !ruby/object:Gem::Version
110
- version: 0.6.1
90
+ version_requirements: *2156035260
111
91
  - !ruby/object:Gem::Dependency
112
- name: rack-mount
113
- requirement: !ruby/object:Gem::Requirement
92
+ name: journey
93
+ requirement: &2156034700 !ruby/object:Gem::Requirement
94
+ none: false
114
95
  requirements:
115
96
  - - ~>
116
97
  - !ruby/object:Gem::Version
117
- version: 0.8.2
98
+ version: 1.0.0.rc1
118
99
  type: :runtime
119
100
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ~>
123
- - !ruby/object:Gem::Version
124
- version: 0.8.2
101
+ version_requirements: *2156034700
125
102
  - !ruby/object:Gem::Dependency
126
103
  name: sprockets
127
- requirement: !ruby/object:Gem::Requirement
104
+ requirement: &2156034160 !ruby/object:Gem::Requirement
105
+ none: false
128
106
  requirements:
129
107
  - - ~>
130
108
  - !ruby/object:Gem::Version
131
- version: 2.0.4
109
+ version: 2.1.2
132
110
  type: :runtime
133
111
  prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ~>
137
- - !ruby/object:Gem::Version
138
- version: 2.0.4
112
+ version_requirements: *2156034160
139
113
  - !ruby/object:Gem::Dependency
140
114
  name: erubis
141
- requirement: !ruby/object:Gem::Requirement
115
+ requirement: &2156033600 !ruby/object:Gem::Requirement
116
+ none: false
142
117
  requirements:
143
118
  - - ~>
144
119
  - !ruby/object:Gem::Version
145
120
  version: 2.7.0
146
121
  type: :runtime
147
122
  prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ~>
151
- - !ruby/object:Gem::Version
152
- version: 2.7.0
123
+ version_requirements: *2156033600
153
124
  - !ruby/object:Gem::Dependency
154
125
  name: tzinfo
155
- requirement: !ruby/object:Gem::Requirement
126
+ requirement: &2156032980 !ruby/object:Gem::Requirement
127
+ none: false
156
128
  requirements:
157
129
  - - ~>
158
130
  - !ruby/object:Gem::Version
159
131
  version: 0.3.29
160
132
  type: :development
161
133
  prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ~>
165
- - !ruby/object:Gem::Version
166
- version: 0.3.29
134
+ version_requirements: *2156032980
167
135
  description: Web apps on Rails. Simple, battle-tested conventions for building and
168
136
  testing MVC web applications. Works with any Rack-compatible server.
169
137
  email: david@loudthinking.com
@@ -252,15 +220,19 @@ files:
252
220
  - lib/action_dispatch/http/url.rb
253
221
  - lib/action_dispatch/middleware/best_standards_support.rb
254
222
  - lib/action_dispatch/middleware/callbacks.rb
255
- - lib/action_dispatch/middleware/closed_error.rb
256
223
  - lib/action_dispatch/middleware/cookies.rb
224
+ - lib/action_dispatch/middleware/debug_exceptions.rb
225
+ - lib/action_dispatch/middleware/exception_wrapper.rb
257
226
  - lib/action_dispatch/middleware/flash.rb
258
227
  - lib/action_dispatch/middleware/head.rb
259
228
  - lib/action_dispatch/middleware/params_parser.rb
229
+ - lib/action_dispatch/middleware/public_exceptions.rb
260
230
  - lib/action_dispatch/middleware/reloader.rb
261
231
  - lib/action_dispatch/middleware/remote_ip.rb
232
+ - lib/action_dispatch/middleware/request_id.rb
262
233
  - lib/action_dispatch/middleware/rescue.rb
263
234
  - lib/action_dispatch/middleware/session/abstract_store.rb
235
+ - lib/action_dispatch/middleware/session/cache_store.rb
264
236
  - lib/action_dispatch/middleware/session/cookie_store.rb
265
237
  - lib/action_dispatch/middleware/session/mem_cache_store.rb
266
238
  - lib/action_dispatch/middleware/show_exceptions.rb
@@ -278,7 +250,6 @@ files:
278
250
  - lib/action_dispatch/routing/mapper.rb
279
251
  - lib/action_dispatch/routing/polymorphic_routes.rb
280
252
  - lib/action_dispatch/routing/redirection.rb
281
- - lib/action_dispatch/routing/route.rb
282
253
  - lib/action_dispatch/routing/route_set.rb
283
254
  - lib/action_dispatch/routing/routes_proxy.rb
284
255
  - lib/action_dispatch/routing/url_for.rb
@@ -341,7 +312,6 @@ files:
341
312
  - lib/action_view/renderer/streaming_template_renderer.rb
342
313
  - lib/action_view/renderer/template_renderer.rb
343
314
  - lib/action_view/template/error.rb
344
- - lib/action_view/template/handler.rb
345
315
  - lib/action_view/template/handlers/builder.rb
346
316
  - lib/action_view/template/handlers/erb.rb
347
317
  - lib/action_view/template/handlers.rb
@@ -361,26 +331,27 @@ files:
361
331
  - lib/sprockets/static_compiler.rb
362
332
  homepage: http://www.rubyonrails.org
363
333
  licenses: []
364
- metadata: {}
365
334
  post_install_message:
366
335
  rdoc_options: []
367
336
  require_paths:
368
337
  - lib
369
338
  required_ruby_version: !ruby/object:Gem::Requirement
339
+ none: false
370
340
  requirements:
371
- - - '>='
341
+ - - ! '>='
372
342
  - !ruby/object:Gem::Version
373
343
  version: 1.8.7
374
344
  required_rubygems_version: !ruby/object:Gem::Requirement
345
+ none: false
375
346
  requirements:
376
- - - '>='
347
+ - - ! '>'
377
348
  - !ruby/object:Gem::Version
378
- version: '0'
349
+ version: 1.3.1
379
350
  requirements:
380
351
  - none
381
352
  rubyforge_project:
382
- rubygems_version: 2.0.2
353
+ rubygems_version: 1.8.7
383
354
  signing_key:
384
- specification_version: 4
355
+ specification_version: 3
385
356
  summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).
386
357
  test_files: []