governor_atom 0.1.0

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 (68) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +18 -0
  4. data/Gemfile.lock +129 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.rdoc +43 -0
  7. data/Rakefile +50 -0
  8. data/VERSION +1 -0
  9. data/app/views/governor/articles/index.atom.builder +21 -0
  10. data/governor_atom.gemspec +170 -0
  11. data/lib/governor_atom.rb +5 -0
  12. data/lib/governor_atom/rails.rb +6 -0
  13. data/spec/controllers/governor/articles_controller_spec.rb +35 -0
  14. data/spec/governor_atom_spec.rb +9 -0
  15. data/spec/rails_app/.gitignore +4 -0
  16. data/spec/rails_app/Gemfile +37 -0
  17. data/spec/rails_app/Gemfile.lock +92 -0
  18. data/spec/rails_app/README +256 -0
  19. data/spec/rails_app/Rakefile +7 -0
  20. data/spec/rails_app/app/controllers/application_controller.rb +3 -0
  21. data/spec/rails_app/app/controllers/home_controller.rb +2 -0
  22. data/spec/rails_app/app/helpers/application_helper.rb +2 -0
  23. data/spec/rails_app/app/helpers/home_helper.rb +2 -0
  24. data/spec/rails_app/app/models/article.rb +5 -0
  25. data/spec/rails_app/app/models/user.rb +9 -0
  26. data/spec/rails_app/app/views/home/index.html.erb +0 -0
  27. data/spec/rails_app/app/views/layouts/application.html.erb +22 -0
  28. data/spec/rails_app/config.ru +4 -0
  29. data/spec/rails_app/config/application.rb +42 -0
  30. data/spec/rails_app/config/boot.rb +14 -0
  31. data/spec/rails_app/config/database.yml +19 -0
  32. data/spec/rails_app/config/environment.rb +5 -0
  33. data/spec/rails_app/config/environments/development.rb +26 -0
  34. data/spec/rails_app/config/environments/production.rb +49 -0
  35. data/spec/rails_app/config/environments/test.rb +35 -0
  36. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  37. data/spec/rails_app/config/initializers/devise.rb +142 -0
  38. data/spec/rails_app/config/initializers/governor.rb +36 -0
  39. data/spec/rails_app/config/initializers/inflections.rb +10 -0
  40. data/spec/rails_app/config/initializers/mime_types.rb +5 -0
  41. data/spec/rails_app/config/initializers/secret_token.rb +7 -0
  42. data/spec/rails_app/config/initializers/session_store.rb +8 -0
  43. data/spec/rails_app/config/locales/devise.en.yml +39 -0
  44. data/spec/rails_app/config/locales/en.yml +5 -0
  45. data/spec/rails_app/config/routes.rb +64 -0
  46. data/spec/rails_app/db/migrate/20110329032256_devise_create_users.rb +28 -0
  47. data/spec/rails_app/db/migrate/20110330020108_governor_create_articles.rb +15 -0
  48. data/spec/rails_app/db/schema.rb +47 -0
  49. data/spec/rails_app/db/seeds.rb +7 -0
  50. data/spec/rails_app/lib/tasks/.gitkeep +0 -0
  51. data/spec/rails_app/public/404.html +26 -0
  52. data/spec/rails_app/public/422.html +26 -0
  53. data/spec/rails_app/public/500.html +26 -0
  54. data/spec/rails_app/public/favicon.ico +0 -0
  55. data/spec/rails_app/public/images/rails.png +0 -0
  56. data/spec/rails_app/public/javascripts/application.js +2 -0
  57. data/spec/rails_app/public/javascripts/controls.js +965 -0
  58. data/spec/rails_app/public/javascripts/dragdrop.js +974 -0
  59. data/spec/rails_app/public/javascripts/effects.js +1123 -0
  60. data/spec/rails_app/public/javascripts/prototype.js +6001 -0
  61. data/spec/rails_app/public/javascripts/rails.js +191 -0
  62. data/spec/rails_app/public/robots.txt +5 -0
  63. data/spec/rails_app/public/stylesheets/.gitkeep +0 -0
  64. data/spec/rails_app/script/rails +6 -0
  65. data/spec/rails_app/spec/factories.rb +12 -0
  66. data/spec/rails_app/vendor/plugins/.gitkeep +0 -0
  67. data/spec/spec_helper.rb +17 -0
  68. metadata +341 -0
