spree_product_feed 0.70.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.
@@ -0,0 +1,10 @@
1
+ \#*
2
+ *~
3
+ .#*
4
+ .DS_Store
5
+ .idea
6
+ .project
7
+ tmp
8
+ nbproject
9
+ *.swp
10
+ spec/dummy
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
data/Gemfile ADDED
@@ -0,0 +1,25 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'sqlite3'
4
+
5
+ group :test do
6
+ gem 'autotest'
7
+ gem 'rspec-rails', '= 2.6.1'
8
+ gem 'factory_girl'
9
+ gem 'faker'
10
+ end
11
+
12
+ group :cucumber do
13
+ gem 'cucumber-rails', '1.0.0'
14
+ gem 'database_cleaner', '= 0.6.7'
15
+ gem 'nokogiri'
16
+ gem 'capybara', '1.0.1'
17
+ end
18
+
19
+ if RUBY_VERSION < "1.9"
20
+ gem "ruby-debug"
21
+ else
22
+ gem "ruby-debug19"
23
+ end
24
+
25
+ gemspec
@@ -0,0 +1,229 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ spree_product_feed (0.70.0)
5
+ spree_core (>= 0.70.0)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ ZenTest (4.6.2)
11
+ actionmailer (3.1.1)
12
+ actionpack (= 3.1.1)
13
+ mail (~> 2.3.0)
14
+ actionpack (3.1.1)
15
+ activemodel (= 3.1.1)
16
+ activesupport (= 3.1.1)
17
+ builder (~> 3.0.0)
18
+ erubis (~> 2.7.0)
19
+ i18n (~> 0.6)
20
+ rack (~> 1.3.2)
21
+ rack-cache (~> 1.1)
22
+ rack-mount (~> 0.8.2)
23
+ rack-test (~> 0.6.1)
24
+ sprockets (~> 2.0.2)
25
+ activemerchant (1.17.0)
26
+ activesupport (>= 2.3.11)
27
+ braintree (>= 2.0.0)
28
+ builder (>= 2.0.0)
29
+ json (>= 1.5.1)
30
+ activemodel (3.1.1)
31
+ activesupport (= 3.1.1)
32
+ builder (~> 3.0.0)
33
+ i18n (~> 0.6)
34
+ activerecord (3.1.1)
35
+ activemodel (= 3.1.1)
36
+ activesupport (= 3.1.1)
37
+ arel (~> 2.2.1)
38
+ tzinfo (~> 0.3.29)
39
+ activeresource (3.1.1)
40
+ activemodel (= 3.1.1)
41
+ activesupport (= 3.1.1)
42
+ activesupport (3.1.1)
43
+ multi_json (~> 1.0)
44
+ acts_as_list (0.1.4)
45
+ archive-tar-minitar (0.5.2)
46
+ arel (2.2.1)
47
+ autotest (4.4.6)
48
+ ZenTest (>= 4.4.1)
49
+ braintree (2.12.0)
50
+ builder (>= 2.0.0)
51
+ builder (3.0.0)
52
+ capybara (1.0.1)
53
+ mime-types (>= 1.16)
54
+ nokogiri (>= 1.3.3)
55
+ rack (>= 1.0.0)
56
+ rack-test (>= 0.5.4)
57
+ selenium-webdriver (~> 2.0)
58
+ xpath (~> 0.1.4)
59
+ childprocess (0.2.2)
60
+ ffi (~> 1.0.6)
61
+ cocaine (0.2.0)
62
+ columnize (0.3.4)
63
+ cucumber (1.0.6)
64
+ builder (>= 2.1.2)
65
+ diff-lcs (>= 1.1.2)
66
+ gherkin (~> 2.4.18)
67
+ json (>= 1.4.6)
68
+ term-ansicolor (>= 1.0.6)
69
+ cucumber-rails (1.0.0)
70
+ capybara (>= 1.0.0)
71
+ cucumber (~> 1.0.0)
72
+ nokogiri (>= 1.4.4)
73
+ rack-test (>= 0.5.7)
74
+ database_cleaner (0.6.7)
75
+ deface (0.7.0)
76
+ nokogiri (~> 1.5.0)
77
+ rails (>= 3.0.9)
78
+ diff-lcs (1.1.3)
79
+ erubis (2.7.0)
80
+ factory_girl (2.2.0)
81
+ activesupport
82
+ faker (1.0.0)
83
+ i18n (~> 0.4)
84
+ ffi (1.0.9)
85
+ gherkin (2.4.21)
86
+ json (>= 1.4.6)
87
+ highline (1.5.1)
88
+ hike (1.2.1)
89
+ i18n (0.6.0)
90
+ jquery-rails (1.0.16)
91
+ railties (~> 3.0)
92
+ thor (~> 0.14)
93
+ json (1.6.1)
94
+ json_pure (1.6.1)
95
+ kaminari (0.12.4)
96
+ rails (>= 3.0.0)
97
+ linecache19 (0.5.12)
98
+ ruby_core_source (>= 0.1.4)
99
+ mail (2.3.0)
100
+ i18n (>= 0.4.0)
101
+ mime-types (~> 1.16)
102
+ treetop (~> 1.4.8)
103
+ meta_search (1.1.1)
104
+ actionpack (~> 3.1.0)
105
+ activerecord (~> 3.1.0)
106
+ activesupport (~> 3.1.0)
107
+ polyamorous (~> 0.5.0)
108
+ mime-types (1.16)
109
+ multi_json (1.0.3)
110
+ nested_set (1.6.8)
111
+ activerecord (>= 3.0.0)
112
+ railties (>= 3.0.0)
113
+ nokogiri (1.5.0)
114
+ paperclip (2.4.1)
115
+ activerecord (>= 2.3.0)
116
+ activesupport (>= 2.3.2)
117
+ cocaine (>= 0.0.2)
118
+ mime-types
119
+ polyamorous (0.5.0)
120
+ activerecord (~> 3.0)
121
+ polyglot (0.3.2)
122
+ rack (1.3.4)
123
+ rack-cache (1.1)
124
+ rack (>= 0.4)
125
+ rack-mount (0.8.3)
126
+ rack (>= 1.0.0)
127
+ rack-ssl (1.3.2)
128
+ rack
129
+ rack-test (0.6.1)
130
+ rack (>= 1.0)
131
+ rails (3.1.1)
132
+ actionmailer (= 3.1.1)
133
+ actionpack (= 3.1.1)
134
+ activerecord (= 3.1.1)
135
+ activeresource (= 3.1.1)
136
+ activesupport (= 3.1.1)
137
+ bundler (~> 1.0)
138
+ railties (= 3.1.1)
139
+ railties (3.1.1)
140
+ actionpack (= 3.1.1)
141
+ activesupport (= 3.1.1)
142
+ rack-ssl (~> 1.3.2)
143
+ rake (>= 0.8.7)
144
+ rdoc (~> 3.4)
145
+ thor (~> 0.14.6)
146
+ rake (0.9.2)
147
+ rd_find_by_param (0.1.1)
148
+ activerecord (~> 3.0)
149
+ activesupport (~> 3.0)
150
+ rd_resource_controller (1.0.1)
151
+ rdoc (3.10)
152
+ json (~> 1.4)
153
+ rspec (2.6.0)
154
+ rspec-core (~> 2.6.0)
155
+ rspec-expectations (~> 2.6.0)
156
+ rspec-mocks (~> 2.6.0)
157
+ rspec-core (2.6.4)
158
+ rspec-expectations (2.6.0)
159
+ diff-lcs (~> 1.1.2)
160
+ rspec-mocks (2.6.0)
161
+ rspec-rails (2.6.1)
162
+ actionpack (~> 3.0)
163
+ activesupport (~> 3.0)
164
+ railties (~> 3.0)
165
+ rspec (~> 2.6.0)
166
+ ruby-debug-base19 (0.11.25)
167
+ columnize (>= 0.3.1)
168
+ linecache19 (>= 0.5.11)
169
+ ruby_core_source (>= 0.1.4)
170
+ ruby-debug19 (0.11.6)
171
+ columnize (>= 0.3.1)
172
+ linecache19 (>= 0.5.11)
173
+ ruby-debug-base19 (>= 0.11.19)
174
+ ruby_core_source (0.1.5)
175
+ archive-tar-minitar (>= 0.5.2)
176
+ rubyzip (0.9.4)
177
+ selenium-webdriver (2.8.0)
178
+ childprocess (>= 0.2.1)
179
+ ffi (>= 1.0.7)
180
+ json_pure
181
+ rubyzip
182
+ spree_core (0.70.0)
183
+ activemerchant (= 1.17.0)
184
+ acts_as_list (= 0.1.4)
185
+ deface (>= 0.6.1)
186
+ faker (= 1.0.0)
187
+ highline (= 1.5.1)
188
+ jquery-rails (>= 1.0.14)
189
+ kaminari (>= 0.12.4)
190
+ meta_search (= 1.1.1)
191
+ nested_set (= 1.6.8)
192
+ paperclip (= 2.4.1)
193
+ rails (= 3.1.1)
194
+ rd_find_by_param (= 0.1.1)
195
+ rd_resource_controller
196
+ state_machine (= 1.0.1)
197
+ stringex (= 1.0.3)
198
+ sprockets (2.0.3)
199
+ hike (~> 1.2)
200
+ rack (~> 1.0)
201
+ tilt (~> 1.1, != 1.3.0)
202
+ sqlite3 (1.3.4)
203
+ state_machine (1.0.1)
204
+ stringex (1.0.3)
205
+ term-ansicolor (1.0.7)
206
+ thor (0.14.6)
207
+ tilt (1.3.3)
208
+ treetop (1.4.10)
209
+ polyglot
210
+ polyglot (>= 0.3.1)
211
+ tzinfo (0.3.30)
212
+ xpath (0.1.4)
213
+ nokogiri (~> 1.3)
214
+
215
+ PLATFORMS
216
+ ruby
217
+
218
+ DEPENDENCIES
219
+ autotest
220
+ capybara (= 1.0.1)
221
+ cucumber-rails (= 1.0.0)
222
+ database_cleaner (= 0.6.7)
223
+ factory_girl
224
+ faker
225
+ nokogiri
226
+ rspec-rails (= 2.6.1)
227
+ ruby-debug19
228
+ spree_product_feed!
229
+ sqlite3
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2011 [name of plugin creator]
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name Spree nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,38 @@
1
+ Spree Product Feed
2
+ ================
3
+
4
+ An extension that provides an RSS feed for products. Google Shopper attributes are also implemented.
5
+ An RSS link is automatically appended to the `<head>` tag in the `layouts/spree_application` file.
6
+
7
+ Supported versions of Spree
8
+ =========
9
+
10
+ any version of Spree higher than 0.70.x
11
+
12
+ Installation
13
+ ===============
14
+
15
+ 1) add the gem to your `Gemfile`:
16
+
17
+ `gem 'spree_product_feed'`
18
+
19
+ 2) run bundler:
20
+
21
+ `bundle install`
22
+
23
+ 3) BOOOM, you're done
24
+
25
+ Viewing Product RSS
26
+ ============
27
+
28
+ `http://yourdomain.tld/products.rss`
29
+
30
+ Testing
31
+ =======
32
+
33
+ Be sure to add the rspec-rails gem to your Gemfile and then create a dummy test app for the specs to run against.
34
+
35
+ $ bundle exec rake test app
36
+ $ bundle exec rspec spec
37
+
38
+ Copyright (c) 2011 Joshua Nussbaum, released under the New BSD License
@@ -0,0 +1,31 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/packagetask'
4
+ require 'rubygems/package_task'
5
+ require 'rspec/core/rake_task'
6
+ require 'cucumber/rake/task'
7
+ require 'spree_core/testing_support/common_rake'
8
+
9
+ RSpec::Core::RakeTask.new
10
+ Cucumber::Rake::Task.new
11
+
12
+ task :default => [:spec, :cucumber ]
13
+
14
+ spec = eval(File.read('spree_product_feed.gemspec'))
15
+
16
+ Gem::PackageTask.new(spec) do |p|
17
+ p.gem_spec = spec
18
+ end
19
+
20
+ desc "Release to gemcutter"
21
+ task :release => :package do
22
+ require 'rake/gemcutter'
23
+ Rake::Gemcutter::Tasks.new(spec).define
24
+ Rake::Task['gem:push'].invoke
25
+ end
26
+
27
+ desc "Generates a dummy app for testing"
28
+ task :test_app do
29
+ ENV['LIB_NAME'] = 'spree_product_feed'
30
+ Rake::Task['common:test_app'].invoke
31
+ end
@@ -0,0 +1,10 @@
1
+ # This file is used to designate compatibilty with different versions of Spree
2
+ # Please see http://spreecommerce.com/documentation/extensions.html#versionfile for details
3
+
4
+ # Examples
5
+ #
6
+ # "0.70.x" => { :branch => "master"}
7
+ # "0.60.x" => { :branch => "0-60-stable" }
8
+ # "0.40.x" => { :tag => "v1.0.0", :version => "1.0.0" }
9
+
10
+ "0.70.x" => { :branch => "master"}
@@ -0,0 +1 @@
1
+ //= require admin/spree_core
@@ -0,0 +1 @@
1
+ //= require store/spree_core
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require admin/spree_core
3
+ */
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require store/spree_core
3
+ */
@@ -0,0 +1,5 @@
1
+ ProductsController.class_eval do
2
+ respond_to :rss, :only => [:index]
3
+
4
+ caches_page :index, :if => Proc.new {|c| c.request.format.rss? }
5
+ end
@@ -0,0 +1,4 @@
1
+ Deface::Override.new(:virtual_path => 'layouts/spree_application',
2
+ :name => 'product_rss_link',
3
+ :insert_bottom => "[data-hook='inside_head']",
4
+ :text => '<%= auto_discovery_link_tag(:rss, products_path(:format => :rss), {:title => "#{Spree::Config[:site_title]} Products"}) %>')
@@ -0,0 +1,27 @@
1
+ xml.instruct! :xml, :version=>"1.0"
2
+ xml.rss(:version=>"2.0", "xmlns:g" => "http://base.google.com/ns/1.0"){
3
+ xml.channel{
4
+ xml.title("#{Spree::Config[:site_name]}")
5
+ xml.link("http://#{Spree::Config[:site_url]}")
6
+ xml.description("Find out about new products first! You'll always be in the know when new products become available")
7
+ xml.language('en-us')
8
+ @products.each do |product|
9
+ xml.item do
10
+ xml.title(product.name)
11
+ xml.description((product.images.count > 0 ? link_to(image_tag(product.images.first.attachment.url(:product)), product_url(product)) : '') + simple_format(product.description))
12
+ xml.author(Spree::Config[:site_url])
13
+ xml.pubDate((product.available_on || product.created_at).strftime("%a, %d %b %Y %H:%M:%S %z"))
14
+ xml.link(product_url(product))
15
+ xml.guid(product.id)
16
+
17
+ if product.images.count > 0
18
+ xml.tag!('g:image_link', product.images.first.attachment.url(:large))
19
+ end
20
+
21
+ xml.tag!('g:price', product.price)
22
+ xml.tag!('g:condition', 'retail')
23
+ xml.tag!('g:id', product.id)
24
+ end
25
+ end
26
+ }
27
+ }
@@ -0,0 +1,3 @@
1
+ Rails.application.routes.draw do
2
+ # Add your extension routes here
3
+ end
@@ -0,0 +1,29 @@
1
+ module SpreeProductFeed
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+
5
+ def add_javascripts
6
+ append_file "app/assets/javascripts/store/all.js", "//= require store/spree_product_feed\n"
7
+ append_file "app/assets/javascripts/admin/all.js", "//= require admin/spree_product_feed\n"
8
+ end
9
+
10
+ def add_stylesheets
11
+ inject_into_file "app/assets/stylesheets/store/all.css", " *= require store/spree_product_feed\n", :before => /\*\//, :verbose => true
12
+ inject_into_file "app/assets/stylesheets/admin/all.css", " *= require admin/spree_product_feed\n", :before => /\*\//, :verbose => true
13
+ end
14
+
15
+ def add_migrations
16
+ run 'bundle exec rake railties:install:migrations FROM=spree_product_feed'
17
+ end
18
+
19
+ def run_migrations
20
+ res = ask "Would you like to run the migrations now? [Y/n]"
21
+ if res == "" || res.downcase == "y"
22
+ run 'bundle exec rake db:migrate'
23
+ else
24
+ puts "Skiping rake db:migrate, don't forget to run it!"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,2 @@
1
+ require 'spree_core'
2
+ require 'spree_product_feed/engine'
@@ -0,0 +1,24 @@
1
+ module SpreeProductFeed
2
+ class Engine < Rails::Engine
3
+ engine_name 'spree_product_feed'
4
+
5
+ config.autoload_paths += %W(#{config.root}/lib)
6
+
7
+ # use rspec for tests
8
+ config.generators do |g|
9
+ g.test_framework :rspec
10
+ end
11
+
12
+ def self.activate
13
+ Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
14
+ Rails.application.config.cache_classes ? require(c) : load(c)
15
+ end
16
+
17
+ Dir.glob(File.join(File.dirname(__FILE__), "../../app/overrides/*.rb")) do |c|
18
+ Rails.application.config.cache_classes ? require(c) : load(c)
19
+ end
20
+ end
21
+
22
+ config.to_prepare &method(:activate).to_proc
23
+ end
24
+ end
@@ -0,0 +1,7 @@
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
+
5
+ ENGINE_PATH = File.expand_path('../..', __FILE__)
6
+ load File.expand_path('../../spec/dummy/script/rails', __FILE__)
7
+
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe ProductsController do
4
+ context "GET /index" do
5
+ before { get :index, :format => 'rss' }
6
+
7
+ specify { response.should be_success }
8
+ specify { response.content_type.should == 'application/rss+xml' }
9
+ end
10
+ end
@@ -0,0 +1,29 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
+ require 'rspec/rails'
5
+
6
+ # Requires supporting ruby files with custom matchers and macros, etc,
7
+ # in spec/support/ and its subdirectories.
8
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
9
+
10
+ require 'spree_core/testing_support/factories'
11
+
12
+ RSpec.configure do |config|
13
+ # == Mock Framework
14
+ #
15
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
16
+ #
17
+ # config.mock_with :mocha
18
+ # config.mock_with :flexmock
19
+ # config.mock_with :rr
20
+ config.mock_with :rspec
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
+ end
@@ -0,0 +1,21 @@
1
+ # encoding: UTF-8
2
+ Gem::Specification.new do |s|
3
+ s.platform = Gem::Platform::RUBY
4
+ s.name = 'spree_product_feed'
5
+ s.version = '0.70.0'
6
+ s.summary = 'Spree extension that provides an RSS feed for products'
7
+ s.description = 'A Spree extension that provides an RSS feed for products, with Google Shopper extensions'
8
+ s.required_ruby_version = '>= 1.8.7'
9
+
10
+ s.author = 'Joshua Nussbaum'
11
+ s.email = 'joshnuss@gmail.com'
12
+
13
+ s.files = `git ls-files`.split("\n")
14
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ s.require_path = 'lib'
16
+ s.requirements << 'none'
17
+
18
+ s.add_dependency 'spree_core', '>= 0.70.0'
19
+ s.add_development_dependency 'rspec-rails'
20
+ end
21
+
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_product_feed
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.70.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Joshua Nussbaum
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-24 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: spree_core
16
+ requirement: &82819850 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.70.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *82819850
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec-rails
27
+ requirement: &82819470 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *82819470
36
+ description: A Spree extension that provides an RSS feed for products, with Google
37
+ Shopper extensions
38
+ email: joshnuss@gmail.com
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - .gitignore
44
+ - .rspec
45
+ - Gemfile
46
+ - Gemfile.lock
47
+ - LICENSE
48
+ - README.md
49
+ - Rakefile
50
+ - Versionfile
51
+ - app/assets/javascripts/admin/spree_product_feed.js
52
+ - app/assets/javascripts/store/spree_product_feed.js
53
+ - app/assets/stylesheets/admin/spree_product_feed.css
54
+ - app/assets/stylesheets/store/spree_product_feed.css
55
+ - app/controllers/products_controller_decorator.rb
56
+ - app/overrides/rss_link.rb
57
+ - app/views/products/index.rss.builder
58
+ - config/routes.rb
59
+ - lib/generators/spree_product_feed/install/install_generator.rb
60
+ - lib/spree_product_feed.rb
61
+ - lib/spree_product_feed/engine.rb
62
+ - script/rails
63
+ - spec/controllers/products_controller_spec.rb
64
+ - spec/spec_helper.rb
65
+ - spree_product_feed.gemspec
66
+ homepage:
67
+ licenses: []
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.8.7
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ requirements:
85
+ - none
86
+ rubyforge_project:
87
+ rubygems_version: 1.8.6
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: Spree extension that provides an RSS feed for products
91
+ test_files: []