homura 0.0.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 (55) hide show
  1. data/.gitignore +17 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +4 -0
  4. data/Guardfile +19 -0
  5. data/LICENSE +22 -0
  6. data/README.md +51 -0
  7. data/Rakefile +2 -0
  8. data/app/helpers/homura/layout_helper.rb +101 -0
  9. data/app/views/layouts/homura.html.slim +15 -0
  10. data/homura.gemspec +26 -0
  11. data/lib/generators/homura/install/USAGE +9 -0
  12. data/lib/generators/homura/install/install_generator.rb +14 -0
  13. data/lib/generators/homura/install/templates/application.html.slim +15 -0
  14. data/lib/generators/homura/install/templates/application.html.slim.bak +15 -0
  15. data/lib/generators/homura/install/templates/layout.en.yml +5 -0
  16. data/lib/homura/engine.rb +9 -0
  17. data/lib/homura/set_locale.rb +32 -0
  18. data/lib/homura/version.rb +3 -0
  19. data/lib/homura.rb +7 -0
  20. data/spec/dummy/.gitignore +2 -0
  21. data/spec/dummy/Rakefile +7 -0
  22. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  23. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  24. data/spec/dummy/app/views/layouts/application.html.slim +15 -0
  25. data/spec/dummy/config/application.rb +44 -0
  26. data/spec/dummy/config/boot.rb +10 -0
  27. data/spec/dummy/config/database.yml +22 -0
  28. data/spec/dummy/config/environment.rb +5 -0
  29. data/spec/dummy/config/environments/development.rb +26 -0
  30. data/spec/dummy/config/environments/production.rb +49 -0
  31. data/spec/dummy/config/environments/test.rb +35 -0
  32. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  33. data/spec/dummy/config/initializers/inflections.rb +10 -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/locales/en.yml +5 -0
  38. data/spec/dummy/config/routes.rb +58 -0
  39. data/spec/dummy/config.ru +4 -0
  40. data/spec/dummy/public/404.html +26 -0
  41. data/spec/dummy/public/422.html +26 -0
  42. data/spec/dummy/public/500.html +26 -0
  43. data/spec/dummy/public/favicon.ico +0 -0
  44. data/spec/dummy/public/javascripts/application.js +2 -0
  45. data/spec/dummy/public/javascripts/controls.js +965 -0
  46. data/spec/dummy/public/javascripts/dragdrop.js +974 -0
  47. data/spec/dummy/public/javascripts/effects.js +1123 -0
  48. data/spec/dummy/public/javascripts/prototype.js +6001 -0
  49. data/spec/dummy/public/javascripts/rails.js +202 -0
  50. data/spec/dummy/public/stylesheets/.gitkeep +0 -0
  51. data/spec/dummy/script/rails +6 -0
  52. data/spec/helpers/homura/layout_helper_spec.rb +78 -0
  53. data/spec/spec_helper.rb +34 -0
  54. data/spec/views/layouts/homura.html.slim_spec.rb +23 -0
  55. metadata +252 -0
