spree_product_hover_zoom 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +3 -0
  7. data/LICENSE +26 -0
  8. data/README.md +54 -0
  9. data/Rakefile +29 -0
  10. data/Versionfile +1 -0
  11. data/app/assets/images/zoom.gif +0 -0
  12. data/app/assets/javascripts/spree/backend/spree_product_hover_zoom.js +2 -0
  13. data/app/assets/javascripts/spree/frontend/spree_product_hover_zoom.js.coffee.erb +52 -0
  14. data/app/assets/stylesheets/spree/backend/spree_product_hover_zoom.css +4 -0
  15. data/app/assets/stylesheets/spree/frontend/spree_product_hover_zoom.css +25 -0
  16. data/app/models/spree/product_zoom_configuration.rb +3 -0
  17. data/app/overrides/spree/products/_thumbnails/add_lightbox_to_thumbnails.html.erb.deface +3 -0
  18. data/app/overrides/spree/products/_thumbnails/add_lightbox_to_thumbnails.html.erb.deface~HEAD +2 -0
  19. data/app/overrides/spree/products/_thumbnails/swap_product_variant_images.deface +3 -0
  20. data/app/overrides/spree/products/show.rb +6 -0
  21. data/app/views/spree/products/_hover_zoom.html.erb +1 -0
  22. data/app/views/spree/products/_image.html.erb +7 -0
  23. data/app/views/spree/products/_image0.html.erb +40 -0
  24. data/config/locales/en.yml +5 -0
  25. data/config/routes.rb +3 -0
  26. data/lib/generators/spree_product_hover_zoom/install/install_generator.rb +17 -0
  27. data/lib/spree_product_hover_zoom.rb +2 -0
  28. data/lib/spree_product_hover_zoom/engine.rb +34 -0
  29. data/lib/spree_product_hover_zoom/factories.rb +47 -0
  30. data/script/rails +7 -0
  31. data/spec/features/zoom_spec.rb +144 -0
  32. data/spec/products_images/1/mini/product1.jpg +0 -0
  33. data/spec/products_images/1/product/product1.jpg +0 -0
  34. data/spec/products_images/2/mini/product2.jpg +0 -0
  35. data/spec/products_images/2/product/product2.jpg +0 -0
  36. data/spec/products_images/3/mini/product1.jpg +0 -0
  37. data/spec/products_images/3/product/product1.jpg +0 -0
  38. data/spec/products_images/4/mini/product2.jpg +0 -0
  39. data/spec/products_images/4/product/product2.jpg +0 -0
  40. data/spec/products_images/info.txt +3 -0
  41. data/spec/spec_helper.rb +77 -0
  42. data/spree-zoom-on-hover.gif +0 -0
  43. data/spree_product_hover_zoom.gemspec +29 -0
  44. data/vendor/assets/images/store/blank.gif +0 -0
  45. data/vendor/assets/javascripts/drift.min.js +1 -0
  46. data/vendor/assets/javascripts/luminous.js +697 -0
  47. data/vendor/assets/stylesheets/drift-basic.css +151 -0
  48. data/vendor/assets/stylesheets/luminous-basic.css +195 -0
  49. metadata +245 -0
