solidus_zip_zones 0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6e4438dac549ffd8840cdf090930737eedcecbb132ecc1d5765088cc4cd7308b
4
+ data.tar.gz: c5e4e53c3f3f473f73bc797714ffbe2f3d057eb416c53105bf1fa76bfbe5f654
5
+ SHA512:
6
+ metadata.gz: 5cb5b60877b8d0ab37cdb9ce9d81ccfd3265228381309b2a9ae1d4458048b1522bf87124bd40ecfc0f58e60f1f6b75d98b5b6efc22d4958f200e54f59c531306
7
+ data.tar.gz: c8afd353fb71bc3f5f860e94fb7a0b58428a4580982fd07a7c4c7cfa267ea7c11b41bebc0a4107985c9e9082f8b9ae1766a63f47b350746a8f5a643bf9d84932
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2017 [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.
data/README.md ADDED
@@ -0,0 +1,53 @@
1
+ [![Build Status](https://travis-ci.org/nebulab/solidus_zip_zones.svg?branch=master)](https://travis-ci.org/nebulab/solidus_zip_zones)
2
+
3
+ SolidusZipZones
4
+ ===============
5
+
6
+ Extract the Spree::Zone by zip code.
7
+
8
+ Installation
9
+ ------------
10
+
11
+ Add solidus_zip_zones to your Gemfile:
12
+
13
+ ```ruby
14
+ gem 'solidus_zip_zones'
15
+ ```
16
+
17
+ Bundle your dependencies and run the installation generator:
18
+
19
+ ```shell
20
+ bundle
21
+ bundle exec rails g solidus_zip_zones:install
22
+ ```
23
+
24
+ Testing
25
+ -------
26
+
27
+ First bundle your dependencies, then run `rake`. `rake` will default to building the dummy app if it does not exist, then it will run specs, and [Rubocop](https://github.com/bbatsov/rubocop) static code analysis. The dummy app can be regenerated by using `rake test_app`.
28
+
29
+ ```shell
30
+ bundle
31
+ bundle exec rake
32
+ ```
33
+
34
+ When testing your applications integration with this extension you may use it's factories.
35
+ Simply add this require statement to your spec_helper:
36
+
37
+ ```ruby
38
+ require 'solidus_zip_zones/factories'
39
+ ```
40
+
41
+ ## License
42
+
43
+ SolidusZipZones is copyright © 2019 [Nebulab](http://nebulab.it/). It is free software, and may be redistributed under the terms specified in the [license].
44
+
45
+ ## About
46
+
47
+ ![Nebulab](http://nebulab.it/assets/images/public/logo.svg)
48
+
49
+ SolidusZipZones is funded and maintained by the [Nebulab](http://nebulab.it/) team.
50
+
51
+ We firmly believe in the power of open-source. [Contact us](http://nebulab.it/contact-us/) if you like our work and you need help with your project design or development.
52
+
53
+ [license]: MIT-LICENSE
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+
5
+ require 'solidus_dev_support/rake_tasks'
6
+ SolidusDevSupport::RakeTasks.install
7
+
8
+ task default: 'extension:specs'
@@ -0,0 +1,3 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/backend/all.js'
3
+ //= require 'spree/backend/views/zones/form_zip_based'
@@ -0,0 +1,47 @@
1
+ $(function(){
2
+ if($('.js-zones-form').length){
3
+ Spree.Views.Zones.FormZipBased = Backbone.View.extend({
4
+ events: {
5
+ 'click [name="zone[kind]"]': 'render'
6
+ },
7
+
8
+ render: function() {
9
+ var kind = this.$('[name="zone[kind]"]:checked').val() || 'state';
10
+
11
+ $('#zip_members').toggleClass('hidden', kind !== 'zip');
12
+ $('#zip_members :input').prop('disabled', kind !== 'zip');
13
+ }
14
+ })
15
+
16
+ var view = new Spree.Views.Zones.FormZipBased({
17
+ el: $('.js-zones-form')
18
+ });
19
+ view.render()
20
+ } else {
21
+ $('#country_based, #state_based').click(function(){
22
+ $('#zip_members #zone_zipcodes').prop('disabled', true)
23
+ $('#zip_members').hide()
24
+ })
25
+
26
+ $('#zip_based').click(function(){
27
+ $('#zip_members #zone_zipcodes').prop('disabled', false)
28
+ $('#zip_members').show()
29
+
30
+ $('#country_members :input, #state_members :input').each(function(){
31
+ $(this).prop('disabled', true)
32
+ })
33
+ $('#country_members, #state_members').hide()
34
+ })
35
+
36
+ if($('#zone_zipcodes').val() != ''){
37
+ $('#zip_based').click()
38
+ } else {
39
+ $('#zip_members').hide()
40
+ }
41
+ }
42
+
43
+ $(".select2-taggable").select2({
44
+ tags: true,
45
+ tokenSeparators: [',', ' ']
46
+ })
47
+ })
@@ -0,0 +1,2 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/frontend/all.js'
@@ -0,0 +1,4 @@
1
+ /*
2
+ Placeholder manifest file.
3
+ the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/backend/all.css'
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Placeholder manifest file.
3
+ the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/frontend/all.css'
4
+ */
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusZipZones
4
+ module TaxLocationDecorator
5
+ def self.prepended(base)
6
+ base.send(:attr_reader, :zipcode)
7
+ end
8
+
9
+ def initialize(country: nil, state: nil, zipcode: nil)
10
+ super(country: country, state: state)
11
+
12
+ @zipcode = zipcode
13
+ end
14
+
15
+ def ==(other)
16
+ super && zipcode == other.zipcode
17
+ end
18
+
19
+ def empty?
20
+ super && zipcode.blank?
21
+ end
22
+
23
+ Spree::Tax::TaxLocation.prepend self
24
+ end
25
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusZipZones
4
+ module ZoneDecorator
5
+ def self.prepended(base)
6
+ base.scope :with_member_ids, ->(state_ids, country_ids, zipcode) do
7
+ if state_ids.blank? && country_ids.blank? && zipcode.blank?
8
+ none
9
+ else
10
+ if country_ids == 233
11
+ zipcode = zipcode.split('-').first
12
+ end
13
+ spree_zone_members_table = Spree::ZoneMember.arel_table
14
+ matching_state =
15
+ spree_zone_members_table[:zoneable_type].eq("Spree::State").
16
+ and(spree_zone_members_table[:zoneable_id].in(state_ids))
17
+ matching_country =
18
+ spree_zone_members_table[:zoneable_type].eq("Spree::Country").
19
+ and(spree_zone_members_table[:zoneable_id].in(country_ids))
20
+ spree_zones_table = Spree::Zone.arel_table
21
+ matching_zipcode = spree_zones_table[:zipcodes].matches("%#{zipcode}%")
22
+ left_joins(:zone_members).where(matching_zipcode.or(matching_state.or(matching_country))).distinct
23
+ end
24
+ end
25
+
26
+ base.scope :for_address, ->(address) do
27
+ if address
28
+ with_member_ids(address.state_id, address.country_id, address.zipcode)
29
+ else
30
+ none
31
+ end
32
+ end
33
+ end
34
+
35
+ def kind
36
+ return 'zip' if zipcodes.present?
37
+
38
+ super
39
+ end
40
+
41
+ Spree::Zone.prepend self
42
+ end
43
+ end
@@ -0,0 +1,6 @@
1
+ <!-- insert_bottom '[data-hook=type] ul' -->
2
+
3
+ <li>
4
+ <%= zone_form.radio_button('kind', 'zip', { id: 'zip_based' }) %>
5
+ <%= label_tag :zip_based, t('spree.zip_based') %>
6
+ </li>
@@ -0,0 +1,3 @@
1
+ <!-- insert_after "erb[loud]:contains('country_members')" -->
2
+
3
+ <%= render partial: 'spree/admin/zones/zip_members', locals: { zone_form: zone_form } %>
@@ -0,0 +1,11 @@
1
+ <div id="zip_members" data-hook="member">
2
+ <fieldset class="no-border-bottom">
3
+ <legend align="center"><%= t('spree.zipcode') %></legend>
4
+
5
+ <%= zone_form.field_container :zipcodes do %>
6
+ <%= zone_form.label :zipcodes, t('spree.zipcode') %><br>
7
+ <%= zone_form.hidden_field :zipcodes, value: '', id: 'hidden_zone_zipcodes' %>
8
+ <%= zone_form.text_field :zipcodes, class: "select2-taggable fullwidth" %>
9
+ <% end %>
10
+ </fieldset>
11
+ </div>
@@ -0,0 +1,7 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: Hello world
6
+ spree:
7
+ zip_based: Zip Based
data/config/routes.rb ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ Spree::Core::Engine.routes.draw do
4
+ # Add your extension routes here
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddZipcodesToSpreeZone < SolidusSupport::Migration[4.2]
2
+ def change
3
+ add_column :spree_zones, :zipcodes, :text
4
+ end
5
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusZipZones
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ class_option :auto_run_migrations, type: :boolean, default: false
7
+
8
+ def add_javascripts
9
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/solidus_zip_zones\n"
10
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/solidus_zip_zones\n"
11
+ end
12
+
13
+ def add_stylesheets
14
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css',
15
+ " *= require spree/frontend/solidus_zip_zones\n", before: %r{\*/}, verbose: true
16
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css',
17
+ " *= require spree/backend/solidus_zip_zones\n", before: %r{\*/}, verbose: true
18
+ end
19
+
20
+ def add_migrations
21
+ run 'bundle exec rake railties:install:migrations FROM=solidus_zip_zones'
22
+ end
23
+
24
+ def run_migrations
25
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]')) # rubocop:disable Layout/LineLength
26
+ if run_migrations
27
+ run 'bundle exec rake db:migrate'
28
+ else
29
+ Rails.logger.debug 'Skipping rake db:migrate, don\'t forget to run it!'
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusZipZones
4
+ class Engine < Rails::Engine
5
+ require 'spree/core'
6
+ isolate_namespace Spree
7
+ engine_name 'solidus_zip_zones'
8
+
9
+ # use rspec for tests
10
+ config.generators do |g|
11
+ g.test_framework :rspec
12
+ end
13
+
14
+ def self.activate
15
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')).sort.each do |c|
16
+ Rails.configuration.cache_classes ? require(c) : load(c)
17
+ end
18
+ end
19
+
20
+ config.to_prepare(&method(:activate).to_proc)
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ FactoryBot.define do
4
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and
5
+ # override them.
6
+ #
7
+ # Example adding this to your spec_helper will load these Factories for use:
8
+ # require 'solidus_zip_zones/factories'
9
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusZipZones
4
+ VERSION = '0.1.0'
5
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'solidus_core'
4
+ require 'solidus_support'
5
+ require 'solidus_zip_zones/engine'
metadata ADDED
@@ -0,0 +1,314 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solidus_zip_zones
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Daniele Palombo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-05-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: solidus_backend
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '5.0'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '1.0'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '5.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: solidus_core
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: '5.0'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '1.0'
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: '5.0'
67
+ - !ruby/object:Gem::Dependency
68
+ name: solidus_support
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '0.5'
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '0.5'
81
+ - !ruby/object:Gem::Dependency
82
+ name: deface
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '1.0'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '1.0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: capybara
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ - !ruby/object:Gem::Dependency
110
+ name: coffee-rails
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: database_cleaner
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ - !ruby/object:Gem::Dependency
138
+ name: factory_bot
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ - !ruby/object:Gem::Dependency
152
+ name: ffaker
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ - !ruby/object:Gem::Dependency
166
+ name: poltergeist
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ - !ruby/object:Gem::Dependency
180
+ name: pry
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ - !ruby/object:Gem::Dependency
194
+ name: rspec-rails
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ - !ruby/object:Gem::Dependency
208
+ name: sass-rails
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ - !ruby/object:Gem::Dependency
222
+ name: simplecov
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ type: :development
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ - !ruby/object:Gem::Dependency
236
+ name: solidus_dev_support
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
240
+ - !ruby/object:Gem::Version
241
+ version: '2.5'
242
+ type: :development
243
+ prerelease: false
244
+ version_requirements: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - "~>"
247
+ - !ruby/object:Gem::Version
248
+ version: '2.5'
249
+ - !ruby/object:Gem::Dependency
250
+ name: sqlite3
251
+ requirement: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ version: '0'
256
+ type: :development
257
+ prerelease: false
258
+ version_requirements: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ description: Create zone zip code based
264
+ email: danielepalombo@nebulab.it
265
+ executables: []
266
+ extensions: []
267
+ extra_rdoc_files: []
268
+ files:
269
+ - LICENSE
270
+ - README.md
271
+ - Rakefile
272
+ - app/assets/javascripts/spree/backend/solidus_zip_zones.js
273
+ - app/assets/javascripts/spree/backend/views/zones/form_zip_based.js
274
+ - app/assets/javascripts/spree/frontend/solidus_zip_zones.js
275
+ - app/assets/stylesheets/spree/backend/solidus_zip_zones.css
276
+ - app/assets/stylesheets/spree/frontend/solidus_zip_zones.css
277
+ - app/models/solidus_zip_zones/tax_location_decorator.rb
278
+ - app/models/solidus_zip_zones/zone_decorator.rb
279
+ - app/overrides/spree/admin/zones/_form/add_zip_based_radio_button.html.erb.deface
280
+ - app/overrides/spree/admin/zones/_form/add_zip_members.html.erb.deface
281
+ - app/views/spree/admin/zones/_zip_members.html.erb
282
+ - config/locales/en.yml
283
+ - config/routes.rb
284
+ - db/migrate/20171206101152_add_zipcodes_to_spree_zone.rb
285
+ - lib/generators/solidus_zip_zones/install/install_generator.rb
286
+ - lib/solidus_zip_zones.rb
287
+ - lib/solidus_zip_zones/engine.rb
288
+ - lib/solidus_zip_zones/factories.rb
289
+ - lib/solidus_zip_zones/version.rb
290
+ homepage: http://github.com/solidusio-contrib/solidus_zip_zones
291
+ licenses:
292
+ - BSD-3-Clause
293
+ metadata:
294
+ changelog_uri: https://github.com/solidusio-contrib/solidus_zip_zones/releases
295
+ post_install_message:
296
+ rdoc_options: []
297
+ require_paths:
298
+ - lib
299
+ required_ruby_version: !ruby/object:Gem::Requirement
300
+ requirements:
301
+ - - ">="
302
+ - !ruby/object:Gem::Version
303
+ version: '2.5'
304
+ required_rubygems_version: !ruby/object:Gem::Requirement
305
+ requirements:
306
+ - - ">="
307
+ - !ruby/object:Gem::Version
308
+ version: '0'
309
+ requirements: []
310
+ rubygems_version: 3.3.7
311
+ signing_key:
312
+ specification_version: 4
313
+ summary: Solidus zip zones
314
+ test_files: []