فهرست منبع

update to Rails 4.1 (defaults)

kares 11 سال پیش
والد
کامیت
6d03034995

+ 3 - 3
frameworks/Ruby/rails/Gemfile-jruby

@@ -1,8 +1,8 @@
 source 'https://rubygems.org'
 source 'https://rubygems.org'
 
 
-gem 'rails', '3.2.18'
-gem 'activerecord-jdbc-adapter', '~> 1.3.7'
-gem 'jdbc-mysql', '5.1.30'
+gem 'rails', '~> 4.1.4'
+gem 'activerecord-jdbc-adapter', '~> 1.3.9'
+gem 'jdbc-mysql', '~> 5.1.30'
 
 
 group :server do
 group :server do
   gem 'torqbox', '0.1.7', :require => false
   gem 'torqbox', '0.1.7', :require => false

+ 3 - 4
frameworks/Ruby/rails/Gemfile-ruby

@@ -1,9 +1,8 @@
 source 'https://rubygems.org'
 source 'https://rubygems.org'
 
 
-gem 'rails', '3.2.18'
-gem 'mysql2', '0.3.16'
+gem 'rails', '~> 4.1.4'
+gem 'mysql2', '~> 0.3.16'
 
 
 group :server do
 group :server do
-  gem 'passenger', '4.0.44', :require => false
-  gem 'unicorn', '4.8.3', :require => false
+  gem 'unicorn', '~> 4.8.3', :require => false
 end
 end

+ 4 - 4
frameworks/Ruby/rails/README.md

@@ -12,12 +12,12 @@ This is the Ruby on Rails portion of a [benchmarking test suite](../) comparing
 
 
 ## Infrastructure Software Versions
 ## Infrastructure Software Versions
 The tests were run with:
 The tests were run with:
