spree_correios_shipping 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +5 -0
  5. data/Gemfile.lock +270 -0
  6. data/LICENSE +26 -0
  7. data/README.md +45 -0
  8. data/Rakefile +29 -0
  9. data/Versionfile +14 -0
  10. data/app/assets/javascripts/spree/backend/product_packages/edit.js.coffee +4 -0
  11. data/app/assets/javascripts/spree/backend/product_packages/index.js.coffee +28 -0
  12. data/app/assets/javascripts/spree/backend/product_packages/new.js.coffee +7 -0
  13. data/app/controllers/spree/admin/correios_shipping_settings_controller.rb +18 -0
  14. data/app/controllers/spree/admin/product_packages_controller.rb +12 -0
  15. data/app/controllers/spree/checkout_controller_decorator.rb +9 -0
  16. data/app/models/spree/calculator/shipping/correios/base.rb +165 -0
  17. data/app/models/spree/calculator/shipping/correios/e_sedex.rb +16 -0
  18. data/app/models/spree/calculator/shipping/correios/e_sedex_express.rb +17 -0
  19. data/app/models/spree/calculator/shipping/correios/e_sedex_grupo1.rb +17 -0
  20. data/app/models/spree/calculator/shipping/correios/e_sedex_grupo2.rb +17 -0
  21. data/app/models/spree/calculator/shipping/correios/e_sedex_grupo3.rb +17 -0
  22. data/app/models/spree/calculator/shipping/correios/e_sedex_prioritario.rb +17 -0
  23. data/app/models/spree/calculator/shipping/correios/overweight.rb +25 -0
  24. data/app/models/spree/calculator/shipping/correios/pac.rb +17 -0
  25. data/app/models/spree/calculator/shipping/correios/pac_com_contrato.rb +17 -0
  26. data/app/models/spree/calculator/shipping/correios/sedex.rb +17 -0
  27. data/app/models/spree/calculator/shipping/correios/sedex10.rb +17 -0
  28. data/app/models/spree/calculator/shipping/correios/sedex_a_cobrar.rb +17 -0
  29. data/app/models/spree/calculator/shipping/correios/sedex_a_cobrar_com_contrato.rb +17 -0
  30. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato1.rb +17 -0
  31. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato2.rb +17 -0
  32. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato3.rb +17 -0
  33. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato4.rb +17 -0
  34. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato5.rb +17 -0
  35. data/app/models/spree/calculator/shipping/correios/sedex_hoje.rb +17 -0
  36. data/app/models/spree/product_package.rb +9 -0
  37. data/app/models/spree/stock/splitter/correios_package.rb +51 -0
  38. data/app/models/spree/stock/splitter/correios_weight.rb +31 -0
  39. data/app/models/spree/stock_location_decorator.rb +10 -0
  40. data/app/overrides/spree/admin/shared/sub_menu/_configuration/add_correios_shipping_settings_tab.html.erb.deface +3 -0
  41. data/app/views/spree/admin/correios_shipping_settings/edit.html.erb +28 -0
  42. data/app/views/spree/admin/product_packages/_form.html.erb +31 -0
  43. data/app/views/spree/admin/product_packages/edit.html.erb +20 -0
  44. data/app/views/spree/admin/product_packages/index.html.erb +49 -0
  45. data/app/views/spree/admin/product_packages/new.html.erb +14 -0
  46. data/app/views/spree/admin/shared/_correios_tabs.html.erb +11 -0
  47. data/config/locales/en.yml +7 -0
  48. data/config/locales/pt-BR.yml +19 -0
  49. data/config/routes.rb +7 -0
  50. data/db/migrate/20150303111955_create_product_packages.rb +11 -0
  51. data/lib/generators/spree_correios_shipping/install/install_generator.rb +19 -0
  52. data/lib/spree/correios_shipping_configuration.rb +10 -0
  53. data/lib/spree/shipping_error.rb +3 -0
  54. data/lib/spree_correios_shipping/engine.rb +69 -0
  55. data/lib/spree_correios_shipping/version.rb +3 -0
  56. data/lib/spree_correios_shipping.rb +3 -0
  57. data/script/rails +7 -0
  58. data/spec/spec_helper.rb +44 -0
  59. data/spree_correios_shipping.gemspec +30 -0
  60. metadata +201 -0
