detour 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -1
  3. data/.travis.yml +6 -2
  4. data/Gemfile +5 -0
  5. data/README.md +41 -132
  6. data/Rake.md +108 -0
  7. data/Rakefile +21 -1
  8. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  9. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  10. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  11. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  12. data/app/assets/images/detour/.gitkeep +0 -0
  13. data/app/assets/javascripts/detour/application.js +16 -0
  14. data/app/assets/javascripts/detour/bootstrap.js +2006 -0
  15. data/app/assets/javascripts/detour/delete_feature.js +13 -0
  16. data/app/assets/javascripts/detour/delete_flag.js +13 -0
  17. data/app/assets/javascripts/detour/modals.js +3 -0
  18. data/app/assets/javascripts/detour/tooltips.js +3 -0
  19. data/app/assets/stylesheets/detour/application.css +14 -0
  20. data/app/assets/stylesheets/detour/bootstrap.css +7112 -0
  21. data/app/assets/stylesheets/detour/main.css +49 -0
  22. data/app/controllers/detour/application_controller.rb +12 -0
  23. data/app/controllers/detour/features_controller.rb +19 -0
  24. data/app/controllers/detour/flaggable_flags_controller.rb +90 -0
  25. data/app/controllers/detour/flags_controller.rb +18 -0
  26. data/app/helpers/detour/application_helper.rb +32 -0
  27. data/app/helpers/detour/flaggable_flags_helper.rb +5 -0
  28. data/app/helpers/detour/flags_helper.rb +7 -0
  29. data/app/models/detour/concerns/countable_flag.rb +19 -0
  30. data/app/models/detour/concerns/flag_actions.rb +141 -0
  31. data/app/models/detour/concerns/matchers.rb +73 -0
  32. data/app/models/detour/feature.rb +81 -0
  33. data/{lib → app/models}/detour/flag.rb +8 -2
  34. data/app/models/detour/flag_in_flag.rb +12 -0
  35. data/app/models/detour/group_flag.rb +13 -0
  36. data/{lib → app/models}/detour/opt_out_flag.rb +4 -2
  37. data/app/models/detour/percentage_flag.rb +9 -0
  38. data/app/views/detour/application/index.html.erb +0 -0
  39. data/app/views/detour/features/_errors.html.erb +11 -0
  40. data/app/views/detour/features/_success.html.erb +1 -0
  41. data/app/views/detour/features/error.js.erb +5 -0
  42. data/app/views/detour/features/success.js.erb +1 -0
  43. data/app/views/detour/flaggable_flags/_errors.html.erb +11 -0
  44. data/app/views/detour/flaggable_flags/_flaggable_flag.html.erb +11 -0
  45. data/app/views/detour/flaggable_flags/error.js.erb +5 -0
  46. data/app/views/detour/flaggable_flags/index.html.erb +34 -0
  47. data/app/views/detour/flaggable_flags/success.js.erb +1 -0
  48. data/app/views/detour/flags/_feature_form.html.erb +38 -0
  49. data/app/views/detour/flags/index.html.erb +76 -0
  50. data/app/views/detour/shared/_nav.html.erb +28 -0
  51. data/app/views/detour/shared/_spacer_cells.html.erb +3 -0
  52. data/app/views/layouts/detour/application.html.erb +29 -0
  53. data/config/routes.rb +16 -0
  54. data/detour.gemspec +15 -14
  55. data/lib/detour/acts_as_flaggable.rb +42 -3
  56. data/lib/detour/configuration.rb +35 -0
  57. data/lib/detour/engine.rb +5 -0
  58. data/lib/detour/flag_form.rb +87 -0
  59. data/lib/detour/version.rb +1 -1
  60. data/lib/detour.rb +10 -14
  61. data/lib/generators/templates/migration.rb +2 -0
  62. data/lib/tasks/detour.rake +16 -16
  63. data/script/rails +8 -0
  64. data/spec/controllers/detour/application_controller_spec.rb +15 -0
  65. data/spec/controllers/detour/features_controller_spec.rb +51 -0
  66. data/spec/controllers/detour/flaggable_flags_controller_spec.rb +100 -0
  67. data/spec/controllers/detour/flags_controller_spec.rb +77 -0
  68. data/spec/dummy/README.rdoc +261 -0
  69. data/spec/dummy/Rakefile +7 -0
  70. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  71. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  72. data/spec/dummy/app/controllers/application_controller.rb +7 -0
  73. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  74. data/spec/dummy/app/mailers/.gitkeep +0 -0
  75. data/spec/dummy/app/models/.gitkeep +0 -0
  76. data/spec/dummy/app/models/user.rb +5 -0
  77. data/spec/dummy/app/models/widget.rb +5 -0
  78. data/spec/dummy/app/views/application/index.html.erb +22 -0
  79. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  80. data/spec/dummy/config/application.rb +65 -0
  81. data/spec/dummy/config/boot.rb +10 -0
  82. data/spec/dummy/config/database.yml +19 -0
  83. data/spec/dummy/config/environment.rb +5 -0
  84. data/spec/dummy/config/environments/development.rb +37 -0
  85. data/spec/dummy/config/environments/production.rb +67 -0
  86. data/spec/dummy/config/environments/test.rb +37 -0
  87. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  88. data/spec/dummy/config/initializers/detour.rb +36 -0
  89. data/spec/dummy/config/initializers/inflections.rb +15 -0
  90. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  91. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  92. data/spec/dummy/config/initializers/session_store.rb +8 -0
  93. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  94. data/spec/dummy/config/locales/en.yml +5 -0
  95. data/spec/dummy/config/routes.rb +4 -0
  96. data/spec/dummy/config.ru +4 -0
  97. data/spec/dummy/db/migrate/20131218015844_create_users.rb +10 -0
  98. data/spec/dummy/db/migrate/20131218023124_create_widgets.rb +9 -0
  99. data/spec/dummy/db/migrate/20131218055352_add_user_id_to_widgets.rb +6 -0
  100. data/spec/dummy/db/migrate/20131221052201_setup_detour.rb +32 -0
  101. data/spec/dummy/db/schema.rb +59 -0
  102. data/spec/dummy/db/seeds.rb +10 -0
  103. data/spec/dummy/lib/assets/.gitkeep +0 -0
  104. data/spec/dummy/log/.gitkeep +0 -0
  105. data/spec/dummy/public/404.html +26 -0
  106. data/spec/dummy/public/422.html +26 -0
  107. data/spec/dummy/public/500.html +25 -0
  108. data/spec/dummy/public/favicon.ico +0 -0
  109. data/spec/dummy/script/rails +6 -0
  110. data/spec/factories/feature.rb +5 -0
  111. data/spec/factories/flag_in_flag.rb +6 -0
  112. data/spec/factories/group_flag.rb +7 -0
  113. data/spec/factories/opt_out_flag.rb +6 -0
  114. data/spec/factories/percentage_flag.rb +7 -0
  115. data/spec/factories/user.rb +6 -0
  116. data/spec/factories/widget.rb +5 -0
  117. data/spec/features/features_spec.rb +70 -0
  118. data/spec/features/flag_in_flags_spec.rb +118 -0
  119. data/spec/features/group_flags_spec.rb +49 -0
  120. data/spec/features/home_page_spec.rb +11 -0
  121. data/spec/features/opt_out_flags_spec.rb +105 -0
  122. data/spec/features/percentage_flags_spec.rb +63 -0
  123. data/spec/integration/group_rollout_spec.rb +1 -1
  124. data/spec/lib/detour/acts_as_flaggable_spec.rb +45 -0
  125. data/spec/lib/detour/configuration_spec.rb +23 -0
  126. data/spec/lib/detour/flag_form_spec.rb +84 -0
  127. data/spec/lib/{active_record/rollout → detour}/flaggable_spec.rb +19 -19
  128. data/spec/lib/tasks/{detour_rake_spec.rb → detour_spec.rb} +54 -54
  129. data/spec/{lib/active_record/rollout → models/detour}/feature_spec.rb +93 -67
  130. data/spec/models/detour/flag_in_flag_spec.rb +38 -0
  131. data/spec/{lib/active_record/rollout → models/detour}/flag_spec.rb +1 -1
  132. data/spec/models/detour/opt_out_flag_spec.rb +38 -0
  133. data/spec/{lib/active_record/rollout → models/detour}/percentage_flag_spec.rb +1 -1
  134. data/spec/spec_helper.rb +41 -21
  135. data/spec/support/shared_contexts/rake.rb +4 -14
  136. metadata +278 -95
  137. data/lib/detour/feature.rb +0 -312
  138. data/lib/detour/flaggable_flag.rb +0 -10
  139. data/lib/detour/group_flag.rb +0 -8
  140. data/lib/detour/percentage_flag.rb +0 -11
  141. data/spec/lib/active_record/rollout/acts_as_flaggable_spec.rb +0 -31
  142. data/spec/lib/active_record/rollout/flaggable_flag_spec.rb +0 -9
  143. data/spec/lib/active_record/rollout/opt_out_flag_spec.rb +0 -9
  144. data/spec/support/schema.rb +0 -13
  145. /data/lib/generators/{active_record_rollout_generator.rb → detour_generator.rb} +0 -0
  146. /data/lib/generators/templates/{active_record_rollout.rb → detour.rb} +0 -0
  147. /data/spec/{lib/active_record/rollout → models/detour}/group_flag_spec.rb +0 -0
