paloma 1.2.6 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. data/.gitignore +2 -3
  2. data/Changelog.md +0 -4
  3. data/README.md +206 -67
  4. data/app/templates/_filters.js +14 -0
  5. data/app/templates/application/_locals.js +13 -0
  6. data/app/templates/controller/_locals.js +19 -0
  7. data/app/templates/controller/_manifest.js +3 -0
  8. data/app/templates/controller/action.js +23 -0
  9. data/app/templates/index.js +3 -1
  10. data/app/templates/namespace/_locals.js +16 -0
  11. data/app/templates/namespace/_manifest.js +3 -0
  12. data/app/views/paloma/_callback_hook.html.erb +31 -26
  13. data/lib/paloma.rb +3 -0
  14. data/lib/paloma/action_controller_extension.rb +18 -16
  15. data/lib/paloma/action_controller_filters.rb +4 -7
  16. data/lib/paloma/generators/add_generator.rb +81 -85
  17. data/lib/paloma/generators/setup_generator.rb +15 -5
  18. data/lib/paloma/rails/controller_generator.rb +11 -0
  19. data/lib/paloma/rails/engine.rb +6 -0
  20. data/paloma.gemspec +1 -3
  21. data/spec/test_app/.gitignore +15 -0
  22. data/spec/test_app/.rspec +1 -0
  23. data/spec/test_app/Gemfile +2 -0
  24. data/spec/test_app/README.rdoc +261 -0
  25. data/spec/test_app/Rakefile +16 -0
  26. data/spec/test_app/app/assets/javascripts/application.js +16 -0
  27. data/spec/test_app/app/assets/javascripts/paloma/_filters.js +130 -0
  28. data/spec/test_app/app/assets/javascripts/paloma/_locals.js +17 -0
  29. data/spec/test_app/app/assets/javascripts/paloma/bar/_filters.js +96 -0
  30. data/spec/test_app/app/assets/javascripts/paloma/bar/_locals.js +1 -0
  31. data/spec/test_app/app/assets/javascripts/paloma/bar/_manifest.js +3 -0
  32. data/spec/test_app/app/assets/javascripts/paloma/bar/another_basic_action.js +5 -0
  33. data/spec/test_app/app/assets/javascripts/paloma/bar/basic_action.js +5 -0
  34. data/spec/test_app/app/assets/javascripts/paloma/bar/different_params.js +4 -0
  35. data/spec/test_app/app/assets/javascripts/paloma/bar/yet_another_basic_action.js +5 -0
  36. data/spec/test_app/app/assets/javascripts/paloma/foo/_filters.js +24 -0
  37. data/spec/test_app/app/assets/javascripts/paloma/foo/_locals.js +21 -0
  38. data/spec/test_app/app/assets/javascripts/paloma/foo/_manifest.js +3 -0
  39. data/spec/test_app/app/assets/javascripts/paloma/foo/basic_action.js +21 -0
  40. data/spec/test_app/app/assets/javascripts/paloma/foo/skip_callback.js +6 -0
  41. data/spec/test_app/app/assets/javascripts/paloma/index.js +6 -0
  42. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/_filters.js +83 -0
  43. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/_manifest.js +2 -0
  44. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_filters.js +84 -0
  45. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_locals.js +1 -0
  46. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_manifest.js +2 -0
  47. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/another_basic_action.js +5 -0
  48. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/basic_action.js +5 -0
  49. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/yet_another_basic_action.js +5 -0
  50. data/spec/test_app/app/controllers/application_controller.rb +3 -0
  51. data/spec/test_app/app/controllers/bar_controller.rb +28 -0
  52. data/spec/test_app/app/controllers/foo_controller.rb +25 -0
  53. data/spec/test_app/app/controllers/sample_namespace/baz_controller.rb +23 -0
  54. data/spec/{sample_app → test_app}/app/views/layouts/application.html.erb +0 -0
  55. data/spec/test_app/config.ru +4 -0
  56. data/spec/test_app/config/application.rb +74 -0
  57. data/spec/test_app/config/boot.rb +6 -0
  58. data/spec/test_app/config/environment.rb +5 -0
  59. data/spec/test_app/config/environments/development.rb +31 -0
  60. data/spec/test_app/config/environments/production.rb +64 -0
  61. data/spec/test_app/config/environments/test.rb +35 -0
  62. data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
  63. data/spec/test_app/config/initializers/inflections.rb +15 -0
  64. data/spec/test_app/config/initializers/mime_types.rb +5 -0
  65. data/spec/test_app/config/initializers/secret_token.rb +7 -0
  66. data/spec/test_app/config/initializers/session_store.rb +8 -0
  67. data/spec/test_app/config/initializers/wrap_parameters.rb +10 -0
  68. data/spec/test_app/config/locales/en.yml +5 -0
  69. data/spec/test_app/config/routes.rb +33 -0
  70. data/spec/test_app/log/.gitkeep +0 -0
  71. data/spec/test_app/public/404.html +26 -0
  72. data/spec/test_app/public/422.html +26 -0
  73. data/spec/test_app/public/500.html +25 -0
  74. data/spec/test_app/public/favicon.ico +0 -0
  75. data/spec/test_app/public/robots.txt +5 -0
  76. data/spec/test_app/script/rails +6 -0
  77. data/spec/test_app/spec/generator_helper.rb +87 -0
  78. data/spec/test_app/spec/generators/paloma_generator_spec.rb +199 -0
  79. data/spec/test_app/spec/generators/rails_generator_spec.rb +54 -0
  80. data/spec/test_app/spec/javascripts/callback_spec.rb +64 -0
  81. data/spec/test_app/spec/javascripts/filters_spec.rb +187 -0
  82. data/spec/test_app/spec/javascripts/locals_spec.rb +27 -0
  83. data/spec/test_app/spec/javascripts/params_spec.rb +116 -0
  84. data/spec/test_app/spec/javascripts/skip_filters_spec.rb +58 -0
  85. data/spec/test_app/spec/javascripts/variable_container_spec.rb +21 -0
  86. data/spec/test_app/spec/spec_helper.rb +26 -0
  87. data/vendor/assets/javascripts/paloma_core.js +294 -0
  88. metadata +79 -68
  89. data/Rakefile +0 -28
  90. data/app/templates/_callbacks.js +0 -2
  91. data/app/templates/_local.js +0 -20
  92. data/app/templates/action.js +0 -5
  93. data/app/templates/paloma.js +0 -22
  94. data/spec/callback_spec.rb +0 -81
  95. data/spec/generator_spec.rb +0 -425
  96. data/spec/sample_app/app/assets/javascripts/application.js +0 -4
  97. data/spec/sample_app/app/assets/javascripts/paloma/articles/_callbacks.js +0 -1
  98. data/spec/sample_app/app/assets/javascripts/paloma/articles/create.js +0 -3
  99. data/spec/sample_app/app/assets/javascripts/paloma/articles/edit.js +0 -3
  100. data/spec/sample_app/app/assets/javascripts/paloma/articles/index.js +0 -3
  101. data/spec/sample_app/app/assets/javascripts/paloma/articles/new.js +0 -3
  102. data/spec/sample_app/app/assets/javascripts/paloma/articles/show.js +0 -3
  103. data/spec/sample_app/app/assets/javascripts/paloma/articles/update.js +0 -3
  104. data/spec/sample_app/app/assets/javascripts/paloma/index.js +0 -3
  105. data/spec/sample_app/app/assets/javascripts/paloma/paloma.js +0 -1
  106. data/spec/sample_app/app/assets/javascripts/paloma/sample_namespace/_callbacks.js +0 -1
  107. data/spec/sample_app/app/assets/javascripts/paloma/sample_namespace/categories/_callbacks.js +0 -1
  108. data/spec/sample_app/app/assets/javascripts/paloma/sample_namespace/categories/index.js +0 -3
  109. data/spec/sample_app/app/views/articles/index.html.erb +0 -5
  110. data/spec/sample_app/app/views/articles/new.html.erb +0 -9
  111. data/spec/sample_app/app/views/articles/show.html.erb +0 -2
  112. data/spec/sample_app/app/views/sample_namespace/categories/index.html.erb +0 -5
  113. data/spec/sample_app/app/views/sample_namespace/categories/new.html.erb +0 -5
  114. data/spec/sample_app/controllers.rb +0 -68
  115. data/spec/sample_app/init.rb +0 -37
  116. data/spec/sample_app/models.rb +0 -40
  117. data/spec/spec_helper.rb +0 -21
  118. data/spec/test_app/log/development.log +0 -4
  119. data/spec/test_app/tmp/cache/assets/CF0/DA0/sprockets%2Fd7d5b37686831d37c4dd75e645f5e016 +0 -0
  120. data/spec/test_app/tmp/cache/assets/E25/4C0/sprockets%2Fde2fd9fd11c04a582cdbbe3d84a35ae6 +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paloma
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-03-25 00:00:00.000000000 Z
13
+ date: 2013-03-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: jquery-rails
@@ -60,22 +60,6 @@ dependencies:
60
60
  - - ! '>='
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
- - !ruby/object:Gem::Dependency
64
- name: sqlite3
65
- requirement: !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ! '>='
69
- - !ruby/object:Gem::Version
70
- version: '0'
71
- type: :development
72
- prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ! '>='
77
- - !ruby/object:Gem::Version
78
- version: '0'
79
63
  - !ruby/object:Gem::Dependency