-* [Ruby 2.0.0-p0](http://www.ruby-lang.org/)
-* [JRuby 1.7.8](http://jruby.org/)
-* [Rails 3.2.18](http://rubyonrails.org/)
+* [Ruby 2.1.2](http://www.ruby-lang.org/)
+* [JRuby 1.7.13](http://jruby.org/)
+* [Rails 4.1.x](http://rubyonrails.org/)
 * [Unicorn 4.8.3](http://unicorn.bogomips.org/)
 * [Unicorn 4.8.3](http://unicorn.bogomips.org/)
 * [TorqBox 0.1.7](http://torquebox.org/torqbox/)
 * [TorqBox 0.1.7](http://torquebox.org/torqbox/)
-* [MySQL 5.5.29](https://dev.mysql.com/)
+* [MySQL 5.5](https://dev.mysql.com/)
 
 
 ## References
 ## References
 * https://github.com/FooBarWidget/passenger/pull/71
 * https://github.com/FooBarWidget/passenger/pull/71

+ 3 - 1
frameworks/Ruby/rails/app/controllers/application_controller.rb

@@ -1,3 +1,5 @@
 class ApplicationController < ActionController::Base
 class ApplicationController < ActionController::Base
-  protect_from_forgery
+  # Prevent CSRF attacks by raising an exception.
+  # For APIs, you may want to use :null_session instead.
+  protect_from_forgery with: :exception
 end
 end

+ 0 - 1
frameworks/Ruby/rails/app/models/fortune.rb

@@ -1,4 +1,3 @@
 class Fortune < ActiveRecord::Base
 class Fortune < ActiveRecord::Base
   self.table_name = "Fortune"
   self.table_name = "Fortune"
-  attr_accessible :id, :message
 end
 end

+ 0 - 1
frameworks/Ruby/rails/app/models/world.rb

@@ -1,4 +1,3 @@
 class World < ActiveRecord::Base
 class World < ActiveRecord::Base
   self.table_name = "World"
   self.table_name = "World"
-  attr_accessible :randomNumber
 end
 end

+ 4 - 43
frameworks/Ruby/rails/config/application.rb

@@ -2,28 +2,15 @@ require File.expand_path('../boot', __FILE__)
 
 
 require 'rails/all'
 require 'rails/all'
 
 
-if defined?(Bundler)
-  # If you precompile assets before deploying to production, use this line
-  Bundler.require(*Rails.groups(:assets => %w(development test)))
-  # If you want your assets lazily compiled in production, use this line
-  # Bundler.require(:default, :assets, Rails.env)
-end
+# Require the gems listed in Gemfile, including any gems
+# you've limited to :test, :development, or :production.
+Bundler.require(*Rails.groups)
 
 
 module Hello
 module Hello
   class Application < Rails::Application
   class Application < Rails::Application
     # Settings in config/environments/* take precedence over those specified here.
     # Settings in config/environments/* take precedence over those specified here.
     # Application configuration should go into files in config/initializers
     # Application configuration should go into files in config/initializers
     # -- all .rb files in that directory are automatically loaded.
     # -- all .rb files in that directory are automatically loaded.
-    config.middleware.use Rack::ContentLength
-    # Custom directories with classes and modules you want to be autoloadable.
-    # config.autoload_paths += %W(#{config.root}/extras)
-
-    # Only load the plugins named here, in the order given (default is alphabetical).
-    # :all can be used as a placeholder for all plugins not explicitly named.
-    # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
-
-    # Activate observers that should always be running.
-    # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
 
 
     # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
     # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
     # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
     # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
@@ -32,31 +19,5 @@ module Hello
     # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
     # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
     # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
     # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
     # config.i18n.default_locale = :de
     # config.i18n.default_locale = :de
-
-    # Configure the default encoding used in templates for Ruby 1.9.
-    config.encoding = "utf-8"
-
-    # Configure sensitive parameters which will be filtered from the log file.
-    config.filter_parameters += [:password]
-    
-    # Enable escaping HTML in JSON.
-    config.active_support.escape_html_entities_in_json = true
-    
-    # Use SQL instead of Active Record's schema dumper when creating the database.
-    # This is necessary if your schema can't be completely dumped by the schema dumper,
-    # like if you have constraints or database-specific column types
-    # config.active_record.schema_format = :sql
-
-    # Enforce whitelist mode for mass assignment.
-    # This will create an empty whitelist of attributes available for mass-assignment for all models
-    # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
-    # parameters by using an attr_accessible or attr_protected declaration.
-    config.active_record.whitelist_attributes = true
-
-    # Enable the asset pipeline
-    config.assets.enabled = true
-
-    # Version of your assets, change this if you want to expire all your assets
-    config.assets.version = '1.0'
   end
   end
-end
+end

+ 20 - 20
frameworks/Ruby/rails/config/environments/development.rb

@@ -1,37 +1,37 @@
-Hello::Application.configure do
-  # Settings specified here will take precedence over those in config/application.rb
+Rails.application.configure do
+  # Settings specified here will take precedence over those in config/application.rb.
 
 
   # In the development environment your application's code is reloaded on
   # In the development environment your application's code is reloaded on
   # every request. This slows down response time but is perfect for development
   # every request. This slows down response time but is perfect for development
   # since you don't have to restart the web server when you make code changes.
   # since you don't have to restart the web server when you make code changes.
   config.cache_classes = false
   config.cache_classes = false
 
 
-  # Log error messages when you accidentally call methods on nil.
-  config.whiny_nils = true
+  # Do not eager load code on boot.
+  config.eager_load = false
 
 
-  # Show full error reports and disable caching
+  # Show full error reports and disable caching.
   config.consider_all_requests_local       = true
   config.consider_all_requests_local       = true
   config.action_controller.perform_caching = false
   config.action_controller.perform_caching = false
 
 
-  # Don't care if the mailer can't send
+  # Don't care if the mailer can't send.
   config.action_mailer.raise_delivery_errors = false
   config.action_mailer.raise_delivery_errors = false
 
 
-  # Print deprecation notices to the Rails logger
+  # Print deprecation notices to the Rails logger.
   config.active_support.deprecation = :log
   config.active_support.deprecation = :log
 
 
-  # Only use best-standards-support built into browsers
-  config.action_dispatch.best_standards_support = :builtin
+  # Raise an error on page load if there are pending migrations.
+  config.active_record.migration_error = :page_load
 
 
-  # Raise exception on mass assignment protection for Active Record models
-  config.active_record.mass_assignment_sanitizer = :strict
-
-  # Log the query plan for queries taking more than this (works
-  # with SQLite, MySQL, and PostgreSQL)
-  config.active_record.auto_explain_threshold_in_seconds = 0.5
+  # Debug mode disables concatenation and preprocessing of assets.
+  # This option may cause significant delays in view rendering with a large
+  # number of complex assets.
+  config.assets.debug = true
 
 
-  # Do not compress assets
-  config.assets.compress = false
+  # Adds additional error checking when serving assets at runtime.
+  # Checks for improperly declared sprockets dependencies.
+  # Raises helpful error messages.
+  config.assets.raise_runtime_errors = true
 
 
-  # Expands the lines which load the assets
-  config.assets.debug = true
-end
+  # Raises error for missing translations
+  # config.action_view.raise_on_missing_translations = true
+end

+ 44 - 32
frameworks/Ruby/rails/config/environments/production.rb

@@ -1,67 +1,79 @@
-Hello::Application.configure do
-  # Settings specified here will take precedence over those in config/application.rb
+Rails.application.configure do
+  # Settings specified here will take precedence over those in config/application.rb.
 
 
-  # Code is not reloaded between requests
+  # Code is not reloaded between requests.
   config.cache_classes = true
   config.cache_classes = true
 
 
-  # Full error reports are disabled and caching is turned on
+  # Eager load code on boot. This eager loads most of Rails and
+  # your application in memory, allowing both threaded web servers
+  # and those relying on copy on write to perform better.
+  # Rake tasks automatically ignore this option for performance.
+  config.eager_load = true
+
+  # Full error reports are disabled and caching is turned on.
   config.consider_all_requests_local       = false
   config.consider_all_requests_local       = false
-  config.action_controller.perform_caching = false
+  config.action_controller.perform_caching = true
+
+  # Enable Rack::Cache to put a simple HTTP cache in front of your application
+  # Add `rack-cache` to your Gemfile before enabling this.
+  # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
+  # config.action_dispatch.rack_cache = true
 
 
-  # Disable Rails's static asset server (Apache or nginx will already do this)
+  # Disable Rails's static asset server (Apache or nginx will already do this).
   config.serve_static_assets = false
   config.serve_static_assets = false
 
 
-  # Compress JavaScripts and CSS
-  config.assets.compress = true
+  # Compress JavaScripts and CSS.
+  # config.assets.js_compressor = :uglifier
+  # config.assets.css_compressor = :sass
 
 
-  # Don't fallback to assets pipeline if a precompiled asset is missed
+  # Do not fallback to assets pipeline if a precompiled asset is missed.
   config.assets.compile = false
   config.assets.compile = false
 
 
-  # Generate digests for assets URLs
+  # Generate digests for assets URLs.
   config.assets.digest = true
   config.assets.digest = true
 
 
-  # Defaults to Rails.root.join("public/assets")
-  # config.assets.manifest = YOUR_PATH
+  # `config.assets.precompile` has moved to config/initializers/assets.rb
 
 
-  # Specifies the header that your server uses for sending files
+  # Specifies the header that your server uses for sending files.
   # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
   # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
   # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
   # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
 
 
   # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
   # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
   # config.force_ssl = true
   # config.force_ssl = true
 
 
-  # See everything in the log (default is :info)
-  config.log_level = :error
+  # Set to :debug to see everything in the log.
+  config.log_level = :error # :info
 
 
-  # Prepend all log lines with the following tags
+  # Prepend all log lines with the following tags.
   # config.log_tags = [ :subdomain, :uuid ]
   # config.log_tags = [ :subdomain, :uuid ]
 
 
-  # Use a different logger for distributed setups
+  # Use a different logger for distributed setups.
   # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
   # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
 
 
-  # Use a different cache store in production
+  # Use a different cache store in production.
   # config.cache_store = :mem_cache_store
   # config.cache_store = :mem_cache_store
 
 
-  # Enable serving of images, stylesheets, and JavaScripts from an asset server
+  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
   # config.action_controller.asset_host = "http://assets.example.com"
   # config.action_controller.asset_host = "http://assets.example.com"
 
 
-  # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
-  # config.assets.precompile += %w( search.js )
-
-  # Disable delivery errors, bad email addresses will be ignored
+  # Ignore bad email addresses and do not raise email delivery errors.
+  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
   # config.action_mailer.raise_delivery_errors = false
   # config.action_mailer.raise_delivery_errors = false
 
 
-  # Enable threaded mode
-  config.threadsafe!
-
   # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
   # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
-  # the I18n.default_locale when a translation can not be found)
+  # the I18n.default_locale when a translation cannot be found).
   config.i18n.fallbacks = true
   config.i18n.fallbacks = true
 
 
-  # Send deprecation notices to registered listeners
+  # Send deprecation notices to registered listeners.
   config.active_support.deprecation = :notify
   config.active_support.deprecation = :notify
 
 
-  # Log the query plan for queries taking more than this (works
-  # with SQLite, MySQL, and PostgreSQL)
-  # config.active_record.auto_explain_threshold_in_seconds = 0.5
-end
+  # Disable automatic flushing of the log to improve performance.
+  # config.autoflush_log = false
+
+  # Use default logging formatter so that PID and timestamp are not suppressed.
+  config.log_formatter = ::Logger::Formatter.new
+
+  # Do not dump schema after migrations.
+  config.active_record.dump_schema_after_migration = false
+  
+end

+ 6 - 5
frameworks/Ruby/rails/config/initializers/inflections.rb

@@ -1,15 +1,16 @@
 # Be sure to restart your server when you modify this file.
 # Be sure to restart your server when you modify this file.
 
 
-# Add new inflection rules using the following format
-# (all these examples are active by default):
-# ActiveSupport::Inflector.inflections do |inflect|
+# Add new inflection rules using the following format. Inflections
+# are locale specific, and you may define rules for as many different
+# locales as you wish. All of these examples are active by default:
+# ActiveSupport::Inflector.inflections(:en) do |inflect|
 #   inflect.plural /^(ox)$/i, '\1en'
 #   inflect.plural /^(ox)$/i, '\1en'
 #   inflect.singular /^(ox)en/i, '\1'
 #   inflect.singular /^(ox)en/i, '\1'
 #   inflect.irregular 'person', 'people'
 #   inflect.irregular 'person', 'people'
 #   inflect.uncountable %w( fish sheep )
 #   inflect.uncountable %w( fish sheep )
 # end
 # end
-#
+
 # These inflection rules are supported but not enabled by default:
 # These inflection rules are supported but not enabled by default:
-# ActiveSupport::Inflector.inflections do |inflect|
+# ActiveSupport::Inflector.inflections(:en) do |inflect|
 #   inflect.acronym 'RESTful'
 #   inflect.acronym 'RESTful'
 # end
 # end

+ 0 - 1
frameworks/Ruby/rails/config/initializers/mime_types.rb

@@ -2,4 +2,3 @@
 
 
 # Add new mime types for use in respond_to blocks:
 # Add new mime types for use in respond_to blocks:
 # Mime::Type.register "text/richtext", :rtf
 # Mime::Type.register "text/richtext", :rtf
-# Mime::Type.register_alias "text/html", :iphone

+ 1 - 6
frameworks/Ruby/rails/config/initializers/session_store.rb

@@ -1,8 +1,3 @@
 # Be sure to restart your server when you modify this file.
 # Be sure to restart your server when you modify this file.
 
 
-Hello::Application.config.session_store :cookie_store, key: '_rails-mri_session'
-
-# Use the database for sessions instead of the cookie-based default,
-# which shouldn't be used to store highly confidential information
-# (create the session table with "rails generate session_migration")
-# Hello::Application.config.session_store :active_record_store
+Rails.application.config.session_store :cookie_store, key: '_rails_session'

+ 6 - 6
frameworks/Ruby/rails/config/initializers/wrap_parameters.rb

@@ -1,14 +1,14 @@
 # Be sure to restart your server when you modify this file.
 # Be sure to restart your server when you modify this file.
-#
+
 # This file contains settings for ActionController::ParamsWrapper which
 # This file contains settings for ActionController::ParamsWrapper which
 # is enabled by default.
 # is enabled by default.
 
 
 # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
 # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
 ActiveSupport.on_load(:action_controller) do
 ActiveSupport.on_load(:action_controller) do
-  wrap_parameters format: [:json]
+  wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
 end
 end
 
 
-# Disable root element in JSON by default.
-ActiveSupport.on_load(:active_record) do
-  self.include_root_in_json = false
-end
+# To enable root element in JSON for ActiveRecord objects.
+# ActiveSupport.on_load(:active_record) do
+#  self.include_root_in_json = true
+# end

+ 8 - 0
rails/config/initializers/assets.rb

@@ -0,0 +1,8 @@
+# Be sure to restart your server when you modify this file.
+
+# Version of your assets, change this if you want to expire all your assets.
+# Rails.application.config.assets.version = '1.0'
+
+# Precompile additional assets.
+# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
+# Rails.application.config.assets.precompile += %w( search.js )

+ 4 - 0
rails/config/initializers/filter_parameter_logging.rb

@@ -0,0 +1,4 @@
+# Be sure to restart your server when you modify this file.
+
+# Configure sensitive parameters which will be filtered from the log file.
+Rails.application.config.filter_parameters += [:password]

+ 19 - 0
rails/config/secrets.yml

@@ -0,0 +1,19 @@
+# Be sure to restart your server when you modify this file.
+
+# Your secret key is used for verifying the integrity of signed cookies.
+# If you change this key, all old signed cookies will become invalid!
+
+# Make sure the secret is at least 30 characters and all random,
+# no regular words or you'll be exposed to dictionary attacks.
+# You can use `rake secret` to generate a secure secret key.
+
+# Make sure the secrets in this file are kept private
+# if you're sharing your code publicly.
+
+development:
+  secret_key_base: 884423cb59706d9189feb7cf4bbfc5e2f67c41106252a295bddf68340ea5e76fab96a758ec046637d0d4cf8a1562c7a491ef5063365f02b5fcf80b61a92552d0
+
+# Do not keep production secrets in the repository, instead read values from the environment.
+production:
+  # secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
+  secret_key_base: 884423cb59706d9189feb7cf4bbfc5e2f67c41106252a295bddf68340ea5e76fab96a758ec046637d0d4cf8a1562c7a491ef5063365f02b5fcf80b61a92552d0