spree_multi_currency 1.0.4 → 2.0.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.
Files changed (55) hide show
  1. data/.coveralls.yml +0 -0
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +21 -3
  6. data/README.markdown +8 -0
  7. data/Rakefile +4 -2
  8. data/app/assets/javascripts/admin/spree_multi_currency.js +0 -0
  9. data/app/assets/javascripts/store/spree_multi_currency.js +0 -0
  10. data/app/assets/stylesheets/admin/spree_multi_currency.css +0 -0
  11. data/app/assets/stylesheets/store/spree_multi_currency.css +0 -0
  12. data/app/controllers/spree/admin/currencies_controller.rb +3 -1
  13. data/app/controllers/spree/admin/currency_converters_controller.rb +2 -0
  14. data/app/controllers/spree/base_controller_decorator.rb +5 -2
  15. data/app/controllers/spree/currency_controller.rb +7 -2
  16. data/app/helpers/base_helper_decorator.rb +8 -0
  17. data/app/helpers/number_helper_decorator.rb +19 -17
  18. data/app/models/spree/adjustment_decorator.rb +2 -0
  19. data/app/models/spree/controller_helper_order.rb +11 -0
  20. data/app/models/spree/currency.rb +82 -38
  21. data/app/models/spree/currency_converter.rb +2 -0
  22. data/app/models/spree/line_item_decorator.rb +19 -6
  23. data/app/models/spree/money_decorator.rb +15 -0
  24. data/app/models/spree/order_decorator.rb +63 -55
  25. data/app/models/spree/product_decorator.rb +33 -0
  26. data/app/models/spree/stock/estimator_decorator.rb +18 -0
  27. data/app/models/spree/variant_decorator.rb +93 -16
  28. data/app/overrides/add_currencies_admin_configurations_menu.rb +8 -7
  29. data/app/overrides/add_currency_selection.rb +15 -0
  30. data/app/views/spree/admin/currencies/new.html.erb +4 -4
  31. data/app/views/spree/admin/currency_converters/edit.html.erb +4 -4
  32. data/app/views/spree/admin/currency_converters/new.html.erb +3 -3
  33. data/config/routes.rb +2 -0
  34. data/db/migrate/20101109134351_create_currencies.rb +2 -0
  35. data/db/migrate/20101109134453_create_currency_converters.rb +2 -0
  36. data/db/seeds.rb +2 -0
  37. data/features/step_definitions/product.rb +2 -0
  38. data/features/support/env.rb +2 -0
  39. data/features/support/paths.rb +2 -0
  40. data/lib/generators/spree_multi_currency/install/install_generator.rb +27 -15
  41. data/lib/spree_multi_currency.rb +13 -9
  42. data/lib/spree_multi_currency/engine.rb +6 -0
  43. data/lib/tasks/spree_multi_currency.rake +57 -38
  44. data/spec/changing_currency_spec.rb +44 -15
  45. data/spec/controllers/spree/currency_controller_spec.rb +16 -0
  46. data/spec/features/buy_spec.rb +103 -0
  47. data/spec/helpers/number_helper_spec.rb +21 -0
  48. data/spec/models/spree/currency_spec.rb +32 -0
  49. data/spec/models/spree/variant_spec.rb +32 -0
  50. data/spec/spec_helper.rb +50 -10
  51. data/spree_multi_currency.gemspec +2 -4
  52. metadata +29 -34
  53. data.tar.gz.sig +0 -3
  54. data/Versionfile +0 -9
  55. metadata.gz.sig +0 -1
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe ActionView::Helpers::NumberHelper do
6
+ context 'number_to_currency' do
7
+ specify do
8
+ Spree::Currency.create!(num_code: '840', char_code: 'USD', name: 'usd', locale: 'en')
9
+ Spree::Currency.create!(num_code: '643', char_code: 'RUB', name: 'rub', locale: 'ru')
10
+ I18n.locale = 'en'
11
+ Spree::Currency.current!
12
+ number_to_currency(100.2).should == '$100.20'
13
+ number_to_currency(-2.12).should == '-2.12 $'
14
+ I18n.locale = 'ru'
15
+ Spree::Currency.current!
16
+ number_to_currency(10).should == '10.00 руб.'
17
+ number_to_currency('11').should == '11.00 руб.'
18
+ number_to_currency(-10.23).should == '-10.23 руб.'
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Currency do
4
+ before :each do
5
+ @rub = Spree::Currency.create(name: 'rubles', char_code: 'RUB',
6
+ num_code: 623, locale: 'ru', basic: false)
7
+ end
8
+
9
+ it 'set basic' do
10
+ @rub.basic!
11
+ @rub.basic.should be_true
12
+ end
13
+
14
+ it 'should return locale without spliting' do
15
+ @rub.locale = 'en,ru'
16
+ @rub.locale.should == ['en','ru']
17
+ @rub.locale(false).should == 'en,ru'
18
+ end
19
+
20
+ it 'should write error message' do
21
+ ex = Exception.new
22
+ ex.set_backtrace(['1','2'])
23
+ mess = " [ Currency ] :#{ex.inspect} \n #{ex.backtrace.join('\n ')}"
24
+ Rails.logger.should_receive(:error).with(mess)
25
+ Spree::Currency.error_logger(ex)
26
+ end
27
+
28
+ it 'get currency by num code' do
29
+ Spree::Currency.get(623).should == @rub
30
+ end
31
+
32
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Variant do
4
+ it 'check variant without basic_price and current_price' do
5
+ Spree::Config.currency = 'USD'
6
+ rub = Spree::Currency.create(name: 'rubles', char_code: 'RUB',
7
+ num_code: 623, locale: 'ru', basic: false)
8
+ eur = Spree::Currency.create(name: 'euro', char_code: 'EUR',
9
+ num_code: 678, locale: 'de', basic: false)
10
+ usd = Spree::Currency.create(name: 'dollars', char_code: 'USD',
11
+ num_code: 624, locale: 'en', basic: true)
12
+
13
+ Spree::CurrencyConverter.create!(nominal: 1.0, value: 1/32.0,
14
+ currency: rub, date_req: Time.now)
15
+
16
+ Spree::CurrencyConverter.create!(nominal: 1.0, value: 1/0.75,
17
+ currency: eur, date_req: Time.now)
18
+
19
+ @product = create(:base_product, name: 'product1')
20
+ @product.save!
21
+
22
+
23
+ variant = @product.master
24
+ variant.prices.destroy_all
25
+ variant.prices.create!(currency: rub.char_code,
26
+ amount: 100)
27
+ Spree::Currency.current!(eur)
28
+ variant.get_price.should == ((100/32.0)*0.75).round(2)
29
+ Spree::Currency.current!(usd)
30
+ variant.get_price.should == (100/32.0).round(2)
31
+ end
32
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,17 +1,57 @@
1
- # This file is copied to ~/spec when you run 'ruby script/generate rspec'
2
- # from the project root directory.
3
- ENV["RAILS_ENV"] ||= 'test'
4
- require File.expand_path("../dummy/config/environment", __FILE__)
1
+ # encoding: utf-8
2
+
3
+ require 'coveralls'
4
+ Coveralls.wear!
5
+
6
+ require 'simplecov'
7
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
8
+ SimpleCov::Formatter::HTMLFormatter,
9
+ Coveralls::SimpleCov::Formatter
10
+ ]
11
+ SimpleCov.start do
12
+ add_filter '/spec/'
13
+ add_group 'Controllers', 'app/controllers'
14
+ add_group 'Helpers', 'app/helpers'
15
+ add_group 'Models', 'app/models'
16
+ add_group 'Overrides', 'app/overrides'
17
+ add_group 'Libraries', 'lib'
18
+ end
19
+
20
+ ENV['RAILS_ENV'] = 'test'
21
+
22
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
23
+
5
24
  require 'rspec/rails'
25
+ require 'capybara/rspec'
26
+ require 'capybara/webkit'
27
+ require 'ffaker'
28
+ require 'database_cleaner'
6
29
 
7
- # Requires supporting files with custom matchers and macros, etc,
8
- # in ./support/ and its subdirectories.
9
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
30
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
10
31
 
11
- require 'spree/core/testing_support/factories'
32
+ require 'spree/testing_support/factories'
33
+ require 'spree/testing_support/controller_requests'
34
+ require 'spree/testing_support/authorization_helpers'
35
+ require 'spree/testing_support/url_helpers'
36
+
37
+ Dir[File.join(File.dirname(__FILE__), 'factories/*.rb')].each { |f| require f }
12
38
 
13
39
  RSpec.configure do |config|
14
- config.mock_with :rspec
40
+ config.include Capybara::DSL, type: [:request,:feature]
41
+ config.include Spree::TestingSupport::ControllerRequests
42
+ config.include FactoryGirl::Syntax::Methods
43
+ config.include Spree::TestingSupport::UrlHelpers
44
+
45
+ config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :feature
46
+
47
+ config.before do
48
+ DatabaseCleaner.strategy = :truncation
49
+ DatabaseCleaner.start
50
+ end
51
+
52
+ config.after do
53
+ DatabaseCleaner.clean
54
+ end
15
55
 
16
- config.use_transactional_fixtures = true
56
+ Capybara.javascript_driver = :webkit
17
57
  end
@@ -4,7 +4,7 @@ $:.push File.expand_path("../lib", __FILE__)
4
4
  Gem::Specification.new do |s|
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.name = 'spree_multi_currency'
7
- s.version = '1.0.4'
7
+ s.version = '2.0.0'
8
8
  s.summary = 'Add gem summary here'
9
9
  s.required_ruby_version = '>= 1.8.7'
10
10
  s.authors = ["Pronix LLC"]
@@ -12,8 +12,6 @@ Gem::Specification.new do |s|
12
12
  s.homepage = "http://nanopodcast-pronix.rhcloud.com/"
13
13
  s.summary = %q{spree_multi_currency}
14
14
  s.description = %q{spree_multi_currency}
15
- s.signing_key = '/home/dima/.gem/keys/gem-private_key.pem'
16
- s.cert_chain = ['/home/dima/.gem/keys/gem-public_cert.pem']
17
15
 
18
16
  # s.rubyforge_project = "spree-multi-currency"
19
17
 
@@ -23,7 +21,7 @@ Gem::Specification.new do |s|
23
21
 
24
22
  s.require_path = ['lib']
25
23
 
26
- s.add_dependency('spree_core', '>= 1.2.0')
24
+ s.add_dependency('spree_core', '>= 2.0.3')
27
25
  s.add_dependency('nokogiri', '>= 1.4.4')
28
26
  s.add_dependency('money', '>= 5.0.0')
29
27
  s.add_dependency('json', '>= 1.5.1')
metadata CHANGED
@@ -1,43 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_multi_currency
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Pronix LLC
9
9
  autorequire:
10
10
  bindir: bin