80
64
  name: rspec
81
65
  requirement: !ruby/object:Gem::Requirement
@@ -140,22 +124,6 @@ dependencies:
140
124
  - - ! '>='
141
125
  - !ruby/object:Gem::Version
142
126
  version: '1.0'
143
- - !ruby/object:Gem::Dependency
144
- name: database_cleaner
145
- requirement: !ruby/object:Gem::Requirement
146
- none: false
147
- requirements:
148
- - - ! '>='
149
- - !ruby/object:Gem::Version
150
- version: '0'
151
- type: :development
152
- prerelease: false
153
- version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
- requirements:
156
- - - ! '>='
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
127
  description: Page-specific javascript for Rails done right
160
128
  email: kb.paragua@gmail.com
161
129
  executables: []
@@ -167,48 +135,91 @@ files:
167
135
  - Gemfile
168
136
  - License
169
137
  - README.md
170
- - Rakefile
171
138
  - TODO.md
172
- - app/templates/_callbacks.js
173
- - app/templates/_local.js
174
- - app/templates/action.js
139
+ - app/templates/_filters.js
140
+ - app/templates/application/_locals.js
141
+ - app/templates/controller/_locals.js
142
+ - app/templates/controller/_manifest.js
143
+ - app/templates/controller/action.js
175
144
  - app/templates/index.js