data/spec/spec_helper.rb CHANGED
@@ -1,40 +1,60 @@
1
- require "rails"
2
- require "active_record"
3
- require "detour"
1
+ ENV["RAILS_ENV"] ||= "test"
2
+
3
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
+
5
+ require "capybara/poltergeist"
6
+ require "database_cleaner"
7
+ require "rspec/rails"
8
+ require "rspec/autorun"
9
+ require "factory_girl_rails"
4
10
  require "shoulda-matchers"
5
- require "generators/templates/migration"
6
- require "support/shared_contexts/rake"
7
11
  require "pry"
8
12
 
9
- class User < ActiveRecord::Base
10
- acts_as_flaggable
11
- end
13
+ Rails.backtrace_cleaner.remove_silencers!
12
14
 
13
- class Organization < ActiveRecord::Base
14
- acts_as_flaggable
15
- end
15
+ # Load support files
16
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
16
17
 
17
18
  RSpec.configure do |config|
19
+ Capybara.javascript_driver = :poltergeist
20
+
21
+ config.mock_with :rspec
22
+ config.use_transactional_fixtures = false
23
+ config.infer_base_class_for_anonymous_controllers = false
24
+ config.order = "random"
25
+ config.include FactoryGirl::Syntax::Methods
26
+
27
+ config.after :each do
28
+ Rake::Task.tasks.each { |t| t.reenable }
29
+ end
30
+
18
31
  config.before :suite do
