railties 4.2.0.beta1 → 4.2.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c0d9bf17864297c9b28a27acd144798174e32f3d
4
- data.tar.gz: a04fb2115bb4aae2ac18005d73a86caeb221bc81
3
+ metadata.gz: 040345e0c4130763671600ad48ad1870391eb869
4
+ data.tar.gz: 21438b89e2f4b41f4aa5e6ca7dff78fb70eca00d
5
5
  SHA512:
6
- metadata.gz: f66532d7ad29f2255e25d702302f928e6c3ada2c8d11296dda01191c7e530c6c84db24814fcd6e9d6035bc8dc09fb7ca4fc42301b95bbff7a2bd1d63ba3d4ef3
7
- data.tar.gz: 1281dfa40646aa90b0af2954602909be4d361157e74ff55aa396f34ce8be8165e5b3d4f88a991d9800d55faeb5338f4a4c523a17cbff8bbb93c50f1c499c0aa0
6
+ metadata.gz: 7f9ea60ba359d056b51403433d758e3048aaacfe655a46dee8961f7c83867f07a21736905bc17e8b695866c7aef192db45ccfa6bcd781ffe3bf9e06beed218be
7
+ data.tar.gz: 87a6b6d8beb04bc539c3cbb236208c5417ea5af5320b689ae1829e86be4c12b893d417ec53f2fde0450799a32af19243dbc3c978da20a87dbc88f4f68eaffc2e
data/CHANGELOG.md CHANGED
@@ -1,6 +1,36 @@
1
+ * Remove --skip-action-view option from Rails::Generators::AppBase
2
+
3
+ Fixes #17023.
4
+
5
+ *Dan Olson*
6
+
7
+ * Specify dummy app's db migrate path in plugin's test_helper.rb.
8
+
9
+ Fixes #16877.
10
+
11
+ *Yukio Mizuta*
12
+
13
+ * Inject `Rack::Lock` if `config.eager_load` is false.
14
+
15
+ Fixes #15089.
16
+
17
+ *Xavier Noria*
18
+
19
+ * Change the path of dummy app location in plugin's test_helper.rb for cases
20
+ you specify dummy_path option.
21
+
22
+ *Yukio Mizuta*
23
+
24
+ * Fix a bug in the `gem` method for Rails templates when non-String options
25
+ are used.
26
+
27
+ Fixes #16709.
28
+
29
+ *Yves Senn*
30
+
1
31
  * The [web-console](https://github.com/rails/web-console) gem is now
2
32
  installed by default for new applications. It can help you debug
3
- development exceptions by spawnig an interactive console in its cause
33
+ development exceptions by spawning an interactive console in its cause
4
34
  binding.
5
35
 
6
36
  *Ryan Dao*, *Genadi Samokovarov*, *Guillermo Iguaran*
@@ -49,7 +79,7 @@
49
79
  namespace: my_app_development
50
80
 
51
81
  # config/production.rb
52
- MyApp::Application.configure do
82
+ Rails.application.configure do
53
83
  config.middleware.use ExceptionNotifier, config_for(:exception_notification)
54
84
  end
55
85
 
@@ -217,7 +217,7 @@ module Rails
217
217
  # namespace: my_app_development
218
218
  #
219
219
  # # config/production.rb
220
- # MyApp::Application.configure do
220
+ # Rails.application.configure do
221
221
  # config.middleware.use ExceptionNotifier, config_for(:exception_notification)
222
222
  # end
223
223
  def config_for(name)
@@ -414,8 +414,14 @@ module Rails
414
414
  end
415
415
  end
416
416
 
417
+ # Return an array of railties respecting the order they're loaded
418
+ # and the order specified by the +railties_order+ config.
419
+ #
420
+ # While when running initializers we need engines in reverse
421
+ # order here when copying migrations from railties we need then in the same
422
+ # order as given by +railties_order+
417
423
  def migration_railties # :nodoc:
418
- (ordered_railties & railties_without_main_app).reverse
424
+ ordered_railties.flatten - [self]
419
425
  end
420
426
 
421
427
  protected
@@ -448,11 +454,6 @@ module Rails
448
454
  super
449
455
  end
450
456
 
451
- def railties_without_main_app # :nodoc:
452
- @railties_without_main_app ||= Rails::Railtie.subclasses.map(&:instance) +
453
- Rails::Engine.subclasses.map(&:instance)
454
- end
455
-
456
457
  # Returns the ordered railties for this application considering railties_order.
457
458
  def ordered_railties #:nodoc:
458
459
  @ordered_railties ||= begin
@@ -472,13 +473,13 @@ module Rails
472
473
 
473
474
  index = order.index(:all)
474
475
  order[index] = all
475
- order.reverse.flatten
476
+ order
476
477
  end
477
478
  end
478
479
 
479
480
  def railties_initializers(current) #:nodoc:
480
481
  initializers = []
481
- ordered_railties.each do |r|
482
+ ordered_railties.reverse.flatten.each do |r|
482
483
  if r == self
483
484
  initializers += current
484
485
  else
@@ -47,7 +47,8 @@ INFO
47
47
  logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDERR))
