configurable_engine 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +6 -14
  2. data/.document +5 -0
  3. data/.gitignore +43 -0
  4. data/.rspec +1 -0
  5. data/.travis.yml +18 -0
  6. data/Gemfile +2 -7
  7. data/Gemfile.lock +160 -54
  8. data/Rakefile +12 -39
  9. data/app/models/configurable.rb +36 -5
  10. data/app/views/admin/configurables/show.html.erb +1 -1
  11. data/config/cucumber.yml +8 -0
  12. data/configurable_engine.gemspec +22 -65
  13. data/features/admin_configurables.feature +10 -0
  14. data/features/step_definitions/web_steps.rb +219 -0
  15. data/features/support/env.rb +57 -0
  16. data/features/support/paths.rb +35 -0
  17. data/gemfiles/Gemfile.base +24 -0
  18. data/gemfiles/Gemfile.rails3_1 +2 -0
  19. data/gemfiles/Gemfile.rails3_1.lock +180 -0
  20. data/gemfiles/Gemfile.rails4_0 +2 -0
  21. data/gemfiles/Gemfile.rails4_0.lock +175 -0
  22. data/lib/configurable_engine/configurables_controller.rb +5 -4
  23. data/lib/configurable_engine/engine.rb +4 -0
  24. data/lib/configurable_engine/version.rb +3 -0
  25. data/spec/dummy/.gitignore +4 -0
  26. data/spec/dummy/README +256 -0
  27. data/spec/dummy/Rakefile +7 -0
  28. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  29. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  30. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  31. data/spec/dummy/config.ru +4 -0
  32. data/spec/dummy/config/application.rb +45 -0
  33. data/spec/dummy/config/boot.rb +13 -0
  34. data/spec/dummy/config/configurable.yml +27 -0
  35. data/spec/dummy/config/database.yml +29 -0
  36. data/spec/dummy/config/environment.rb +5 -0
  37. data/spec/dummy/config/environments/development.rb +24 -0
  38. data/spec/dummy/config/environments/production.rb +51 -0
  39. data/spec/dummy/config/environments/test.rb +85 -0
  40. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  41. data/spec/dummy/config/initializers/inflections.rb +10 -0
  42. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  43. data/spec/dummy/config/initializers/secret_token.rb +8 -0
  44. data/spec/dummy/config/initializers/session_store.rb +8 -0
  45. data/spec/dummy/config/locales/en.yml +5 -0
  46. data/spec/dummy/config/routes.rb +58 -0
  47. data/spec/dummy/db/migrate/20110110001344_create_configurables.rb +17 -0
  48. data/spec/dummy/db/schema.rb +25 -0
  49. data/spec/dummy/db/seeds.rb +7 -0
  50. data/spec/dummy/lib/tasks/.gitkeep +0 -0
  51. data/spec/dummy/public/404.html +26 -0
  52. data/spec/dummy/public/422.html +26 -0
  53. data/spec/dummy/public/500.html +26 -0
  54. data/spec/dummy/public/favicon.ico +0 -0
  55. data/spec/dummy/public/images/rails.png +0 -0
  56. data/spec/dummy/public/index.html +239 -0
  57. data/spec/dummy/public/javascripts/application.js +2 -0
  58. data/spec/dummy/public/javascripts/controls.js +965 -0
  59. data/spec/dummy/public/javascripts/dragdrop.js +974 -0
  60. data/spec/dummy/public/javascripts/effects.js +1123 -0
  61. data/spec/dummy/public/javascripts/prototype.js +6001 -0
  62. data/spec/dummy/public/javascripts/rails.js +175 -0
  63. data/spec/dummy/public/robots.txt +5 -0
  64. data/spec/dummy/public/stylesheets/.gitkeep +0 -0
  65. data/spec/dummy/script/rails +6 -0
  66. data/spec/dummy/vendor/plugins/.gitkeep +0 -0
  67. data/spec/models/configurable_spec.rb +134 -0
  68. data/spec/spec_helper.rb +27 -0
  69. data/tasks/cucumber.rake +56 -0
  70. metadata +120 -83
  71. data/VERSION +0 -1
