spree_wordsmith 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/README.markdown +121 -0
  2. data/app/controllers/admin/pages_controller.rb +22 -0
  3. data/app/controllers/admin/posts_controller.rb +20 -0
  4. data/app/controllers/admin/wordsmith_settings_controller.rb +13 -0
  5. data/app/controllers/pages_controller.rb +19 -0
  6. data/app/controllers/posts_controller.rb +30 -0
  7. data/app/helpers/wordsmith_helper.rb +21 -0
  8. data/app/models/ability_decorator.rb +23 -0
  9. data/app/models/page.rb +4 -0
  10. data/app/models/post.rb +11 -0
  11. data/app/models/ws_item.rb +80 -0
  12. data/app/stylesheets/wordsmith.less +76 -0
  13. data/app/views/admin/pages/_form.html.erb +60 -0
  14. data/app/views/admin/pages/edit.html.erb +3 -0
  15. data/app/views/admin/pages/index.html.erb +25 -0
  16. data/app/views/admin/pages/new.html.erb +4 -0
  17. data/app/views/admin/posts/_form.html.erb +59 -0
  18. data/app/views/admin/posts/edit.html.erb +5 -0
  19. data/app/views/admin/posts/index.html.erb +25 -0
  20. data/app/views/admin/posts/new.html.erb +6 -0
  21. data/app/views/admin/posts/show.html.erb +27 -0
  22. data/app/views/admin/shared/_wordsmith_sub_menu.html.erb +8 -0
  23. data/app/views/admin/users/_display_name.html.erb +4 -0
  24. data/app/views/admin/wordsmith_settings/edit.html.erb +34 -0
  25. data/app/views/admin/wordsmith_settings/show.html.erb +37 -0
  26. data/app/views/content/show.html.erb +5 -0
  27. data/app/views/pages/index.html.erb +6 -0
  28. data/app/views/pages/show.html.erb +4 -0
  29. data/app/views/posts/_post.html.erb +11 -0
  30. data/app/views/posts/index.html.erb +13 -0
  31. data/app/views/posts/index.rss.builder +19 -0
  32. data/app/views/posts/show.html.erb +10 -0
  33. data/app/views/posts/tags.html.erb +18 -0
  34. data/app/views/shared/_recent_articles.html.erb +7 -0
  35. data/app/views/shared/_wordsmith_content_for.html.erb +7 -0
  36. data/lib/extensions/string.rb +20 -0
  37. data/lib/spree_wordsmith.rb +72 -0
  38. data/lib/spree_wordsmith_hooks.rb +8 -0
  39. data/lib/tasks/install.rake +33 -0
  40. data/lib/tasks/spree_wordsmith.rake +21 -0
  41. data/spec/controllers/admin/pages_controller_spec.rb +10 -0
  42. data/spec/controllers/admin/posts_controller_spec.rb +10 -0
  43. data/spec/controllers/posts_controller_spec.rb +27 -0
  44. data/spec/factories.rb +34 -0
  45. data/spec/models/posts_spec.rb +9 -0
  46. data/spec/spec_helper.rb +39 -0
  47. metadata +326 -0
