solidus_product_feed 1.0.0 → 1.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.
- checksums.yaml +5 -5
- data/.circleci/config.yml +35 -0
- data/.gem_release.yml +5 -0
- data/.github/stale.yml +17 -0
- data/.gitignore +10 -2
- data/.rspec +2 -1
- data/.rubocop.yml +3 -149
- data/.rubocop_todo.yml +50 -0
- data/CHANGELOG.md +63 -0
- data/Gemfile +28 -9
- data/LICENSE +2 -2
- data/README.md +71 -26
- data/Rakefile +4 -19
- data/app/decorators/controllers/solidus_product_feed/spree/products_controller_decorator.rb +25 -0
- data/app/models/spree/feed_product.rb +39 -10
- data/app/overrides/rss_link.rb +2 -0
- data/app/views/spree/products/index.rss.builder +10 -12
- data/bin/console +17 -0
- data/bin/r +13 -0
- data/bin/rails +15 -0
- data/bin/rake +7 -0
- data/bin/sandbox +84 -0
- data/bin/sandbox_rails +18 -0
- data/bin/setup +8 -0
- data/config/locales/en.yml +5 -0
- data/config/routes.rb +3 -1
- data/lib/generators/solidus_product_feed/install/install_generator.rb +6 -8
- data/lib/solidus_product_feed.rb +42 -1
- data/lib/solidus_product_feed/engine.rb +9 -10
- data/lib/solidus_product_feed/factories.rb +4 -0
- data/lib/solidus_product_feed/version.rb +3 -1
- data/lib/spree_product_feed.rb +2 -0
- data/solidus_product_feed.gemspec +36 -30
- data/spec/controllers/products_controller_spec.rb +14 -2
- data/spec/models/spree/feed_product_spec.rb +10 -1
- data/spec/spec_helper.rb +23 -13
- data/spec/support/devise.rb +5 -0
- metadata +53 -92
- data/.travis.yml +0 -21
- data/Guardfile +0 -10
- data/app/assets/javascripts/admin/solidus_product_feed.js +0 -1
- data/app/assets/javascripts/spree/backend/solidus_product_feed.js +0 -0
- data/app/assets/javascripts/spree/backend/spree_product_feed.js +0 -0
- data/app/assets/javascripts/spree/frontend/solidus_product_feed.js +0 -0
- data/app/assets/javascripts/spree/frontend/spree_product_feed.js +0 -0
- data/app/assets/javascripts/store/solidus_product_feed.js +0 -1
- data/app/assets/stylesheets/admin/solidus_product_feed.css +0 -3
- data/app/assets/stylesheets/spree/backend/solidus_product_feed.css +0 -0
- data/app/assets/stylesheets/spree/backend/spree_product_feed.css +0 -0
- data/app/assets/stylesheets/spree/frontend/solidus_product_feed.css +0 -0
- data/app/assets/stylesheets/spree/frontend/spree_product_feed.css +0 -0
- data/app/assets/stylesheets/store/solidus_product_feed.css +0 -3
- data/app/controllers/spree/products_controller_decorator.rb +0 -18
- data/script/rails +0 -7
data/lib/spree_product_feed.rb
CHANGED
@@ -1,31 +1,37 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/solidus_product_feed/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'solidus_product_feed'
|
7
|
+
spec.version = SolidusProductFeed::VERSION
|
8
|
+
spec.authors = ['Joshua Nussbaum']
|
9
|
+
spec.email = 'joshnuss@gmail.com'
|
10
|
+
|
11
|
+
spec.summary = 'Solidus extension that provides an RSS feed for products.'
|
12
|
+
spec.description = 'A Solidus extension that provides an RSS feed for products, with support for Google Merchant Feed.'
|
13
|
+
spec.homepage = 'https://github.com/solidusio-contrib/solidus_product_feed'
|
14
|
+
spec.license = 'BSD-3-Clause'
|
15
|
+
|
16
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
17
|
+
spec.metadata['source_code_uri'] = 'https://github.com/solidusio-contrib/solidus_product_feed'
|
18
|
+
spec.metadata['changelog_uri'] = 'https://github.com/solidusio-contrib/solidus_product_feed/blob/master/CHANGELOG.md'
|
19
|
+
|
20
|
+
spec.required_ruby_version = Gem::Requirement.new('~> 2.5')
|
21
|
+
|
22
|
+
# Specify which files should be added to the gem when it is released.
|
23
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
24
|
+
files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") }
|
25
|
+
|
26
|
+
spec.files = files.grep_v(%r{^(test|spec|features)/})
|
27
|
+
spec.test_files = files.grep(%r{^(test|spec|features)/})
|
28
|
+
spec.bindir = "exe"
|
29
|
+
spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ["lib"]
|
31
|
+
|
32
|
+
spec.add_dependency 'deface'
|
33
|
+
spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 3']
|
34
|
+
spec.add_dependency 'solidus_support', '~> 0.5'
|
35
|
+
|
36
|
+
spec.add_development_dependency 'solidus_dev_support'
|
31
37
|
end
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe Spree::ProductsController, type: :controller do
|
4
6
|
render_views
|
5
7
|
|
6
8
|
context "GET #index" do
|
7
|
-
subject {
|
9
|
+
subject { get :index, params: { format: 'rss' } }
|
8
10
|
|
9
11
|
let!(:product) { create :product, name: "2 Hams", price: 20.00 }
|
10
12
|
|
@@ -14,7 +16,17 @@ describe Spree::ProductsController, type: :controller do
|
|
14
16
|
|
15
17
|
it 'returns the correct content type' do
|
16
18
|
subject
|
17
|
-
expect(response.content_type).to eq 'application/rss+xml'
|
19
|
+
expect(response.content_type.split(';').first).to eq 'application/rss+xml'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'GET #index with weirdo formats' do
|
24
|
+
subject { get :index, params: { format: 'wat' } }
|
25
|
+
|
26
|
+
let!(:product) { create :product, name: "2 Hams", price: 20.00 }
|
27
|
+
|
28
|
+
it "raises ActionController::UnkownFormat" do
|
29
|
+
expect { subject }.to raise_exception(ActionController::UnknownFormat)
|
18
30
|
end
|
19
31
|
end
|
20
32
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "spec_helper"
|
2
4
|
|
3
5
|
RSpec.describe Spree::FeedProduct do
|
@@ -18,23 +20,28 @@ RSpec.describe Spree::FeedProduct do
|
|
18
20
|
|
19
21
|
describe "#category" do
|
20
22
|
subject { feed_product.category }
|
23
|
+
|
21
24
|
it { is_expected.to be_nil }
|
22
25
|
end
|
23
26
|
|
24
27
|
describe "#condition" do
|
25
28
|
subject { feed_product.condition }
|
29
|
+
|
26
30
|
it { is_expected.to eq "new" }
|
27
31
|
end
|
28
32
|
|
29
33
|
describe "#price" do
|
30
34
|
subject { feed_product.price }
|
31
|
-
|
35
|
+
|
36
|
+
it { is_expected.to eq '19.99 USD' }
|
32
37
|
end
|
33
38
|
|
34
39
|
describe "#image_link" do
|
35
40
|
subject { feed_product.image_link }
|
41
|
+
|
36
42
|
context "when the product has images" do
|
37
43
|
before { Spree::Image.create! viewable: product.master, attachment_file_name: 'hams.png' }
|
44
|
+
|
38
45
|
it { is_expected.to eq '/spree/products/1/large/hams.png' }
|
39
46
|
end
|
40
47
|
|
@@ -45,11 +52,13 @@ RSpec.describe Spree::FeedProduct do
|
|
45
52
|
|
46
53
|
describe "#description" do
|
47
54
|
subject { feed_product.description }
|
55
|
+
|
48
56
|
it { is_expected.to eq "As seen on TV!" }
|
49
57
|
end
|
50
58
|
|
51
59
|
describe "#title" do
|
52
60
|
subject { feed_product.title }
|
61
|
+
|
53
62
|
it { is_expected.to eq "2 Hams 20 Dollars" }
|
54
63
|
end
|
55
64
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,17 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Configure Rails Environment
|
2
|
-
ENV[
|
3
|
-
|
4
|
-
|
5
|
-
require '
|
6
|
-
|
7
|
-
require '
|
8
|
-
|
9
|
-
|
4
|
+
ENV['RAILS_ENV'] = 'test'
|
5
|
+
|
6
|
+
# Run Coverage report
|
7
|
+
require 'solidus_dev_support/rspec/coverage'
|
8
|
+
|
9
|
+
require File.expand_path('dummy/config/environment.rb', __dir__).tap { |file|
|
10
|
+
# Create the dummy app if it's still missing.
|
11
|
+
system 'bin/rake extension:test_app' unless File.exist? file
|
12
|
+
}
|
13
|
+
|
14
|
+
# Requires factories and other useful helpers defined in spree_core.
|
15
|
+
require 'solidus_dev_support/rspec/feature_helper'
|
16
|
+
|
17
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
18
|
+
# in spec/support/ and its subdirectories.
|
19
|
+
Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
|
20
|
+
|
21
|
+
# Requires factories defined in lib/solidus_product_feed/factories.rb
|
22
|
+
require 'solidus_product_feed/factories'
|
10
23
|
|
11
24
|
RSpec.configure do |config|
|
12
|
-
config.
|
13
|
-
config.use_transactional_fixtures =
|
14
|
-
config.include Devise::TestHelpers, type: :controller
|
15
|
-
config.include Spree::TestingSupport::ControllerRequests, type: :controller
|
16
|
-
config.include FactoryGirl::Syntax::Methods
|
25
|
+
config.infer_spec_type_from_file_location!
|
26
|
+
config.use_transactional_fixtures = false
|
17
27
|
end
|
metadata
CHANGED
@@ -1,71 +1,23 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_product_feed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Nussbaum
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.0'
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '3'
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.0'
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '3'
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: rspec-rails
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '3.4'
|
40
|
-
type: :development
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '3.4'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: rubocop
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 0.39.0
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 0.39.0
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: factory_girl_rails
|
14
|
+
name: deface
|
63
15
|
requirement: !ruby/object:Gem::Requirement
|
64
16
|
requirements:
|
65
17
|
- - ">="
|
66
18
|
- !ruby/object:Gem::Version
|
67
19
|
version: '0'
|
68
|
-
type: :
|
20
|
+
type: :runtime
|
69
21
|
prerelease: false
|
70
22
|
version_requirements: !ruby/object:Gem::Requirement
|
71
23
|
requirements:
|
@@ -73,35 +25,41 @@ dependencies:
|
|
73
25
|
- !ruby/object:Gem::Version
|
74
26
|
version: '0'
|
75
27
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
28
|
+
name: solidus_core
|
77
29
|
requirement: !ruby/object:Gem::Requirement
|
78
30
|
requirements:
|
79
31
|
- - ">="
|
80
32
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
82
|
-
|
33
|
+
version: 2.0.0
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '3'
|
37
|
+
type: :runtime
|
83
38
|
prerelease: false
|
84
39
|
version_requirements: !ruby/object:Gem::Requirement
|
85
40
|
requirements:
|
86
41
|
- - ">="
|
87
42
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
43
|
+
version: 2.0.0
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3'
|
89
47
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
48
|
+
name: solidus_support
|
91
49
|
requirement: !ruby/object:Gem::Requirement
|
92
50
|
requirements:
|
93
|
-
- - "
|
51
|
+
- - "~>"
|
94
52
|
- !ruby/object:Gem::Version
|
95
|
-
version: '0'
|
96
|
-
type: :
|
53
|
+
version: '0.5'
|
54
|
+
type: :runtime
|
97
55
|
prerelease: false
|
98
56
|
version_requirements: !ruby/object:Gem::Requirement
|
99
57
|
requirements:
|
100
|
-
- - "
|
58
|
+
- - "~>"
|
101
59
|
- !ruby/object:Gem::Version
|
102
|
-
version: '0'
|
60
|
+
version: '0.5'
|
103
61
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
62
|
+
name: solidus_dev_support
|
105
63
|
requirement: !ruby/object:Gem::Requirement
|
106
64
|
requirements:
|
107
65
|
- - ">="
|
@@ -114,74 +72,77 @@ dependencies:
|
|
114
72
|
- - ">="
|
115
73
|
- !ruby/object:Gem::Version
|
116
74
|
version: '0'
|
117
|
-
description: A
|
118
|
-
|
75
|
+
description: A Solidus extension that provides an RSS feed for products, with support
|
76
|
+
for Google Merchant Feed.
|
119
77
|
email: joshnuss@gmail.com
|
120
78
|
executables: []
|
121
79
|
extensions: []
|
122
80
|
extra_rdoc_files: []
|
123
81
|
files:
|
82
|
+
- ".circleci/config.yml"
|
83
|
+
- ".gem_release.yml"
|
84
|
+
- ".github/stale.yml"
|
124
85
|
- ".gitignore"
|
125
86
|
- ".rspec"
|
126
87
|
- ".rubocop.yml"
|
127
|
-
- ".
|
88
|
+
- ".rubocop_todo.yml"
|
89
|
+
- CHANGELOG.md
|
128
90
|
- Gemfile
|
129
|
-
- Guardfile
|
130
91
|
- LICENSE
|
131
92
|
- README.md
|
132
93
|
- Rakefile
|
133
|
-
- app/
|
134
|
-
- app/assets/javascripts/spree/backend/solidus_product_feed.js
|
135
|
-
- app/assets/javascripts/spree/backend/spree_product_feed.js
|
136
|
-
- app/assets/javascripts/spree/frontend/solidus_product_feed.js
|
137
|
-
- app/assets/javascripts/spree/frontend/spree_product_feed.js
|
138
|
-
- app/assets/javascripts/store/solidus_product_feed.js
|
139
|
-
- app/assets/stylesheets/admin/solidus_product_feed.css
|
140
|
-
- app/assets/stylesheets/spree/backend/solidus_product_feed.css
|
141
|
-
- app/assets/stylesheets/spree/backend/spree_product_feed.css
|
142
|
-
- app/assets/stylesheets/spree/frontend/solidus_product_feed.css
|
143
|
-
- app/assets/stylesheets/spree/frontend/spree_product_feed.css
|
144
|
-
- app/assets/stylesheets/store/solidus_product_feed.css
|
145
|
-
- app/controllers/spree/products_controller_decorator.rb
|
94
|
+
- app/decorators/controllers/solidus_product_feed/spree/products_controller_decorator.rb
|
146
95
|
- app/models/spree/feed_product.rb
|
147
96
|
- app/overrides/rss_link.rb
|
148
97
|
- app/views/spree/products/index.rss.builder
|
98
|
+
- bin/console
|
99
|
+
- bin/r
|
100
|
+
- bin/rails
|
101
|
+
- bin/rake
|
102
|
+
- bin/sandbox
|
103
|
+
- bin/sandbox_rails
|
104
|
+
- bin/setup
|
105
|
+
- config/locales/en.yml
|
149
106
|
- config/routes.rb
|
150
107
|
- lib/generators/solidus_product_feed/install/install_generator.rb
|
151
108
|
- lib/solidus_product_feed.rb
|
152
109
|
- lib/solidus_product_feed/engine.rb
|
110
|
+
- lib/solidus_product_feed/factories.rb
|
153
111
|
- lib/solidus_product_feed/version.rb
|
154
112
|
- lib/spree_product_feed.rb
|
155
|
-
- script/rails
|
156
113
|
- solidus_product_feed.gemspec
|
157
114
|
- spec/controllers/products_controller_spec.rb
|
158
115
|
- spec/models/spree/feed_product_spec.rb
|
159
116
|
- spec/spec_helper.rb
|
160
|
-
|
161
|
-
|
162
|
-
|
117
|
+
- spec/support/devise.rb
|
118
|
+
homepage: https://github.com/solidusio-contrib/solidus_product_feed
|
119
|
+
licenses:
|
120
|
+
- BSD-3-Clause
|
121
|
+
metadata:
|
122
|
+
homepage_uri: https://github.com/solidusio-contrib/solidus_product_feed
|
123
|
+
source_code_uri: https://github.com/solidusio-contrib/solidus_product_feed
|
124
|
+
changelog_uri: https://github.com/solidusio-contrib/solidus_product_feed/blob/master/CHANGELOG.md
|
163
125
|
post_install_message:
|
164
126
|
rdoc_options: []
|
165
127
|
require_paths:
|
166
128
|
- lib
|
167
129
|
required_ruby_version: !ruby/object:Gem::Requirement
|
168
130
|
requirements:
|
169
|
-
- - "
|
131
|
+
- - "~>"
|
170
132
|
- !ruby/object:Gem::Version
|
171
|
-
version:
|
133
|
+
version: '2.5'
|
172
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
135
|
requirements:
|
174
136
|
- - ">="
|
175
137
|
- !ruby/object:Gem::Version
|
176
138
|
version: '0'
|
177
|
-
requirements:
|
178
|
-
|
179
|
-
rubyforge_project:
|
180
|
-
rubygems_version: 2.5.1
|
139
|
+
requirements: []
|
140
|
+
rubygems_version: 3.0.8
|
181
141
|
signing_key:
|
182
142
|
specification_version: 4
|
183
|
-
summary:
|
143
|
+
summary: Solidus extension that provides an RSS feed for products.
|
184
144
|
test_files:
|
185
145
|
- spec/controllers/products_controller_spec.rb
|
186
146
|
- spec/models/spree/feed_product_spec.rb
|
187
147
|
- spec/spec_helper.rb
|
148
|
+
- spec/support/devise.rb
|