spree_variant_options 0.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,68 @@
1
+ #product-variants {
2
+
3
+ }
4
+
5
+ #product-details .price.unselected {
6
+ color: #bbb;
7
+ }
8
+
9
+ .variant-option-type {
10
+ margin-bottom: 0;
11
+ }
12
+ #product-variants ul.variant-option-values {
13
+ list-style-type: none;
14
+ margin-bottom: 1em;
15
+ }
16
+ .variant-option-values li {
17
+ display: block;
18
+ position: relative;
19
+ float: left;
20
+ }
21
+ .variant-option-values li a {
22
+ display: block;
23
+ background-color: #f9f9f9;
24
+ border: 2px solid #eee;
25
+ padding: 2px 9px;
26
+ margin: 3px 3px 0 0;
27
+ text-decoration: none;
28
+ cursor: pointer;
29
+ -webkit-border-radius: 4px;
30
+ -moz-border-radius: 4px;
31
+ border-radius: 4px;
32
+ }
33
+ .variant-option-values li.clear {
34
+ border: 0;
35
+ float: none;
36
+ clear: both;
37
+ }
38
+ li.clear-option a.clear-button {
39
+ display: none;
40
+ font-weight: bold;
41
+ background-color: #fff;
42
+ border-color: #FDE2E2;
43
+ color: #c00e0e;
44
+ }
45
+ li.clear-option a.clear-button:hover {
46
+ border-color: #c00e0e;
47
+ background-color: #EF2E2E;
48
+ color: #fff;
49
+ }
50
+ .option-value.selected,
51
+ .option-value.in-stock:hover {
52
+ background-color: #1491EB;
53
+ border-color: #1072B9;
54
+ color: #fff;
55
+ }
56
+ .option-value.out-of-stock {
57
+ display: block;
58
+ background: transparent url(/images/out-of-stock.png) 0 0 repeat;
59
+ color: #aaa;
60
+ cursor: default;
61
+ }
62
+ .option-value.locked,
63
+ .option-value.locked:hover {
64
+ background-color: #fff;
65
+ border-color: #f0f0f0;
66
+ color: #ddd;
67
+ cursor: default;
68
+ }
@@ -0,0 +1,37 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "spree_variant_options/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "spree_variant_options"
7
+ s.version = SpreeVariantOptions::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Spencer Steffen"]
10
+ s.email = ["spencer@citrusme.com"]
11
+ s.homepage = "https://github.com/citrus/spree_variant_options"
12
+ s.summary = %q{Spree Variant Options is a very simple Spree extension that breaks your variants down into their option types and option values.}
13
+ s.description = %q{Spree Variant Options is a very simple Spree extension that breaks your variants down into their option types and option values. Please see the documentation for more details.}
14
+
15
+ s.rubyforge_project = "spree_variant_options"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ # Spree
23
+ s.add_dependency('spree_core', '>= 0.30.1')
24
+
25
+ # Development
26
+ s.add_development_dependency('spree_sample', '>= 0.60.0')
27
+ s.add_development_dependency('dummier', '>= 0.1.1')
28
+ s.add_development_dependency('shoulda', '>= 2.11.3')
29
+ s.add_development_dependency('spork', '>= 0.9.0.rc8')
30
+ s.add_development_dependency('spork-testunit', '>= 0.0.5')
31
+ s.add_development_dependency('factory_girl', '>= 2.0.0.beta2')
32
+ s.add_development_dependency('cucumber-rails', '>= 0.4.1')
33
+ s.add_development_dependency('database_cleaner', '>= 0.6.7')
34
+ s.add_development_dependency('capybara', '>= 0.4.1')
35
+ s.add_development_dependency('sqlite3', '>= 1.3.3')
36
+
37
+ end
@@ -0,0 +1,22 @@
1
+ # Configure Rails Envinronment
2
+ ENV["RAILS_ENV"] = "test"
3
+ require 'spork'
4
+
5
+ Spork.prefork do
6
+
7
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
8
+ require "rails/test_help"
9
+ require "shoulda"
10
+ require "factory_girl"
11
+ require "sqlite3"
12
+ require "faker"
13
+
14
+ # Run any available migration if needed
15
+ ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
16
+ end
17
+
18
+ Spork.each_run do
19
+
20
+ load File.expand_path("../../features/support/factories.rb", __FILE__)
21
+
22
+ end
@@ -0,0 +1,46 @@
1
+ require_relative '../test_helper'
2
+
3
+ class ProductTest < ActiveSupport::TestCase
4
+
5
+ setup do
6
+ @methods = %w(option_values grouped_option_values variant_options_hash)
7
+ end
8
+
9
+ context "any product" do
10
+
11
+ setup do
12
+ @product = Factory.create(:product)
13
+ end
14
+
15
+ should "have proper methods" do
16
+ @methods.each do |m|
17
+ assert @product.respond_to?(m)
18
+ end
19
+ end
20
+
21
+ end
22
+
23
+
24
+ context "a product with variants" do
25
+
26
+ setup do
27
+ @product = Factory.create(:product_with_variants)
28
+ end
29
+
30
+ should "have variants and option types and values" do
31
+ assert_equal 2, @product.option_types.count
32
+ assert_equal 12, @product.option_values.count
33
+ assert_equal 32, @product.variants.count
34
+ end
35
+
36
+ should "have values grouped by type" do
37
+ expected = { "size" => 4, "color" => 8 }
38
+ assert_equal 2, @product.grouped_option_values.count
39
+ @product.grouped_option_values.each do |type, values|
40
+ assert_equal expected[type.name], values.length
41
+ end
42
+ end
43
+
44
+ end
45
+
46
+ end
metadata ADDED
@@ -0,0 +1,217 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_variant_options
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: 6
5
+ version: 0.1.0.rc1
6
+ platform: ruby
7
+ authors:
8
+ - Spencer Steffen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-06-14 00:00:00 -07:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: spree_core
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.30.1
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: spree_sample
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 0.60.0
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: dummier
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 0.1.1
46
+ type: :development
47
+ prerelease: false
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: shoulda
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 2.11.3
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: spork
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 0.9.0.rc8
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: spork-testunit
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 0.0.5
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: factory_girl
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 2.0.0.beta2
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: cucumber-rails
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 0.4.1
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: *id008
104
+ - !ruby/object:Gem::Dependency
105
+ name: database_cleaner
106
+ requirement: &id009 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: 0.6.7
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: *id009
115
+ - !ruby/object:Gem::Dependency
116
+ name: capybara
117
+ requirement: &id010 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 0.4.1
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: *id010
126
+ - !ruby/object:Gem::Dependency
127
+ name: sqlite3
128
+ requirement: &id011 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: 1.3.3
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: *id011
137
+ description: Spree Variant Options is a very simple Spree extension that breaks your variants down into their option types and option values. Please see the documentation for more details.
138
+ email:
139
+ - spencer@citrusme.com
140
+ executables: []
141
+
142
+ extensions: []
143
+
144
+ extra_rdoc_files: []
145
+
146
+ files:
147
+ - .gitignore
148
+ - Gemfile
149
+ - LICENSE
150
+ - README.md
151
+ - Rakefile
152
+ - Versionfile
153
+ - app/models/product_decorator.rb
154
+ - app/views/products/_cart_form.html.erb
155
+ - app/views/products/_variant_options.html.erb
156
+ - config/cucumber.yml
157
+ - features/step_definitions/variant_options.rb
158
+ - features/step_definitions/web_steps.rb
159
+ - features/support/env.rb
160
+ - features/support/factories.rb
161
+ - features/support/helper_methods.rb
162
+ - features/support/paths.rb
163
+ - features/support/selectors.rb
164
+ - features/variant_options.feature
165
+ - lib/dummy_hooks/after_migrate.rb.sample
166
+ - lib/dummy_hooks/before_migrate.rb
167
+ - lib/spree_variant_options.rb
168
+ - lib/spree_variant_options/version.rb
169
+ - public/images/out-of-stock.png
170
+ - public/javascripts/product.js
171
+ - public/javascripts/variant_options.js
172
+ - public/stylesheets/variant_options.css
173
+ - spree_variant_options.gemspec
174
+ - test/test_helper.rb
175
+ - test/unit/product_test.rb
176
+ has_rdoc: true
177
+ homepage: https://github.com/citrus/spree_variant_options
178
+ licenses: []
179
+
180
+ post_install_message:
181
+ rdoc_options: []
182
+
183
+ require_paths:
184
+ - lib
185
+ required_ruby_version: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ hash: -1055832908222487425
191
+ segments:
192
+ - 0
193
+ version: "0"
194
+ required_rubygems_version: !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ">"
198
+ - !ruby/object:Gem::Version
199
+ version: 1.3.1
200
+ requirements: []
201
+
202
+ rubyforge_project: spree_variant_options
203
+ rubygems_version: 1.6.2
204
+ signing_key:
205
+ specification_version: 3
206
+ summary: Spree Variant Options is a very simple Spree extension that breaks your variants down into their option types and option values.
207
+ test_files:
208
+ - features/step_definitions/variant_options.rb
209
+ - features/step_definitions/web_steps.rb
210
+ - features/support/env.rb
211
+ - features/support/factories.rb
212
+ - features/support/helper_methods.rb
213
+ - features/support/paths.rb
214
+ - features/support/selectors.rb
215
+ - features/variant_options.feature
216
+ - test/test_helper.rb
217
+ - test/unit/product_test.rb