@@ -0,0 +1,191 @@
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
+
176
+ Ajax.Responders.register({
177
+ onCreate: function(request) {
178
+ var csrf_meta_tag = $$('meta[name=csrf-token]')[0];
179
+
180
+ if (csrf_meta_tag) {
181
+ var header = 'X-CSRF-Token',
182
+ token = csrf_meta_tag.readAttribute('content');
183
+
184
+ if (!request.options.requestHeaders) {
185
+ request.options.requestHeaders = {};
186
+ }
187
+ request.options.requestHeaders[header] = token;
188
+ }
189
+ }
190
+ });
191
+ })();
@@ -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'
@@ -0,0 +1,12 @@
1
+ FactoryGirl.define do
2
+ factory :article do |a|
3
+ a.title "Some article"
4
+ a.post "It's about the benjis"
5
+ end
6
+
7
+ factory :user do |u|
8
+ u.email 'blago@mayor.cityofchicago.org'
9
+ u.password 'ca$hmoney'
10
+ u.password_confirmation 'ca$hmoney'
11
+ end
12
+ end
File without changes
@@ -0,0 +1,17 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+
3
+ require File.expand_path('../rails_app/config/environment.rb', __FILE__)
4
+
5
+ require 'bundler'
6
+ Bundler.setup
7
+
8
+ require 'rspec'
9
+ require 'rspec/rails'
10
+
11
+ Dir[Rails.root.join('spec/support/**/*.rb')].each {|f| require f}
12
+
13
+ ActiveRecord::Migrator.migrate File.expand_path('../rails_app/db/migrate/', __FILE__)
14
+
15
+ Rspec.configure do |config|
16
+ config.use_transactional_fixtures = true
17
+ end
metadata ADDED
@@ -0,0 +1,341 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: governor_atom
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Liam Morley
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-04-16 00:00:00 -04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ type: :runtime
23
+ prerelease: false
24
+ name: governor
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 19
31
+ segments:
32
+ - 0
33
+ - 3
34
+ - 0
35
+ version: 0.3.0
36
+ requirement: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ type: :development
39
+ prerelease: false
40
+ name: rspec-rails
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ hash: 3
47
+ segments:
48
+ - 0
49
+ version: "0"
50
+ requirement: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ type: :development
53
+ prerelease: false
54
+ name: webrat
55
+ version_requirements: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ requirement: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ type: :development
67
+ prerelease: false
68
+ name: sqlite3
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ requirement: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ type: :development
81
+ prerelease: false
82
+ name: bundler
83
+ version_requirements: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ hash: 23
89
+ segments:
90
+ - 1
91
+ - 0
92
+ - 0
93
+ version: 1.0.0
94
+ requirement: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ type: :development
97
+ prerelease: false
98
+ name: jeweler
99
+ version_requirements: &id006 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ hash: 7
105
+ segments:
106
+ - 1
107
+ - 5
108
+ - 2
109
+ version: 1.5.2
110
+ requirement: *id006
111
+ - !ruby/object:Gem::Dependency
112
+ type: :development
113
+ prerelease: false
114
+ name: rcov
115
+ version_requirements: &id007 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ hash: 3
121
+ segments:
122
+ - 0
123
+ version: "0"
124
+ requirement: *id007
125
+ - !ruby/object:Gem::Dependency
126
+ type: :development
127
+ prerelease: false
128
+ name: factory_girl
129
+ version_requirements: &id008 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ hash: 31098209
135
+ segments:
136
+ - 2
137
+ - 0
138
+ - 0
139
+ - beta
140
+ version: 2.0.0.beta
141
+ requirement: *id008
142
+ - !ruby/object:Gem::Dependency
143
+ type: :development
144
+ prerelease: false
145
+ name: factory_girl_rails
146
+ version_requirements: &id009 !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - ~>
150
+ - !ruby/object:Gem::Version
151
+ hash: 31098141
152
+ segments:
153
+ - 1
154
+ - 1
155
+ - beta
156
+ version: 1.1.beta
157
+ requirement: *id009
158
+ - !ruby/object:Gem::Dependency
159
+ type: :development
160
+ prerelease: false
161
+ name: governor_atom
162
+ version_requirements: &id010 !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ hash: 3
168
+ segments:
169
+ - 0
170
+ version: "0"
171
+ requirement: *id010
172
+ - !ruby/object:Gem::Dependency
173
+ type: :development
174
+ prerelease: false
175
+ name: devise
176
+ version_requirements: &id011 !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ hash: 3
182
+ segments:
183
+ - 0
184
+ version: "0"
185
+ requirement: *id011
186
+ - !ruby/object:Gem::Dependency
187
+ type: :development
188
+ prerelease: false
189
+ name: will_paginate
190
+ version_requirements: &id012 !ruby/object:Gem::Requirement
191
+ none: false
192
+ requirements:
193
+ - - ~>
194
+ - !ruby/object:Gem::Version
195
+ hash: 31098121
196
+ segments:
197
+ - 3
198
+ - 0
199
+ - beta
200
+ version: 3.0.beta
201
+ requirement: *id012
202
+ description: A plugin for the Rails 3-based Governor blogging system that adds an ATOM feed to a blog.
203
+ email: liam@carpeliam.com
204
+ executables: []
205
+
206
+ extensions: []
207
+
208
+ extra_rdoc_files:
209
+ - LICENSE.txt
210
+ - README.rdoc
211
+ files:
212
+ - .document
213
+ - .rspec
214
+ - Gemfile
215
+ - Gemfile.lock
216
+ - LICENSE.txt
217
+ - README.rdoc
218
+ - Rakefile
219
+ - VERSION
220
+ - app/views/governor/articles/index.atom.builder
221
+ - governor_atom.gemspec
222
+ - lib/governor_atom.rb
223
+ - lib/governor_atom/rails.rb
224
+ - spec/controllers/governor/articles_controller_spec.rb
225
+ - spec/governor_atom_spec.rb
226
+ - spec/rails_app/.gitignore
227
+ - spec/rails_app/Gemfile
228
+ - spec/rails_app/Gemfile.lock
229
+ - spec/rails_app/README
230
+ - spec/rails_app/Rakefile
231
+ - spec/rails_app/app/controllers/application_controller.rb
232
+ - spec/rails_app/app/controllers/home_controller.rb
233
+ - spec/rails_app/app/helpers/application_helper.rb
234
+ - spec/rails_app/app/helpers/home_helper.rb
235
+ - spec/rails_app/app/models/article.rb
236
+ - spec/rails_app/app/models/user.rb
237
+ - spec/rails_app/app/views/home/index.html.erb
238
+ - spec/rails_app/app/views/layouts/application.html.erb
239
+ - spec/rails_app/config.ru
240
+ - spec/rails_app/config/application.rb
241
+ - spec/rails_app/config/boot.rb
242
+ - spec/rails_app/config/database.yml
243
+ - spec/rails_app/config/environment.rb
244
+ - spec/rails_app/config/environments/development.rb
245
+ - spec/rails_app/config/environments/production.rb
246
+ - spec/rails_app/config/environments/test.rb
247
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
248
+ - spec/rails_app/config/initializers/devise.rb
249
+ - spec/rails_app/config/initializers/governor.rb
250
+ - spec/rails_app/config/initializers/inflections.rb
251
+ - spec/rails_app/config/initializers/mime_types.rb
252
+ - spec/rails_app/config/initializers/secret_token.rb
253
+ - spec/rails_app/config/initializers/session_store.rb
254
+ - spec/rails_app/config/locales/devise.en.yml
255
+ - spec/rails_app/config/locales/en.yml
256
+ - spec/rails_app/config/routes.rb
257
+ - spec/rails_app/db/migrate/20110329032256_devise_create_users.rb
258
+ - spec/rails_app/db/migrate/20110330020108_governor_create_articles.rb
259
+ - spec/rails_app/db/schema.rb
260
+ - spec/rails_app/db/seeds.rb
261
+ - spec/rails_app/lib/tasks/.gitkeep
262
+ - spec/rails_app/public/404.html
263
+ - spec/rails_app/public/422.html
264
+ - spec/rails_app/public/500.html
265
+ - spec/rails_app/public/favicon.ico
266
+ - spec/rails_app/public/images/rails.png
267
+ - spec/rails_app/public/javascripts/application.js
268
+ - spec/rails_app/public/javascripts/controls.js
269
+ - spec/rails_app/public/javascripts/dragdrop.js
270
+ - spec/rails_app/public/javascripts/effects.js
271
+ - spec/rails_app/public/javascripts/prototype.js
272
+ - spec/rails_app/public/javascripts/rails.js
273
+ - spec/rails_app/public/robots.txt
274
+ - spec/rails_app/public/stylesheets/.gitkeep
275
+ - spec/rails_app/script/rails
276
+ - spec/rails_app/spec/factories.rb
277
+ - spec/rails_app/vendor/plugins/.gitkeep
278
+ - spec/spec_helper.rb
279
+ has_rdoc: true
280
+ homepage: http://github.com/carpeliam/governor_atom
281
+ licenses:
282
+ - MIT
283
+ post_install_message:
284
+ rdoc_options: []
285
+
286
+ require_paths:
287
+ - lib
288
+ required_ruby_version: !ruby/object:Gem::Requirement
289
+ none: false
290
+ requirements:
291
+ - - ">="
292
+ - !ruby/object:Gem::Version
293
+ hash: 3
294
+ segments:
295
+ - 0
296
+ version: "0"
297
+ required_rubygems_version: !ruby/object:Gem::Requirement
298
+ none: false
299
+ requirements:
300
+ - - ">="
301
+ - !ruby/object:Gem::Version
302
+ hash: 3
303
+ segments:
304
+ - 0
305
+ version: "0"
306
+ requirements: []
307
+
308
+ rubyforge_project:
309
+ rubygems_version: 1.3.7
310
+ signing_key:
311
+ specification_version: 3
312
+ summary: ATOM feed plugin for the Rails 3-based Governor blogging system.
313
+ test_files:
314
+ - spec/controllers/governor/articles_controller_spec.rb
315
+ - spec/governor_atom_spec.rb
316
+ - spec/rails_app/app/controllers/application_controller.rb
317
+ - spec/rails_app/app/controllers/home_controller.rb
318
+ - spec/rails_app/app/helpers/application_helper.rb
319
+ - spec/rails_app/app/helpers/home_helper.rb
320
+ - spec/rails_app/app/models/article.rb
321
+ - spec/rails_app/app/models/user.rb
322
+ - spec/rails_app/config/application.rb
323
+ - spec/rails_app/config/boot.rb
324
+ - spec/rails_app/config/environment.rb
325
+ - spec/rails_app/config/environments/development.rb
326
+ - spec/rails_app/config/environments/production.rb
327
+ - spec/rails_app/config/environments/test.rb
328
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
329
+ - spec/rails_app/config/initializers/devise.rb
330
+ - spec/rails_app/config/initializers/governor.rb
331
+ - spec/rails_app/config/initializers/inflections.rb
332
+ - spec/rails_app/config/initializers/mime_types.rb
333
+ - spec/rails_app/config/initializers/secret_token.rb
334
+ - spec/rails_app/config/initializers/session_store.rb
335
+ - spec/rails_app/config/routes.rb
336
+ - spec/rails_app/db/migrate/20110329032256_devise_create_users.rb
337
+ - spec/rails_app/db/migrate/20110330020108_governor_create_articles.rb
338
+ - spec/rails_app/db/schema.rb
339
+ - spec/rails_app/db/seeds.rb
340
+ - spec/rails_app/spec/factories.rb
341
+ - spec/spec_helper.rb