@@ -0,0 +1,151 @@
1
+ @keyframes drift-fadeZoomIn {
2
+ 0% { transform: scale(1.5); opacity: 0; }
3
+ 100% { transform: scale(1); opacity: 1; }
4
+ }
5
+
6
+ @keyframes drift-fadeZoomOut {
7
+ 0% { transform: scale(1); opacity: 1; }
8
+ 15% { transform: scale(1.1); opacity: 1; }
9
+ 100% { transform: scale(0.5); opacity: 0; }
10
+ }
11
+
12
+ @keyframes drift-loader-rotate {
13
+ 0% { transform: translate(-50%, -50%) rotate(0); }
14
+ 50% { transform: translate(-50%, -50%) rotate(-180deg); }
15
+ 100% { transform: translate(-50%, -50%) rotate(-360deg); }
16
+ }
17
+
18
+ @keyframes drift-loader-before {
19
+ 0% { transform: scale(1); }
20
+ 10% { transform: scale(1.2) translateX(6px); }
21
+ 25% { transform: scale(1.3) translateX(8px); }
22
+ 40% { transform: scale(1.2) translateX(6px); }
23
+ 50% { transform: scale(1); }
24
+ 60% { transform: scale(0.8) translateX(6px); }
25
+ 75% { transform: scale(0.7) translateX(8px); }
26
+ 90% { transform: scale(0.8) translateX(6px); }
27
+ 100% { transform: scale(1); }
28
+ }
29
+
30
+ @keyframes drift-loader-after {
31
+ 0% { transform: scale(1); }
32
+ 10% { transform: scale(1.2) translateX(-6px); }
33
+ 25% { transform: scale(1.3) translateX(-8px); }
34
+ 40% { transform: scale(1.2) translateX(-6px); }
35
+ 50% { transform: scale(1); }
36
+ 60% { transform: scale(0.8) translateX(-6px); }
37
+ 75% { transform: scale(0.7) translateX(-8px); }
38
+ 90% { transform: scale(0.8) translateX(-6px); }
39
+ 100% { transform: scale(1); }
40
+ }
41
+
42
+ @-webkit-keyframes drift-fadeZoomIn {
43
+ 0% { -webkit-transform: scale(1.5); opacity: 0; }
44
+ 100% { -webkit-transform: scale(1); opacity: 1; }
45
+ }
46
+
47
+ @-webkit-keyframes drift-fadeZoomOut {
48
+ 0% { -webkit-transform: scale(1); opacity: 1; }
49
+ 15% { -webkit-transform: scale(1.1); opacity: 1; }
50
+ 100% { -webkit-transform: scale(0.5); opacity: 0; }
51
+ }
52
+
53
+ @-webkit-keyframes drift-loader-rotate {
54
+ 0% { -webkit-transform: translate(-50%, -50%) rotate(0); }
55
+ 50% { -webkit-transform: translate(-50%, -50%) rotate(-180deg); }
56
+ 100% { -webkit-transform: translate(-50%, -50%) rotate(-360deg); }
57
+ }
58
+
59
+ @-webkit-keyframes drift-loader-before {
60
+ 0% { -webkit-transform: scale(1); }
61
+ 10% { -webkit-transform: scale(1.2) translateX(6px); }
62
+ 25% { -webkit-transform: scale(1.3) translateX(8px); }
63
+ 40% { -webkit-transform: scale(1.2) translateX(6px); }
64
+ 50% { -webkit-transform: scale(1); }
65
+ 60% { -webkit-transform: scale(0.8) translateX(6px); }
66
+ 75% { -webkit-transform: scale(0.7) translateX(8px); }
67
+ 90% { -webkit-transform: scale(0.8) translateX(6px); }
68
+ 100% { -webkit-transform: scale(1); }
69
+ }
70
+
71
+ @-webkit-keyframes drift-loader-after {
72
+ 0% { -webkit-transform: scale(1); }
73
+ 10% { -webkit-transform: scale(1.2) translateX(-6px); }
74
+ 25% { -webkit-transform: scale(1.3) translateX(-8px); }
75
+ 40% { -webkit-transform: scale(1.2) translateX(-6px); }
76
+ 50% { -webkit-transform: scale(1); }
77
+ 60% { -webkit-transform: scale(0.8) translateX(-6px); }
78
+ 75% { -webkit-transform: scale(0.7) translateX(-8px); }
79
+ 90% { -webkit-transform: scale(0.8) translateX(-6px); }
80
+ 100% { -webkit-transform: scale(1); }
81
+ }
82
+
83
+ .drift-zoom-pane {
84
+ background: rgba(0, 0, 0, 0.5);
85
+ /* This is required because of a bug that causes border-radius to not
86
+ work with child elements in certain cases. */
87
+ transform: translate3d(0, 0, 0);
88
+ -webkit-transform: translate3d(0, 0, 0);
89
+ z-index: 100;
90
+ }
91
+
92
+ .drift-zoom-pane.drift-opening {
93
+ animation: drift-fadeZoomIn 180ms ease-out;
94
+ -webkit-animation: drift-fadeZoomIn 180ms ease-out;
95
+ }
96
+
97
+ .drift-zoom-pane.drift-closing {
98
+ animation: drift-fadeZoomOut 210ms ease-in;
99
+ -webkit-animation: drift-fadeZoomOut 210ms ease-in;
100
+ }
101
+
102
+ .drift-zoom-pane.drift-inline {
103
+ position: absolute;
104
+ width: 150px;
105
+ height: 150px;
106
+ border-radius: 75px;
107
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3);
108
+ }
109
+
110
+ .drift-loading .drift-zoom-pane-loader {
111
+ display: block;
112
+ position: absolute;
113
+ top: 50%;
114
+ left: 50%;
115
+ transform: translate(-50%, -50%);
116
+ -webkit-transform: translate(-50%, -50%);
117
+ width: 66px;
118
+ height: 20px;
119
+ animation: drift-loader-rotate 1800ms infinite linear;
120
+ -webkit-animation: drift-loader-rotate 1800ms infinite linear;
121
+ }
122
+
123
+ .drift-zoom-pane-loader:before, .drift-zoom-pane-loader:after {
124
+ content: "";
125
+ display: block;
126
+ width: 20px;
127
+ height: 20px;
128
+ position: absolute;
129
+ top: 50%;
130
+ margin-top: -10px;
131
+ border-radius: 20px;
132
+ background: rgba(255, 255, 255, 0.9);
133
+ }
134
+
135
+ .drift-zoom-pane-loader:before {
136
+ left: 0;
137
+ animation: drift-loader-before 1800ms infinite linear;
138
+ -webkit-animation: drift-loader-before 1800ms infinite linear;
139
+ }
140
+
141
+ .drift-zoom-pane-loader:after {
142
+ right: 0;
143
+ animation: drift-loader-after 1800ms infinite linear;
144
+ -webkit-animation: drift-loader-after 1800ms infinite linear;
145
+ animation-delay: -900ms;
146
+ -webkit-animation-delay: -900ms;
147
+ }
148
+
149
+ .drift-bounding-box {
150
+ background-color: rgba(0, 0, 0, 0.4);
151
+ }
@@ -0,0 +1,195 @@
1
+ @keyframes lum-fade {
2
+ 0% { opacity: 0; }
3
+ 100% { opacity: 1; }
4
+ }
5
+
6
+ @keyframes lum-fadeZoom {
7
+ 0% { transform: scale(0.5); opacity: 0; }
8
+ 100% { transform: scale(1); opacity: 1; }
9
+ }
10
+
11
+ @keyframes lum-loader-rotate {
12
+ 0% { transform: translate(-50%, -50%) rotate(0); }
13
+ 50% { transform: translate(-50%, -50%) rotate(-180deg); }
14
+ 100% { transform: translate(-50%, -50%) rotate(-360deg); }
15
+ }
16
+
17
+ @keyframes lum-loader-before {
18
+ 0% { transform: scale(1); }
19
+ 10% { transform: scale(1.2) translateX(6px); }
20
+ 25% { transform: scale(1.3) translateX(8px); }
21
+ 40% { transform: scale(1.2) translateX(6px); }
22
+ 50% { transform: scale(1); }
23
+ 60% { transform: scale(0.8) translateX(6px); }
24
+ 75% { transform: scale(0.7) translateX(8px); }
25
+ 90% { transform: scale(0.8) translateX(6px); }
26
+ 100% { transform: scale(1); }
27
+ }
28
+
29
+ @keyframes lum-loader-after {
30
+ 0% { transform: scale(1); }
31
+ 10% { transform: scale(1.2) translateX(-6px); }
32
+ 25% { transform: scale(1.3) translateX(-8px); }
33
+ 40% { transform: scale(1.2) translateX(-6px); }
34
+ 50% { transform: scale(1); }
35
+ 60% { transform: scale(0.8) translateX(-6px); }
36
+ 75% { transform: scale(0.7) translateX(-8px); }
37
+ 90% { transform: scale(0.8) translateX(-6px); }
38
+ 100% { transform: scale(1); }
39
+ }
40
+
41
+ .lum-lightbox {
42
+ background: rgba(0, 0, 0, 0.6);
43
+ z-index: 101;
44
+ }
45
+
46
+ .lum-lightbox-inner {
47
+ top: 2.5%;
48
+ right: 2.5%;
49
+ bottom: 2.5%;
50
+ left: 2.5%;
51
+ }
52
+
53
+ .lum-lightbox-inner img {
54
+ position: relative;
55
+ }
56
+
57
+ .lum-lightbox-inner .lum-lightbox-caption {
58
+ margin: 0 auto;
59
+ color: #fff;
60
+ max-width: 700px;
61
+ text-align: center;
62
+ }
63
+
64
+ .lum-loading .lum-lightbox-loader {
65
+ display: block;
66
+ position: absolute;
67
+ top: 50%;
68
+ left: 50%;
69
+ transform: translate(-50%, -50%);
70
+ width: 66px;
71
+ height: 20px;
72
+ animation: lum-loader-rotate 1800ms infinite linear;
73
+ }
74
+
75
+ .lum-lightbox-loader:before, .lum-lightbox-loader:after {
76
+ content: "";
77
+ display: block;
78
+ width: 20px;
79
+ height: 20px;
80
+ position: absolute;
81
+ top: 50%;
82
+ margin-top: -10px;
83
+ border-radius: 20px;
84
+ background: rgba(255, 255, 255, 0.9);
85
+ }
86
+
87
+ .lum-lightbox-loader:before {
88
+ left: 0;
89
+ animation: lum-loader-before 1800ms infinite linear;
90
+ }
91
+
92
+ .lum-lightbox-loader:after {
93
+ right: 0;
94
+ animation: lum-loader-after 1800ms infinite linear;
95
+ animation-delay: -900ms;
96
+ }
97
+
98
+ .lum-lightbox.lum-opening {
99
+ animation: lum-fade 180ms ease-out;
100
+ }
101
+
102
+ .lum-lightbox.lum-opening .lum-lightbox-inner {
103
+ animation: lum-fadeZoom 180ms ease-out;
104
+ }
105
+
106
+ .lum-lightbox.lum-closing {
107
+ animation: lum-fade 300ms ease-in;
108
+ animation-direction: reverse;
109
+ }
110
+
111
+ .lum-lightbox.lum-closing .lum-lightbox-inner {
112
+ animation: lum-fadeZoom 300ms ease-in;
113
+ animation-direction: reverse;
114
+ }
115
+
116
+ .lum-img {
117
+ transition: opacity 120ms ease-out;
118
+ }
119
+
120
+ .lum-loading .lum-img {
121
+ opacity: 0;
122
+ }
123
+
124
+ .lum-gallery-button {
125
+ overflow: hidden;
126
+ text-indent: 150%;
127
+ white-space: nowrap;
128
+ background: transparent;
129
+ border: 0;
130
+ margin: 0;
131
+ padding: 0;
132
+ outline: 0;
133
+ position: absolute;
134
+ top: 50%;
135
+ transform: translateY(-50%);
136
+ height: 100px;
137
+ max-height: 100%;
138
+ width: 60px;
139
+ cursor: pointer;
140
+ }
141
+
142
+ .lum-previous-button {
143
+ left: 12px;
144
+ }
145
+
146
+ .lum-next-button {
147
+ right: 12px;
148
+ }
149
+
150
+ .lum-gallery-button:after {
151
+ content: "";
152
+ display: block;
153
+ position: absolute;
154
+ top: 50%;
155
+ width: 36px;
156
+ height: 36px;
157
+ border-top: 4px solid rgba(255, 255, 255, 0.8);
158
+ }
159
+
160
+ .lum-previous-button:after {
161
+ transform: translateY(-50%) rotate(-45deg);
162
+ border-left: 4px solid rgba(255, 255, 255, 0.8);
163
+ box-shadow: -2px 0 rgba(0, 0, 0, 0.2);
164
+ left: 12%;
165
+ border-radius: 3px 0 0 0;
166
+ }
167
+
168
+ .lum-next-button:after {
169
+ transform: translateY(-50%) rotate(45deg);
170
+ border-right: 4px solid rgba(255, 255, 255, 0.8);
171
+ box-shadow: 2px 0 rgba(0, 0, 0, 0.2);
172
+ right: 12%;
173
+ border-radius: 0 3px 0 0;
174
+ }
175
+
176
+ /* This media query makes screens less than 460px wide display in a "fullscreen"-esque mode. Users can then scroll around inside the lightbox to see the entire image. */
177
+ @media (max-width: 460px) {
178
+ .lum-lightbox-image-wrapper {
179
+ display: block;
180
+ overflow: auto;
181
+ -webkit-overflow-scrolling: touch;
182
+ }
183
+
184
+ .lum-lightbox-caption {
185
+ width: 100%;
186
+ position: absolute;
187
+ bottom: 0;
188
+ }
189
+
190
+ .lum-lightbox-inner img {
191
+ max-width: none;
192
+ max-height: none;
193
+ display: block;
194
+ }
195
+ }
metadata ADDED
@@ -0,0 +1,245 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_product_hover_zoom
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Vinz Loh
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-06-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: spree_core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: spree_frontend
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: capybara
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.4'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: database_cleaner
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: factory_girl
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.5'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '4.5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: ffaker
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.1'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.1'
111
+ - !ruby/object:Gem::Dependency
112
+ name: sass-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '5.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '5.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: coffee-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '='
130
+ - !ruby/object:Gem::Version
131
+ version: '4.2'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '='
137
+ - !ruby/object:Gem::Version
138
+ version: '4.2'
139
+ - !ruby/object:Gem::Dependency
140
+ name: selenium-webdriver
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: sqlite3
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description:
168
+ email: vincent.ml@gmail.com
169
+ executables: []
170
+ extensions: []
171
+ extra_rdoc_files: []
172
+ files:
173
+ - ".gitignore"
174
+ - ".rspec"
175
+ - ".ruby-gemset"
176
+ - ".ruby-version"
177
+ - Gemfile
178
+ - LICENSE
179
+ - README.md
180
+ - Rakefile
181
+ - Versionfile
182
+ - app/assets/images/zoom.gif
183
+ - app/assets/javascripts/spree/backend/spree_product_hover_zoom.js
184
+ - app/assets/javascripts/spree/frontend/spree_product_hover_zoom.js.coffee.erb
185
+ - app/assets/stylesheets/spree/backend/spree_product_hover_zoom.css
186
+ - app/assets/stylesheets/spree/frontend/spree_product_hover_zoom.css
187
+ - app/models/spree/product_zoom_configuration.rb
188
+ - app/overrides/spree/products/_thumbnails/add_lightbox_to_thumbnails.html.erb.deface
189
+ - app/overrides/spree/products/_thumbnails/add_lightbox_to_thumbnails.html.erb.deface~HEAD
190
+ - app/overrides/spree/products/_thumbnails/swap_product_variant_images.deface
191
+ - app/overrides/spree/products/show.rb
192
+ - app/views/spree/products/_hover_zoom.html.erb
193
+ - app/views/spree/products/_image.html.erb
194
+ - app/views/spree/products/_image0.html.erb
195
+ - config/locales/en.yml
196
+ - config/routes.rb
197
+ - lib/generators/spree_product_hover_zoom/install/install_generator.rb
198
+ - lib/spree_product_hover_zoom.rb
199
+ - lib/spree_product_hover_zoom/engine.rb
200
+ - lib/spree_product_hover_zoom/factories.rb
201
+ - script/rails
202
+ - spec/features/zoom_spec.rb
203
+ - spec/products_images/1/mini/product1.jpg
204
+ - spec/products_images/1/product/product1.jpg
205
+ - spec/products_images/2/mini/product2.jpg
206
+ - spec/products_images/2/product/product2.jpg
207
+ - spec/products_images/3/mini/product1.jpg
208
+ - spec/products_images/3/product/product1.jpg
209
+ - spec/products_images/4/mini/product2.jpg
210
+ - spec/products_images/4/product/product2.jpg
211
+ - spec/products_images/info.txt
212
+ - spec/spec_helper.rb
213
+ - spree-zoom-on-hover.gif
214
+ - spree_product_hover_zoom.gemspec
215
+ - vendor/assets/images/store/blank.gif
216
+ - vendor/assets/javascripts/drift.min.js
217
+ - vendor/assets/javascripts/luminous.js
218
+ - vendor/assets/stylesheets/drift-basic.css
219
+ - vendor/assets/stylesheets/luminous-basic.css
220
+ homepage: http://cloudcoder.com.my
221
+ licenses: []
222
+ metadata: {}
223
+ post_install_message:
224
+ rdoc_options: []
225
+ require_paths:
226
+ - lib
227
+ required_ruby_version: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ version: 1.8.7
232
+ required_rubygems_version: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ requirements:
238
+ - none
239
+ rubyforge_project:
240
+ rubygems_version: 2.6.11
241
+ signing_key:
242
+ specification_version: 4
243
+ summary: A Spree extension that adds gallery view and zoom-on-hover functionality
244
+ for product images.
245
+ test_files: []