48
48
  logger.level = ActiveSupport::Logger::WARN
49
49
  logger.warn(
50
- "Rails Error: Unable to access log file. Please ensure that #{path} exists and is chmod 0666. " +
50
+ "Rails Error: Unable to access log file. Please ensure that #{path} exists and is writable " +
51
+ "(ie, make it writable for user and group: chmod 0664 #{path}). " +
51
52
  "The log level has been raised to WARN and the output directed to STDERR until the problem is fixed."
52
53
  )
53
54
  logger
@@ -93,9 +93,10 @@ module Rails
93
93
  # Loads and returns the entire raw configuration of database from
94
94
  # values stored in `config/database.yml`.
95
95
  def database_configuration
96
- yaml = Pathname.new(paths["config/database"].existent.first || "")
96
+ path = paths["config/database"].existent.first
97
+ yaml = Pathname.new(path) if path
97
98
 
98
- config = if yaml.exist?
99
+ config = if yaml && yaml.exist?
99
100
  require "yaml"
100
101
  require "erb"
101
102
  YAML.load(ERB.new(yaml.read).result) || {}
@@ -104,7 +105,7 @@ module Rails
104
105
  # by Active Record.
105
106
  {}
106
107
  else
107
- raise "Could not load database configuration. No such file - #{yaml}"
108
+ raise "Could not load database configuration. No such file - #{paths["config/database"].instance_variable_get(:@paths)}"
108
109
  end
109
110
 
110
111
  config
@@ -117,7 +118,7 @@ module Rails
117
118
  end
118
119
 
119
120
  def log_level
120
- @log_level ||= Rails.env.production? ? :info : :debug
121
+ @log_level ||= :debug
121
122
  end
122
123
 
123
124
  def colorize_logging
@@ -66,7 +66,11 @@ module Rails
66
66
  end
67
67
 
68
68
  def allow_concurrency?
69
- config.allow_concurrency.nil? ? config.cache_classes : config.allow_concurrency
69
+ if config.allow_concurrency.nil?
70
+ config.cache_classes && config.eager_load
71
+ else
72
+ config.allow_concurrency
73
+ end
70
74
  end
71
75
 
72
76
  def load_rack_cache
@@ -18,12 +18,12 @@ module Rails
18
18
  opt.on("-e", "--environment=name", String,
19
19
  "Specifies the environment to run this console under (test/development/production).",
20
20
  "Default: development") { |v| options[:environment] = v.strip }
21
- opt.on("--debugger", 'Enable the debugger.') do |v|
21
+ opt.on("--debugger", 'Enables the debugger.') do |v|
22
22
  if RUBY_VERSION < '2.0.0'
23
23
  options[:debugger] = v
24
24
  else
25
- puts "=> Notice: debugger option is ignored since ruby 2.0 and " \
26
- "it will be removed in future versions"
25
+ puts "=> Notice: debugger option is ignored since Ruby 2.0 and " \
26
+ "it will be removed in future versions."
27
27
  end
28
28
  end
29
29
  opt.parse!(arguments)
@@ -20,20 +20,20 @@ module Rails
20
20
 
21
21
  def option_parser(options)
22
22
  OptionParser.new do |opts|
23
- opts.banner = "Usage: rails server [mongrel, thin, etc] [options]"
23
+ opts.banner = "Usage: rails server [mongrel, thin etc] [options]"
24
24
  opts.on("-p", "--port=port", Integer,
25
25
  "Runs Rails on the specified port.", "Default: 3000") { |v| options[:Port] = v }
