stackable_flash 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/.gitignore +19 -0
  2. data/.travis.yml +8 -0
  3. data/CHANGELOG +2 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE +22 -0
  6. data/README.md +80 -0
  7. data/Rakefile +29 -0
  8. data/lib/stackable_flash/config.rb +38 -0
  9. data/lib/stackable_flash/flash_stack.rb +37 -0
  10. data/lib/stackable_flash/stack_layer.rb +47 -0
  11. data/lib/stackable_flash/version.rb +3 -0
  12. data/lib/stackable_flash.rb +64 -0
  13. data/spec/controllers/dummy_controller_spec.rb +23 -0
  14. data/spec/dummy/Rakefile +7 -0
  15. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  16. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  17. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  18. data/spec/dummy/app/controllers/dummy_controller.rb +14 -0
  19. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  20. data/spec/dummy/app/mailers/.gitkeep +0 -0
  21. data/spec/dummy/app/models/.gitkeep +0 -0
  22. data/spec/dummy/app/views/dummy/override.html.erb +3 -0
  23. data/spec/dummy/app/views/dummy/stack.html.erb +3 -0
  24. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  25. data/spec/dummy/config/application.rb +62 -0
  26. data/spec/dummy/config/boot.rb +10 -0
  27. data/spec/dummy/config/database.yml +25 -0
  28. data/spec/dummy/config/environment.rb +5 -0
  29. data/spec/dummy/config/environments/development.rb +30 -0
  30. data/spec/dummy/config/environments/production.rb +67 -0
  31. data/spec/dummy/config/environments/test.rb +34 -0
  32. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  33. data/spec/dummy/config/initializers/inflections.rb +15 -0
  34. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  35. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  36. data/spec/dummy/config/initializers/session_store.rb +8 -0
  37. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  38. data/spec/dummy/config/locales/en.yml +5 -0
  39. data/spec/dummy/config/routes.rb +6 -0
  40. data/spec/dummy/config.ru +4 -0
  41. data/spec/dummy/lib/assets/.gitkeep +0 -0
  42. data/spec/dummy/log/.gitkeep +0 -0
  43. data/spec/dummy/public/404.html +26 -0
  44. data/spec/dummy/public/422.html +26 -0
  45. data/spec/dummy/public/500.html +25 -0
  46. data/spec/dummy/public/favicon.ico +0 -0
  47. data/spec/dummy/script/rails +6 -0
  48. data/spec/spec_helper.rb +25 -0
  49. data/spec/stackable_flash/flash_stack_spec.rb +116 -0
  50. data/stackable_flash.gemspec +26 -0
  51. metadata +213 -0