11
- cert_chain:
12
- - !binary |-
13
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURQakNDQWlhZ0F3SUJB
14
- Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREJGTVJjd0ZRWURWUVFEREE1d2Nt
15
- OXUKYVhndWMyVnlkbWxqWlRFVk1CTUdDZ21TSm9tVDhpeGtBUmtXQldkdFlX
16
- bHNNUk13RVFZS0NaSW1pWlB5TEdRQgpHUllEWTI5dE1CNFhEVEV6TURNeU16
17
- RXhNVGcxTTFvWERURTBNRE15TXpFeE1UZzFNMW93UlRFWE1CVUdBMVVFCkF3
18
- d09jSEp2Ym1sNExuTmxjblpwWTJVeEZUQVRCZ29Ka2lhSmsvSXNaQUVaRmdW
19
- bmJXRnBiREVUTUJFR0NnbVMKSm9tVDhpeGtBUmtXQTJOdmJUQ0NBU0l3RFFZ
20
- SktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU51awo3U2R5Uzcy
21
- ckc4ZDJvaWFMWkhDQnRkQTh2blZSbUhtYzBjQ0NsT3d2V3U3dk1rbGhSWjlz
22
- WVNIMlFvR3U5cVNXCnpzVUE2c1JFZ05iSnV5dHFiNjNmdDAvVG1XZVJDUHEx
23
- UlhlS3ZUbG1oT2JvLzh2aWJlM0ovL1plc1pINjMyeFkKeExiTE1EalhzSXFh
24
- d3c4bC9oTWM4QmZxcFRsWkFScEhVZEVOQjBEdHBxR3g1V2hHbXBsbnQ2Rk0v
25
- K0h0TitiUwpjeW16ZWNIUnhnYi9uZXhXendycUdFWExtTlNzL2d4UFVuR3ZI
26
- cEJRZ3VhaFZXRk5La09KblRYUE5pUVlDeTIzCnpUMm5lS1JOQzN4QVdiS0Qr
27
- QlRLTVRvSW1GODNxeDFOYVFFc0ZONlY5cnFCdWY3aEZ5aGlKT1piVVRXU1p2
28
- RHMKRUNNaWRVVThPVWZtRGNLS1doRUNBd0VBQWFNNU1EY3dDUVlEVlIwVEJB
29
- SXdBREFkQmdOVkhRNEVGZ1FVbWZQRAp0QjlHRUVDbld4YzlLV1BHcHVtUkNz
30
- Z3dDd1lEVlIwUEJBUURBZ1N3TUEwR0NTcUdTSWIzRFFFQkJRVUFBNElCCkFR
31
- RFBkQklBaEx0aC9CRGlnREkxbmlBbHMreEdZWEk5T1U1WXpyOFU4YkxsM0ZM
32
- WXRYUGFjWVpnWVZEZEJncnoKZlhwR1NEUDNyb09uQTRDNmZvMlozUFdPNUJ6
33
- V3VkN29BbVlLSFlsbnlFd0hNRDZjZ0NqODJrejRCcTRpVG5DNQpnaDJybHVX
34
- U1psU2ZzL0tWbEEySXZ0NS9wSm1tZjhESW8vRE12RndabkZzSVZwTW04Mk5x
35
- eFJ4aElZRWV3ZDNhCmc0U0pMUnpVejFhTHllQ3RNcU9tRExuVnk4N2hLYlZk
36
- TjR0T1VyaXU1VU9MUVZkK214TGVPblVtdmZRY2ZnNysKNG9zbTFKOUxVTERF
37
- ZTEwRUNMTHZ0RmNhejZRTUgxT0ZtVnJ6YmlKdWpacktsbnpLdVZZcXlaUzQ4
38
- QkhRNi8yMgpHWnVjQmIwZ0NzTzNMVnVmTXNieWZkeVQKLS0tLS1FTkQgQ0VS
39
- VElGSUNBVEUtLS0tLQo=
40
- date: 2013-03-23 00:00:00.000000000 Z
11
+ cert_chain: []
12
+ date: 2013-09-15 00:00:00.000000000 Z
41
13
  dependencies:
42
14
  - !ruby/object:Gem::Dependency
43
15
  name: spree_core
@@ -46,7 +18,7 @@ dependencies:
46
18
  requirements:
47
19
  - - ! '>='
48
20
  - !ruby/object:Gem::Version
49
- version: 1.2.0
21
+ version: 2.0.3
50
22
  type: :runtime
51
23
  prerelease: false
52
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -54,7 +26,7 @@ dependencies:
54
26
  requirements:
55
27
  - - ! '>='
56
28
  - !ruby/object:Gem::Version
57
- version: 1.2.0
29
+ version: 2.0.3
58
30
  - !ruby/object:Gem::Dependency
59
31
  name: nokogiri
60
32
  requirement: !ruby/object:Gem::Requirement
@@ -143,24 +115,36 @@ executables: []
143
115
  extensions: []
144
116
  extra_rdoc_files: []
145
117
  files:
118
+ - .coveralls.yml
146
119
  - .gitignore
120
+ - .rspec
121
+ - .travis.yml
147
122
  - Gemfile
148
123
  - LICENSE
149
124
  - README.markdown
150
125
  - Rakefile
151
- - Versionfile
126
+ - app/assets/javascripts/admin/spree_multi_currency.js
127
+ - app/assets/javascripts/store/spree_multi_currency.js
128
+ - app/assets/stylesheets/admin/spree_multi_currency.css
129
+ - app/assets/stylesheets/store/spree_multi_currency.css
152
130
  - app/controllers/spree/admin/currencies_controller.rb