26
- opts.on("-b", "--binding=ip", String,
27
- "Binds Rails to the specified ip.", "Default: 0.0.0.0") { |v| options[:Host] = v }
26
+ opts.on("-b", "--binding=IP", String,
27
+ "Binds Rails to the specified IP.", "Default: localhost") { |v| options[:Host] = v }
28
28
  opts.on("-c", "--config=file", String,
29
- "Use custom rackup configuration file") { |v| options[:config] = v }
30
- opts.on("-d", "--daemon", "Make server run as a Daemon.") { options[:daemonize] = true }
31
- opts.on("-u", "--debugger", "Enable the debugger") do
29
+ "Uses a custom rackup configuration.") { |v| options[:config] = v }
30
+ opts.on("-d", "--daemon", "Runs server as a Daemon.") { options[:daemonize] = true }
31
+ opts.on("-u", "--debugger", "Enables the debugger.") do
32
32
  if RUBY_VERSION < '2.0.0'
33
33
  options[:debugger] = true
34
34
  else
35
- puts "=> Notice: debugger option is ignored since ruby 2.0 and " \
36
- "it will be removed in future versions"
35
+ puts "=> Notice: debugger option is ignored since Ruby 2.0 and " \
36
+ "it will be removed in future versions."
37
37
  end
38
38
  end