data/.gitignore ADDED
@@ -0,0 +1,19 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ Gemfile.lock
6
+ InstalledFiles
7
+ coverage
8
+ lib/bundler/man
9
+ pkg
10
+ rdoc
11
+ spec/reports
12
+ test/tmp
13
+ test/version_tmp
14
+ tmp
15
+
16
+ # YARD artifacts
17
+ _yardoc
18
+ .yardoc
19
+ doc/
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 1.9.2
5
+ - jruby-19mode
6
+ - rbx-19mode
7
+ - ruby-head
8
+ - jruby-head
data/CHANGELOG ADDED
@@ -0,0 +1,2 @@
1
+ Version 0.0.1 - AUG.17.2012
2
+ - Initial Release!
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in stackable_flash.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Peter Boling
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,80 @@
1
+ stackable_flash
2
+ ===============
3
+
4
+ Stackable Flash overrides the :[]= method of Rails' FlashHash to make it work like Array's :<< method instead, and makes each flash key an array.
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ gem 'stackable_flash'
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install stackable_flash
19
+
20
+ ## Usage
21
+
22
+ When turned on all flashes can be interacted with as arrays.
23
+
24
+ flash[:notice] = 'First message' # Will have the same affect that pushing it onto an array would
25
+ flash[:notice] << 'Second message' # No need to initialize first, or test to see if responds to :<<
26
+ flash[:notice] |= 'Third message' # Will add this message only if unique in the stack
27
+ flash[:notice] += ['Fourth','Fifth'] # Will add all of the messages onto the stack individually.
28
+
29
+ flash[:notice] # is now: ['First message','Second message','Third message','Fourth','Fifth']
30
+
31
+ But StackableFlash preserves existing functionality for code you already have written.
32
+
33
+ flash[:notice] += ' Appended' # Will append a message to the top/last message on the stack.
34
+
35
+ flash[:notice] # is now: ['First message','Second message','Third message','Fourth','Fifth Appended']
36
+
37
+ flash[:notice] = 'Overwrite'
38
+
39
+ flash[:notice] # is now: ['Overwrite']
40
+
41
+ It is on by default. To turn it off:
42
+
43
+ StackableFlash.stacked = false
44
+
45
+ To turn it back on:
46
+
47
+ StackableFlash.stacked = true
48
+
49
+ You can even start out with it off set a flash, turn it on, and add to the stack:
50
+
51
+ StackableFlash.stacked = false
52
+ flash[:notice] = 'string'
53
+ StackableFlash.stacked = true
54
+ flash[:notice] << 'string'
55
+
56
+ There are block helpers which I am sure some enterprising individual will have a use for:
57
+
58
+ StackableFlash.stacked({:stack_with_proc => Proc.new {|arr| arr.map! {|x| "<p>#{x}</p>"}.join } } ) do
59
+ flash[:notice] = 'original'
60
+ flash[:notice] << 'message'
61
+ flash[:notice] # => ['original','message']
62
+ flash[:notice].stack # => '<p>original</p><p>message</p>'
63
+ end
64
+
65
+ And
66
+
67
+ StackableFlash.not_stacked do
68
+ flash[:notice] = 'original'
69
+ flash[:notice] << ' message'
70
+ flash[:notice] # => 'original message'
71
+ flash[:notice].stack # => NoMethodError !!!
72
+ end
73
+
74
+ ## Contributing
75
+
76
+ 1. Fork it
77
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
78
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
79
+ 4. Push to the branch (`git push origin my-new-feature`)
80
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+
4
+ require 'rake'
5
+
6
+ require 'rspec/core'
7
+ require 'rspec/core/rake_task'
8
+ RSpec::Core::RakeTask.new(:spec) do |spec|
9
+ spec.pattern = FileList['spec/**/*_spec.rb']
10
+ end
11
+
12
+ require 'reek/rake/task'
13
+ Reek::Rake::Task.new do |t|
14
+ t.fail_on_error = true
15
+ t.verbose = false
16
+ t.source_files = 'lib/**/*.rb'
17
+ end
18
+
19
+ require 'roodi'
20
+ require 'roodi_task'
21
+ RoodiTask.new do |t|
22
+ t.verbose = false
23
+ end
24
+
25
+ task :default => :spec
26
+
27
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
28
+
29
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,38 @@
1
+ module StackableFlash
2
+ class Config
3
+
4
+ class << self
5
+ attr_accessor :config
6
+ end
7
+
8
+ DEFAULTS = {
9
+ # Specify how stacked flashes at the same key (e.g. :notice, :errors) should be returned:
10
+ #
11
+ # Example:
12
+ # flash[:notice] = 'Message 1'
13
+ # flash[:notice] << 'Message 2'
14
+ #
15
+ # the flash[:notice] object now looks like when :stack_with_proc => lambda { |arr| arr }:
16
+ #
17
+ # flash[:notice] # => ['Message 1','Message 2']
18
+ #
19
+ # the flash[:notice] object now looks like when :stack_with_proc => lambda { |arr| arr.join('<br/>') }:
20
+ #
21
+ # flash[:notice] # => "Message 1<br/>Message 2"
22
+ #
23
+ # The default leaves the flash as a string of all the flashes joined by br tags,
24
+ # to preserve compatibility with existing javascript, and/or views
25
+ # that expect the flashes as a single string.
26
+ :stack_with_proc => Proc.new { |arr| arr.join('<br/>') }
27
+ }
28
+
29
+ #cattr_reader :config
30
+ #cattr_writer :config
31
+
32
+ self.config ||= DEFAULTS
33
+ def self.configure &block
34
+ yield @@config
35
+ end
36
+
37
+ end
38
+ end
@@ -0,0 +1,37 @@
1
+ module StackableFlash
2
+ class FlashStack < Array
3
+
4
+ # Handle the following use case:
5
+ # flash[:notice] = 'First Part'
6
+ # flash[:notice] += ' Second Part'
7
+ # => ['First Part Second Part']
8
+ define_method "+_with_stacking", lambda {|to_add|
9
+ if StackableFlash.stacking
10
+ if to_add.kind_of?(Array)
11
+ self.send("+_without_stacking", to_add)
12
+ else
13
+ # Make sure it responds to +, otherwise just push it onto the stack
14
+ if self.last.respond_to?(:+)
15
+ self[self.length -1] = self.last + to_add
16
+ else
17
+ self << to_add
18
+ end
19
+ end
20
+ else
21
+ self.send("+_without_stacking", to_add)
22
+ end
23
+ }
24
+ alias_method_chain :+, :stacking
25
+
26
+ def stack
27
+ if StackableFlash.stacking
28
+ # Format the stacked flashes according to stack_with_proc lambda
29
+ StackableFlash::Config.config[:stack_with_proc].call(self)
30
+ else
31
+ # All StackableFlash functionality is completely bypassed
32
+ self
33
+ end
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,47 @@
1
+ require "stackable_flash/flash_stack"
2
+
3
+ module StackableFlash
4
+ module StackLayer
5
+ def self.included(base)
6
+ base.send(:alias_method_chain, "[]=", "stacking")
7
+ end
8
+
9
+ define_method "[]_with_stacking=" do |key, value|
10
+ if StackableFlash.stacking
11
+ # Do it in a non-stacking block so we get normal behavior from flash[:notice] calls
12
+ StackableFlash.not_stacked do
13
+ # Make an array at the key, while providing a seamless upgrade to existing flashes
14
+ #
15
+ # Initial set to Array
16
+ #
17
+ # Principle of least surprise
18
+ # flash[:notice] = ['message1','message2']
19
+ # flash[:notice] # => ['message1','message2']
20
+ #
21
+ # Initial set to String
22
+ #
23
+ # Principle of least surprise
24
+ # flash[:notice] = 'original'
25
+ # flash[:notice] # => ['original']
26
+ #
27
+ # Overwrite!
28
+ #
29
+ # Principle of least surprise
30
+ # flash[:notice] = 'original'
31
+ # flash[:notice] = 'altered'
32
+ # flash[:notice] # => ['altered']
33
+ #
34
+ # The same line of code does all of the above:
35
+ self[key] = StackableFlash::FlashStack.new.replace(value.kind_of?(Array) ? value : Array(value))
36
+
37
+ # Leave existing behavior in place, but send the full array as the value so it doesn't get killed.
38
+ send("[]_without_stacking=", key, self[key])
39
+ end
40
+ else
41
+ # All StackableFlash functionality is completely bypassed
42
+ send("[]_without_stacking=", key, value)
43
+ end
44
+ end
45
+
46
+ end
47
+ end
@@ -0,0 +1,3 @@
1
+ module StackableFlash
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,64 @@
1
+ require "stackable_flash/version"
2
+ require "stackable_flash/config"
3
+ require "stackable_flash/flash_stack"
4
+ require "stackable_flash/stack_layer"
5
+
6
+ module StackableFlash
7
+ class << self
8
+ attr_accessor :stacking
9
+ end
10
+ self.stacking = true # Turn on stacking by default
11
+
12
+ # Regardless of the value of StackableFlash.stacking you can do a local override to force stacking.
13
+ #
14
+ # StackableFlash.stacked do
15
+ # flash[:notice] = 'a simple string' # Use flash as if this gem did not exist
16
+ # flash[:notice] = 'another' # will stack the strings
17
+ # flash[:notice] # => ['a simple string','another'],
18
+ # # but returned as "a simple string<br/>another" with default config
19
+ # end
20
+ #
21
+ def self.stacked(config_options = {}, &block)
22
+ flashing({:forcing => true}) do
23
+ original = StackableFlash::Config.config.dup
24
+ StackableFlash::Config.config.merge!(config_options)
25
+ yield
26
+ StackableFlash::Config.config = original
27
+ end
28
+ end
29
+
30
+ # Regardless of the value of StackableFlash.stacking you can do a local override to force non-stacking.
31
+ #
32
+ # StackableFlash.not_stacked do
33
+ # flash[:notice] = 'a simple string' # Use flash as if this gem did not exist
34
+ # flash[:notice] = '' # will overwrite the string above
35
+ # flash[:notice] # => ''
36
+ # end
37
+ #
38
+ def self.not_stacked &block
39
+ flashing({:forcing => false}) do
40
+ yield
41
+ end
42
+ end
43
+
44
+ def self.flashing(options, &block)
45
+ return false unless block_given?
46
+ original = StackableFlash.stacking
47
+ StackableFlash.stacking = options[:forcing]
48
+ yield
49
+ StackableFlash.stacking = original
50
+ end
51
+
52
+ end
53
+
54
+ require 'action_pack/version'
55
+ base = begin
56
+ if ActionPack::VERSION::MAJOR >= 3
57
+ require 'action_dispatch'
58
+ ActionDispatch::Flash::FlashHash
59
+ else
60
+ require 'action_controller'
61
+ ActionController::Flash::FlashHash
62
+ end
63
+ end
64
+ base.send :include, StackableFlash::StackLayer
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe DummyController do
4
+
5
+ render_views
6
+
7
+ it "should override" do
8
+ get :override
9
+ controller.flash[:notice].should == ['message']
10
+ end
11
+
12
+ it "should build a stack" do
13
+ get :stack
14
+ controller.flash[:notice].should == ['original','message','another']
15
+ end
16
+
17
+ it "should allow transformation" do
18
+ get :stack
19
+ controller.flash[:notice].stack.should == 'original<br/>message<br/>another'
20
+ end
21
+
22
+ end
23
+
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env rake
2
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
3
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4
+
5
+ require File.expand_path('../config/application', __FILE__)
6
+
7
+ Dummy::Application.load_tasks
@@ -0,0 +1,15 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // the compiled file.
9
+ //
10
+ // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
+ // GO AFTER THE REQUIRES BELOW.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require_tree .
@@ -0,0 +1,13 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,3 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+ end
@@ -0,0 +1,14 @@
1
+ class DummyController < ApplicationController
2
+ include StackableFlash
3
+ def override
4
+ flash[:notice] = 'original'
5
+ flash[:notice] = 'message'
6
+ end
7
+
8
+ def stack
9
+ flash[:notice] = 'original'
10
+ flash[:notice] << 'message'
11
+ flash[:notice] << 'another'
12
+ end
13
+
14
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
File without changes
File without changes
@@ -0,0 +1,3 @@
1
+ <p>
2
+ Here I am! Index Action!
3
+ </p>
@@ -0,0 +1,3 @@
1
+ <p>
2
+ Here I am! Error Action
3
+ </p>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ <%= stylesheet_link_tag "application", :media => "all" %>
6
+ <%= javascript_include_tag "application", :stackable_flash %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,62 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ # Pick the frameworks you want:
4
+ #require "active_record/railtie"
5
+ require "action_controller/railtie"
6
+ #require "action_mailer/railtie"
7
+ #require "active_resource/railtie"
8
+ require "sprockets/railtie"
9
+ # require "rails/test_unit/railtie"
10
+
11
+ Bundler.require
12
+ require "stackable_flash"
13
+
14
+ module Dummy
15
+ class Application < Rails::Application
16
+ # Settings in config/environments/* take precedence over those specified here.
17
+ # Application configuration should go into files in config/initializers
18
+ # -- all .rb files in that directory are automatically loaded.
19
+
20
+ # Custom directories with classes and modules you want to be autoloadable.
21
+ # config.autoload_paths += %W(#{config.root}/extras)
22
+
23
+ # Only load the plugins named here, in the order given (default is alphabetical).
24
+ # :all can be used as a placeholder for all plugins not explicitly named.
25
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
26
+
27
+ # Activate observers that should always be running.
28
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
29
+
30
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
31
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
32
+ # config.time_zone = 'Central Time (US & Canada)'
33
+
34
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
35
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
36
+ # config.i18n.default_locale = :de
37
+
38
+ # Configure the default encoding used in templates for Ruby 1.9.
39
+ config.encoding = "utf-8"
40
+
41
+ # Configure sensitive parameters which will be filtered from the log file.
42
+ config.filter_parameters += [:password]
43
+
44
+ # Use SQL instead of Active Record's schema dumper when creating the database.
45
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
46
+ # like if you have constraints or database-specific column types
47
+ # config.active_record.schema_format = :sql
48
+
49
+ # Enforce whitelist mode for mass assignment.
50
+ # This will create an empty whitelist of attributes available for mass-assignment for all models
51
+ # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
52
+ # parameters by using an attr_accessible or attr_protected declaration.
53
+ # config.active_record.whitelist_attributes = true
54
+
55
+ # Enable the asset pipeline
56
+ config.assets.enabled = true
57
+
58
+ # Version of your assets, change this if you want to expire all your assets
59
+ config.assets.version = '1.0'
60
+ end
61
+ end
62
+
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ gemfile = File.expand_path('../../../../Gemfile', __FILE__)
3
+
4
+ if File.exist?(gemfile)
5
+ ENV['BUNDLE_GEMFILE'] = gemfile
6
+ require 'bundler'
7
+ Bundler.setup
8
+ end
9
+
10
+ $:.unshift File.expand_path('../../../../lib', __FILE__)
@@ -0,0 +1,25 @@
1
+ # SQLite version 3.x
2
+ # gem install sqlite3
3
+ #
4
+ # Ensure the SQLite 3 gem is defined in your Gemfile
5
+ # gem 'sqlite3'
6
+ development:
7
+ adapter: sqlite3
8
+ database: db/development.sqlite3
9
+ pool: 5
10
+ timeout: 5000
11
+
12
+ # Warning: The database defined as "test" will be erased and
13
+ # re-generated from your development database when you run "rake".
14
+ # Do not set this db to the same as development or production.
15
+ test:
16
+ adapter: sqlite3
17
+ database: db/test.sqlite3
18
+ pool: 5
19
+ timeout: 5000
20
+
21
+ production:
22
+ adapter: sqlite3
23
+ database: db/production.sqlite3
24
+ pool: 5
25
+ timeout: 5000
@@ -0,0 +1,5 @@
1
+ # Load the rails application
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the rails application
5
+ Dummy::Application.initialize!
@@ -0,0 +1,30 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb
3
+
4
+ # In the development environment your application's code is reloaded on
5
+ # every request. This slows down response time but is perfect for development
6
+ # since you don't have to restart the web server when you make code changes.
7
+ config.cache_classes = false
8
+
9
+ # Log error messages when you accidentally call methods on nil.
10
+ config.whiny_nils = true
11
+
12
+ # Show full error reports and disable caching
13
+ config.consider_all_requests_local = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # # Don't care if the mailer can't send
17
+ # config.action_mailer.raise_delivery_errors = false
18
+
19
+ # Print deprecation notices to the Rails logger
20
+ config.active_support.deprecation = :log
21
+
22
+ # Only use best-standards-support built into browsers
23
+ config.action_dispatch.best_standards_support = :builtin
24
+
25
+ # Do not compress assets
26
+ config.assets.compress = false
27
+
28
+ # Expands the lines which load the assets
29
+ config.assets.debug = true
30
+ end