tandem 0.2.0.rc

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +205 -0
  3. data/Rakefile +31 -0
  4. data/app/assets/images/tandem/blank_image.jpg +0 -0
  5. data/app/assets/images/tandem/colorbox/border1.png +0 -0
  6. data/app/assets/images/tandem/colorbox/border2.png +0 -0
  7. data/app/assets/images/tandem/colorbox/ie6/borderBottomCenter.png +0 -0
  8. data/app/assets/images/tandem/colorbox/ie6/borderBottomLeft.png +0 -0
  9. data/app/assets/images/tandem/colorbox/ie6/borderBottomRight.png +0 -0
  10. data/app/assets/images/tandem/colorbox/ie6/borderMiddleLeft.png +0 -0
  11. data/app/assets/images/tandem/colorbox/ie6/borderMiddleRight.png +0 -0
  12. data/app/assets/images/tandem/colorbox/ie6/borderTopCenter.png +0 -0
  13. data/app/assets/images/tandem/colorbox/ie6/borderTopLeft.png +0 -0
  14. data/app/assets/images/tandem/colorbox/ie6/borderTopRight.png +0 -0
  15. data/app/assets/images/tandem/colorbox/loading.gif +0 -0
  16. data/app/assets/images/tandem/ic-delete_image.png +0 -0
  17. data/app/assets/images/tandem/ic-star.png +0 -0
  18. data/app/assets/images/tandem/loader.gif +0 -0
  19. data/app/assets/images/tandem/loader_stripe.png +0 -0
  20. data/app/assets/images/tandem/tandem-editImage2.jpg +0 -0
  21. data/app/assets/images/tandem/tandem_logo.png +0 -0
  22. data/app/assets/images/tandem/tandem_logo_nav.png +0 -0
  23. data/app/assets/javascripts/tandem/contents.js +2 -0
  24. data/app/assets/javascripts/tandem/current_image.jst.eco +19 -0
  25. data/app/assets/javascripts/tandem/gallery_image.jst.eco +10 -0
  26. data/app/assets/javascripts/tandem/images.coffee +42 -0
  27. data/app/assets/javascripts/tandem/pages.js.coffee +32 -0
  28. data/app/assets/javascripts/tandem/popup.js +23 -0
  29. data/app/assets/javascripts/tandem.js +16 -0
  30. data/app/assets/stylesheets/tandem/colorbox.css.erb +83 -0
  31. data/app/assets/stylesheets/tandem/contents.scss +541 -0
  32. data/app/assets/stylesheets/tandem/scaffold.scss +61 -0
  33. data/app/assets/stylesheets/tandem/variables.scss +38 -0
  34. data/app/assets/stylesheets/tandem.css +7 -0
  35. data/app/controllers/tandem/application_controller.rb +19 -0
  36. data/app/controllers/tandem/contents_controller.rb +94 -0
  37. data/app/controllers/tandem/images_controller.rb +92 -0
  38. data/app/controllers/tandem/pages_controller.rb +108 -0
  39. data/app/helpers/tandem/application_helper.rb +29 -0
  40. data/app/helpers/tandem/contents_helper.rb +19 -0
  41. data/app/helpers/tandem/images_helper.rb +10 -0
  42. data/app/helpers/tandem/pages_helper.rb +243 -0
  43. data/app/models/tandem/ability.rb +6 -0
  44. data/app/models/tandem/content/image.rb +7 -0
  45. data/app/models/tandem/content/text.rb +7 -0
  46. data/app/models/tandem/content.rb +41 -0
  47. data/app/models/tandem/image.rb +27 -0
  48. data/app/models/tandem/page.rb +41 -0
  49. data/app/views/layouts/tandem/image.html.slim +19 -0
  50. data/app/views/layouts/tandem/popup.html.slim +17 -0
  51. data/app/views/tandem/contents/_form.html.slim +36 -0
  52. data/app/views/tandem/contents/edit.html.slim +3 -0
  53. data/app/views/tandem/contents/index.html.slim +29 -0
  54. data/app/views/tandem/contents/new.html.slim +3 -0
  55. data/app/views/tandem/contents/show.html.slim +20 -0
  56. data/app/views/tandem/images/_form.html.slim +24 -0
  57. data/app/views/tandem/images/_gallery.html.slim +4 -0
  58. data/app/views/tandem/images/edit.html.slim +8 -0
  59. data/app/views/tandem/images/index.html.slim +9 -0
  60. data/app/views/tandem/images/new.html.slim +4 -0
  61. data/app/views/tandem/images/show.html.slim +10 -0
  62. data/app/views/tandem/images/thumb.html.slim +1 -0
  63. data/app/views/tandem/pages/_form.html.slim +56 -0
  64. data/app/views/tandem/pages/edit.html.slim +1 -0
  65. data/app/views/tandem/pages/index.html.slim +35 -0
  66. data/app/views/tandem/pages/new.html.slim +1 -0
  67. data/app/views/tandem/pages/show.html.slim +16 -0
  68. data/config/cucumber.yml +8 -0
  69. data/config/routes.rb +17 -0
  70. data/db/migrate/20111122221549_create_tandem_pages.rb +20 -0
  71. data/db/migrate/20111122222037_create_tandem_contents.rb +21 -0
  72. data/db/migrate/20111215001943_create_tandem_images.rb +12 -0
  73. data/db/migrate/30000000000000_create_default_page.rb +10 -0
  74. data/db/migrate/30000000000001_add_request_key_to_tandem_contents.rb +44 -0
  75. data/lib/generators/tandem_generator.rb +26 -0
  76. data/lib/generators/templates/initializer.rb +70 -0
  77. data/lib/tandem/engine.rb +23 -0
  78. data/lib/tandem/version.rb +3 -0
  79. data/lib/tandem.rb +46 -0
  80. data/lib/tasks/cucumber.rake +65 -0
  81. data/lib/tasks/tandem_tasks.rake +4 -0
  82. metadata +354 -0