39
39
  opts.on("-e", "--environment=name", String,
@@ -45,7 +45,7 @@ module Rails
45
45
 
46
46
  opts.separator ""
47
47
 
48
- opts.on("-h", "--help", "Show this help message.") { puts opts; exit }
48
+ opts.on("-h", "--help", "Shows this help message.") { puts opts; exit }
49
49
  end
50
50
  end
51
51
  end
@@ -126,10 +126,6 @@ module Rails
126
126
  puts "=> Rails #{Rails.version} application starting in #{Rails.env} on #{url}"
127
127
  puts "=> Run `rails server -h` for more startup options"
128
128
 
129
- if options[:Host].to_s.match(/0\.0\.0\.0/)
130
- puts "=> Notice: server is listening on all interfaces (#{options[:Host]}). Consider using 127.0.0.1 (--binding option)"
131
- end
132
-
133
129
  puts "=> Ctrl-C to shutdown server" unless options[:daemonize]
134
130
  end
135
131
 
@@ -8,7 +8,7 @@ module Rails
8
8
  MAJOR = 4
9
9
  MINOR = 2
10
10
  TINY = 0
11
- PRE = "beta1"
11
+ PRE = "beta2"
12
12
 
13
13
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
14
14
  end
@@ -268,11 +268,13 @@ module Rails
268
268
 
269
269
  # Surround string with single quotes if there is no quotes.
270
270
  # Otherwise fall back to double quotes
271
- def quote(str)
272
- if str.include?("'")
273
- str.inspect
271
+ def quote(value)
272
+ return value.inspect unless value.is_a? String
273
+
274
+ if value.include?("'")
275
+ value.inspect
274
276
  else
275
- "'#{str}'"
277
+ "'#{value}'"
276
278
  end
277
279
  end
278
280
  end
@@ -44,9 +44,6 @@ module Rails
44
44
  class_option :skip_gems, type: :array, default: [],
45
45
  desc: 'Skip the provided gems files'
46
46
 
47
- class_option :skip_action_view, type: :boolean, aliases: '-V', default: false,
48
- desc: 'Skip Action View files'
49
-
50
47
  class_option :skip_sprockets, type: :boolean, aliases: '-S', default: false,
51
48
  desc: 'Skip Sprockets files'
52
49
 
@@ -167,7 +164,7 @@ module Rails
167
164
  end
168
165
 
169
166
  def include_all_railties?
170
- !options[:skip_active_record] && !options[:skip_action_view] && !options[:skip_test_unit] && !options[:skip_sprockets]
167
+ !options[:skip_active_record] && !options[:skip_test_unit] && !options[:skip_sprockets]
171
168
  end
172
169
 
173
170
  def comment_if(value)
@@ -281,8 +278,14 @@ module Rails
281
278
  []
282
279
  else
283
280
  gems = [coffee_gemfile_entry, javascript_runtime_gemfile_entry]
284
- gems << GemfileEntry.version("#{options[:javascript]}-rails", nil,
285
- "Use #{options[:javascript]} as the JavaScript library")
281
+
282
+ if options[:javascript] == 'jquery'
283
+ gems << GemfileEntry.version('jquery-rails', '~> 4.0.0.beta2',
284
+ 'Use jQuery as the JavaScript library')
285
+ else
286
+ gems << GemfileEntry.version("#{options[:javascript]}-rails", nil,
287
+ "Use #{options[:javascript]} as the JavaScript library")
288
+ end
286
289
 
287
290
  gems << GemfileEntry.version("turbolinks", nil,
288
291
  "Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks")
@@ -15,9 +15,6 @@ source 'https://rubygems.org'
15
15
  # Use ActiveModel has_secure_password
16
16
  # gem 'bcrypt', '~> 3.1.7'
17
17
 
18
- # Use Rails Html Sanitizer for HTML sanitization
19
- gem 'rails-html-sanitizer', '~> 1.0'
20
-
21
18
  # Use Unicorn as the app server
22
19
  # gem 'unicorn'
23
20
 
@@ -33,8 +30,8 @@ group :development, :test do
33
30
  gem 'byebug'
34
31
  <%- end -%>
35
32
 
36
- # Access an IRB console on exceptions page and /console in development
37
- gem 'web-console', '~> 2.0.0.beta2'
33
+ # Access an IRB console on exception pages or by using <%%= console %> in views
34
+ gem 'web-console', '~> 2.0.0.beta4'
38
35
  <%- if spring_install? %>
39
36
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
40
37
  gem 'spring'
@@ -5,10 +5,11 @@ require 'rails/all'
5
5
  <% else -%>
6
6
  # Pick the frameworks you want:
7
7
  require "active_model/railtie"
8
+ require "active_job/railtie"
8
9
  <%= comment_if :skip_active_record %>require "active_record/railtie"
9
10
  require "action_controller/railtie"
10
11
  require "action_mailer/railtie"
11
- <%= comment_if :skip_action_view %>require "action_view/railtie"
12
+ require "action_view/railtie"
12
13
  <%= comment_if :skip_sprockets %>require "sprockets/railtie"
13
14
  <%= comment_if :skip_test_unit %>require "rails/test_unit/railtie"
14
15
  <% end -%>
@@ -32,7 +33,7 @@ module <%= app_const_base %>
32
33
  # config.i18n.default_locale = :de
33
34
  <%- unless options.skip_active_record? -%>
34
35
 
35
- # For not swallow errors in after_commit/after_rollback callbacks.
36
+ # Do not swallow errors in after_commit/after_rollback callbacks.
36
37
  config.active_record.raise_in_transactional_callbacks = true
37
38
  <%- end -%>
38
39
  end
@@ -30,7 +30,7 @@ Rails.application.configure do
30
30
  # number of complex assets.
31
31
  config.assets.debug = true
32
32
 
33
- # Asset digests allow you to set far-future HTTP expiration dates on all assets,
33
+ # Asset digests allow you to set far-future HTTP expiration dates on all assets,
34
34
  # yet still be able to expire them through the digest params.
35
35
  config.assets.digest = true
36
36
 
@@ -16,7 +16,8 @@ Rails.application.configure do
16
16
 
17
17
  # Enable Rack::Cache to put a simple HTTP cache in front of your application
18
18
  # Add `rack-cache` to your Gemfile before enabling this.
19
- # For large-scale production use, consider using a caching reverse proxy like NGINX, varnish or squid.
19
+ # For large-scale production use, consider using a caching reverse proxy like
20
+ # NGINX, varnish or squid.
20
21
  # config.action_dispatch.rack_cache = true
21
22
 
22
23
  # Disable Rails's static asset server (Apache or NGINX will already do this).
@@ -30,7 +31,7 @@ Rails.application.configure do
30
31
  # Do not fallback to assets pipeline if a precompiled asset is missed.
31
32
  config.assets.compile = false
32
33
 
33
- # Asset digests allow you to set far-future HTTP expiration dates on all assets,
34
+ # Asset digests allow you to set far-future HTTP expiration dates on all assets,
34
35
  # yet still be able to expire them through the digest params.
35
36
  config.assets.digest = true
36
37
 
@@ -38,14 +39,14 @@ Rails.application.configure do
38
39
  <%- end -%>
39
40
 
40
41
  # Specifies the header that your server uses for sending files.
41
- # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache
42
+ # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
42
43
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
43
44
 
44
45
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
45
46
  # config.force_ssl = true
46
47
 
47
- # Set to :info to decrease the log volume.
48
- config.log_level = :debug
48
+ # Decrease the log volume.
49
+ # config.log_level = :info
49
50
 
50
51
  # Prepend all log lines with the following tags.
51
52
  # config.log_tags = [ :subdomain, :uuid ]
@@ -57,7 +58,7 @@ Rails.application.configure do
57
58
  # config.cache_store = :mem_cache_store
58
59
 
59
60
  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
60
- # config.action_controller.asset_host = "http://assets.example.com"
61
+ # config.action_controller.asset_host = 'http://assets.example.com'
61
62
 
62
63
  # Ignore bad email addresses and do not raise email delivery errors.
63
64
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
@@ -31,6 +31,9 @@ Rails.application.configure do
31
31
  # ActionMailer::Base.deliveries array.
32
32
  config.action_mailer.delivery_method = :test
33
33
 
34
+ # Randomize the order test cases are executed
35
+ config.active_support.test_order = :random
36
+
34
37
  # Print deprecation notices to the stderr.
35
38
  config.active_support.deprecation = :stderr
36
39
 
@@ -46,7 +46,6 @@ Available field types:
46
46
  date
47
47
  time
48
48
  datetime
49
- timestamp
50
49
 
51
50
  You can also consider `references` as a kind of type. For instance, if you run:
52
51
 
@@ -7,7 +7,7 @@ require 'rails/all'
7
7
  <%= comment_if :skip_active_record %>require "active_record/railtie"
8
8
  require "action_controller/railtie"
9
9
  require "action_mailer/railtie"
10
- <%= comment_if :skip_action_view %>require "action_view/railtie"
10
+ require "action_view/railtie"
11
11
  <%= comment_if :skip_sprockets %>require "sprockets/railtie"
12
12
  <%= comment_if :skip_test_unit %>require "rails/test_unit/railtie"
13
13
  <% end -%>
@@ -1,7 +1,10 @@
1
1
  # Configure Rails Environment
2
2
  ENV["RAILS_ENV"] = "test"
3
3
 
4
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
+ require File.expand_path("../../<%= options[:dummy_path] -%>/config/environment.rb", __FILE__)
5
+ <% unless options[:skip_active_record] -%>
6
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../<%= options[:dummy_path] -%>/db/migrate", __FILE__)]
7
+ <% end -%>
5
8
  require "rails/test_help"
6
9
 
7
10
  Rails.backtrace_cleaner.remove_silencers!
@@ -10,6 +13,6 @@ Rails.backtrace_cleaner.remove_silencers!
10
13
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
14
 
12
15
  # Load fixtures from the engine
13
- if ActiveSupport::TestCase.method_defined?(:fixture_path=)
16
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
14
17
  ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
18
  end
@@ -0,0 +1,13 @@
1
+ require 'rails/generators/test_unit'
2
+
3
+ module TestUnit # :nodoc:
4
+ module Generators # :nodoc:
5
+ class JobGenerator < Base # :nodoc:
6
+ check_class_collision suffix: 'JobTest'
7
+
8
+ def create_test_file
9
+ template 'unit_test.rb.erb', File.join('test/jobs', class_path, "#{file_name}_test.rb")
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ <% module_namespacing do -%>
4
+ class <%= class_name %>JobTest < ActiveJob::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ <% end -%>
data/lib/rails/info.rb CHANGED
@@ -22,17 +22,6 @@ module Rails
22
22
  rescue Exception
23
23
  end
24
24
 
25
- def frameworks
26
- %w( active_record action_pack action_view action_mailer active_support active_model )
27
- end
28
-
29
- def framework_version(framework)
30
- if Object.const_defined?(framework.classify)
31
- require "#{framework}/version"
32
- framework.classify.constantize.version.to_s
33
- end
34
- end
35
-
36
25
  def to_s
37
26
  column_width = properties.names.map {|name| name.length}.max
38
27
  info = properties.map do |name, value|
@@ -61,6 +50,11 @@ module Rails
61
50
  end
62
51
  end
63
52
 
53
+ # The Rails version.
54
+ property 'Rails version' do
55
+ Rails.version.to_s
56
+ end
57
+
64
58
  # The Ruby version and platform, e.g. "2.0.0-p247 (x86_64-darwin12.4.0)".
65
59
  property 'Ruby version' do
66
60
  "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} (#{RUBY_PLATFORM})"
@@ -75,23 +69,10 @@ module Rails
75
69
  ::Rack.release
76
70
  end
77
71
 
78
- # The Rails version.
79
- property 'Rails version' do
80
- Rails.version.to_s
81
- end
82
-
83
72
  property 'JavaScript Runtime' do
84
73
  ExecJS.runtime.name
85
74
  end
86
75
 
87
- # Versions of each Rails framework (Active Record, Action Pack,
88
- # Action Mailer, and Active Support).
89
- frameworks.each do |framework|
90
- property "#{framework.titlecase} version" do
91
- framework_version(framework)
92
- end
93
- end
94
-
95
76
  property 'Middleware' do
96
77
  Rails.configuration.middleware.map(&:inspect)
97
78
  end
@@ -4,6 +4,7 @@
4
4
  STATS_DIRECTORIES = [
5
5
  %w(Controllers app/controllers),
6
6
  %w(Helpers app/helpers),
7
+ %w(Jobs app/jobs),
7
8
  %w(Models app/models),
8
9
  %w(Mailers app/mailers),
9
10
  %w(Javascripts app/assets/javascripts),
@@ -24,4 +25,4 @@ desc "Report code statistics (KLOCs, etc) from the application or engine"
24
25
  task :stats do
25
26
  require 'rails/code_statistics'
26
27
  CodeStatistics.new(*STATS_DIRECTORIES).to_s
27
- end
28
+ end
@@ -2,6 +2,10 @@
2
2
  <html><head>
3
3
  <meta name="viewport" content="width=device-width" />
4
4
  <style type="text/css">
5
+ body {
6
+ margin: 0;
7
+ }
8
+
5
9
  header {
6
10
  width: 100%;
7
11
  padding: 10px 0 0 0;
@@ -95,4 +99,4 @@
95
99
  <iframe seamless name="messageBody" src="?part=<%= Rack::Utils.escape(@part.mime_type) %>"></iframe>
96
100
 
97
101
  </body>
98
- </html>
102
+ </html>
@@ -19,13 +19,13 @@
19
19
  }
20
20
 
21
21
  a {color: #03c}
22
+
22
23
  a:hover {
23
24
  background-color: #03c;
24
25
  color: white;
25
26
  text-decoration: none;
26
27
  }
27
28
 
28
-
29
29
  #page {
30
30
  background-color: #f0f0f0;
31
31
  width: 750px;
@@ -57,21 +57,21 @@
57
57
  padding-right: 30px;
58
58
  }
59
59
 
60
-
61
60
  #header {
62
61
  background-image: url(data:image/png;base64,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);
63
62
  background-repeat: no-repeat;
64
63
  background-position: top left;
65
64
  height: 64px;
66
65
  }
66
+
67
67
  #header h1, #header h2 {margin: 0}
68
+
68
69
  #header h2 {
69
70
  color: #888;
70
71
  font-weight: normal;
71
72
  font-size: 16px;
72
73
  }