@@ -0,0 +1,175 @@
1
+ (function() {
2
+ // Technique from Juriy Zaytsev
3
+ // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
4
+ function isEventSupported(eventName) {
5
+ var el = document.createElement('div');
6
+ eventName = 'on' + eventName;
7
+ var isSupported = (eventName in el);
8
+ if (!isSupported) {
9
+ el.setAttribute(eventName, 'return;');
10
+ isSupported = typeof el[eventName] == 'function';
11
+ }
12
+ el = null;
13
+ return isSupported;
14
+ }
15
+
16
+ function isForm(element) {
17
+ return Object.isElement(element) && element.nodeName.toUpperCase() == 'FORM'
18
+ }
19
+
20
+ function isInput(element) {
21
+ if (Object.isElement(element)) {
22
+ var name = element.nodeName.toUpperCase()
23
+ return name == 'INPUT' || name == 'SELECT' || name == 'TEXTAREA'
24
+ }
25
+ else return false
26
+ }
27
+
28
+ var submitBubbles = isEventSupported('submit'),
29
+ changeBubbles = isEventSupported('change')
30
+
31
+ if (!submitBubbles || !changeBubbles) {
32
+ // augment the Event.Handler class to observe custom events when needed
33
+ Event.Handler.prototype.initialize = Event.Handler.prototype.initialize.wrap(
34
+ function(init, element, eventName, selector, callback) {
35
+ init(element, eventName, selector, callback)
36
+ // is the handler being attached to an element that doesn't support this event?
37
+ if ( (!submitBubbles && this.eventName == 'submit' && !isForm(this.element)) ||
38
+ (!changeBubbles && this.eventName == 'change' && !isInput(this.element)) ) {
39
+ // "submit" => "emulated:submit"
40
+ this.eventName = 'emulated:' + this.eventName
41
+ }
42
+ }
43
+ )
44
+ }
45
+
46
+ if (!submitBubbles) {
47
+ // discover forms on the page by observing focus events which always bubble
48
+ document.on('focusin', 'form', function(focusEvent, form) {
49
+ // special handler for the real "submit" event (one-time operation)
50
+ if (!form.retrieve('emulated:submit')) {
51
+ form.on('submit', function(submitEvent) {
52
+ var emulated = form.fire('emulated:submit', submitEvent, true)
53
+ // if custom event received preventDefault, cancel the real one too
54
+ if (emulated.returnValue === false) submitEvent.preventDefault()
55
+ })
56
+ form.store('emulated:submit', true)
57
+ }
58
+ })
59
+ }
60
+
61
+ if (!changeBubbles) {
62
+ // discover form inputs on the page
63
+ document.on('focusin', 'input, select, texarea', function(focusEvent, input) {
64
+ // special handler for real "change" events
65
+ if (!input.retrieve('emulated:change')) {
66
+ input.on('change', function(changeEvent) {
67
+ input.fire('emulated:change', changeEvent, true)
68
+ })
69
+ input.store('emulated:change', true)
70
+ }
71
+ })
72
+ }
73
+
74
+ function handleRemote(element) {
75
+ var method, url, params;
76
+
77
+ var event = element.fire("ajax:before");
78
+ if (event.stopped) return false;
79
+
80
+ if (element.tagName.toLowerCase() === 'form') {
81
+ method = element.readAttribute('method') || 'post';
82
+ url = element.readAttribute('action');
83
+ params = element.serialize();
84
+ } else {
85
+ method = element.readAttribute('data-method') || 'get';
86
+ url = element.readAttribute('href');
87
+ params = {};
88
+ }
89
+
90
+ new Ajax.Request(url, {
91
+ method: method,
92
+ parameters: params,
93
+ evalScripts: true,
94
+
95
+ onComplete: function(request) { element.fire("ajax:complete", request); },
96
+ onSuccess: function(request) { element.fire("ajax:success", request); },
97
+ onFailure: function(request) { element.fire("ajax:failure", request); }
98
+ });
99
+
100
+ element.fire("ajax:after");
101
+ }
102
+
103
+ function handleMethod(element) {
104
+ var method = element.readAttribute('data-method'),
105
+ url = element.readAttribute('href'),
106
+ csrf_param = $$('meta[name=csrf-param]')[0],
107
+ csrf_token = $$('meta[name=csrf-token]')[0];
108
+
109
+ var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
110
+ element.parentNode.insert(form);
111
+
112
+ if (method !== 'post') {
113
+ var field = new Element('input', { type: 'hidden', name: '_method', value: method });
114
+ form.insert(field);
115
+ }
116
+
117
+ if (csrf_param) {
118
+ var param = csrf_param.readAttribute('content'),
119
+ token = csrf_token.readAttribute('content'),
120
+ field = new Element('input', { type: 'hidden', name: param, value: token });
121
+ form.insert(field);
122
+ }
123
+
124
+ form.submit();
125
+ }
126
+
127
+
128
+ document.on("click", "*[data-confirm]", function(event, element) {
129
+ var message = element.readAttribute('data-confirm');
130
+ if (!confirm(message)) event.stop();
131
+ });
132
+
133
+ document.on("click", "a[data-remote]", function(event, element) {
134
+ if (event.stopped) return;
135
+ handleRemote(element);
136
+ event.stop();
137
+ });
138
+
139
+ document.on("click", "a[data-method]", function(event, element) {
140
+ if (event.stopped) return;
141
+ handleMethod(element);
142
+ event.stop();
143
+ });
144
+
145
+ document.on("submit", function(event) {
146
+ var element = event.findElement(),
147
+ message = element.readAttribute('data-confirm');
148
+ if (message && !confirm(message)) {
149
+ event.stop();
150
+ return false;
151
+ }
152
+
153
+ var inputs = element.select("input[type=submit][data-disable-with]");
154
+ inputs.each(function(input) {
155
+ input.disabled = true;
156
+ input.writeAttribute('data-original-value', input.value);
157
+ input.value = input.readAttribute('data-disable-with');
158
+ });
159
+
160
+ var element = event.findElement("form[data-remote]");
161
+ if (element) {
162
+ handleRemote(element);
163
+ event.stop();
164
+ }
165
+ });
166
+
167
+ document.on("ajax:after", "form", function(event, element) {
168
+ var inputs = element.select("input[type=submit][disabled=true][data-disable-with]");
169
+ inputs.each(function(input) {
170
+ input.value = input.readAttribute('data-original-value');
171
+ input.removeAttribute('data-original-value');
172
+ input.disabled = false;
173
+ });
174
+ });
175
+ })();
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-Agent: *
5
+ # Disallow: /
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
File without changes
@@ -0,0 +1,134 @@
1
+ require 'spec_helper'
2
+
3
+ describe Configurable do
4
+
5
+ describe ".create" do
6
+ it "should require a key" do
7
+ Configurable.create(:name => nil).should have(1).error_on(:name)
8
+ end
9
+
10
+ it "should require a unique key" do
11
+ Configurable.create!(:name => 'notify_email')
12
+ Configurable.create(:name => 'notify_email').should have(1).error_on(:name)
13
+ end
14
+ end
15
+
16
+ describe ".keys" do
17
+ it "should collect the keys" do
18
+ Configurable.keys.should == ['conversion_rate',
19
+ 'important_number',
20
+ 'log_out_sso',
21
+ 'long_list',
22
+ 'notify_email'
23
+ ]
24
+ end
25
+ end
26
+
27
+ describe ".[]=" do
28
+ context "with no saved value" do
29
+ it "creates a new entry" do
30
+ Configurable[:notify_email] = "john@example.com"
31
+ Configurable.find_by_name('notify_email').value.should == 'john@example.com'
32
+ Configurable.count.should == 1
33
+ end
34
+ end
35
+
36
+ context "with a saved value" do
37
+ before do
38
+ Configurable.create!(:name => 'notify_email', :value => 'paul@rslw.com')
39
+ end
40
+
41
+ it "updates the existing value" do
42
+ Configurable[:notify_email] = "john@example.com"
43
+ Configurable.find_by_name('notify_email').value.should == 'john@example.com'
44
+ Configurable.count.should == 1
45
+ end
46
+ end
47
+ end
48
+
49
+ describe ".[]" do
50
+ context "with no saved value" do
51
+ it "shoud pick up the default value" do
52
+ Configurable[:notify_email].should == 'mreider@engineyard.com'
53
+ end
54
+ end
55
+
56
+ context "with a saved value" do
57
+ before do
58
+ Configurable.create!(:name => 'notify_email', :value => 'paul@rslw.com')
59
+ end
60
+
61
+ it "should find the new value" do
62
+ Configurable[:notify_email].should == 'paul@rslw.com'
63
+ end
64
+ end
65
+
66
+ context "with a boolean value" do
67
+ before do
68
+ Configurable.create!(:name => 'log_out_sso', :value => true)
69
+ end
70
+
71
+ it "should typecast the new value" do
72
+ Configurable[:log_out_sso].should == true
73
+ Configurable.log_out_sso?.should == true
74
+ end
75
+ end
76
+
77
+ context "with a decimal value" do
78
+ before do
79
+ Configurable.create!(:name => 'conversion_rate', :value => 1.2)
80
+ end
81
+
82
+ it "should typecast the value" do
83
+ Configurable.conversion_rate.should == BigDecimal.new('1.2')
84
+ end
85
+ end
86
+
87
+ context "with an integer value" do
88
+ before do
89
+ Configurable.create!(:name => 'important_number', :value => 100)
90
+ end
91
+
92
+ it "should typecast the value" do
93
+ Configurable.important_number.should == 100
94
+ end
95
+ end
96
+
97
+ context "with a list value" do
98
+ context "default" do
99
+ it "should default to a list" do
100
+ Configurable.long_list.should == [["One", 1], ["Two", 2], ["Three", 3]]
101
+ end
102
+ end
103
+
104
+ context "with a value" do
105
+ before do
106
+ Configurable.create!({:name => "long_list",
107
+ :value => "Paul,7\nCiara,8\nBrian,9"})
108
+ end
109
+
110
+ it "should update the list" do
111
+ Configurable.long_list.should == [["Paul", "7"],
112
+ ["Ciara", "8"],
113
+ ["Brian", "9"]]
114
+ end
115
+ end
116
+ end
117
+ end
118
+
119
+ describe ".method_missing" do
120
+ it "should raise an error if a key doesn't exist" do
121
+ lambda { Configurable.nonsense }.should raise_error(NoMethodError)
122
+ end
123
+
124
+ it "should return the correct value" do
125
+ Configurable.notify_email.should == 'mreider@engineyard.com'
126
+ end
127
+
128
+ it "should assign the correct value" do
129
+ Configurable.notify_email = 'john@example.com'
130
+ Configurable.notify_email.should == 'john@example.com'
131
+ end
132
+ end
133
+
134
+ end
@@ -0,0 +1,27 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require File.expand_path("../dummy/config/environment", __FILE__)
4
+ require 'rspec/rails'
5
+
6
+ # Requires supporting ruby files with custom matchers and macros, etc,
7
+ # in spec/support/ and its subdirectories.
8
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+ # == Mock Framework
12
+ #
13
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
14
+ #
15
+ # config.mock_with :mocha
16
+ # config.mock_with :flexmock
17
+ # config.mock_with :rr
18
+ config.mock_with :rspec
19
+
20
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
21
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
22
+
23
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
24
+ # examples within a transaction, remove the following line or assign false
25
+ # instead of true.
26
+ config.use_transactional_fixtures = true
27
+ end
@@ -0,0 +1,56 @@
1
+ unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
2
+ vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
3
+ $LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
4
+
5
+ begin
6
+ require 'cucumber/rake/task'
7
+
8
+ namespace :cucumber do
9
+ Cucumber::Rake::Task.new({:ok => 'test:prepare'}, 'Run features that should pass') do |t|
10
+ t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
11
+ t.fork = true # You may get faster startup if you set this to false
12
+ t.profile = 'default'
13
+ end
14
+
15
+ Cucumber::Rake::Task.new({:wip => 'test:prepare'}, 'Run features that are being worked on') do |t|
16
+ t.binary = vendored_cucumber_bin
17
+ t.fork = true # You may get faster startup if you set this to false
18
+ t.profile = 'wip'
19
+ end
20
+
21
+ Cucumber::Rake::Task.new({:rerun => 'test:prepare'}, 'Record failing features and run only them if any exist') do |t|
22
+ t.binary = vendored_cucumber_bin
23
+ t.fork = true # You may get faster startup if you set this to false
24
+ t.profile = 'rerun'
25
+ end
26
+
27
+ desc 'Run all features'
28
+ task :all => [:ok, :wip]
29
+
30
+ task :statsetup do
31
+ require 'rails/code_statistics'
32
+ ::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features')
33
+ ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features')
34
+ end
35
+ end
36
+ desc 'Alias for cucumber:ok'
37
+ task :cucumber => 'cucumber:ok'
38
+
39
+ task :default => :cucumber
40
+
41
+ task :features => :cucumber do
42
+ STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
43
+ end
44
+
45
+ # In case we don't have the generic Rails test:prepare hook, append a no-op task that we can depend upon.
46
+ task 'test:prepare' do
47
+ end
48
+
49
+ task :stats => 'cucumber:statsetup'
50
+ rescue LoadError
51
+ desc 'cucumber rake task not available (cucumber not installed)'
52
+ task :cucumber do
53
+ abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
54
+ end
55
+ end
56
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configurable_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Campbell
@@ -11,92 +11,22 @@ cert_chain: []
11
11
  date: 2013-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- prerelease: false
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ! '>='
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- name: jeweler
21
- requirement: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - ! '>='
24
- - !ruby/object:Gem::Version
25
- version: '0'
26
- type: :development
27
- - !ruby/object:Gem::Dependency
28
- prerelease: false
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- name: rake
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ! '>='
38
- - !ruby/object:Gem::Version
39
- version: '0'
40
- type: :development
41
- - !ruby/object:Gem::Dependency
42
- prerelease: false
43
- version_requirements: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ! '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- name: rspec
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- - !ruby/object:Gem::Dependency
56
- prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- name: cucumber
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ! '>='
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
- type: :development
69
- - !ruby/object:Gem::Dependency
70
- prerelease: false
71
- version_requirements: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ! '>'
74
- - !ruby/object:Gem::Version
75
- version: '3'
76
14
  name: rails