@@ -0,0 +1,19 @@
1
+ module SpreeCorreiosShipping
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ class_option :auto_run_migrations, type: :boolean, default: true
5
+
6
+ def add_migrations
7
+ run 'bundle exec rake railties:install:migrations FROM=spree_correios_shipping'
8
+ end
9
+
10
+ def run_migrations
11
+ if options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
12
+ run 'bundle exec rake db:migrate'
13
+ else
14
+ puts "Skiping rake db:migrate, don't forget to run it!"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ class Spree::CorreiosShippingConfiguration < Spree::Preferences::Configuration
2
+
3
+ preference :origin_zip_code, :string, :default => ""
4
+ preference :id_correios, :string, :default => ""
5
+ preference :password_correios, :string, :default => ""
6
+ preference :services, :string, :default => ""
7
+ preference :default_item_weight, :float, default: 0.500
8
+ preference :max_shipping_weight, :float, default: 30.0
9
+ preference :split_shipments, :boolean, default: false
10
+ end
@@ -0,0 +1,3 @@
1
+ module Spree
2
+ class ShippingError < RuntimeError; end
3
+ end
@@ -0,0 +1,69 @@
1
+ module Spree::CorreiosShipping
2
+ end
3
+
4
+ module SpreeCorreiosShipping
5
+ class Engine < Rails::Engine
6
+ require 'spree/core'
7
+ isolate_namespace Spree
8
+ engine_name 'spree_correios_shipping'
9
+
10
+ # use rspec for tests
11
+ config.generators do |g|
12
+ g.test_framework :rspec
13
+ end
14
+
15
+ initializer "spree.correios_shipping.preferences", :before => :load_config_initializers do |app|
16
+ Spree::CorreiosShipping::Config = Spree::CorreiosShippingConfiguration.new
17
+ end
18
+
19
+ def self.activate
20
+ Dir[File.join(File.dirname(__FILE__), "../../app/models/spree/calculator/**/base.rb")].sort.each do |c|
21
+ Rails.env.production? ? require(c) : load(c)
22
+ end
23
+
24
+ Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
25
+ Rails.configuration.cache_classes ? require(c) : load(c)
26
+ end
27
+ end
28
+
29
+ config.autoload_paths += %W(#{config.root}/lib)
30
+ config.to_prepare &method(:activate).to_proc
31
+
32
+ initializer "spree_correios_shipping.register.calculators" do |app|
33
+ Dir[File.join(File.dirname(__FILE__), "../../app/models/spree/calculator/shipping/correios/*.rb")].sort.each do |c|
34
+ Rails.env.production? ? require(c) : load(c)
35
+ end
36
+
37
+ app.config.spree.stock_splitters << Spree::Stock::Splitter::CorreiosWeight
38
+
39
+ app.config.spree.calculators.shipping_methods.concat([Spree::Calculator::Shipping::Correios::ESedex,
40
+ Spree::Calculator::Shipping::Correios::ESedexExpress,
41
+ Spree::Calculator::Shipping::Correios::ESedexGrupo1,
42
+ Spree::Calculator::Shipping::Correios::ESedexGrupo2,
43
+ Spree::Calculator::Shipping::Correios::ESedexGrupo3,
44
+ Spree::Calculator::Shipping::Correios::ESedexPrioritario,
45
+ Spree::Calculator::Shipping::Correios::Pac,
46
+ Spree::Calculator::Shipping::Correios::PacComContrato,
47
+ Spree::Calculator::Shipping::Correios::Sedex,
48
+ Spree::Calculator::Shipping::Correios::Sedex10,
49
+ Spree::Calculator::Shipping::Correios::SedexACobrar,
50
+ Spree::Calculator::Shipping::Correios::SedexACobrarComContrato,
51
+ Spree::Calculator::Shipping::Correios::SedexComContrato1,
52
+ Spree::Calculator::Shipping::Correios::SedexComContrato2,
53
+ Spree::Calculator::Shipping::Correios::SedexComContrato3,
54
+ Spree::Calculator::Shipping::Correios::SedexComContrato4,
55
+ Spree::Calculator::Shipping::Correios::SedexComContrato5,
56
+ Spree::Calculator::Shipping::Correios::SedexHoje,
57
+ Spree::Calculator::Shipping::Correios::Overweight
58
+ ])
59
+ end
60
+
61
+ initializer "spree.assets.precompile", :group => :all do |app|
62
+ app.config.assets.precompile += %w[
63
+ spree/backend/product_packages/new.js
64
+ spree/backend/product_packages/edit.js
65
+ spree/backend/product_packages/index.js
66
+ ]
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,3 @@
1
+ module SpreeCorreiosShipping
2
+ VERSION = '1.0.0'
3
+ end
@@ -0,0 +1,3 @@
1
+ require 'spree/core'
2
+ require 'correios-frete'
3
+ require 'spree_correios_shipping/engine'
data/script/rails ADDED
@@ -0,0 +1,7 @@
1
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
2
+
3
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
4
+ ENGINE_PATH = File.expand_path('../../lib/spree_correios_shipping/engine', __FILE__)
5
+
6
+ require 'rails/all'
7
+ require 'rails/engine/commands'
@@ -0,0 +1,44 @@
1
+ # Configure Rails Environment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
5
+
6
+ require 'rspec/rails'
7
+ require 'ffaker'
8
+
9
+ # Requires supporting ruby files with custom matchers and macros, etc,
10
+ # in spec/support/ and its subdirectories.
11
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
12
+
13
+ # Requires factories defined in spree_core
14
+ require 'spree/core/testing_support/factories'
15
+ require 'spree/core/url_helpers'
16
+
17
+ RSpec.configure do |config|
18
+ config.include FactoryGirl::Syntax::Methods
19
+
20
+ # == URL Helpers
21
+ #
22
+ # Allows access to Spree's routes in specs:
23
+ #
24
+ # visit spree.admin_path
25
+ # current_path.should eql(spree.products_path)
26
+ config.include Spree::Core::UrlHelpers
27
+
28
+ # == Mock Framework
29
+ #
30
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
31
+ #
32
+ # config.mock_with :mocha
33
+ # config.mock_with :flexmock
34
+ # config.mock_with :rr
35
+ config.mock_with :rspec
36
+
37
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
38
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
39
+
40
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
41
+ # examples within a transaction, remove the following line or assign false
42
+ # instead of true.
43
+ config.use_transactional_fixtures = true
44
+ end
@@ -0,0 +1,30 @@
1
+ # encoding: UTF-8
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require 'spree_correios_shipping/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.platform = Gem::Platform::RUBY
7
+ s.name = 'spree_correios_shipping'
8
+ s.version = SpreeCorreiosShipping::VERSION
9
+ s.summary = 'Gem for spree and correios'
10
+ s.description = 'Gem for spree and brazilian carrier correios'
11
+ s.required_ruby_version = '>= 1.9'
12
+
13
+ s.author = 'Denis Tierno, Fabio Esposito'
14
+ s.email = 'contato@locomotiva.pro'
15
+ s.homepage = 'http://locomotiva.pro'
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.require_path = 'lib'
20
+ s.requirements << 'none'
21
+
22
+ s.add_dependency 'spree_core', '~> 3.1.0.beta'
23
+ s.add_dependency 'correios-frete'
24
+
25
+ s.add_development_dependency 'capybara', '1.0.1'
26
+ s.add_development_dependency 'factory_girl', '~> 2.6.4'
27
+ s.add_development_dependency 'ffaker'
28
+ s.add_development_dependency 'rspec-rails', '~> 2.9'
29
+ s.add_development_dependency 'pg'
30
+ end
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_correios_shipping
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Denis Tierno, Fabio Esposito
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-07 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.1.0.beta
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 3.1.0.beta
27
+ - !ruby/object:Gem::Dependency
28
+ name: correios-frete
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: capybara
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: factory_girl
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.6.4
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.6.4
69
+ - !ruby/object:Gem::Dependency
70
+ name: ffaker
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.9'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.9'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pg
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Gem for spree and brazilian carrier correios
112
+ email: contato@locomotiva.pro
113
+ executables: []
114
+ extensions: []
115
+ extra_rdoc_files: []
116
+ files:
117
+ - ".gitignore"
118
+ - ".rspec"
119
+ - Gemfile
120
+ - Gemfile.lock
121
+ - LICENSE
122
+ - README.md
123
+ - Rakefile
124
+ - Versionfile
125
+ - app/assets/javascripts/spree/backend/product_packages/edit.js.coffee
126
+ - app/assets/javascripts/spree/backend/product_packages/index.js.coffee
127
+ - app/assets/javascripts/spree/backend/product_packages/new.js.coffee
128
+ - app/controllers/spree/admin/correios_shipping_settings_controller.rb
129
+ - app/controllers/spree/admin/product_packages_controller.rb
130
+ - app/controllers/spree/checkout_controller_decorator.rb
131
+ - app/models/spree/calculator/shipping/correios/base.rb
132
+ - app/models/spree/calculator/shipping/correios/e_sedex.rb
133
+ - app/models/spree/calculator/shipping/correios/e_sedex_express.rb
134
+ - app/models/spree/calculator/shipping/correios/e_sedex_grupo1.rb
135
+ - app/models/spree/calculator/shipping/correios/e_sedex_grupo2.rb
136
+ - app/models/spree/calculator/shipping/correios/e_sedex_grupo3.rb
137
+ - app/models/spree/calculator/shipping/correios/e_sedex_prioritario.rb
138
+ - app/models/spree/calculator/shipping/correios/overweight.rb
139
+ - app/models/spree/calculator/shipping/correios/pac.rb
140
+ - app/models/spree/calculator/shipping/correios/pac_com_contrato.rb
141
+ - app/models/spree/calculator/shipping/correios/sedex.rb
142
+ - app/models/spree/calculator/shipping/correios/sedex10.rb
143
+ - app/models/spree/calculator/shipping/correios/sedex_a_cobrar.rb
144
+ - app/models/spree/calculator/shipping/correios/sedex_a_cobrar_com_contrato.rb
145
+ - app/models/spree/calculator/shipping/correios/sedex_com_contrato1.rb
146
+ - app/models/spree/calculator/shipping/correios/sedex_com_contrato2.rb
147
+ - app/models/spree/calculator/shipping/correios/sedex_com_contrato3.rb
148
+ - app/models/spree/calculator/shipping/correios/sedex_com_contrato4.rb
149
+ - app/models/spree/calculator/shipping/correios/sedex_com_contrato5.rb
150
+ - app/models/spree/calculator/shipping/correios/sedex_hoje.rb
151
+ - app/models/spree/product_package.rb
152
+ - app/models/spree/stock/splitter/correios_package.rb
153
+ - app/models/spree/stock/splitter/correios_weight.rb
154
+ - app/models/spree/stock_location_decorator.rb
155
+ - app/overrides/spree/admin/shared/sub_menu/_configuration/add_correios_shipping_settings_tab.html.erb.deface
156
+ - app/views/spree/admin/correios_shipping_settings/edit.html.erb
157
+ - app/views/spree/admin/product_packages/_form.html.erb
158
+ - app/views/spree/admin/product_packages/edit.html.erb
159
+ - app/views/spree/admin/product_packages/index.html.erb
160
+ - app/views/spree/admin/product_packages/new.html.erb
161
+ - app/views/spree/admin/shared/_correios_tabs.html.erb
162
+ - config/locales/en.yml
163
+ - config/locales/pt-BR.yml
164
+ - config/routes.rb
165
+ - db/migrate/20150303111955_create_product_packages.rb
166
+ - lib/generators/spree_correios_shipping/install/install_generator.rb
167
+ - lib/spree/correios_shipping_configuration.rb
168
+ - lib/spree/shipping_error.rb
169
+ - lib/spree_correios_shipping.rb
170
+ - lib/spree_correios_shipping/engine.rb
171
+ - lib/spree_correios_shipping/version.rb
172
+ - script/rails
173
+ - spec/spec_helper.rb
174
+ - spree_correios_shipping.gemspec
175
+ homepage: http://locomotiva.pro
176
+ licenses: []
177
+ metadata: {}
178
+ post_install_message:
179
+ rdoc_options: []
180
+ require_paths:
181
+ - lib
182
+ required_ruby_version: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '1.9'
187
+ required_rubygems_version: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ requirements:
193
+ - none
194
+ rubyforge_project:
195
+ rubygems_version: 2.2.2
196
+ signing_key:
197
+ specification_version: 4
198
+ summary: Gem for spree and correios
199
+ test_files:
200
+ - spec/spec_helper.rb
201
+ has_rdoc: