radiant-shop_variants-extension 0.0.1

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 (63) hide show
  1. data/.gitignore +1 -0
  2. data/README +3 -0
  3. data/Rakefile +138 -0
  4. data/VERSION +1 -0
  5. data/app/controllers/admin/shop/products/variant_templates_controller.rb +27 -0
  6. data/app/controllers/admin/shop/products/variants_controller.rb +60 -0
  7. data/app/controllers/admin/shop/variants_controller.rb +48 -0
  8. data/app/models/shop_product_variant.rb +36 -0
  9. data/app/models/shop_variant.rb +23 -0
  10. data/app/views/admin/shop/products/edit/buttons/_browse_templates.html.haml +1 -0
  11. data/app/views/admin/shop/products/edit/buttons/_new_variant.html.haml +1 -0
  12. data/app/views/admin/shop/products/edit/parts/_variants.html.haml +3 -0
  13. data/app/views/admin/shop/products/edit/popups/_browse_templates.html.haml +6 -0
  14. data/app/views/admin/shop/products/edit/popups/_new_variant.html.haml +16 -0
  15. data/app/views/admin/shop/products/edit/shared/_variant.html.haml +10 -0
  16. data/app/views/admin/shop/products/index/buttons/_variants.html.haml +1 -0
  17. data/app/views/admin/shop/variants/edit/_foot.html.haml +9 -0
  18. data/app/views/admin/shop/variants/edit/_form.html.haml +13 -0
  19. data/app/views/admin/shop/variants/edit/_head.html.haml +4 -0
  20. data/app/views/admin/shop/variants/edit/_inputs.html.haml +2 -0
  21. data/app/views/admin/shop/variants/edit/_meta.html.haml +8 -0
  22. data/app/views/admin/shop/variants/edit/_parts.html.haml +9 -0
  23. data/app/views/admin/shop/variants/edit/_popups.html.haml +4 -0
  24. data/app/views/admin/shop/variants/edit/inputs/_name.html.haml +3 -0
  25. data/app/views/admin/shop/variants/edit/inputs/_options.html.haml +3 -0
  26. data/app/views/admin/shop/variants/edit.html.haml +11 -0
  27. data/app/views/admin/shop/variants/index/_foot.html.haml +5 -0
  28. data/app/views/admin/shop/variants/index/_head.html.haml +2 -0
  29. data/app/views/admin/shop/variants/index/_variant.html.haml +9 -0
  30. data/app/views/admin/shop/variants/index/buttons/_add_variant.html.haml +1 -0
  31. data/app/views/admin/shop/variants/index/buttons/_categories.html.haml +1 -0
  32. data/app/views/admin/shop/variants/index.html.haml +13 -0
  33. data/app/views/admin/shop/variants/new.html.haml +11 -0
  34. data/app/views/admin/shop/variants/remove.html.haml +12 -0
  35. data/config/locales/en.yml +14 -0
  36. data/config/routes.rb +16 -0
  37. data/cucumber.yml +1 -0
  38. data/db/migrate/20101015162238_setup_shop_variants.rb +21 -0
  39. data/features/support/env.rb +16 -0
  40. data/features/support/paths.rb +14 -0
  41. data/lib/shop_variants/controllers/products_controller.rb +44 -0
  42. data/lib/shop_variants/interface/variants.rb +34 -0
  43. data/lib/shop_variants/models/product.rb +15 -0
  44. data/lib/shop_variants/tags/helpers.rb +29 -0
  45. data/lib/shop_variants/tags/product_variant.rb +52 -0
  46. data/lib/tasks/shop_variants_extension_tasks.rake +55 -0
  47. data/public/javascripts/admin/extensions/shop/variants/edit.js +38 -0
  48. data/public/stylesheets/sass/admin/extensions/shop/variants/edit.sass +0 -0
  49. data/radiant-shop_variants-extension.gemspec +114 -0
  50. data/shop_variants_extension.rb +21 -0
  51. data/spec/controllers/admin/shop/products/variant_templates_controller_spec.rb +53 -0
  52. data/spec/controllers/admin/shop/products/variants_controller_spec.rb +116 -0
  53. data/spec/controllers/admin/shop/variants_controller_spec.rb +67 -0
  54. data/spec/datasets/shop_product_variants.rb +22 -0
  55. data/spec/datasets/shop_variants.rb +17 -0
  56. data/spec/lib/shop_variants/tags/helpers_spec.rb +59 -0
  57. data/spec/lib/shop_variants/tags/product_variant_spec.rb +175 -0
  58. data/spec/models/shop_product_spec.rb +15 -0
  59. data/spec/models/shop_product_variant_spec.rb +92 -0
  60. data/spec/models/shop_variant_spec.rb +32 -0
  61. data/spec/spec.opts +4 -0
  62. data/spec/spec_helper.rb +23 -0
  63. metadata +151 -0