153
131
  - app/controllers/spree/admin/currency_converters_controller.rb
154
132
  - app/controllers/spree/base_controller_decorator.rb
155
133
  - app/controllers/spree/currency_controller.rb
134
+ - app/helpers/base_helper_decorator.rb
156
135
  - app/helpers/number_helper_decorator.rb
157
136
  - app/models/spree/adjustment_decorator.rb
137
+ - app/models/spree/controller_helper_order.rb
158
138
  - app/models/spree/currency.rb
159
139
  - app/models/spree/currency_converter.rb
160
140
  - app/models/spree/line_item_decorator.rb
141
+ - app/models/spree/money_decorator.rb
161
142
  - app/models/spree/order_decorator.rb
143
+ - app/models/spree/product_decorator.rb
144
+ - app/models/spree/stock/estimator_decorator.rb
162
145
  - app/models/spree/variant_decorator.rb
163
146
  - app/overrides/add_currencies_admin_configurations_menu.rb
147
+ - app/overrides/add_currency_selection.rb
164
148
  - app/views/spree/admin/currencies/_form.html.erb
165
149
  - app/views/spree/admin/currencies/edit.html.erb
166
150
  - app/views/spree/admin/currencies/index.html.erb
@@ -190,6 +174,11 @@ files:
190
174
  - lib/tasks/spree_multi_currency.rake
191
175
  - script/rails
192
176
  - spec/changing_currency_spec.rb
177
+ - spec/controllers/spree/currency_controller_spec.rb
178
+ - spec/features/buy_spec.rb
179
+ - spec/helpers/number_helper_spec.rb
180
+ - spec/models/spree/currency_spec.rb
181
+ - spec/models/spree/variant_spec.rb
193
182
  - spec/spec_helper.rb
194
183
  - spree_multi_currency.gemspec
195
184
  homepage: http://nanopodcast-pronix.rhcloud.com/
@@ -223,4 +212,10 @@ test_files:
223
212
  - features/support/env.rb
224
213
  - features/support/paths.rb
225
214
  - spec/changing_currency_spec.rb
215
+ - spec/controllers/spree/currency_controller_spec.rb
216
+ - spec/features/buy_spec.rb
217
+ - spec/helpers/number_helper_spec.rb
218
+ - spec/models/spree/currency_spec.rb
219
+ - spec/models/spree/variant_spec.rb
226
220
  - spec/spec_helper.rb
221
+ has_rdoc:
data.tar.gz.sig DELETED
@@ -1,3 +0,0 @@
1
- 4� �A5�-8�cQb���E$!� ���DA+Cr{|����N��:�4��f�tt��~��l.��k?��A���~
2
- ��ڑ�����9{�T7ab�SSH6e_3íS9]~K ��3��J������tuh�&�h�p��7�*��;� ��g�O��kD��� ��ݡ�V�A��N]��g�j��k͢.K�� j��mgn\!؛vB�j���a�ﺴ�%D�p}Y�
3
- z�Y�X���+dP�
data/Versionfile DELETED
@@ -1,9 +0,0 @@
1
- # This file is used to designate compatibilty with different versions of Spree
2
- # Please see http://spreecommerce.com/documentation/extensions.html#versionfile for details
3
-
4
- # Examples
5
- #
6
- "0.50.x" => { :branch => "master" }
7
- "0.40.x" => { :tag => "v1.0.0", :version => "1.0.0" }
8
-
9
-
metadata.gz.sig DELETED
@@ -1 +0,0 @@
1
- [ ��`��>�=�ņ�|gٗ�"���~!�\�^8�G4Yf��{GJ���#����ك:��sx��)ꏱ����� =�s��毮�<��? 0@����*1�\��Z�W�����#0�n�w �$�<)9��d�~�@�$�8�,��*2`ƻ�TǴ��8�Q�0��e�;N��{�W_g�Jn�@�)�0з��6L6*j��j�4���k���k���1����?SP*��1#�g<�zD��