77
15
  requirement: !ruby/object:Gem::Requirement
78
16
  requirements:
79
- - - ! '>'
17
+ - - ">"
80
18
  - !ruby/object:Gem::Version
81
- version: '3'
19
+ version: 3.1.0
82
20
  type: :runtime
83
- - !ruby/object:Gem::Dependency
84
21
  prerelease: false
85
22
  version_requirements: !ruby/object:Gem::Requirement
86
23
  requirements:
87
- - - ! '>'
24
+ - - ">"
88
25
  - !ruby/object:Gem::Version
89
- version: '3'
90
- name: activerecord
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ! '>'
94
- - !ruby/object:Gem::Version
95
- version: '3'
96
- type: :runtime
97
- description: ! 'Configurable is a Rails 3 engine that allows you to set up config
98
- variables in a config file, specifying default values for all environments. These
99
- variables can then be set on a per-app basis using a user facing configuration screen. '
26
+ version: 3.1.0
27
+ description: 'Configurable is a Rails 3 engine that allows you to set up config variables
28
+ in a config file, specifying default values for all environmentspec. These variables
29
+ can then be set on a per-app basis using a user facing configuration screen. '
100
30
  email: paul@rslw.com
101
31
  executables: []
102
32
  extensions: []
@@ -104,24 +34,83 @@ extra_rdoc_files:
104
34
  - LICENSE.txt