73
74
 
74
-
75
75
  #about h3 {
76
76
  margin: 0;
77
77
  margin-bottom: 10px;
@@ -84,18 +84,26 @@
84
84
  margin-left: -55px;
85
85
  margin-right: -10px;
86
86
  }
87
+
87
88
  #about-content table {
88
89
  margin-top: 10px;
89
90
  margin-bottom: 10px;
90
91
  font-size: 11px;
91
92
  border-collapse: collapse;
92
93
  }
94
+
93
95
  #about-content td {
94
96
  padding: 10px;
95
97
  padding-top: 3px;
96
98
  padding-bottom: 3px;
97
99
  }
98
- #about-content td.name {color: #555}
100
+
101
+ #about-content td.name {
102
+ font-weight: bold;
103
+ vertical-align: top;
104
+ color: #555;
105
+ }
106
+
99
107
  #about-content td.value {color: #000}
100
108
 
101
109
  #about-content ul {
@@ -107,21 +115,23 @@
107
115
  background-color: #fcc;
108
116
  border: 1px solid #f00;
109
117
  }
118
+
110
119
  #about-content.failure p {
111
120
  margin: 0;
112
121
  padding: 10px;
113
122
  }
114
123
 
115
-
116
124
  #getting-started {
117
125
  border-top: 1px solid #ccc;