19
- ActiveRecord::Base.establish_connection \
20
- adapter: "sqlite3",
21
- database: File.dirname(__FILE__) + "/spec.sqlite3"
32
+ DatabaseCleaner.clean_with :truncation
33
+ end
34
+
35
+ config.before :each do
36
+ DatabaseCleaner.strategy = :transaction
37
+ end
22
38
 
23
- require File.dirname(__FILE__) + "/support/schema.rb"
39
+ config.before :each, js: true do
40
+ DatabaseCleaner.strategy = :truncation
24
41
  end
25
42
 
26
43
  config.before :each do
27
- SetupDetour.migrate :up
28
- ActiveRecord::Schema.migrate :up
44
+ DatabaseCleaner.start
29
45
  end
30
46
 
31
47
  config.after :each do
32
- SetupDetour.migrate :down
33
- ActiveRecord::Schema.migrate :down
48
+ DatabaseCleaner.clean
49
+ end
50
+
51
+ config.before :each do
52
+ User.instance_variable_set "@detour_flaggable_find_by", :id
34
53
  end
35
54
 
36
55
  config.after :each do
37
- Detour::Feature.instance_variable_set "@defined_groups", {}
38
- Detour::Feature.instance_variable_set "@default_flaggable_class_name", nil
56
+ Detour.config.default_flaggable_class_name = nil
57
+ Detour.config.grep_dirs = []
58
+ Detour.config.instance_variable_set "@defined_groups", {}
39
59
  end
40
60
  end
@@ -1,20 +1,10 @@
1
1
  require "rake"
2
2
 
3
+ APP_RAKEFILE = File.expand_path("../../../../spec/dummy/Rakefile", __FILE__)
4
+ load "rails/tasks/engine.rake"
5
+
3
6
  # Hat tip: http://robots.thoughtbot.com/test-rake-tasks-like-a-boss
4
7
  shared_context "rake" do
5
- let(:rake) { Rake::Application.new }
6
8
  let(:task_name) { self.class.top_level_description }