@@ -0,0 +1,202 @@
1
+ (function() {
2
+ Ajax.Responders.register({
3
+ onCreate: function(request) {
4
+ var token = $$('meta[name=csrf-token]')[0];
5
+ if (token) {
6
+ if (!request.options.requestHeaders) request.options.requestHeaders = {};
7
+ request.options.requestHeaders['X-CSRF-Token'] = token.readAttribute('content');
8
+ }
9
+ }
10
+ });
11
+
12
+ // Technique from Juriy Zaytsev
13
+ // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
14
+ function isEventSupported(eventName) {
15
+ var el = document.createElement('div');
16
+ eventName = 'on' + eventName;
17
+ var isSupported = (eventName in el);
18
+ if (!isSupported) {
19
+ el.setAttribute(eventName, 'return;');
20
+ isSupported = typeof el[eventName] == 'function';
21
+ }
22
+ el = null;
23
+ return isSupported;
24
+ }
25
+
26
+ function isForm(element) {
27
+ return Object.isElement(element) && element.nodeName.toUpperCase() == 'FORM';
28
+ }
29
+
30
+ function isInput(element) {
31
+ if (Object.isElement(element)) {
32
+ var name = element.nodeName.toUpperCase();
33
+ return name == 'INPUT' || name == 'SELECT' || name == 'TEXTAREA';
34
+ }
35
+ else return false;
36
+ }
37
+
38
+ var submitBubbles = isEventSupported('submit'),
39
+ changeBubbles = isEventSupported('change');
40
+
41
+ if (!submitBubbles || !changeBubbles) {
42
+ // augment the Event.Handler class to observe custom events when needed
43
+ Event.Handler.prototype.initialize = Event.Handler.prototype.initialize.wrap(
44
+ function(init, element, eventName, selector, callback) {
45
+ init(element, eventName, selector, callback);
46
+ // is the handler being attached to an element that doesn't support this event?
47
+ if ( (!submitBubbles && this.eventName == 'submit' && !isForm(this.element)) ||
48
+ (!changeBubbles && this.eventName == 'change' && !isInput(this.element)) ) {
49
+ // "submit" => "emulated:submit"
50
+ this.eventName = 'emulated:' + this.eventName;
51
+ }
52
+ }
53
+ );
54
+ }
55
+
56
+ if (!submitBubbles) {
57
+ // discover forms on the page by observing focus events which always bubble
58
+ document.on('focusin', 'form', function(focusEvent, form) {
59
+ // special handler for the real "submit" event (one-time operation)
60
+ if (!form.retrieve('emulated:submit')) {
61
+ form.on('submit', function(submitEvent) {
62
+ var emulated = form.fire('emulated:submit', submitEvent, true);
63
+ // if custom event received preventDefault, cancel the real one too
64
+ if (emulated.returnValue === false) submitEvent.preventDefault();
65
+ });
66
+ form.store('emulated:submit', true);
67
+ }
68
+ });
69
+ }
70
+
71
+ if (!changeBubbles) {
72
+ // discover form inputs on the page
73
+ document.on('focusin', 'input, select, textarea', function(focusEvent, input) {
74
+ // special handler for real "change" events
75
+ if (!input.retrieve('emulated:change')) {
76
+ input.on('change', function(changeEvent) {
77
+ input.fire('emulated:change', changeEvent, true);
78
+ });
79
+ input.store('emulated:change', true);
80
+ }
81
+ });
82
+ }
83
+
84
+ function handleRemote(element) {
85
+ var method, url, params;
86
+
87
+ var event = element.fire("ajax:before");
88
+ if (event.stopped) return false;
89
+
90
+ if (element.tagName.toLowerCase() === 'form') {
91
+ method = element.readAttribute('method') || 'post';
92
+ url = element.readAttribute('action');
93
+ // serialize the form with respect to the submit button that was pressed
94
+ params = element.serialize({ submit: element.retrieve('rails:submit-button') });
95
+ // clear the pressed submit button information
96
+ element.store('rails:submit-button', null);
97
+ } else {
98
+ method = element.readAttribute('data-method') || 'get';
99
+ url = element.readAttribute('href');
100
+ params = {};
101
+ }
102
+
103
+ new Ajax.Request(url, {
104
+ method: method,
105
+ parameters: params,
106
+ evalScripts: true,
107
+
108
+ onCreate: function(response) { element.fire("ajax:create", response); },
109
+ onComplete: function(response) { element.fire("ajax:complete", response); },
110
+ onSuccess: function(response) { element.fire("ajax:success", response); },
111
+ onFailure: function(response) { element.fire("ajax:failure", response); }
112
+ });
113
+
114
+ element.fire("ajax:after");
115
+ }
116
+
117
+ function insertHiddenField(form, name, value) {
118
+ form.insert(new Element('input', { type: 'hidden', name: name, value: value }));
119
+ }
120
+
121
+ function handleMethod(element) {
122
+ var method = element.readAttribute('data-method'),
123
+ url = element.readAttribute('href'),
124
+ csrf_param = $$('meta[name=csrf-param]')[0],
125
+ csrf_token = $$('meta[name=csrf-token]')[0];
126
+
127
+ var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
128
+ $(element.parentNode).insert(form);
129
+
130
+ if (method !== 'post') {
131
+ insertHiddenField(form, '_method', method);
132
+ }
133
+
134
+ if (csrf_param) {
135
+ insertHiddenField(form, csrf_param.readAttribute('content'), csrf_token.readAttribute('content'));
136
+ }
137
+
138
+ form.submit();
139
+ }
140
+
141
+ function disableFormElements(form) {
142
+ form.select('input[type=submit][data-disable-with]').each(function(input) {
143
+ input.store('rails:original-value', input.getValue());
144
+ input.setValue(input.readAttribute('data-disable-with')).disable();
145
+ });
146
+ }
147
+
148
+ function enableFormElements(form) {
149
+ form.select('input[type=submit][data-disable-with]').each(function(input) {
150
+ input.setValue(input.retrieve('rails:original-value')).enable();
151
+ });
152
+ }
153
+
154
+ function allowAction(element) {
155
+ var message = element.readAttribute('data-confirm');
156
+ return !message || confirm(message);
157
+ }
158
+
159
+ document.on('click', 'a[data-confirm], a[data-remote], a[data-method]', function(event, link) {
160
+ if (!allowAction(link)) {
161
+ event.stop();
162
+ return false;
163
+ }
164
+
165
+ if (link.readAttribute('data-remote')) {
166
+ handleRemote(link);
167
+ event.stop();
168
+ } else if (link.readAttribute('data-method')) {
169
+ handleMethod(link);
170
+ event.stop();
171
+ }
172
+ });
173
+
174
+ document.on("click", "form input[type=submit], form button[type=submit], form button:not([type])", function(event, button) {
175
+ // register the pressed submit button
176
+ event.findElement('form').store('rails:submit-button', button.name || false);
177
+ });
178
+
179
+ document.on("submit", function(event) {
180
+ var form = event.findElement();
181
+
182
+ if (!allowAction(form)) {
183
+ event.stop();
184
+ return false;
185
+ }
186
+
187
+ if (form.readAttribute('data-remote')) {
188
+ handleRemote(form);
189
+ event.stop();
190
+ } else {
191
+ disableFormElements(form);
192
+ }
193
+ });
194
+
195
+ document.on('ajax:create', 'form', function(event, form) {
196
+ if (form == event.findElement()) disableFormElements(form);
197
+ });
198
+
199
+ document.on('ajax:complete', 'form', function(event, form) {
200
+ if (form == event.findElement()) enableFormElements(form);
201
+ });
202
+ })();
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'
@@ -0,0 +1,78 @@
1
+ require 'spec_helper'
2
+
3
+ describe Homura::LayoutHelper do
4
+ describe '#controller_action_full_name' do
5
+ it 'should be "controller#action"' do
6
+ controller.params[:controller] = 'controller'
7
+ controller.params[:action] = 'action'
8
+ helper.controller_action_full_name.should == 'controller#action'
9
+ end
10
+ end
11
+
12
+ describe '#page_classes' do
13
+ it 'should be "controller action"' do
14
+ controller.params[:controller] = 'controller'
15
+ controller.params[:action] = 'action'
16
+ helper.page_classes.should == 'controller action'
17
+ end
18
+
19
+ context 'when nesting' do
20
+ it 'should be "namespace_controller action"' do
21
+ controller.params[:controller] = 'namespace/controller'
22
+ controller.params[:action] = 'action'
23
+ helper.page_classes.should == 'namespace_controller action'
24
+ end
25
+ end
26
+ end
27
+
28
+ describe '#page_title' do
29
+ it 'should default to nil' do
30
+ helper.page_title.should be_nil
31
+ end
32
+
33
+ it 'should access page title' do
34
+ helper.page_title 'title'
35
+ helper.page_title.should == 'title'
36
+ end
37
+ end
38
+
39
+ describe '#page_description' do
40
+ it 'should default to nil' do
41
+ helper.page_description.should be_nil
42
+ end
43
+
44
+ it 'should access page description' do
45
+ helper.page_description 'description'
46
+ helper.page_description.should == 'description'
47
+ end
48
+ end
49
+
50
+ describe '#canonical_link' do
51
+ it 'should default to nil' do
52
+ helper.canonical_link.should be_nil
53
+ end
54
+
55
+ it 'should access canonical link' do
56
+ helper.canonical_link 'http://example.com'
57
+ helper.canonical_link.should == 'http://example.com'
58
+ end
59
+
60
+ it 'should raise error if not a url' do
61
+ -> {
62
+ helper.canonical_link 'not a url'
63
+ }.should raise_error
64
+ end
65
+ end
66
+
67
+ describe '#og_properties' do
68
+ it 'should default to hash that contains site name' do
69
+ helper.stub(:t).with('homura.layout.site_name').and_return('site name')
70
+ helper.og_properties.should == {:site_name => 'site name'}
71
+ end
72
+
73
+ it 'should access og_properties' do
74
+ helper.og_properties type: 'website'
75
+ helper.og_properties[:type].should == 'website'
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,34 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require 'dummy/config/environment'
4
+ require 'rspec/rails'
5
+ require 'rspec/autorun'
6
+ require 'capybara/rspec'
7
+ require 'slim-rails'
8
+
9
+ # Requires supporting ruby files with custom matchers and macros, etc,
10
+ # in spec/support/ and its subdirectories.
11
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
12
+
13
+ RSpec.configure do |config|
14
+ # ## Mock Framework
15
+ #
16
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
17
+ #
18
+ # config.mock_with :mocha
19
+ # config.mock_with :flexmock
20
+ # config.mock_with :rr
21
+
22
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
23
+ #config.fixture_path = "#{::Rails.root}/spec/fixtures"
24
+
25
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
26
+ # examples within a transaction, remove the following line or assign false
27
+ # instead of true.
28
+ #config.use_transactional_fixtures = true
29
+
30
+ # If true, the base class of anonymous controllers will be inferred
31
+ # automatically. This will be the default behavior in future versions of
32
+ # rspec-rails.
33
+ config.infer_base_class_for_anonymous_controllers = false
34
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'layouts/homura' do
4
+ it 'should have title' do
5
+ view.should_receive(:page_title_tag)
6
+ render
7
+ end
8
+
9
+ it 'should have description' do
10
+ view.should_receive(:page_description_tag)
11
+ render
12
+ end
13
+
14
+ it 'should have canonical link' do
15
+ view.should_receive(:canonical_link_tag)
16
+ render
17
+ end
18
+
19
+ it 'should have og properties' do
20
+ view.should_receive(:og_properties_tags)
21
+ render
22
+ end
23
+ end
metadata ADDED
@@ -0,0 +1,252 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: homura
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - ayaya
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: slim-rails
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '2'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '2'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec-rails
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '2'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '2'
78
+ - !ruby/object:Gem::Dependency
79
+ name: guard-rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: capybara
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: sqlite3
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ description: Homura is a simple layout generator and helpers for rails
127
+ email:
128
+ - ayaya@ayaya.tw
129
+ executables: []
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - .gitignore
134
+ - .rspec
135
+ - Gemfile
136
+ - Guardfile
137
+ - LICENSE
138
+ - README.md
139
+ - Rakefile
140
+ - app/helpers/homura/layout_helper.rb
141
+ - app/views/layouts/homura.html.slim
142
+ - homura.gemspec
143
+ - lib/generators/homura/install/USAGE
144
+ - lib/generators/homura/install/install_generator.rb
145
+ - lib/generators/homura/install/templates/application.html.slim
146
+ - lib/generators/homura/install/templates/application.html.slim.bak
147
+ - lib/generators/homura/install/templates/layout.en.yml
148
+ - lib/homura.rb
149
+ - lib/homura/engine.rb
150
+ - lib/homura/set_locale.rb
151
+ - lib/homura/version.rb
152
+ - spec/dummy/.gitignore
153
+ - spec/dummy/Rakefile
154
+ - spec/dummy/app/controllers/application_controller.rb
155
+ - spec/dummy/app/helpers/application_helper.rb
156
+ - spec/dummy/app/views/layouts/application.html.slim
157
+ - spec/dummy/config.ru
158
+ - spec/dummy/config/application.rb
159
+ - spec/dummy/config/boot.rb
160
+ - spec/dummy/config/database.yml
161
+ - spec/dummy/config/environment.rb
162
+ - spec/dummy/config/environments/development.rb
163
+ - spec/dummy/config/environments/production.rb
164
+ - spec/dummy/config/environments/test.rb
165
+ - spec/dummy/config/initializers/backtrace_silencers.rb
166
+ - spec/dummy/config/initializers/inflections.rb
167
+ - spec/dummy/config/initializers/mime_types.rb
168
+ - spec/dummy/config/initializers/secret_token.rb
169
+ - spec/dummy/config/initializers/session_store.rb
170
+ - spec/dummy/config/locales/en.yml
171
+ - spec/dummy/config/routes.rb
172
+ - spec/dummy/public/404.html
173
+ - spec/dummy/public/422.html
174
+ - spec/dummy/public/500.html
175
+ - spec/dummy/public/favicon.ico
176
+ - spec/dummy/public/javascripts/application.js
177
+ - spec/dummy/public/javascripts/controls.js
178
+ - spec/dummy/public/javascripts/dragdrop.js
179
+ - spec/dummy/public/javascripts/effects.js
180
+ - spec/dummy/public/javascripts/prototype.js
181
+ - spec/dummy/public/javascripts/rails.js
182
+ - spec/dummy/public/stylesheets/.gitkeep
183
+ - spec/dummy/script/rails
184
+ - spec/helpers/homura/layout_helper_spec.rb
185
+ - spec/spec_helper.rb
186
+ - spec/views/layouts/homura.html.slim_spec.rb
187
+ homepage: https://github.com/ayamomiji/homura
188
+ licenses: []
189
+ post_install_message:
190
+ rdoc_options: []
191
+ require_paths:
192
+ - lib
193
+ required_ruby_version: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ segments:
200
+ - 0
201
+ hash: 1433169692036508751
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ! '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ segments:
209
+ - 0
210
+ hash: 1433169692036508751
211
+ requirements: []
212
+ rubyforge_project:
213
+ rubygems_version: 1.8.23
214
+ signing_key:
215
+ specification_version: 3
216
+ summary: Homura is a simple layout generator and helpers for rails
217
+ test_files:
218
+ - spec/dummy/.gitignore
219
+ - spec/dummy/Rakefile
220
+ - spec/dummy/app/controllers/application_controller.rb
221
+ - spec/dummy/app/helpers/application_helper.rb
222
+ - spec/dummy/app/views/layouts/application.html.slim
223
+ - spec/dummy/config.ru
224
+ - spec/dummy/config/application.rb
225
+ - spec/dummy/config/boot.rb
226
+ - spec/dummy/config/database.yml
227
+ - spec/dummy/config/environment.rb
228
+ - spec/dummy/config/environments/development.rb
229
+ - spec/dummy/config/environments/production.rb
230
+ - spec/dummy/config/environments/test.rb
231
+ - spec/dummy/config/initializers/backtrace_silencers.rb
232
+ - spec/dummy/config/initializers/inflections.rb
233
+ - spec/dummy/config/initializers/mime_types.rb
234
+ - spec/dummy/config/initializers/secret_token.rb
235
+ - spec/dummy/config/initializers/session_store.rb
236
+ - spec/dummy/config/locales/en.yml
237
+ - spec/dummy/config/routes.rb
238
+ - spec/dummy/public/404.html
239
+ - spec/dummy/public/422.html
240
+ - spec/dummy/public/500.html
241
+ - spec/dummy/public/favicon.ico
242
+ - spec/dummy/public/javascripts/application.js
243
+ - spec/dummy/public/javascripts/controls.js
244
+ - spec/dummy/public/javascripts/dragdrop.js
245
+ - spec/dummy/public/javascripts/effects.js
246
+ - spec/dummy/public/javascripts/prototype.js
247
+ - spec/dummy/public/javascripts/rails.js
248
+ - spec/dummy/public/stylesheets/.gitkeep
249
+ - spec/dummy/script/rails
250
+ - spec/helpers/homura/layout_helper_spec.rb
251
+ - spec/spec_helper.rb
252
+ - spec/views/layouts/homura.html.slim_spec.rb