@@ -0,0 +1,72 @@
1
+ require 'spree_core'
2
+ require 'spree_wordsmith_hooks'
3
+ require 'disqus'
4
+ require 'RedCloth'
5
+
6
+ module SpreeWordsmith
7
+ class Engine < Rails::Engine
8
+
9
+ config.autoload_paths += %W(#{config.root}/lib)
10
+
11
+ def self.activate
12
+ Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
13
+ Rails.env.production? ? require(c) : load(c)
14
+ end
15
+
16
+ if config = WORDSMITH_CONFIG[Rails.env.to_sym]
17
+ disqus_config = config[:disqus]
18
+ Disqus::defaults[:account], Disqus::defaults[:api_key], Disqus::defaults[:developer] =
19
+ disqus_config[:account], disqus_config[:api_key], disqus_config[:developer] if disqus_config && !disqus_config[:disable]
20
+ end
21
+
22
+ # Add your extension tab to the admin.
23
+ # Requires that you have defined an admin controller:
24
+ # app/controllers/admin/yourextension_controller
25
+ # and that you mapped your admin in config/routes
26
+
27
+ # make your helper avaliable in all views
28
+ Spree::BaseController.class_eval do
29
+ helper WordsmithHelper
30
+
31
+ before_filter :render_page_if_exists
32
+
33
+ def render_page_if_exists
34
+ # Using request.path allows us to override dynamic pages including
35
+ # the home page, product and taxon pages. params[:path] is only good
36
+ # for requests that get as far as content_controller. params[:path]
37
+ # query left in for backwards compatibility for slugs that don't start
38
+ # with a slash.
39
+ @page = Page.publish.find_by_permalink(params[:path]) if params[:path]
40
+ @page = Page.publish.find_by_permalink(request.path) unless @page
41
+ render :template => 'content/show' if @page
42
+ end
43
+
44
+ # # Returns post.title for use in the <title> element.
45
+ # def title_with_wordsmith_post_check
46
+ # return "#{@post.title} - #{Spree::Config[:site_name]}" if @post && !@post.title.blank?
47
+ # title_without_wordsmith_post_check
48
+ # end
49
+ # alias_method_chain :title, :wordsmith_post_check
50
+ end
51
+
52
+ AppConfiguration.class_eval do
53
+ preference :wordsmith_permalink, :string, :default => 'blog'
54
+ preference :wordsmith_posts_per_page, :integer, :default => 5
55
+ preference :wordsmith_posts_recent, :integer, :default => 15
56
+ preference :wordsmith_post_comment_default, :integer, :default => 1
57
+ preference :wordsmith_post_status_default, :integer, :default => 0
58
+ preference :wordsmith_page_status_default, :integer, :default => 0
59
+ preference :wordsmith_page_comment_default, :integer, :default => 0
60
+ preference :wordsmith_rss_description, :string, :default => 'description about your main post rss.'
61
+ end
62
+
63
+ User.class_eval do
64
+ has_many :ws_items
65
+
66
+ attr_accessible :display_name
67
+ end
68
+ end
69
+
70
+ config.to_prepare &method(:activate).to_proc
71
+ end
72
+ end
@@ -0,0 +1,8 @@
1
+ class SpreeWordsmithHooks < Spree::ThemeSupport::HookListener
2
+
3
+ insert_after :admin_tabs do
4
+ %(<%= tab(:wordsmith, :label => 'Wordsmith', :route => :admin_posts) %>)
5
+ end
6
+
7
+ insert_after :admin_user_form_fields, "admin/users/display_name"
8
+ end
@@ -0,0 +1,33 @@
1
+ namespace :spree_wordsmith do
2
+ desc "Copies all migrations and assets (NOTE: This will be obsolete with Rails 3.1)"
3
+ task :install do
4
+ Rake::Task['spree_wordsmith:install:migrations'].invoke
5
+ Rake::Task['spree_wordsmith:install:config'].invoke
6
+ Rake::Task['spree_wordsmith:install:assets'].invoke
7
+ end
8
+
9
+ namespace :install do
10
+ desc "Copies all migrations (NOTE: This will be obsolete with Rails 3.1)"
11
+ task :migrations do
12
+ source = File.join(File.dirname(__FILE__), '..', '..', 'db')
13
+ destination = File.join(Rails.root, 'db')
14
+ Spree::FileUtilz.mirror_files(source, destination)
15
+ end
16
+
17
+ desc "Copies all assets (NOTE: This will be obsolete with Rails 3.1)"
18
+ task :assets do
19
+ source = File.join(File.dirname(__FILE__), '..', '..', 'public')
20
+ destination = File.join(Rails.root, 'public')
21
+ puts "INFO: Mirroring assets from #{source} to #{destination}"
22
+ Spree::FileUtilz.mirror_files(source, destination)
23
+ end
24
+
25
+ desc "Copies all configuration files (NOTE: This will be obsolete with Rails 3.1)"
26
+ task :config do
27
+ wordsmith_example_filename = 'spree_wordsmith.yml.example'
28
+ source = File.join(File.dirname(__FILE__), '..', '..', 'config', wordsmith_example_filename)
29
+ destination = File.join(Rails.root, 'config', wordsmith_example_filename)
30
+ Spree::FileUtilz.mirror_files(source, destination)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,21 @@
1
+ # add custom rake tasks here
2
+ namespace :spree_wordsmith do
3
+ desc "Bootstrap your database for Spree."
4
+ task :bootstrap => :environment do
5
+ # load initial database fixtures (in db/sample/*.yml) into the current environment's database
6
+ ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym)
7
+ Dir.glob(File.join(WordsmithExtension.root, "db", 'sample', '*.{yml,csv}')).each do |fixture_file|
8
+ Fixtures.create_fixtures("#{WordsmithExtension.root}/db/sample", File.basename(fixture_file, '.*'))
9
+ end
10
+ end
11
+ namespace :less do
12
+ desc 'Compile the ebagoo less stylesheet files'
13
+ task :compile do
14
+ `lessc #{File.dirname(__FILE__)}/../../app/stylesheets/wordsmith.less #{Rails.root}/public/stylesheets/wordsmith.css`
15
+ end
16
+ desc 'Watch and compile changes of the ebagoo less stylesheet files'
17
+ task :watch do
18
+ `lessc #{File.dirname(__FILE__)}/../../app/stylesheets/wordsmith.less #{Rails.root}/public/stylesheets/wordsmith.css --watch`
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,10 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe Admin::PagesController do
4
+
5
+ #Delete this example and add some real ones
6
+ it "should use Admin::PagesController" do
7
+ controller.should be_an_instance_of(Admin::PagesController)
8
+ end
9
+
10
+ end
@@ -0,0 +1,10 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe Admin::PostsController do
4
+
5
+ #Delete this example and add some real ones
6
+ it "should use Admin::PostsController" do
7
+ controller.should be_an_instance_of(Admin::PostsController)
8
+ end
9
+
10
+ end
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe PostsController do
4
+
5
+ it "index action should render index template" do
6
+ get :index
7
+ response.should render_template(:index)
8
+ end
9
+
10
+ it "index action should render index template for rss with xml" do
11
+ get :index, :format => 'rss'
12
+ response.should render_template(:index)
13
+ response.content_type.should == 'application/rss+xml'
14
+ response.should have_tag('title', :text => Spree::Config[:site_name])
15
+ end
16
+
17
+ it "show action should render show template" do
18
+ get :show, :id => Post.first.to_param
19
+ response.should render_template(:show)
20
+ end
21
+
22
+ it "show action should not find post when is not active" do
23
+ post = Factory(:post_draft)
24
+ lambda { get :show, :id => post.to_param }.should raise_error(ActiveRecord::RecordNotFound)
25
+ end
26
+
27
+ end
@@ -0,0 +1,34 @@
1
+ Factory.define(:user) do |record|
2
+ record.email { Faker::Internet.email }
3
+ record.login { Faker::Internet.user_name }
4
+ record.password "spree"
5
+ record.password_confirmation "spree"
6
+
7
+ #record.bill_address { Factory(:address) }
8
+ #record.ship_address { Factory(:address) }
9
+ end
10
+
11
+
12
+ Factory.define :post do |p|
13
+ p.title {Faker::Lorem.words(4)}
14
+ p.body {Faker::Lorem.paragraphs(4)}
15
+ p.user { |user| user.association(:user) }
16
+ end
17
+
18
+ Factory.define :post_draft, :parent => :post do |p|
19
+ p.is_active {true}
20
+ end
21
+
22
+
23
+ Factory.define :comment do |c|
24
+ c.name { Faker::Name.name}
25
+ c.email { Faker::Internet.email }
26
+ c.url "http://#{Faker::Internet.domain_name}"
27
+ c.post { |post| post.association(:post) }
28
+ c.body { Faker::Lorem.paragraphs(2) }
29
+ c.user_ip "1.1.1.1"
30
+ c.user_agent "MyAgent"
31
+ c.referrer "referrer"
32
+ end
33
+
34
+
@@ -0,0 +1,9 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Posts do
4
+
5
+ it "can return recent published posts" do
6
+ fail "Not Implemented!"
7
+ end
8
+
9
+ end
@@ -0,0 +1,39 @@
1
+ unless defined? SPREE_ROOT
2
+ ENV["RAILS_ENV"] = "test"
3
+ case
4
+ when ENV["SPREE_ENV_FILE"]
5
+ require ENV["SPREE_ENV_FILE"]
6
+ when File.dirname(__FILE__) =~ %r{vendor/SPREE/vendor/extensions}
7
+ require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../../")}/config/environment"
8
+ else
9
+ require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment"
10
+ end
11
+ end
12
+ require "#{SPREE_ROOT}/spec/spec_helper"
13
+
14
+ if File.directory?(File.dirname(__FILE__) + "/scenarios")
15
+ Scenario.load_paths.unshift File.dirname(__FILE__) + "/scenarios"
16
+ end
17
+ if File.directory?(File.dirname(__FILE__) + "/matchers")
18
+ Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file }
19
+ end
20
+
21
+ require File.expand_path(File.dirname(__FILE__) + "/factories")
22
+
23
+ Spec::Runner.configure do |config|
24
+ # config.use_transactional_fixtures = true
25
+ # config.use_instantiated_fixtures = false
26
+ # config.fixture_path = RAILS_ROOT + '/spec/fixtures'
27
+
28
+ # You can declare fixtures for each behaviour like this:
29
+ # describe "...." do
30
+ # fixtures :table_a, :table_b
31
+ #
32
+ # Alternatively, if you prefer to declare them only once, you can
33
+ # do so here, like so ...
34
+ #
35
+ # config.global_fixtures = :table_a, :table_b
36
+ #
37
+ # If you declare global fixtures, be aware that they will be declared
38
+ # for all of your examples, even those that don't use them.
39
+ end
metadata ADDED
@@ -0,0 +1,326 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_wordsmith
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.0
6
+ platform: ruby
7
+ authors:
8
+ - Tonka Park
9
+ - Gyorgy Frivolt
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2011-03-03 00:00:00 +01:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: spree_wordsmith
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: *id001
28
+ - !ruby/object:Gem::Dependency
29
+ name: rspec
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: *id002
39
+ - !ruby/object:Gem::Dependency
40
+ name: factory_girl
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: *id003
50
+ - !ruby/object:Gem::Dependency
51
+ name: rspec
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ type: :development
59
+ prerelease: false
60
+ version_requirements: *id004
61
+ - !ruby/object:Gem::Dependency
62
+ name: factory_girl
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: "0"
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: *id005
72
+ - !ruby/object:Gem::Dependency
73
+ name: rspec
74
+ requirement: &id006 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: "0"
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: *id006
83
+ - !ruby/object:Gem::Dependency
84
+ name: factory_girl
85
+ requirement: &id007 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: "0"
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: *id007
94
+ - !ruby/object:Gem::Dependency
95
+ name: rspec
96
+ requirement: &id008 !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: *id008
105
+ - !ruby/object:Gem::Dependency
106
+ name: factory_girl
107
+ requirement: &id009 !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: "0"
113
+ type: :development
114
+ prerelease: false
115
+ version_requirements: *id009
116
+ - !ruby/object:Gem::Dependency
117
+ name: rspec
118
+ requirement: &id010 !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: "0"
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: *id010
127
+ - !ruby/object:Gem::Dependency
128
+ name: factory_girl
129
+ requirement: &id011 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: "0"
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: *id011
138
+ - !ruby/object:Gem::Dependency
139
+ name: rspec
140
+ requirement: &id012 !ruby/object:Gem::Requirement
141
+ none: false
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: "0"
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: *id012
149
+ - !ruby/object:Gem::Dependency
150
+ name: factory_girl
151
+ requirement: &id013 !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: "0"
157
+ type: :development
158
+ prerelease: false
159
+ version_requirements: *id013
160
+ - !ruby/object:Gem::Dependency
161
+ name: spree_core
162
+ requirement: &id014 !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ~>
166
+ - !ruby/object:Gem::Version
167
+ version: 0.40.0
168
+ type: :runtime
169
+ prerelease: false
170
+ version_requirements: *id014
171
+ - !ruby/object:Gem::Dependency
172
+ name: spree_auth
173
+ requirement: &id015 !ruby/object:Gem::Requirement
174
+ none: false
175
+ requirements:
176
+ - - ~>
177
+ - !ruby/object:Gem::Version
178
+ version: 0.40.0
179
+ type: :runtime
180
+ prerelease: false
181
+ version_requirements: *id015
182
+ - !ruby/object:Gem::Dependency
183
+ name: is_taggable
184
+ requirement: &id016 !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ~>
188
+ - !ruby/object:Gem::Version
189
+ version: 0.1.0
190
+ type: :runtime
191
+ prerelease: false
192
+ version_requirements: *id016
193
+ - !ruby/object:Gem::Dependency
194
+ name: RedCloth
195
+ requirement: &id017 !ruby/object:Gem::Requirement
196
+ none: false
197
+ requirements:
198
+ - - ~>
199
+ - !ruby/object:Gem::Version
200
+ version: 4.2.3
201
+ type: :runtime
202
+ prerelease: false
203
+ version_requirements: *id017
204
+ - !ruby/object:Gem::Dependency
205
+ name: disqus
206
+ requirement: &id018 !ruby/object:Gem::Requirement
207
+ none: false
208
+ requirements:
209
+ - - ~>
210
+ - !ruby/object:Gem::Version
211
+ version: 1.0.4
212
+ type: :runtime
213
+ prerelease: false
214
+ version_requirements: *id018
215
+ - !ruby/object:Gem::Dependency
216
+ name: rspec
217
+ requirement: &id019 !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: "0"
223
+ type: :development
224
+ prerelease: false
225
+ version_requirements: *id019
226
+ - !ruby/object:Gem::Dependency
227
+ name: factory_girl
228
+ requirement: &id020 !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: *id020
237
+ description: Have blog posts and pages with information about your spree shop!
238
+ email: fifigyuri@gmail.com
239
+ executables: []
240
+
241
+ extensions: []
242
+
243
+ extra_rdoc_files:
244
+ - README.markdown
245
+ files:
246
+ - app/controllers/admin/pages_controller.rb
247
+ - app/controllers/admin/posts_controller.rb
248
+ - app/controllers/admin/wordsmith_settings_controller.rb
249
+ - app/controllers/pages_controller.rb
250
+ - app/controllers/posts_controller.rb
251
+ - app/helpers/wordsmith_helper.rb
252
+ - app/models/ability_decorator.rb
253
+ - app/models/page.rb
254
+ - app/models/post.rb
255
+ - app/models/ws_item.rb
256
+ - app/stylesheets/wordsmith.less
257
+ - app/views/admin/pages/_form.html.erb
258
+ - app/views/admin/pages/edit.html.erb
259
+ - app/views/admin/pages/index.html.erb
260
+ - app/views/admin/pages/new.html.erb
261
+ - app/views/admin/posts/_form.html.erb
262
+ - app/views/admin/posts/edit.html.erb
263
+ - app/views/admin/posts/index.html.erb
264
+ - app/views/admin/posts/new.html.erb
265
+ - app/views/admin/posts/show.html.erb
266
+ - app/views/admin/shared/_wordsmith_sub_menu.html.erb
267
+ - app/views/admin/users/_display_name.html.erb
268
+ - app/views/admin/wordsmith_settings/edit.html.erb
269
+ - app/views/admin/wordsmith_settings/show.html.erb
270
+ - app/views/content/show.html.erb
271
+ - app/views/pages/index.html.erb
272
+ - app/views/pages/show.html.erb
273
+ - app/views/posts/_post.html.erb
274
+ - app/views/posts/index.html.erb
275
+ - app/views/posts/index.rss.builder
276
+ - app/views/posts/show.html.erb
277
+ - app/views/posts/tags.html.erb
278
+ - app/views/shared/_recent_articles.html.erb
279
+ - app/views/shared/_wordsmith_content_for.html.erb
280
+ - lib/extensions/string.rb
281
+ - lib/spree_wordsmith.rb
282
+ - lib/spree_wordsmith_hooks.rb
283
+ - lib/tasks/install.rake
284
+ - lib/tasks/spree_wordsmith.rake
285
+ - README.markdown
286
+ - spec/controllers/admin/pages_controller_spec.rb
287
+ - spec/controllers/admin/posts_controller_spec.rb
288
+ - spec/controllers/posts_controller_spec.rb
289
+ - spec/factories.rb
290
+ - spec/models/posts_spec.rb
291
+ - spec/spec_helper.rb
292
+ has_rdoc: true
293
+ homepage: http://github.com/fifigyuri/spree-wordsmith
294
+ licenses: []
295
+
296
+ post_install_message:
297
+ rdoc_options: []
298
+
299
+ require_paths:
300
+ - lib
301
+ required_ruby_version: !ruby/object:Gem::Requirement
302
+ none: false
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ version: 1.8.7
307
+ required_rubygems_version: !ruby/object:Gem::Requirement
308
+ none: false
309
+ requirements:
310
+ - - ">="
311
+ - !ruby/object:Gem::Version
312
+ version: "0"
313
+ requirements:
314
+ - none
315
+ rubyforge_project:
316
+ rubygems_version: 1.5.2
317
+ signing_key:
318
+ specification_version: 3
319
+ summary: A blog/cms extension for spree.
320
+ test_files:
321
+ - spec/controllers/admin/pages_controller_spec.rb
322
+ - spec/controllers/admin/posts_controller_spec.rb
323
+ - spec/controllers/posts_controller_spec.rb
324
+ - spec/factories.rb
325
+ - spec/models/posts_spec.rb
326
+ - spec/spec_helper.rb