176
- - app/templates/paloma.js
145
+ - app/templates/namespace/_locals.js
146
+ - app/templates/namespace/_manifest.js
177
147
  - app/views/paloma/_callback_hook.html.erb
178
148
  - lib/paloma.rb
179
149
  - lib/paloma/action_controller_extension.rb
180
150
  - lib/paloma/action_controller_filters.rb
181
151
  - lib/paloma/generators/add_generator.rb
182
152
  - lib/paloma/generators/setup_generator.rb
153
+ - lib/paloma/rails/controller_generator.rb
154
+ - lib/paloma/rails/engine.rb
183
155
  - paloma.gemspec
184
- - spec/callback_spec.rb
185
- - spec/generator_spec.rb
186
- - spec/sample_app/app/assets/javascripts/application.js
187
- - spec/sample_app/app/assets/javascripts/paloma/articles/_callbacks.js
188
- - spec/sample_app/app/assets/javascripts/paloma/articles/create.js
189
- - spec/sample_app/app/assets/javascripts/paloma/articles/edit.js
190
- - spec/sample_app/app/assets/javascripts/paloma/articles/index.js
191
- - spec/sample_app/app/assets/javascripts/paloma/articles/new.js
192
- - spec/sample_app/app/assets/javascripts/paloma/articles/show.js
193
- - spec/sample_app/app/assets/javascripts/paloma/articles/update.js
194
- - spec/sample_app/app/assets/javascripts/paloma/index.js
195
- - spec/sample_app/app/assets/javascripts/paloma/paloma.js
196
- - spec/sample_app/app/assets/javascripts/paloma/sample_namespace/_callbacks.js
197
- - spec/sample_app/app/assets/javascripts/paloma/sample_namespace/categories/_callbacks.js
198
- - spec/sample_app/app/assets/javascripts/paloma/sample_namespace/categories/index.js
199
- - spec/sample_app/app/views/articles/index.html.erb
200
- - spec/sample_app/app/views/articles/new.html.erb
201
- - spec/sample_app/app/views/articles/show.html.erb
202
- - spec/sample_app/app/views/layouts/application.html.erb
203
- - spec/sample_app/app/views/sample_namespace/categories/index.html.erb
204
- - spec/sample_app/app/views/sample_namespace/categories/new.html.erb
205
- - spec/sample_app/controllers.rb
206
- - spec/sample_app/init.rb
207
- - spec/sample_app/models.rb
208
- - spec/spec_helper.rb
209
- - spec/test_app/log/development.log
210
- - spec/test_app/tmp/cache/assets/CF0/DA0/sprockets%2Fd7d5b37686831d37c4dd75e645f5e016
211
- - spec/test_app/tmp/cache/assets/E25/4C0/sprockets%2Fde2fd9fd11c04a582cdbbe3d84a35ae6
156
+ - spec/test_app/.gitignore
157
+ - spec/test_app/.rspec
158
+ - spec/test_app/Gemfile
159
+ - spec/test_app/README.rdoc
160
+ - spec/test_app/Rakefile
161
+ - spec/test_app/app/assets/javascripts/application.js
162
+ - spec/test_app/app/assets/javascripts/paloma/_filters.js
163
+ - spec/test_app/app/assets/javascripts/paloma/_locals.js
164
+ - spec/test_app/app/assets/javascripts/paloma/bar/_filters.js
165
+ - spec/test_app/app/assets/javascripts/paloma/bar/_locals.js
166
+ - spec/test_app/app/assets/javascripts/paloma/bar/_manifest.js
167
+ - spec/test_app/app/assets/javascripts/paloma/bar/another_basic_action.js
168
+ - spec/test_app/app/assets/javascripts/paloma/bar/basic_action.js
169
+ - spec/test_app/app/assets/javascripts/paloma/bar/different_params.js
170
+ - spec/test_app/app/assets/javascripts/paloma/bar/yet_another_basic_action.js
171
+ - spec/test_app/app/assets/javascripts/paloma/foo/_filters.js
172
+ - spec/test_app/app/assets/javascripts/paloma/foo/_locals.js
173
+ - spec/test_app/app/assets/javascripts/paloma/foo/_manifest.js
174
+ - spec/test_app/app/assets/javascripts/paloma/foo/basic_action.js
175
+ - spec/test_app/app/assets/javascripts/paloma/foo/skip_callback.js
176
+ - spec/test_app/app/assets/javascripts/paloma/index.js
177
+ - spec/test_app/app/assets/javascripts/paloma/sample_namespace/_filters.js
178
+ - spec/test_app/app/assets/javascripts/paloma/sample_namespace/_manifest.js
179
+ - spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_filters.js
180
+ - spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_locals.js
181
+ - spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_manifest.js
182
+ - spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/another_basic_action.js
183
+ - spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/basic_action.js
184
+ - spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/yet_another_basic_action.js
185
+ - spec/test_app/app/controllers/application_controller.rb
186
+ - spec/test_app/app/controllers/bar_controller.rb
187
+ - spec/test_app/app/controllers/foo_controller.rb
188
+ - spec/test_app/app/controllers/sample_namespace/baz_controller.rb
189
+ - spec/test_app/app/views/layouts/application.html.erb
190
+ - spec/test_app/config.ru
191
+ - spec/test_app/config/application.rb
192
+ - spec/test_app/config/boot.rb
193
+ - spec/test_app/config/environment.rb
194
+ - spec/test_app/config/environments/development.rb
195
+ - spec/test_app/config/environments/production.rb
196
+ - spec/test_app/config/environments/test.rb
197
+ - spec/test_app/config/initializers/backtrace_silencers.rb
198
+ - spec/test_app/config/initializers/inflections.rb
199
+ - spec/test_app/config/initializers/mime_types.rb
200
+ - spec/test_app/config/initializers/secret_token.rb
201
+ - spec/test_app/config/initializers/session_store.rb
202
+ - spec/test_app/config/initializers/wrap_parameters.rb
203
+ - spec/test_app/config/locales/en.yml
204
+ - spec/test_app/config/routes.rb
205
+ - spec/test_app/log/.gitkeep
206
+ - spec/test_app/public/404.html
207
+ - spec/test_app/public/422.html
208
+ - spec/test_app/public/500.html
209
+ - spec/test_app/public/favicon.ico
210
+ - spec/test_app/public/robots.txt
211
+ - spec/test_app/script/rails
212
+ - spec/test_app/spec/generator_helper.rb
213
+ - spec/test_app/spec/generators/paloma_generator_spec.rb
214
+ - spec/test_app/spec/generators/rails_generator_spec.rb
215
+ - spec/test_app/spec/javascripts/callback_spec.rb
216
+ - spec/test_app/spec/javascripts/filters_spec.rb
217
+ - spec/test_app/spec/javascripts/locals_spec.rb
218
+ - spec/test_app/spec/javascripts/params_spec.rb
219
+ - spec/test_app/spec/javascripts/skip_filters_spec.rb
220
+ - spec/test_app/spec/javascripts/variable_container_spec.rb
221
+ - spec/test_app/spec/spec_helper.rb
222
+ - vendor/assets/javascripts/paloma_core.js
212
223
  homepage: https://github.com/kbparagua/paloma