data/lib/tandem.rb ADDED
@@ -0,0 +1,46 @@
1
+ require "tandem/engine"
2
+ require "cancan"
3
+ require "slim-rails"
4
+ require "paperclip"
5
+ require "eco"
6
+
7
+ module Tandem
8
+ module Configuration
9
+ mattr_accessor :unauthorized_path, :layouts_dir, :uploaded_images_dir, :uploaded_images_template, :paperclip_options
10
+
11
+ self.unauthorized_path = nil
12
+ self.layouts_dir = "tandem"
13
+ self.uploaded_images_dir = ":rails_root/public"
14
+ self.uploaded_images_template = "/assets/images/:id/:style/:basename.:extension"
15
+ self.paperclip_options = { :styles => { :thumb => "150x150>" },
16
+ :url => Tandem::Configuration.uploaded_images_template,
17
+ :path => Tandem::Configuration.uploaded_images_dir + Tandem::Configuration.uploaded_images_template }
18
+
19
+ def self.current_user_proc(&block)
20
+ @@current_user = block
21
+ end
22
+
23
+ def self.user_abilities_proc(&block)
24
+ @@user_abilities = block
25
+ end
26
+
27
+ def self.current_user
28
+ raise(ConfigurationNotFound.new("Tandem::Configuration.current_user { ... }")) unless @@current_user
29
+ @@current_user
30
+ end
31
+
32
+ def self.user_abilities
33
+ raise(ConfigurationNotFound.new("Tandem::Configuration.user_abilities { |user| ... }")) unless @@user_abilities
34
+ @@user_abilities
35
+ end
36
+ end
37
+
38
+ class ConfigurationNotFound < StandardError
39
+ attr_accessor :message
40
+ def initialize(option)
41
+ @message = "Tandem configuration option not found. " +
42
+ "Please complete this in config/initializers/tandem.rb with this line:\n\n" +
43
+ "#{option}"
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,65 @@
1
+ # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
+ # It is recommended to regenerate this file in the future when you upgrade to a
3
+ # newer version of cucumber-rails. Consider adding your own code to a new file
4
+ # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
+ # files.
6
+
7
+
8
+ unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
9
+
10
+ vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
11
+ $LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
12
+
13
+ begin
14
+ require 'cucumber/rake/task'
15
+
16
+ namespace :cucumber do
17
+ Cucumber::Rake::Task.new({:ok => 'db:test:prepare'}, 'Run features that should pass') do |t|
18
+ t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
19
+ t.fork = true # You may get faster startup if you set this to false
20
+ t.profile = 'default'
21
+ end
22
+
23
+ Cucumber::Rake::Task.new({:wip => 'db:test:prepare'}, 'Run features that are being worked on') do |t|
24
+ t.binary = vendored_cucumber_bin
25
+ t.fork = true # You may get faster startup if you set this to false
26
+ t.profile = 'wip'
27
+ end
28
+
29
+ Cucumber::Rake::Task.new({:rerun => 'db:test:prepare'}, 'Record failing features and run only them if any exist') do |t|
30
+ t.binary = vendored_cucumber_bin
31
+ t.fork = true # You may get faster startup if you set this to false
32
+ t.profile = 'rerun'
33
+ end
34
+
35
+ desc 'Run all features'
36
+ task :all => [:ok, :wip]
37
+
38
+ task :statsetup do
39
+ require 'rails/code_statistics'
40
+ ::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features')
41
+ ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features')
42
+ end
43
+ end
44
+ desc 'Alias for cucumber:ok'
45
+ task :cucumber => 'cucumber:ok'
46
+
47
+ task :default => :cucumber
48
+
49
+ task :features => :cucumber do
50
+ STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
51
+ end
52
+
53
+ # In case we don't have ActiveRecord, append a no-op task that we can depend upon.
54
+ task 'db:test:prepare' do
55
+ end
56
+
57
+ task :stats => 'cucumber:statsetup'
58
+ rescue LoadError
59
+ desc 'cucumber rake task not available (cucumber not installed)'
60
+ task :cucumber do
61
+ abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :tandem do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,354 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tandem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0.rc
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - 12 Spokes
9
+ - Trey Bean
10
+ - Colleen Palmer
11
+ - Jay Crouch
12
+ - Ethan Vizitei
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+ date: 2012-04-19 00:00:00.000000000 Z
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: rails
20
+ requirement: !ruby/object:Gem::Requirement
21
+ none: false
22
+ requirements:
23
+ - - ! '>='
24
+ - !ruby/object:Gem::Version
25
+ version: 3.1.0
26
+ type: :runtime
27
+ prerelease: false
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.1.0
34
+ - !ruby/object:Gem::Dependency
35
+ name: cancan
36
+ requirement: !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ - !ruby/object:Gem::Dependency
51
+ name: slim-rails
52
+ requirement: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ type: :runtime
59
+ prerelease: false
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ - !ruby/object:Gem::Dependency
67
+ name: paperclip
68
+ requirement: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: eco
84
+ requirement: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rspec-rails
100
+ requirement: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ - !ruby/object:Gem::Dependency
115
+ name: cucumber-rails
116
+ requirement: !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ! '>='
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ - !ruby/object:Gem::Dependency
131
+ name: factory_girl_rails
132
+ requirement: !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - ~>
136
+ - !ruby/object:Gem::Version
137
+ version: 1.6.0
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ none: false
142
+ requirements:
143
+ - - ~>
144
+ - !ruby/object:Gem::Version
145
+ version: 1.6.0
146
+ - !ruby/object:Gem::Dependency
147
+ name: jasmine
148
+ requirement: !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ none: false
158
+ requirements:
159
+ - - ! '>='
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ - !ruby/object:Gem::Dependency
163
+ name: launchy
164
+ requirement: !ruby/object:Gem::Requirement
165
+ none: false
166
+ requirements:
167
+ - - ! '>='
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ type: :development
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ! '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ - !ruby/object:Gem::Dependency
179
+ name: capybara-webkit
180
+ requirement: !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ none: false
190
+ requirements:
191
+ - - ! '>='
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ - !ruby/object:Gem::Dependency
195
+ name: database_cleaner
196
+ requirement: !ruby/object:Gem::Requirement
197
+ none: false
198
+ requirements:
199
+ - - ! '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ none: false
206
+ requirements:
207
+ - - ! '>='
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ - !ruby/object:Gem::Dependency
211
+ name: spork
212
+ requirement: !ruby/object:Gem::Requirement
213
+ none: false
214
+ requirements:
215
+ - - ! '>='
216
+ - !ruby/object:Gem::Version
217
+ version: '0'
218
+ type: :development
219
+ prerelease: false
220
+ version_requirements: !ruby/object:Gem::Requirement
221
+ none: false
222
+ requirements:
223
+ - - ! '>='
224
+ - !ruby/object:Gem::Version
225
+ version: '0'
226
+ - !ruby/object:Gem::Dependency
227
+ name: ruby-debug19
228
+ requirement: !ruby/object:Gem::Requirement
229
+ none: false
230
+ requirements:
231
+ - - ! '>='
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ type: :development
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ none: false
238
+ requirements:
239
+ - - ! '>='
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ description: A lightweight CMS for Rails 3.1+
243
+ email:
244
+ - tandem@12spokes.com
245
+ executables: []
246
+ extensions: []
247
+ extra_rdoc_files: []
248
+ files:
249
+ - app/assets/images/tandem/blank_image.jpg
250
+ - app/assets/images/tandem/colorbox/border1.png
251
+ - app/assets/images/tandem/colorbox/border2.png
252
+ - app/assets/images/tandem/colorbox/ie6/borderBottomCenter.png
253
+ - app/assets/images/tandem/colorbox/ie6/borderBottomLeft.png
254
+ - app/assets/images/tandem/colorbox/ie6/borderBottomRight.png
255
+ - app/assets/images/tandem/colorbox/ie6/borderMiddleLeft.png
256
+ - app/assets/images/tandem/colorbox/ie6/borderMiddleRight.png
257
+ - app/assets/images/tandem/colorbox/ie6/borderTopCenter.png
258
+ - app/assets/images/tandem/colorbox/ie6/borderTopLeft.png
259
+ - app/assets/images/tandem/colorbox/ie6/borderTopRight.png
260
+ - app/assets/images/tandem/colorbox/loading.gif
261
+ - app/assets/images/tandem/ic-delete_image.png
262
+ - app/assets/images/tandem/ic-star.png
263
+ - app/assets/images/tandem/loader.gif
264
+ - app/assets/images/tandem/loader_stripe.png
265
+ - app/assets/images/tandem/tandem-editImage2.jpg
266
+ - app/assets/images/tandem/tandem_logo.png
267
+ - app/assets/images/tandem/tandem_logo_nav.png
268
+ - app/assets/javascripts/tandem/contents.js
269
+ - app/assets/javascripts/tandem/current_image.jst.eco
270
+ - app/assets/javascripts/tandem/gallery_image.jst.eco
271
+ - app/assets/javascripts/tandem/images.coffee
272
+ - app/assets/javascripts/tandem/pages.js.coffee
273
+ - app/assets/javascripts/tandem/popup.js
274
+ - app/assets/javascripts/tandem.js
275
+ - app/assets/stylesheets/tandem/colorbox.css.erb
276
+ - app/assets/stylesheets/tandem/contents.scss
277
+ - app/assets/stylesheets/tandem/scaffold.scss
278
+ - app/assets/stylesheets/tandem/variables.scss
279
+ - app/assets/stylesheets/tandem.css
280
+ - app/controllers/tandem/application_controller.rb
281
+ - app/controllers/tandem/contents_controller.rb
282
+ - app/controllers/tandem/images_controller.rb
283
+ - app/controllers/tandem/pages_controller.rb
284
+ - app/helpers/tandem/application_helper.rb
285
+ - app/helpers/tandem/contents_helper.rb
286
+ - app/helpers/tandem/images_helper.rb
287
+ - app/helpers/tandem/pages_helper.rb
288
+ - app/models/tandem/ability.rb
289
+ - app/models/tandem/content/image.rb
290
+ - app/models/tandem/content/text.rb
291
+ - app/models/tandem/content.rb
292
+ - app/models/tandem/image.rb
293
+ - app/models/tandem/page.rb
294
+ - app/views/layouts/tandem/image.html.slim
295
+ - app/views/layouts/tandem/popup.html.slim
296
+ - app/views/tandem/contents/_form.html.slim
297
+ - app/views/tandem/contents/edit.html.slim
298
+ - app/views/tandem/contents/index.html.slim
299
+ - app/views/tandem/contents/new.html.slim
300
+ - app/views/tandem/contents/show.html.slim
301
+ - app/views/tandem/images/_form.html.slim
302
+ - app/views/tandem/images/_gallery.html.slim
303
+ - app/views/tandem/images/edit.html.slim
304
+ - app/views/tandem/images/index.html.slim
305
+ - app/views/tandem/images/new.html.slim
306
+ - app/views/tandem/images/show.html.slim
307
+ - app/views/tandem/images/thumb.html.slim
308
+ - app/views/tandem/pages/_form.html.slim
309
+ - app/views/tandem/pages/edit.html.slim
310
+ - app/views/tandem/pages/index.html.slim
311
+ - app/views/tandem/pages/new.html.slim
312
+ - app/views/tandem/pages/show.html.slim
313
+ - config/cucumber.yml
314
+ - config/routes.rb
315
+ - db/migrate/20111122221549_create_tandem_pages.rb
316
+ - db/migrate/20111122222037_create_tandem_contents.rb
317
+ - db/migrate/20111215001943_create_tandem_images.rb
318
+ - db/migrate/30000000000000_create_default_page.rb
319
+ - db/migrate/30000000000001_add_request_key_to_tandem_contents.rb
320
+ - lib/generators/tandem_generator.rb
321
+ - lib/generators/templates/initializer.rb
322
+ - lib/tandem/engine.rb
323
+ - lib/tandem/version.rb
324
+ - lib/tandem.rb
325
+ - lib/tasks/cucumber.rake
326
+ - lib/tasks/tandem_tasks.rake
327
+ - MIT-LICENSE
328
+ - Rakefile
329
+ - README.rdoc
330
+ homepage: http://www.12spokes.com
331
+ licenses: []
332
+ post_install_message:
333
+ rdoc_options: []
334
+ require_paths:
335
+ - lib
336
+ required_ruby_version: !ruby/object:Gem::Requirement
337
+ none: false
338
+ requirements:
339
+ - - ! '>='
340
+ - !ruby/object:Gem::Version
341
+ version: '0'
342
+ required_rubygems_version: !ruby/object:Gem::Requirement
343
+ none: false
344
+ requirements:
345
+ - - ! '>'
346
+ - !ruby/object:Gem::Version
347
+ version: 1.3.1
348
+ requirements: []
349
+ rubyforge_project:
350
+ rubygems_version: 1.8.22
351
+ signing_key:
352
+ specification_version: 3
353
+ summary: A lightweight CMS for Rails 3.1+
354
+ test_files: []