118
126
  margin-top: 25px;
119
127
  padding-top: 15px;
120
128
  }
129
+
121
130
  #getting-started h1 {
122
131
  margin: 0;
123
132
  font-size: 20px;
124
133
  }
134
+
125
135
  #getting-started h2 {
126
136
  margin: 0;
127
137
  font-size: 14px;
@@ -129,40 +139,46 @@
129
139
  color: #333;
130
140
  margin-bottom: 25px;
131
141
  }
142
+
132
143
  #getting-started ol {
133
144
  margin-left: 0;
134
145
  padding-left: 0;
135
146
  }
147
+
136
148
  #getting-started li {
137
149
  font-size: 18px;
138
150
  color: #888;
139
151
  margin-bottom: 25px;
140
152
  }
153
+
141
154
  #getting-started li h2 {
142
155
  margin: 0;
143
156
  font-weight: normal;
144
157
  font-size: 18px;
145
158
  color: #333;
146
159
  }
160
+
147
161
  #getting-started li p {
148
162
  color: #555;
149
163
  font-size: 13px;
150
164
  }
151
165
 
152
-
153
166
  #sidebar ul {
154
167
  margin-left: 0;
155
168
  padding-left: 0;
156
169
  }
170
+
157
171
  #sidebar ul h3 {