105
35
  - README.md
106
36
  files:
37
+ - ".document"
38
+ - ".gitignore"
39
+ - ".rspec"
40
+ - ".travis.yml"
107
41
  - CHANGELOG
108
42
  - Gemfile
109
43
  - Gemfile.lock
110
44
  - LICENSE.txt
111
45
  - README.md
112
46
  - Rakefile
113
- - VERSION
114
47
  - app/controllers/admin/configurables_controller.rb
115
48
  - app/models/configurable.rb
116
49
  - app/views/admin/configurables/show.html.erb
50
+ - config/cucumber.yml
117
51
  - config/routes.rb
118
52
  - configurable_engine.gemspec
53
+ - features/admin_configurables.feature
54
+ - features/step_definitions/web_steps.rb
55
+ - features/support/env.rb
56
+ - features/support/paths.rb
57
+ - gemfiles/Gemfile.base
58
+ - gemfiles/Gemfile.rails3_1
59
+ - gemfiles/Gemfile.rails3_1.lock
60
+ - gemfiles/Gemfile.rails4_0
61
+ - gemfiles/Gemfile.rails4_0.lock
119
62
  - lib/configurable_engine.rb
120
63
  - lib/configurable_engine/configurables_controller.rb
121
64
  - lib/configurable_engine/engine.rb