7
- let(:task_path) { File.join(File.dirname(__FILE__), "../../../lib/tasks/#{task_name.split(":").first}") }
8
- subject { rake[task_name] }
9
-
10
- def loaded_files_excluding_current_rake_file
11
- $".reject { |file| file == "#{task_path}.rake" }
12
- end
13
-
14
- before do
15
- Rake.application = rake
16
- Rake.application.rake_require(task_path, [Rails.root.to_s], loaded_files_excluding_current_rake_file)
17
-
18
- Rake::Task.define_task(:environment)
19
- end
9
+ subject { Rake::Task["app:#{task_name}"] }
20
10
  end
metadata CHANGED
@@ -1,258 +1,441 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: detour
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jonathan Clem
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-17 00:00:00.000000000 Z
11
+ date: 2014-01-08 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: activerecord
14
+ name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.2'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.2.16
22
23
  type: :runtime
23
24
  prerelease: false
24
25
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
26
  requirements:
27
- - - ~>
27
+ - - "~>"
28
28
  - !ruby/object:Gem::Version
29
29
  version: '3.2'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 3.2.16
30
33
  - !ruby/object:Gem::Dependency
31
- name: rails
34
+ name: indefinite_article
32
35
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
36
  requirements:
35
- - - ~>
37
+ - - "~>"
36
38
  - !ruby/object:Gem::Version
37
- version: '3.2'
39
+ version: '0.2'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.2.0
38
43
  type: :runtime
39
44
  prerelease: false
40
45
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
46
  requirements:
43
- - - ~>
47
+ - - "~>"
44
48
  - !ruby/object:Gem::Version
45
- version: '3.2'
49
+ version: '0.2'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.2.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: capybara
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
46
67
  - !ruby/object:Gem::Dependency
47
- name: bundler
68
+ name: database_cleaner
48
69
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
70
  requirements:
51
- - - ~>
71
+ - - "~>"
52
72
  - !ruby/object:Gem::Version
53
- version: '1.3'
73
+ version: 1.2.0
54
74
  type: :development
55
75
  prerelease: false
56
76
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
77
  requirements:
59
- - - ~>
78
+ - - "~>"
60
79
  - !ruby/object:Gem::Version
61
- version: '1.3'
80
+ version: 1.2.0
62
81
  - !ruby/object:Gem::Dependency
63
- name: rake
82
+ name: factory_girl_rails
64
83
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
84
  requirements:
67
- - - ! '>='
85
+ - - ">="
68
86
  - !ruby/object:Gem::Version
69
87
  version: '0'
70
88
  type: :development
71
89
  prerelease: false
72
90
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
91
  requirements:
75
- - - ! '>='
92
+ - - ">="
76
93
  - !ruby/object:Gem::Version
77
94
  version: '0'
78
95
  - !ruby/object:Gem::Dependency
79
- name: rspec-rails
96
+ name: poltergeist
80
97
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
98
  requirements:
83
- - - ! '>='
99
+ - - ">="
84
100
  - !ruby/object:Gem::Version
85
101
  version: '0'
86
102
  type: :development
87
103
  prerelease: false
88
104
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
105
  requirements:
91
- - - ! '>='
106
+ - - ">="
92
107
  - !ruby/object:Gem::Version
93
108
  version: '0'
94
109
  - !ruby/object:Gem::Dependency
95
- name: fakefs
110
+ name: pry-nav
96
111
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
112
  requirements:
99
- - - ! '>='
113
+ - - ">="
100
114
  - !ruby/object:Gem::Version
101
115
  version: '0'
102
116
  type: :development
103
117
  prerelease: false
104
118
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
119
  requirements:
107
- - - ! '>='
120
+ - - ">="
108
121
  - !ruby/object:Gem::Version
109
122
  version: '0'
110
123
  - !ruby/object:Gem::Dependency
111
- name: shoulda-matchers
124
+ name: rspec-rails
112
125
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
126
  requirements:
115
- - - ! '>='
127
+ - - ">="
116
128
  - !ruby/object:Gem::Version
117
129
  version: '0'
118
130
  type: :development
119
131
  prerelease: false
120
132
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
133
  requirements:
123
- - - ! '>='
134
+ - - ">="
124
135
  - !ruby/object:Gem::Version
125
136
  version: '0'
126
137
  - !ruby/object:Gem::Dependency