158
172
  margin-top: 25px;
159
173
  font-size: 16px;
160
174
  padding-bottom: 10px;
161
175
  border-bottom: 1px solid #ccc;
162
176
  }
177
+
163
178
  #sidebar li {
164
179
  list-style-type: none;
165
180
  }
181
+
166
182
  #sidebar ul.links li {
167
183
  margin-bottom: 5px;
168
184
  }
@@ -3,7 +3,7 @@ require 'rails/test_unit/sub_test_task'
3
3
 
4
4
  task default: :test
5
5
 
6
- desc 'Runs test:units, test:functionals, test:generators, test:integration together'
6
+ desc 'Runs test:units, test:functionals, test:generators, test:integration, test:jobs together'
7
7
  task :test do
8
8
  Rails::TestTask.test_creator(Rake.application.top_level_tasks).invoke_rake_task
9
9
  end
@@ -13,7 +13,7 @@ namespace :test do
13
13
  # Placeholder task for other Railtie and plugins to enhance. See Active Record for an example.
14
14
  end
15
15
 
16
- task :run => ['test:units', 'test:functionals', 'test:generators', 'test:integration']
16
+ task :run => ['test:units', 'test:functionals', 'test:generators', 'test:integration', 'test:jobs']
17
17
 
18
18
  # Inspired by: http://ngauthier.com/2012/02/quick-tests-with-bash.html
19
19
  desc "Run tests quickly by merging all types and not resetting db"
@@ -28,7 +28,7 @@ namespace :test do
28
28
 
29
29
  Rails::TestTask.new(single: "test:prepare")
30
30
 
31
- ["models", "helpers", "controllers", "mailers", "integration"].each do |name|
31
+ ["models", "helpers", "controllers", "mailers", "integration", "jobs"].each do |name|
32
32
  Rails::TestTask.new(name => "test:prepare") do |t|
33
33
  t.pattern = "test/#{name}/**/*_test.rb"
34
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: railties
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0.beta1
4
+ version: 4.2.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-20 00:00:00.000000000 Z
11
+ date: 2014-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.0.beta1
19
+ version: 4.2.0.beta2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 4.2.0.beta1
26
+ version: 4.2.0.beta2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionpack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 4.2.0.beta1
33
+ version: 4.2.0.beta2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 4.2.0.beta1
40
+ version: 4.2.0.beta2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -78,14 +78,14 @@ dependencies:
78
78
  requirements:
79
79
  - - '='
80
80
  - !ruby/object:Gem::Version
81
- version: 4.2.0.beta1
81
+ version: 4.2.0.beta2
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - '='
87
87
  - !ruby/object:Gem::Version
88
- version: 4.2.0.beta1
88
+ version: 4.2.0.beta2
89
89
  description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
90
90
  email: david@loudthinking.com
91
91
  executables:
@@ -280,6 +280,8 @@ files:
280
280
  - lib/rails/generators/test_unit/helper/helper_generator.rb
281
281
  - lib/rails/generators/test_unit/integration/integration_generator.rb
282
282
  - lib/rails/generators/test_unit/integration/templates/integration_test.rb
283
+ - lib/rails/generators/test_unit/job/job_generator.rb
284
+ - lib/rails/generators/test_unit/job/templates/unit_test.rb.erb
283
285
  - lib/rails/generators/test_unit/mailer/mailer_generator.rb
284
286
  - lib/rails/generators/test_unit/mailer/templates/functional_test.rb
285
287
  - lib/rails/generators/test_unit/mailer/templates/preview.rb