@@ -0,0 +1,17 @@
1
+ class ShopVariantsDataset < Dataset::Base
2
+
3
+ def load
4
+ create_record :shop_variants, :bread_states,
5
+ :name => 'bread states',
6
+ :options_json => ActiveSupport::JSON.encode([ 'mouldy', 'fresh' ])
7
+
8
+ create_record :shop_variants, :milk_states,
9
+ :name => 'milk states',
10
+ :options_json => ActiveSupport::JSON.encode([ 'cold', 'warm', 'sour' ])
11
+
12
+ create_record :shop_variants, :salad_states,
13
+ :name => 'milk states',
14
+ :options_json => ActiveSupport::JSON.encode([ 'fresh', 'wilted' ])
15
+ end
16
+
17
+ end
@@ -0,0 +1,59 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe ShopVariants::Tags::Helpers do
4
+
5
+ dataset :pages, :tags, :shop_products, :shop_product_variants
6
+
7
+ before :all do
8
+ @page = pages(:home)
9
+ end
10
+
11
+ before(:each) do
12
+ mock_valid_tag_for_helper
13
+ end
14
+
15
+ describe '#current_product_variants' do
16
+ before :each do
17
+ @product = shop_products(:crusty_bread)
18
+ end
19
+
20
+ context 'existing product variant' do
21
+ it 'should return that existing line item' do
22
+ @tag.locals.shop_product = @product
23
+
24
+ result = ShopVariants::Tags::Helpers.current_product_variants(@tag)
25
+ result.should == @product.variants
26
+ end
27
+ end
28
+
29
+ context 'nothing sent or available' do
30
+ it 'should return nil' do
31
+ result = ShopVariants::Tags::Helpers.current_product_variants(@tag)
32
+ result.should be_nil
33
+ end
34
+ end
35
+ end
36
+
37
+ describe '#current_product_variant' do
38
+ before :each do
39
+ @variant = shop_product_variants(:mouldy_crusty_bread)
40
+ end
41
+
42
+ context 'existing product variant' do
43
+ it 'should return that existing variant' do
44
+ @tag.locals.shop_product_variant = @variant
45
+
46
+ result = ShopVariants::Tags::Helpers.current_product_variant(@tag)
47
+ result.should == @variant
48
+ end
49
+ end
50
+
51
+ context 'nothing sent or available' do
52
+ it 'should return nil' do
53
+ result = ShopVariants::Tags::Helpers.current_product_variant(@tag)
54
+ result.should be_nil
55
+ end
56
+ end
57
+ end
58
+
59
+ end
@@ -0,0 +1,175 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe ShopVariants::Tags::ProductVariant do
4
+
5
+ dataset :pages, :shop_product_variants, :shop_products
6
+
7
+ it 'should describe these tags' do
8
+ ShopVariants::Tags::ProductVariant.tags.sort.should == [
9
+ 'shop:product:variants',
10
+ 'shop:product:variants:each',
11
+ 'shop:product:variants:if_variants',
12
+ 'shop:product:variants:unless_variants',
13
+ 'shop:product:variant',
14
+ 'shop:product:variant:id',
15
+ 'shop:product:variant:name',
16
+ 'shop:product:variant:sku',
17
+ 'shop:product:variant:price'].sort
18
+ end
19
+
20
+ before :all do
21
+ @page = pages(:home)
22
+ end
23
+
24
+ context 'tags' do
25
+
26
+ before :each do
27
+ @product = shop_products(:crusty_bread)
28
+ @variant = shop_product_variants(:mouldy_crusty_bread)
29
+
30
+ stub(Shop::Tags::Helpers).current_product(anything) { @product }
31
+ end
32
+
33
+ describe '<r:shop:product:variants>' do
34
+ context 'variants exist' do
35
+ it 'should render' do
36
+ tag = %{<r:shop:product:variants>success</r:shop:product:variants>}
37
+ exp = %{success}
38
+
39
+ @page.should render(tag).as(exp)
40
+ end
41
+ end
42
+
43
+ context 'variants do not exist' do
44
+ it 'should render' do
45
+ @product.variants = []
46
+
47
+ tag = %{<r:shop:product:variants>success</r:shop:product:variants>}
48
+ exp = %{success}
49
+
50
+ @page.should render(tag).as(exp)
51
+ end
52
+ end
53
+ end
54
+
55
+ describe '<r:shop:product:variants:if_variants>' do
56
+ context 'success' do
57
+ it 'should render' do
58
+ tag = %{<r:shop:product:variants:if_variants>success</r:shop:product:variants:if_variants>}
59
+ exp = %{success}
60
+ @page.should render(tag).as(exp)
61
+ end
62
+ end
63
+
64
+ context 'failure' do
65
+ it 'should not render' do
66
+ mock(ShopVariants::Tags::Helpers).current_product_variants(anything) { [] }
67
+
68
+ tag = %{<r:shop:product:variants:if_variants>failure</r:shop:product:variants:if_variants>}
69
+ exp = %{}
70
+ @page.should render(tag).as(exp)
71
+ end
72
+ end
73
+ end
74
+
75
+ describe '<r:shop:product:variants:unless_variants>' do
76
+ context 'success' do
77
+ it 'should render' do
78
+ mock(ShopVariants::Tags::Helpers).current_product_variants(anything) { [] }
79
+
80
+ tag = %{<r:shop:product:variants:unless_variants>success</r:shop:product:variants:unless_variants>}
81
+ exp = %{success}
82
+ @page.should render(tag).as(exp)
83
+ end
84
+ end
85
+
86
+ context 'failure' do
87
+ it 'should not render' do
88
+ tag = %{<r:shop:product:variants:unless_variants>failure</r:shop:product:variants:unless_variants>}
89
+ exp = %{}
90
+ @page.should render(tag).as(exp)
91
+ end
92
+ end
93
+ end
94
+
95
+ describe '<r:shop:product:variants:each>' do
96
+ context 'success' do
97
+ it 'should not render' do
98
+ tag = %{<r:shop:product:variants:each><r:product:id /></r:shop:product:variants:each>}
99
+ exp = @product.variants.map{ |p| p.product.id }.join('')
100
+ @page.should render(tag).as(exp)
101
+ end
102
+ end
103
+
104
+ context 'failure' do
105
+ it 'should not render' do
106
+ mock(ShopVariants::Tags::Helpers).current_product_variants(anything) { [] }
107
+
108
+ tag = %{<r:shop:product:variants:each>failure</r:shop:product:variants:each>}
109
+ exp = %{}
110
+ @page.should render(tag).as(exp)
111
+ end
112
+ end
113
+ end
114
+
115
+ describe '<r:shop:product:variant>' do
116
+ context 'variant exists in the context' do
117
+ it 'should render' do
118
+ mock(ShopVariants::Tags::Helpers).current_product_variant(anything) { @variant }
119
+
120
+ tag = %{<r:shop:product:variant>success</r:shop:product:variant>}
121
+ exp = %{success}
122
+ @page.should render(tag).as(exp)
123
+ end
124
+ end
125
+
126
+ context 'product does not exist in the context' do
127
+ it 'should not render' do
128
+ mock(ShopVariants::Tags::Helpers).current_product_variant(anything) { nil }
129
+
130
+ tag = %{<r:shop:product:variant>failure</r:shop:product:variant>}
131
+ exp = %{}
132
+ @page.should render(tag).as(exp)
133
+ end
134
+ end
135
+ end
136
+
137
+ context '#attributes' do
138
+ before :each do
139
+ mock(ShopVariants::Tags::Helpers).current_product_variant(anything) { @variant }
140
+ end
141
+
142
+ describe '<r:id />' do
143
+ it 'should render the product id' do
144
+ tag = %{<r:shop:product:variant:id />}
145
+ exp = @variant.id.to_s
146
+ @page.should render(tag).as(exp)
147
+ end
148
+ end
149
+ describe '<r:name />' do
150
+ it 'should render the product name' do
151
+ tag = %{<r:shop:product:variant:name />}
152
+ exp = @variant.name
153
+ @page.should render(tag).as(exp)
154
+ end
155
+ end
156
+ describe '<r:sku />' do
157
+ it 'should render the product sku' do
158
+ tag = %{<r:shop:product:variant:sku />}
159
+ exp = @variant.sku
160
+ @page.should render(tag).as(exp)
161
+ end
162
+ end
163
+ describe '<r:price />' do
164
+ it 'should render a standard price' do
165
+ tag = %{<r:shop:product:variant:price />}
166
+ exp = Shop::Tags::Helpers.currency(@variant.price,{})
167
+
168
+ @page.should render(tag).as(exp)
169
+ end
170
+ end
171
+ end
172
+
173
+ end
174
+
175
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe ShopProduct do
4
+
5
+ dataset :shop_products
6
+
7
+ before :each do
8
+ @product = shop_products(:crusty_bread)
9
+ end
10
+
11
+ it 'should have many variants' do
12
+ @product.variants.is_a?(Array).should be_true
13
+ end
14
+
15
+ end
@@ -0,0 +1,92 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe ShopProductVariant do
4
+
5
+ dataset :shop_products, :shop_product_variants
6
+
7
+ describe 'relationships' do
8
+ before :each do
9
+ @product = shop_products(:crusty_bread)
10
+ end
11
+
12
+ context 'product' do
13
+ it 'should belong to one' do
14
+ @product_variant = shop_product_variants(:mouldy_crusty_bread)
15
+ @product_variant.product.should === @product
16
+ end
17
+ end
18
+ end
19
+
20
+ describe 'validations' do
21
+ before :each do
22
+ @product_variant = shop_product_variants(:mouldy_crusty_bread)
23
+ end
24
+ context 'product' do
25
+ it 'should require' do
26
+ @product_variant.product = nil
27
+ @product_variant.valid?.should be_false
28
+ end
29
+ end
30
+ context 'name' do
31
+ it 'should require' do
32
+ @product_variant.name = nil
33
+ @product_variant.valid?.should be_false
34
+ end
35
+ it 'should be unique within product' do
36
+ @product_variant.name = shop_product_variants(:fresh_crusty_bread).name
37
+ @product_variant.valid?.should be_false
38
+
39
+ @product_variant.name = shop_product_variants(:royal_soft_bread).name
40
+ @product_variant.valid?.should be_true
41
+ end
42
+ end
43
+ context 'price' do
44
+ it 'should not require' do
45
+ @product_variant.price = nil
46
+ @product_variant.valid?.should be_true
47
+ end
48
+ end
49
+ end
50
+
51
+ describe '#price' do
52
+ before :each do
53
+ @product_variant = shop_product_variants(:mouldy_crusty_bread)
54
+ end
55
+ context 'positive price' do
56
+ before :each do
57
+ @product_variant.price = 100.00
58
+ end
59
+ it 'should return the product price plus the variant price' do
60
+ @product_variant.price.to_f.should === (@product_variant.product.price.to_f + 100.00)
61
+ end
62
+ end
63
+ context 'negative price' do
64
+ before :each do
65
+ @product_variant.price = -100.00
66
+ end
67
+ it 'should return the product price plus the variant price' do
68
+ @product_variant.price.to_f.should === (@product_variant.product.price.to_f - 100.00)
69
+ end
70
+ end
71
+ end
72
+
73
+ describe '#sku' do
74
+ before :each do
75
+ @product_variant = shop_product_variants(:mouldy_crusty_bread)
76
+ stub(@product_variant).name { 'mouldy and yucky'}
77
+ end
78
+ it 'should return a concatenation of its name and products sku' do
79
+ @product_variant.sku.should === "#{@product_variant.product.sku}-mouldy_and_yucky"
80
+ end
81
+ end
82
+
83
+ describe '#sku' do
84
+ before :each do
85
+ @product_variant = shop_product_variants(:mouldy_crusty_bread)
86
+ end
87
+ it 'should return its products slug' do
88
+ @product_variant.slug.should === @product_variant.product.slug
89
+ end
90
+ end
91
+
92
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe ShopVariant do
4
+
5
+ dataset :shop_variants, :shop_categories
6
+
7
+ describe 'validations' do
8
+ before :each do
9
+ @variant = shop_variants(:bread_states)
10
+ end
11
+
12
+ context 'name' do
13
+ it 'should require' do
14
+ @variant.name = nil
15
+ @variant.valid?.should === false
16
+ end
17
+ it 'should be unique' do
18
+ @other = shop_variants(:milk_states)
19
+ @other.name = @variant.name
20
+ @other.valid?.should === false
21
+ end
22
+ end
23
+
24
+ context 'options' do
25
+ it 'should require' do
26
+ @variant.options_json = nil
27
+ @variant.valid?.should === false
28
+ end
29
+ end
30
+ end
31
+
32
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format specdoc
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,23 @@
1
+ unless defined? RADIANT_ROOT
2
+ ENV["RAILS_ENV"] = "test"
3
+ case
4
+ when ENV["RADIANT_ENV_FILE"]
5
+ require ENV["RADIANT_ENV_FILE"]
6
+ when File.dirname(__FILE__) =~ %r{vendor/radiant/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 "#{RADIANT_ROOT}/spec/spec_helper"
13
+
14
+ Dataset::Resolver.default << (File.dirname(__FILE__) + "/../../shop/spec/datasets")
15
+ Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets")
16
+
17
+ if File.directory?(File.dirname(__FILE__) + "/matchers")
18
+ Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file }
19
+ end
20
+
21
+ Spec::Runner.configure do |config|
22
+ config.mock_with :rr
23
+ end
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: radiant-shop_variants-extension
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Dirk Kelly
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-11-10 00:00:00 +08:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ name: radiant-shop-extension
34
+ requirement: *id001
35
+ description: "RadiantShop: Create variants of products, with alternative prices"
36
+ email: dk@dirkkelly.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - README
43
+ files:
44
+ - .gitignore
45
+ - README
46
+ - Rakefile
47
+ - VERSION
48
+ - app/controllers/admin/shop/products/variant_templates_controller.rb
49
+ - app/controllers/admin/shop/products/variants_controller.rb
50
+ - app/controllers/admin/shop/variants_controller.rb
51
+ - app/models/shop_product_variant.rb
52
+ - app/models/shop_variant.rb
53
+ - app/views/admin/shop/products/edit/buttons/_browse_templates.html.haml
54
+ - app/views/admin/shop/products/edit/buttons/_new_variant.html.haml
55
+ - app/views/admin/shop/products/edit/parts/_variants.html.haml
56
+ - app/views/admin/shop/products/edit/popups/_browse_templates.html.haml
57
+ - app/views/admin/shop/products/edit/popups/_new_variant.html.haml
58
+ - app/views/admin/shop/products/edit/shared/_variant.html.haml
59
+ - app/views/admin/shop/products/index/buttons/_variants.html.haml
60
+ - app/views/admin/shop/variants/edit.html.haml
61
+ - app/views/admin/shop/variants/edit/_foot.html.haml
62
+ - app/views/admin/shop/variants/edit/_form.html.haml
63
+ - app/views/admin/shop/variants/edit/_head.html.haml
64
+ - app/views/admin/shop/variants/edit/_inputs.html.haml
65
+ - app/views/admin/shop/variants/edit/_meta.html.haml
66
+ - app/views/admin/shop/variants/edit/_parts.html.haml
67
+ - app/views/admin/shop/variants/edit/_popups.html.haml
68
+ - app/views/admin/shop/variants/edit/inputs/_name.html.haml
69
+ - app/views/admin/shop/variants/edit/inputs/_options.html.haml
70
+ - app/views/admin/shop/variants/index.html.haml
71
+ - app/views/admin/shop/variants/index/_foot.html.haml
72
+ - app/views/admin/shop/variants/index/_head.html.haml
73
+ - app/views/admin/shop/variants/index/_variant.html.haml
74
+ - app/views/admin/shop/variants/index/buttons/_add_variant.html.haml
75
+ - app/views/admin/shop/variants/index/buttons/_categories.html.haml
76
+ - app/views/admin/shop/variants/new.html.haml
77
+ - app/views/admin/shop/variants/remove.html.haml
78
+ - config/locales/en.yml
79
+ - config/routes.rb
80
+ - cucumber.yml
81
+ - db/migrate/20101015162238_setup_shop_variants.rb
82
+ - features/support/env.rb
83
+ - features/support/paths.rb
84
+ - lib/shop_variants/controllers/products_controller.rb
85
+ - lib/shop_variants/interface/variants.rb
86
+ - lib/shop_variants/models/product.rb
87
+ - lib/shop_variants/tags/helpers.rb
88
+ - lib/shop_variants/tags/product_variant.rb
89
+ - lib/tasks/shop_variants_extension_tasks.rake
90
+ - public/javascripts/admin/extensions/shop/variants/edit.js
91
+ - public/stylesheets/sass/admin/extensions/shop/variants/edit.sass
92
+ - radiant-shop_variants-extension.gemspec
93
+ - shop_variants_extension.rb
94
+ - spec/controllers/admin/shop/products/variant_templates_controller_spec.rb
95
+ - spec/controllers/admin/shop/products/variants_controller_spec.rb
96
+ - spec/controllers/admin/shop/variants_controller_spec.rb
97
+ - spec/datasets/shop_product_variants.rb
98
+ - spec/datasets/shop_variants.rb
99
+ - spec/lib/shop_variants/tags/helpers_spec.rb
100
+ - spec/lib/shop_variants/tags/product_variant_spec.rb
101
+ - spec/models/shop_product_spec.rb
102
+ - spec/models/shop_product_variant_spec.rb
103
+ - spec/models/shop_variant_spec.rb
104
+ - spec/spec.opts
105
+ - spec/spec_helper.rb
106
+ has_rdoc: true
107
+ homepage: http://github.com/thefrontiergroup/shop_variants
108
+ licenses: []
109
+
110
+ post_install_message:
111
+ rdoc_options:
112
+ - --charset=UTF-8
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !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
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ hash: 3
130
+ segments:
131
+ - 0
132
+ version: "0"
133
+ requirements: []
134
+
135
+ rubyforge_project:
136
+ rubygems_version: 1.3.7
137
+ signing_key:
138
+ specification_version: 3
139
+ summary: Shop Variants Extension for Radiant CMS
140
+ test_files:
141
+ - spec/controllers/admin/shop/products/variant_templates_controller_spec.rb
142
+ - spec/controllers/admin/shop/products/variants_controller_spec.rb
143
+ - spec/controllers/admin/shop/variants_controller_spec.rb
144
+ - spec/datasets/shop_product_variants.rb
145
+ - spec/datasets/shop_variants.rb
146
+ - spec/lib/shop_variants/tags/helpers_spec.rb
147
+ - spec/lib/shop_variants/tags/product_variant_spec.rb
148
+ - spec/models/shop_product_spec.rb
149
+ - spec/models/shop_product_variant_spec.rb
150
+ - spec/models/shop_variant_spec.rb
151
+ - spec/spec_helper.rb