127
- name: sqlite3-ruby
138
+ name: selenium-webdriver
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ - !ruby/object:Gem::Dependency
152
+ name: shoulda-matchers
128
153
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
154
  requirements:
131
- - - ! '>='
155
+ - - ">="
132
156
  - !ruby/object:Gem::Version
133
157
  version: '0'
134
158
  type: :development
135
159
  prerelease: false
136
160
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
161
  requirements:
139
- - - ! '>='
162
+ - - ">="
140
163
  - !ruby/object:Gem::Version
141
164
  version: '0'
142
165
  - !ruby/object:Gem::Dependency
143
- name: pry-debugger
166
+ name: sqlite3-ruby
144
167
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
168
  requirements:
147
- - - ! '>='
169
+ - - ">="
148
170
  - !ruby/object:Gem::Version
149
171
  version: '0'
150
172
  type: :development
151
173
  prerelease: false
152
174
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
175
  requirements:
155
- - - ! '>='
176
+ - - ">="
156
177
  - !ruby/object:Gem::Version
157
178
  version: '0'
158
179
  - !ruby/object:Gem::Dependency
159
180
  name: yard
160
181
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
182
  requirements:
163
- - - ! '>='
183
+ - - ">="
164
184
  - !ruby/object:Gem::Version
165
185
  version: '0'
166
186
  type: :development
167
187
  prerelease: false
168
188
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
189
  requirements:
171
- - - ! '>='
190
+ - - ">="
172
191
  - !ruby/object:Gem::Version
173
192
  version: '0'
174
- description: Rollouts (feature flags) for ActiveRecord models.
193
+ description: Rollouts (feature flags) for Rails.
175
194
  email:
176
195
  - jonathan@heroku.com
177
196
  executables: []
178
197
  extensions: []
179
198
  extra_rdoc_files: []
180
199
  files:
181
- - .gitignore
182
- - .travis.yml
200
+ - ".gitignore"
201
+ - ".travis.yml"
183
202
  - Gemfile
184
203
  - LICENSE.txt
185
204
  - README.md
205
+ - Rake.md
186
206
  - Rakefile
207
+ - app/assets/fonts/glyphicons-halflings-regular.eot
208
+ - app/assets/fonts/glyphicons-halflings-regular.svg
209
+ - app/assets/fonts/glyphicons-halflings-regular.ttf
210
+ - app/assets/fonts/glyphicons-halflings-regular.woff
211
+ - app/assets/images/detour/.gitkeep
212
+ - app/assets/javascripts/detour/application.js
213
+ - app/assets/javascripts/detour/bootstrap.js
214
+ - app/assets/javascripts/detour/delete_feature.js
215
+ - app/assets/javascripts/detour/delete_flag.js
216
+ - app/assets/javascripts/detour/modals.js
217
+ - app/assets/javascripts/detour/tooltips.js
218
+ - app/assets/stylesheets/detour/application.css
219
+ - app/assets/stylesheets/detour/bootstrap.css
220
+ - app/assets/stylesheets/detour/main.css
221
+ - app/controllers/detour/application_controller.rb
222
+ - app/controllers/detour/features_controller.rb
223
+ - app/controllers/detour/flaggable_flags_controller.rb
224
+ - app/controllers/detour/flags_controller.rb
225
+ - app/helpers/detour/application_helper.rb
226
+ - app/helpers/detour/flaggable_flags_helper.rb
227
+ - app/helpers/detour/flags_helper.rb
228
+ - app/models/detour/concerns/countable_flag.rb
229
+ - app/models/detour/concerns/flag_actions.rb
230
+ - app/models/detour/concerns/matchers.rb
231
+ - app/models/detour/feature.rb
232
+ - app/models/detour/flag.rb
233
+ - app/models/detour/flag_in_flag.rb
234
+ - app/models/detour/group_flag.rb
235
+ - app/models/detour/opt_out_flag.rb
236
+ - app/models/detour/percentage_flag.rb
237
+ - app/views/detour/application/index.html.erb
238
+ - app/views/detour/features/_errors.html.erb
239
+ - app/views/detour/features/_success.html.erb
240
+ - app/views/detour/features/error.js.erb
241
+ - app/views/detour/features/success.js.erb
242
+ - app/views/detour/flaggable_flags/_errors.html.erb
243
+ - app/views/detour/flaggable_flags/_flaggable_flag.html.erb
244
+ - app/views/detour/flaggable_flags/error.js.erb
245
+ - app/views/detour/flaggable_flags/index.html.erb
246
+ - app/views/detour/flaggable_flags/success.js.erb
247
+ - app/views/detour/flags/_feature_form.html.erb
248
+ - app/views/detour/flags/index.html.erb
249
+ - app/views/detour/shared/_nav.html.erb
250
+ - app/views/detour/shared/_spacer_cells.html.erb
251
+ - app/views/layouts/detour/application.html.erb
252
+ - config/routes.rb
187
253
  - detour.gemspec