65
+ - lib/configurable_engine/version.rb
122
66
  - lib/generators/configurable_engine/install_generator.rb
123
67
  - lib/generators/configurable_engine/templates/configurable.yml
124
68
  - lib/generators/configurable_engine/templates/migration.rb
69
+ - spec/dummy/.gitignore
70
+ - spec/dummy/README
71
+ - spec/dummy/Rakefile
72
+ - spec/dummy/app/controllers/application_controller.rb
73
+ - spec/dummy/app/helpers/application_helper.rb
74
+ - spec/dummy/app/views/layouts/application.html.erb
75
+ - spec/dummy/config.ru
76
+ - spec/dummy/config/application.rb
77
+ - spec/dummy/config/boot.rb
78
+ - spec/dummy/config/configurable.yml
79
+ - spec/dummy/config/database.yml
80
+ - spec/dummy/config/environment.rb
81
+ - spec/dummy/config/environments/development.rb
82
+ - spec/dummy/config/environments/production.rb
83
+ - spec/dummy/config/environments/test.rb
84
+ - spec/dummy/config/initializers/backtrace_silencers.rb
85
+ - spec/dummy/config/initializers/inflections.rb
86
+ - spec/dummy/config/initializers/mime_types.rb
87
+ - spec/dummy/config/initializers/secret_token.rb
88
+ - spec/dummy/config/initializers/session_store.rb
89
+ - spec/dummy/config/locales/en.yml
90
+ - spec/dummy/config/routes.rb
91
+ - spec/dummy/db/migrate/20110110001344_create_configurables.rb
92
+ - spec/dummy/db/schema.rb
93
+ - spec/dummy/db/seeds.rb
94
+ - spec/dummy/lib/tasks/.gitkeep
95
+ - spec/dummy/public/404.html
96
+ - spec/dummy/public/422.html
97
+ - spec/dummy/public/500.html
98
+ - spec/dummy/public/favicon.ico
99
+ - spec/dummy/public/images/rails.png
100
+ - spec/dummy/public/index.html
101
+ - spec/dummy/public/javascripts/application.js
102
+ - spec/dummy/public/javascripts/controls.js
103
+ - spec/dummy/public/javascripts/dragdrop.js
104
+ - spec/dummy/public/javascripts/effects.js
105
+ - spec/dummy/public/javascripts/prototype.js
106
+ - spec/dummy/public/javascripts/rails.js
107
+ - spec/dummy/public/robots.txt
108
+ - spec/dummy/public/stylesheets/.gitkeep
109
+ - spec/dummy/script/rails
110
+ - spec/dummy/vendor/plugins/.gitkeep
111
+ - spec/models/configurable_spec.rb
112
+ - spec/spec_helper.rb
113
+ - tasks/cucumber.rake
125
114
  homepage: http://github.com/paulca/configurable_engine
