public
Description: Miscellaneous stuff
Homepage:
Clone URL: git://github.com/aeden/misc.git
misc / cheatsheets / rails-2-config-cheatsheet.rb
100644 156 lines (144 sloc) 6.359 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# Cheat sheet for Rails 2.x configuration elements
# Created by: Anthony Eden (anthony.mp)
# License: Attribution-Noncommercial-Share Alike 3.0 United States
# License URL: http://creativecommons.org/licenses/by-nc-sa/3.0/us/
 
# Rails Configuration elements and their default values
config.root_path = begin
  raise 'RAILS_ROOT is not set' unless defined?(::RAILS_ROOT)
  raise 'RAILS_ROOT is not a directory' unless File.directory?(::RAILS_ROOT)
  
  # Pathname is incompatible with Windows, but Windows doesn't have
  # real symlinks so File.expand_path is safe.
  if RUBY_PLATFORM =~ /(:?mswin|mingw)/
    File.expand_path(::RAILS_ROOT)
 
  # Otherwise use Pathname#realpath which respects symlinks.
  else
    Pathname.new(::RAILS_ROOT).realpath.to_s
  end
end
config.cache_classes = false
config.controller_paths = begin
  paths = [File.join(root_path, 'app', 'controllers')]
  paths.concat builtin_directories
  paths
end
config.database_configuration_file = File.join(root_path, 'config', 'database.yml')
config.routes_configuration_file = File.join(root_path, 'config', 'routes.rb') # new in 2.1
config.frameworks = ['active_record', 'action_controller', 'action_view', 'action_mailer', 'active_resource']
config.load_paths = begin
  paths = ["#{root_path}/test/mocks/#{environment}"]
 
  # Add the app's controller directory
  paths.concat(Dir["#{root_path}/app/controllers/"])
 
  # Then components subdirectories.
  paths.concat(Dir["#{root_path}/components/[_a-z]*"])
 
  # Followed by the standard includes.
  paths.concat %w(
app
app/models
app/controllers
app/helpers
app/services
components
config
lib
vendor
).map { |dir| "#{root_path}/#{dir}" }.select { |dir| File.directory?(dir) }
 
  paths.concat builtin_directories
end
config.load_once_paths = []
config.log_level = environment == 'production' ? :info : :debug
config.log_path = File.join(root_path, 'log', "#{environment}.log")
config.logger = begin
  logger = ActiveSupport::BufferedLogger.new(configuration.log_path)
  logger.level = ActiveSupport::BufferedLogger.const_get(configuration.log_level.to_s.upcase)
  logger.auto_flushing = false if configuration.environment == "production"
rescue StandardError =>e
  logger = ActiveSupport::BufferedLogger.new(STDERR)
  logger.level = ActiveSupport::BufferedLogger::WARN
  logger.warn(
    "Rails Error: Unable to access log file. Please ensure that #{configuration.log_path} exists and is chmod 0666. " +
    "The log level has been raised to WARN and the output directed to STDERR until the problem is fixed."
  )
end
config.cache_store = begin # new in 2.1
  if File.exist?("#{root_path}/tmp/cache/")
    [ :file_store, "#{root_path}/tmp/cache/" ]
  else
    :memory_store
  end
end
config.view_path = File.join(root_path, 'app', 'views')
config.whiny_nils = false
config.plugins = nil # Loads all plugins
config.plugin_paths = ["#{root_path}/vendor/plugins"]
config.plugin_locators = [Plugin::FileSystemLocator]
config.plugin_loader = Plugin::Loader
config.reload_plugins = true # new in 2.1
config.gems = [] # new in 2.1, use config.gem('gem_name', options) to add gems
config.time_zone = nil # new in 2.1, use rake -D time to get tasks for determining time zones
 
# ActionController configuration elements
config.action_controller.view_controller_internals = true # removed in 2.1
config.action_controller.protected_variables_cache = nil # removed in 2.1
config.action_controller.asset_host = ''
config.action_controller.consider_all_requests_local = true
config.action_controller.debug_routes = true
config.action_controller.allow_concurrency = false
config.action_controller.params_parsers = {
  Mime::MULTIPART_FORM => :multipart_form,
  Mime::URL_ENCODED_FORM => :url_encoded_form,
  Mime::XML => :xml_simple,
  Mime::JSON => :json # new in 2.1
}
config.action_controller.default_charset = 'utf-8'
config.action_controller.logger = config.logger
config.action_controller.template_class = ActionView::Base # removed in 2.1
config.action_controller.ignore_missing_templates = nil # removed in 2.1
config.action_controller.resource_action_separator = '/'
config.action_controller.request_forgery_protection_token = nil
config.action_controller.optimise_named_routes = true
config.action_controller.allow_forgery_protection = true
 
# ActionView configuration elements
config.action_view.erb_trim_mode = '-'
config.action_view.cache_template_loading = false
config.action_view.cache_template_extensions = true # deprecated in 2.1
config.action_view.local_assigns_support_string_keys = true # removed in 2.1
config.action_view.debug_rjs = false
config.action_view.erb_variable = '_erbout'
config.action_view.computed_public_paths = {}
config.action_view.logger = config.logger # delegated to action controller in 2.1
 
# ActionMailer configuration elements
config.action_mailer.logger = config.logger
config.action_mailer.template_extensions = ['erb', 'builder', 'rhtml', 'rxml']
config.action_mailer.smtp_settings = {
  :address => "localhost",
  :port => 25,
  :domain => 'localhost.localdomain',
  :user_name => nil,
  :password => nil,
  :authentication => nil
}
config.action_mailer.sendmail_settings = {
  :location => '/usr/sbin/sendmail',
  :arguments => '-i -t'
}
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.deliveries = []
config.action_mailer.default_charset = 'utf-8'
config.action_mailer.default_content_type = 'text/plain'
config.action_mailer.default_mime_version = "1.0"
config.action_mailer.default_implicit_parts_order = ["text/html", "text/enriched", "text/plain"]
 
# ActiveRecord configuration elements
config.active_record.logger = config.logger
config.active_record.configurations = {}
config.active_record.primary_key_prefix_type = nil
config.active_record.table_name_prefix = ''
config.active_record.table_name_suffix = ''
config.active_record.pluralize_table_names = true
config.active_record.colorize_logging = true
config.active_record.default_timezone = :local
config.active_record.allow_concurrency = false
config.active_record.schema_format = :ruby
config.active_record.store_full_sti_class = false # new in 2.1
 
# ActiveResource configuration elements
config.active_resource.logger = config.logger