188
254
  - lib/detour.rb
189
255
  - lib/detour/acts_as_flaggable.rb
190
- - lib/detour/feature.rb
191
- - lib/detour/flag.rb
256
+ - lib/detour/configuration.rb
257
+ - lib/detour/engine.rb
258
+ - lib/detour/flag_form.rb
192
259
  - lib/detour/flaggable.rb
193
- - lib/detour/flaggable_flag.rb
194
- - lib/detour/group_flag.rb
195
- - lib/detour/opt_out_flag.rb
196
- - lib/detour/percentage_flag.rb
197
260
  - lib/detour/version.rb
198
- - lib/generators/active_record_rollout_generator.rb
199
- - lib/generators/templates/active_record_rollout.rb
261
+ - lib/generators/detour_generator.rb
262
+ - lib/generators/templates/detour.rb
200
263
  - lib/generators/templates/migration.rb
201
264
  - lib/tasks/detour.rake
265
+ - script/rails
266
+ - spec/controllers/detour/application_controller_spec.rb
267
+ - spec/controllers/detour/features_controller_spec.rb
268
+ - spec/controllers/detour/flaggable_flags_controller_spec.rb
269
+ - spec/controllers/detour/flags_controller_spec.rb
270
+ - spec/dummy/README.rdoc
271
+ - spec/dummy/Rakefile
272
+ - spec/dummy/app/assets/javascripts/application.js
273
+ - spec/dummy/app/assets/stylesheets/application.css
274
+ - spec/dummy/app/controllers/application_controller.rb
275
+ - spec/dummy/app/helpers/application_helper.rb
276
+ - spec/dummy/app/mailers/.gitkeep
277
+ - spec/dummy/app/models/.gitkeep
278
+ - spec/dummy/app/models/user.rb
279
+ - spec/dummy/app/models/widget.rb
280
+ - spec/dummy/app/views/application/index.html.erb
281
+ - spec/dummy/app/views/layouts/application.html.erb
282
+ - spec/dummy/config.ru
283
+ - spec/dummy/config/application.rb
284
+ - spec/dummy/config/boot.rb
285
+ - spec/dummy/config/database.yml
286
+ - spec/dummy/config/environment.rb
287
+ - spec/dummy/config/environments/development.rb
288
+ - spec/dummy/config/environments/production.rb
289
+ - spec/dummy/config/environments/test.rb
290
+ - spec/dummy/config/initializers/backtrace_silencers.rb
291
+ - spec/dummy/config/initializers/detour.rb
292
+ - spec/dummy/config/initializers/inflections.rb
293
+ - spec/dummy/config/initializers/mime_types.rb
294
+ - spec/dummy/config/initializers/secret_token.rb
295
+ - spec/dummy/config/initializers/session_store.rb
296
+ - spec/dummy/config/initializers/wrap_parameters.rb
297
+ - spec/dummy/config/locales/en.yml
298
+ - spec/dummy/config/routes.rb
299
+ - spec/dummy/db/migrate/20131218015844_create_users.rb
300
+ - spec/dummy/db/migrate/20131218023124_create_widgets.rb
301
+ - spec/dummy/db/migrate/20131218055352_add_user_id_to_widgets.rb
302
+ - spec/dummy/db/migrate/20131221052201_setup_detour.rb
303
+ - spec/dummy/db/schema.rb
304
+ - spec/dummy/db/seeds.rb
305
+ - spec/dummy/lib/assets/.gitkeep
306
+ - spec/dummy/log/.gitkeep
307
+ - spec/dummy/public/404.html
308
+ - spec/dummy/public/422.html
309
+ - spec/dummy/public/500.html
310
+ - spec/dummy/public/favicon.ico
311
+ - spec/dummy/script/rails
312
+ - spec/factories/feature.rb
313
+ - spec/factories/flag_in_flag.rb
314
+ - spec/factories/group_flag.rb
315
+ - spec/factories/opt_out_flag.rb
316
+ - spec/factories/percentage_flag.rb
317
+ - spec/factories/user.rb
318
+ - spec/factories/widget.rb
319
+ - spec/features/features_spec.rb
320
+ - spec/features/flag_in_flags_spec.rb
321
+ - spec/features/group_flags_spec.rb
322
+ - spec/features/home_page_spec.rb
323
+ - spec/features/opt_out_flags_spec.rb
324
+ - spec/features/percentage_flags_spec.rb
202
325
  - spec/integration/flag_rollout_spec.rb