126
115
  licenses:
127
116
  - MIT
@@ -132,18 +121,66 @@ require_paths:
132
121
  - lib
133
122
  required_ruby_version: !ruby/object:Gem::Requirement
134
123
  requirements:
135
- - - ! '>='
124
+ - - ">="
136
125
  - !ruby/object:Gem::Version
137
126
  version: '0'
138
127
  required_rubygems_version: !ruby/object:Gem::Requirement
139
128
  requirements:
140
- - - ! '>='
129
+ - - ">="
141
130
  - !ruby/object:Gem::Version
142
131
  version: '0'
143
132
  requirements: []
144
133
  rubyforge_project:
145
- rubygems_version: 2.0.3
134
+ rubygems_version: 2.2.0
146
135
  signing_key:
147
136
  specification_version: 4
148
137
  summary: Database-backed configuration for Rails 3, with defaults from config file.
149
- test_files: []
138
+ test_files:
139
+ - features/admin_configurables.feature
140
+ - features/step_definitions/web_steps.rb
141
+ - features/support/env.rb
142
+ - features/support/paths.rb
143
+ - spec/dummy/.gitignore
144
+ - spec/dummy/README
145
+ - spec/dummy/Rakefile
146
+ - spec/dummy/app/controllers/application_controller.rb
147
+ - spec/dummy/app/helpers/application_helper.rb
148
+ - spec/dummy/app/views/layouts/application.html.erb
149
+ - spec/dummy/config.ru
150
+ - spec/dummy/config/application.rb
151
+ - spec/dummy/config/boot.rb
152
+ - spec/dummy/config/configurable.yml
153
+ - spec/dummy/config/database.yml
154
+ - spec/dummy/config/environment.rb
155
+ - spec/dummy/config/environments/development.rb
156
+ - spec/dummy/config/environments/production.rb
157
+ - spec/dummy/config/environments/test.rb
158
+ - spec/dummy/config/initializers/backtrace_silencers.rb
159
+ - spec/dummy/config/initializers/inflections.rb
160
+ - spec/dummy/config/initializers/mime_types.rb
161
+ - spec/dummy/config/initializers/secret_token.rb
162
+ - spec/dummy/config/initializers/session_store.rb
163
+ - spec/dummy/config/locales/en.yml
164
+ - spec/dummy/config/routes.rb
165
+ - spec/dummy/db/migrate/20110110001344_create_configurables.rb
166
+ - spec/dummy/db/schema.rb
167
+ - spec/dummy/db/seeds.rb
168
+ - spec/dummy/lib/tasks/.gitkeep
169
+ - spec/dummy/public/404.html
170
+ - spec/dummy/public/422.html
171
+ - spec/dummy/public/500.html
172
+ - spec/dummy/public/favicon.ico
173
+ - spec/dummy/public/images/rails.png
174
+ - spec/dummy/public/index.html
175
+ - spec/dummy/public/javascripts/application.js
176
+ - spec/dummy/public/javascripts/controls.js
177
+ - spec/dummy/public/javascripts/dragdrop.js
178
+ - spec/dummy/public/javascripts/effects.js
179
+ - spec/dummy/public/javascripts/prototype.js
180
+ - spec/dummy/public/javascripts/rails.js
181
+ - spec/dummy/public/robots.txt
182
+ - spec/dummy/public/stylesheets/.gitkeep
183
+ - spec/dummy/script/rails
184
+ - spec/dummy/vendor/plugins/.gitkeep
185
+ - spec/models/configurable_spec.rb
186
+ - spec/spec_helper.rb