213
224
  licenses: []
214
225
  post_install_message:
@@ -229,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
229
240
  version: '0'
230
241
  requirements: []
231
242
  rubyforge_project:
232
- rubygems_version: 1.8.21
243
+ rubygems_version: 1.8.24
233
244
  signing_key:
234
245
  specification_version: 3
235
246
  summary: Provides an easy way to execute page-specific javascript for Rails.
data/Rakefile DELETED
@@ -1,28 +0,0 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
3
-
4
- require 'rspec/core'
5
- require 'rspec/core/rake_task'
6
-
7
- RSpec::Core::RakeTask.new(:spec) do |spec|
8
- spec.pattern = FileList['spec/*_spec.rb']
9
- end
10
-
11
-
12
- desc "Run all tests"
13
- task :test do
14
- sh "bundle exec rake spec"
15
- end
16
-
17
-
18
- desc "Run callback tests"
19
- task :test_callbacks do
20
- sh "rspec ./spec/callback_spec.rb"
21
- end
22
-
23
-
24
- desc "Run generator tests"
25
- task :test_generators do
26
- sh "rspec ./spec/generator_spec.rb"
27
- end
28
-
@@ -1,2 +0,0 @@
1
- //= require ./_local.js
2
- //= require_tree .
@@ -1,20 +0,0 @@
1
- Paloma.controller = {
2
-
3
- /*
4
- Put here code which can be used by all callbacks
5
- under the controller folder.
6
-
7
- Example:
8
-
9
- variableName: value;
10
-
11
- functionName: function(params){
12
- alert('Paloma');
13
- };
14
-
15
- To use the variable and function:
16
- Paloma.controller.variableName
17
- Paloma.controller.functionName(params);
18
- */
19
-
20
- };
@@ -1,5 +0,0 @@
1
- Paloma.callbacks['controller/action'] = function(params){
2
-
3
- // alert('Paloma');
4
-
5
- };
@@ -1,22 +0,0 @@
1
- window.Paloma = {callbacks:{}};
2
-
3
- Paloma.g = {
4
-
5
- /*
6
- Put here global code that can be used by all callbacks,
7
- regardless which folder they're from.
8
-
9
- Example:
10
-
11
- variableName: value;
12
-
13
- functionName: function(params){
14
- alert('Paloma');
15
- };
16
-
17
- To use the variable and function:
18
- Paloma.g.variableName
19
- Paloma.g.functionName(params);
20
- */
21
-
22
- };
@@ -1,81 +0,0 @@
1
- require 'spec_helper'
2
-
3
- feature 'Callbacks' do
4
-
5
- it 'should execute articles/new callback', :js => true do
6
- visit new_article_path
7
-
8
- page.has_selector?('#from-articles-new-callback').should == true
9
- end
10
-
11
-
12
- it 'should execute callbacks for articles/create and articles/show', :js => true do
13
- visit new_article_path
14
-
15
- fill_in 'article[title]', :with => 'sexy paloma'
16
- fill_in 'article[body]', :with => 'sexy paloma body'
17
- click_button 'Save'
18
-
19
- page.has_selector?('#from-articles-create-callback').should == true
20
- page.has_selector?('#from-articles-show-callback').should == true
21
- end
22
-
23
-
24
- it 'should execute "new" callback instead of "create" after failed save', :js => true do
25
- visit new_article_path
26
-
27
- fill_in 'article[body]', :with => 'sexy paloma body'
28
- click_button 'Save'
29
-
30
- page.has_selector?('#from-articles-create-callback').should == false
31
- page.has_selector?('#from-articles-new-callback').should == true
32
- end
33
-
34
-
35
- it 'should have an access on the passed parameters on js_callback', :js => true do
36
- 1.upto(30) do |i|
37
- Article.create :title => "Sexy Paloma #{i}", :body => "Sexy Body"
38
- end
39
-
40
- visit articles_path
41
- page.has_selector?('#article-count-30').should == true
42
- end
43
-
44
-
45
- it 'should not execute articles/update callback', :js => true do
46
- article = Article.create :title => "Sexy Paloma Baby!", :body => "OMG"
47
-
48
- visit edit_article_path(article)
49
- fill_in 'article[body]', :with => 'Updated Body'
50
- click_button 'Save'
51
-
52
- page.has_selector?('#from-articles-update-callback').should == false
53
- page.has_selector?('#from-articles-show-callback').should == true
54
- end
55
-
56
-
57
- it 'should execute articles/edit callback after failed update', :js => true do
58
- article = Article.create :title => 'Sexy Paloma Baby!', :body => 'Yeah'
59
-
60
- visit edit_article_path(article)
61
- fill_in 'article[title]', :with => ''
62
- click_button 'Save'
63
-
64
- page.has_selector?('#from-articles-edit-callback').should == true
65
- end
66
-
67
-
68
- it 'should execute sample_namespace/categories/index callback', :js => true do
69
- 1.upto(10).each { |i| Category.create :name => "Category #{i}" }
70
-
71
- visit sample_namespace_categories_path
72
- page.has_selector?('#from-categories-index').should == true
73
- end
74
-
75
-
76
- it 'should execute sample_namespace/categories/index callback instead of new callback', :js => true do
77
- visit new_sample_namespace_category_path
78
-
79
- page.has_selector?('#from-categories-index').should == true
80
- end
81
- end
@@ -1,425 +0,0 @@
1
- require 'spec_helper'
2
- require 'generator_spec/test_case'
3
- require 'fileutils'
4
-
5
- TEMP = "#{File.dirname(__FILE__)}/tmp/"
6
-
7
- # rails g paloma:setup
8
- feature Paloma::SetupGenerator do
9
- include GeneratorSpec::TestCase
10
- destination TEMP
11
-
12
- before do
13
- prepare_destination
14
- run_generator
15
- end
16
-
17
- specify do
18
- destination_root.should have_structure {
19
- directory Paloma.destination do
20
- file 'paloma.js'
21
- file 'index.js'
22
- end
23
- }
24
- end
25
- end
26
-
27
-
28
-
29
- def mimic_setup
30
- # Mimic SetupGenerator results before running the AddGenerator
31
- FileUtils.cd TEMP
32
- FileUtils.mkpath Paloma.destination
33
- File.open("#{Paloma.destination}/index.js", 'w') { |f| f.write('//= require ./paloma.js')}
34
- end
35
-
36
-
37
- # rails g paloma:add sexy_controller
38
- feature Paloma::AddGenerator, 'creating controller folder only' do
39
- include GeneratorSpec::TestCase
40
- destination TEMP
41
- arguments ['sexy_controller']
42
-
43
- before do
44
- prepare_destination
45
- mimic_setup
46
- run_generator
47
- end
48
-
49
- specify do
50
- destination_root.should have_structure {
51
- directory Paloma.destination do
52
- directory 'sexy_controller' do
53
- file '_callbacks.js' do
54
- contains "//= require ./_local.js"
55
- contains "//= require_tree ."
56
- end
57
-
58
- file '_local.js' do
59
- contains "Paloma.sexy_controller = {"
60
- end
61
- end
62
-
63
- file 'index.js' do
64
- contains '//= require ./sexy_controller/_callbacks.js'
65
- end
66
- end
67
- }
68
- end
69
- end
70
-
71
-
72
- # rails g paloma:add namespace/new_controller_folder
73
- feature Paloma::AddGenerator, 'creating a namespaced controller folder' do
74
- include GeneratorSpec::TestCase
75
- destination TEMP
76
- arguments ['namespace/new_controller_folder']
77
-
78
- before do
79
- prepare_destination
80
- mimic_setup
81
- run_generator
82
- end
83
-
84
- specify do
85
- destination_root.should have_structure {
86
- directory Paloma.destination do
87
- directory 'namespace' do
88
- directory 'new_controller_folder' do
89
- file '_callbacks.js' do
90
- contains '//= require ./_local.js'
91
- contains '//= require_tree .'
92
- end
93
-
94
- file '_local.js' do
95
- contains 'Paloma.namespace.new_controller_folder = {'
96
- end
97
- end
98
- file '_callbacks.js' do
99
- contains "//= require ./_local.js"
100
- contains "//= require ./new_controller_folder/_callbacks.js"
101
- end
102
-
103
- file '_local.js' do
104
- contains "Paloma.namespace = {"
105
- end
106
- end
107
- file 'index.js' do
108
- contains "//= require ./namespace/_callbacks.js"
109
- end
110
- end
111
- }
112
- end
113
- end
114
-
115
-
116
- # rails g paloma:add new_controller_folder new_action
117
- feature Paloma::AddGenerator, 'creating both controller folder and action file' do
118
- include GeneratorSpec::TestCase
119
- destination TEMP
120
- arguments ['new_controller_folder', 'new_action']
121
-
122
- before do
123
- prepare_destination
124
- mimic_setup
125
- run_generator
126
- end
127
-
128
- specify do
129
- destination_root.should have_structure {
130
- directory Paloma.destination do
131
- directory 'new_controller_folder' do
132
- file 'new_action.js' do
133
- contains "Paloma.callbacks['new_controller_folder/new_action']"
134
- end
135
-
136
- file '_callbacks.js' do
137
- contains "//= require ./_local.js"
138
- contains "//= require_tree ."
139
- end
140
-
141
- file '_local.js' do
142
- contains "Paloma.new_controller_folder = {"
143
- end
144
- end
145
-
146
- file 'index.js' do
147
- contains "//= require ./new_controller_folder/_callbacks.js"
148
- end
149
- end
150
- }
151
- end
152
- end
153
-
154
-
155
- # rails g paloma:add existing_controller_folder new_action
156
- feature Paloma::AddGenerator, 'creating action with existing controller folder' do
157
- include GeneratorSpec::TestCase
158
- destination TEMP
159
- arguments ['existing_controller_folder', 'new_action']
160
-
161
- before do
162
- prepare_destination
163
- mimic_setup
164
- Dir.mkdir "#{Paloma.destination}/existing_controller_folder"
165
-
166
- run_generator
167
- end
168
-
169
- specify do
170
- destination_root.should have_structure {
171
- directory Paloma.destination do
172
- directory 'existing_controller_folder' do
173
- file 'new_action.js' do
174
- contains "Paloma.callbacks['existing_controller_folder/new_action']"
175
- end
176
- end
177
- end
178
- }
179
- end
180
- end
181
-
182
-
183
- # rails g paloma:add namespace/new_controller_folder new_action
184
- feature Paloma::AddGenerator, 'creating namespaced controller folder and action file' do
185
- include GeneratorSpec::TestCase
186
- destination TEMP
187
- arguments ['namespace/new_controller_folder', 'new_action']
188
-
189
- before do
190
- prepare_destination
191
- mimic_setup
192
- run_generator
193
- end
194
-
195
- specify do
196
- destination_root.should have_structure {
197
- directory Paloma.destination do
198
- directory 'namespace' do
199
- directory 'new_controller_folder' do
200
- file 'new_action.js' do
201
- contains "Paloma.callbacks['namespace/new_controller_folder/new_action']"
202
- end
203
-
204
- file '_local.js' do
205
- contains 'Paloma.namespace.new_controller_folder = {'
206
- end
207
-
208
- file '_callbacks.js' do
209
- contains '//= require ./_local.js'
210
- contains '//= require_tree .'
211
- end
212
- end
213
-
214
- file '_callbacks.js' do
215
- contains "//= require ./_local.js"
216
- contains "//= require ./new_controller_folder/_callbacks.js"
217
- end
218
-
219
- file '_local.js' do
220
- contains "Paloma.namespace = {"
221
- end
222
- end
223
-
224
- file 'index.js' do
225
- contains "//= require ./namespace/_callbacks.js"
226
- end
227
- end
228
- }
229
- end
230
- end
231
-
232
-
233
- # rails g paloma:add existing_namespace/new_controller_folder new_action
234
- feature Paloma::AddGenerator, 'creating controller folder and action file under an existing namespace' do
235
- include GeneratorSpec::TestCase
236
- destination TEMP
237
- arguments ['existing_namespace/new_controller_folder', 'new_action']
238
-
239
- before do
240
- prepare_destination
241
- mimic_setup
242
- Dir.mkdir "#{Paloma.destination}/existing_namespace"
243
-
244
- run_generator
245
- end
246
-
247
- specify do
248
- destination_root.should have_structure {
249
- directory Paloma.destination do
250
- directory 'existing_namespace' do
251
- directory 'new_controller_folder' do
252
- file 'new_action.js' do
253
- contains "Paloma.callbacks['existing_namespace/new_controller_folder/new_action']"
254
- end
255
-
256
- file '_local.js' do
257
- contains 'Paloma.existing_namespace.new_controller_folder = {'
258
- end
259
- end
260
-
261
- file '_callbacks.js' do
262
- contains "//= require ./new_controller_folder/_callbacks.js"
263
- end
264
- end
265
- end
266
- }
267
- end
268
- end
269
-
270
-
271
- # rails g paloma:add new_controller_folder first_action second_action third_action
272
- feature Paloma::AddGenerator, 'create controller folder and multiple action files' do
273
- include GeneratorSpec::TestCase
274
- destination TEMP
275
- arguments ['new_controller_folder', 'first_action', 'second_action', 'third_action']
276
-
277
- before do
278
- prepare_destination
279
- mimic_setup
280
- run_generator
281
- end
282
-
283
- specify do
284
- destination_root.should have_structure {
285
- directory Paloma.destination do
286
- directory 'new_controller_folder' do
287
- file '_local.js' do
288
- contains 'Paloma.new_controller_folder = {'
289
- end
290
-
291
- file 'first_action.js' do
292
- contains "Paloma.callbacks['new_controller_folder/first_action']"
293
- end
294
-
295
- file 'second_action.js' do
296
- contains "Paloma.callbacks['new_controller_folder/second_action']"
297
- end
298
-
299
- file 'third_action.js' do
300
- contains "Paloma.callbacks['new_controller_folder/third_action']"
301
- end
302
- end
303
-
304
- file 'index.js' do
305
- contains '//= require ./new_controller_folder/_callbacks.js'
306
- end
307
- end
308
- }
309
- end
310
- end
311
-
312
-
313
- # rails g paloma:add existing_controller_folder first_action second_action third_action
314
- feature Paloma::AddGenerator, 'create multiple actions in an existing controller folder' do
315
- include GeneratorSpec::TestCase
316
- destination TEMP
317
- arguments ['existing_controller_folder', 'first_action', 'second_action', 'third_action']
318
-
319
- before do
320
- prepare_destination
321
- mimic_setup
322
- Dir.mkdir "#{Paloma.destination}/existing_controller_folder"
323
-
324
- run_generator
325
- end
326
-
327
- specify do
328
- destination_root.should have_structure {
329
- directory Paloma.destination do
330
- directory 'existing_controller_folder' do
331
- ['first', 'second', 'third'].each do |action|
332
- file ("#{action}_action.js") do
333
- contains "Paloma.callbacks['existing_controller_folder/#{action}_action']"
334
- end
335
- end
336
- end
337
- end
338
- }
339
- end
340
- end
341
-
342
-
343
- # rails g paloma:add namespace/new_controller_folder first_action second_action third_action
344
- feature Paloma::AddGenerator, 'create multiple actions in a new namespaced controller' do
345
- include GeneratorSpec::TestCase
346
- destination TEMP
347
- arguments ['namespace/new_controller_folder', 'first_action', 'second_action', 'third_action']
348
-
349
- before do
350
- prepare_destination
351
- mimic_setup
352
- run_generator
353
- end
354
-
355
- specify do
356
- destination_root.should have_structure {
357
- directory Paloma.destination do
358
- directory 'namespace' do
359
- directory 'new_controller_folder' do
360
- file '_local.js' do
361
- contains 'Paloma.namespace.new_controller_folder'
362
- end
363
-
364
- ['first', 'second', 'third'].each do |action|
365
- file ("#{action}_action.js") do
366
- contains "Paloma.callbacks['namespace/new_controller_folder/#{action}_action']"
367
- end
368
- end
369
- end
370
- file '_callbacks.js' do
371
- contains '//= require ./new_controller_folder/_callbacks.js'
372
- end
373
-
374
- file '_local.js' do
375
- contains 'Paloma.namespace'
376
- end
377
- end
378
- file 'index.js' do
379
- contains '//= require ./namespace/_callbacks.js'
380
- end
381
- end
382
- }
383
- end
384
- end
385
-
386
-
387
- # rails g paloma:add existing_namespace/new_controller_folder first_action second_action third_action
388
- feature Paloma::AddGenerator, 'create multiple actions in an existing namespaced controller' do
389
- include GeneratorSpec::TestCase
390
- destination TEMP
391
- arguments ['existing_namespace/new_controller_folder', 'first_action', 'second_action', 'third_action']
392
-
393
- before do
394
- prepare_destination
395
- mimic_setup
396
- Dir.mkdir "#{Paloma.destination}/existing_namespace"
397
- File.open("#{Paloma.destination}/existing_namespace/_callbacks.js", 'w'){ |f|
398
- f.write('//= require ./_local.js') }
399
-
400
- run_generator
401
- end
402
-
403
- specify do
404
- destination_root.should have_structure {
405
- directory Paloma.destination do
406
- directory 'existing_namespace' do
407
- directory 'new_controller_folder' do
408
- ['first', 'second', 'third'].each do |action|
409
- file ("#{action}_action.js") do
410
- contains "Paloma.callbacks['existing_namespace/new_controller_folder/#{action}_action']"
411
- end
412
- end
413
-
414
- file '_local.js' do
415
- contains 'Paloma.existing_namespace.new_controller_folder'
416
- end
417
- end
418
- file '_callbacks.js' do
419
- contains '//= require ./new_controller_folder/_callbacks.js'
420
- end
421
- end
422
- end
423
- }
424
- end
425
- end