203
326
  - spec/integration/group_rollout_spec.rb
204
327
  - spec/integration/percentage_rollout_spec.rb
205
- - spec/lib/active_record/rollout/acts_as_flaggable_spec.rb
206
- - spec/lib/active_record/rollout/feature_spec.rb
207
- - spec/lib/active_record/rollout/flag_spec.rb
208
- - spec/lib/active_record/rollout/flaggable_flag_spec.rb
209
- - spec/lib/active_record/rollout/flaggable_spec.rb
210
- - spec/lib/active_record/rollout/group_flag_spec.rb
211
- - spec/lib/active_record/rollout/opt_out_flag_spec.rb
212
- - spec/lib/active_record/rollout/percentage_flag_spec.rb
213
- - spec/lib/tasks/detour_rake_spec.rb
328
+ - spec/lib/detour/acts_as_flaggable_spec.rb
329
+ - spec/lib/detour/configuration_spec.rb
330
+ - spec/lib/detour/flag_form_spec.rb
331
+ - spec/lib/detour/flaggable_spec.rb
332
+ - spec/lib/tasks/detour_spec.rb
333
+ - spec/models/detour/feature_spec.rb
334
+ - spec/models/detour/flag_in_flag_spec.rb
335
+ - spec/models/detour/flag_spec.rb
336
+ - spec/models/detour/group_flag_spec.rb
337
+ - spec/models/detour/opt_out_flag_spec.rb
338
+ - spec/models/detour/percentage_flag_spec.rb
214
339
  - spec/spec_helper.rb
215
- - spec/support/schema.rb
216
340
  - spec/support/shared_contexts/rake.rb
217
- homepage: https://github.com/jclem/detour
341
+ homepage: https://github.com/heroku/detour
218
342
  licenses:
219
343
  - MIT
344
+ metadata: {}
220
345
  post_install_message:
221
346
  rdoc_options: []
222
347
  require_paths:
223
348
  - lib
224
349
  required_ruby_version: !ruby/object:Gem::Requirement
225
- none: false
226
350
  requirements:
227
- - - ! '>='
351
+ - - ">="
228
352
  - !ruby/object:Gem::Version
229
353
  version: 1.9.3
230
354
  required_rubygems_version: !ruby/object:Gem::Requirement
231
- none: false
232
355
  requirements:
233
- - - ! '>='
356
+ - - ">="
234
357
  - !ruby/object:Gem::Version
235
358
  version: '0'
236
359
  requirements: []
237
360
  rubyforge_project:
238
- rubygems_version: 1.8.23
361
+ rubygems_version: 2.2.0
239
362
  signing_key:
240
- specification_version: 3
241
- summary: Rollouts (feature flags) for ActiveRecord models.
363
+ specification_version: 4
364
+ summary: Rollouts (feature flags) for Rails.
242
365
  test_files:
366
+ - spec/controllers/detour/application_controller_spec.rb
367
+ - spec/controllers/detour/features_controller_spec.rb
368
+ - spec/controllers/detour/flaggable_flags_controller_spec.rb
369
+ - spec/controllers/detour/flags_controller_spec.rb
370
+ - spec/dummy/README.rdoc
371
+ - spec/dummy/Rakefile
372
+ - spec/dummy/app/assets/javascripts/application.js
373
+ - spec/dummy/app/assets/stylesheets/application.css
374
+ - spec/dummy/app/controllers/application_controller.rb
375
+ - spec/dummy/app/helpers/application_helper.rb
376
+ - spec/dummy/app/mailers/.gitkeep
377
+ - spec/dummy/app/models/.gitkeep
378
+ - spec/dummy/app/models/user.rb
379
+ - spec/dummy/app/models/widget.rb
380
+ - spec/dummy/app/views/application/index.html.erb
381
+ - spec/dummy/app/views/layouts/application.html.erb
382
+ - spec/dummy/config.ru
383
+ - spec/dummy/config/application.rb
384
+ - spec/dummy/config/boot.rb
385
+ - spec/dummy/config/database.yml
386
+ - spec/dummy/config/environment.rb
387
+ - spec/dummy/config/environments/development.rb
388
+ - spec/dummy/config/environments/production.rb
389
+ - spec/dummy/config/environments/test.rb
390
+ - spec/dummy/config/initializers/backtrace_silencers.rb
391
+ - spec/dummy/config/initializers/detour.rb
392
+ - spec/dummy/config/initializers/inflections.rb
393
+ - spec/dummy/config/initializers/mime_types.rb
394
+ - spec/dummy/config/initializers/secret_token.rb
395
+ - spec/dummy/config/initializers/session_store.rb
396
+ - spec/dummy/config/initializers/wrap_parameters.rb
397
+ - spec/dummy/config/locales/en.yml
398
+ - spec/dummy/config/routes.rb
399
+ - spec/dummy/db/migrate/20131218015844_create_users.rb
400
+ - spec/dummy/db/migrate/20131218023124_create_widgets.rb
401
+ - spec/dummy/db/migrate/20131218055352_add_user_id_to_widgets.rb
402
+ - spec/dummy/db/migrate/20131221052201_setup_detour.rb
403
+ - spec/dummy/db/schema.rb
404
+ - spec/dummy/db/seeds.rb
405
+ - spec/dummy/lib/assets/.gitkeep
406
+ - spec/dummy/log/.gitkeep
407
+ - spec/dummy/public/404.html
408
+ - spec/dummy/public/422.html
409
+ - spec/dummy/public/500.html
410
+ - spec/dummy/public/favicon.ico
411
+ - spec/dummy/script/rails
412
+ - spec/factories/feature.rb
413
+ - spec/factories/flag_in_flag.rb
414
+ - spec/factories/group_flag.rb
415
+ - spec/factories/opt_out_flag.rb
416
+ - spec/factories/percentage_flag.rb
417
+ - spec/factories/user.rb
418
+ - spec/factories/widget.rb
419
+ - spec/features/features_spec.rb
420
+ - spec/features/flag_in_flags_spec.rb
421
+ - spec/features/group_flags_spec.rb
422
+ - spec/features/home_page_spec.rb
423
+ - spec/features/opt_out_flags_spec.rb
424
+ - spec/features/percentage_flags_spec.rb
243
425
  - spec/integration/flag_rollout_spec.rb
244
426
  - spec/integration/group_rollout_spec.rb
245
427
  - spec/integration/percentage_rollout_spec.rb
246
- - spec/lib/active_record/rollout/acts_as_flaggable_spec.rb
247
- - spec/lib/active_record/rollout/feature_spec.rb
248
- - spec/lib/active_record/rollout/flag_spec.rb
249
- - spec/lib/active_record/rollout/flaggable_flag_spec.rb
250
- - spec/lib/active_record/rollout/flaggable_spec.rb
251
- - spec/lib/active_record/rollout/group_flag_spec.rb
252
- - spec/lib/active_record/rollout/opt_out_flag_spec.rb
253
- - spec/lib/active_record/rollout/percentage_flag_spec.rb
254
- - spec/lib/tasks/detour_rake_spec.rb
428
+ - spec/lib/detour/acts_as_flaggable_spec.rb
429
+ - spec/lib/detour/configuration_spec.rb
430
+ - spec/lib/detour/flag_form_spec.rb
431
+ - spec/lib/detour/flaggable_spec.rb
432
+ - spec/lib/tasks/detour_spec.rb
433
+ - spec/models/detour/feature_spec.rb
434
+ - spec/models/detour/flag_in_flag_spec.rb
435
+ - spec/models/detour/flag_spec.rb
436
+ - spec/models/detour/group_flag_spec.rb
437
+ - spec/models/detour/opt_out_flag_spec.rb
438
+ - spec/models/detour/percentage_flag_spec.rb
255
439
  - spec/spec_helper.rb
256
- - spec/support/schema.rb
257
440
  - spec/support/shared_contexts/rake.rb
258
441
  has_rdoc: