corrency 0.1.1 → 0.2.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.
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ .bundle/
2
+ log/*.log
3
+ test/dummy/db/*.sqlite3
4
+ test/dummy/log/*.log
5
+ test/dummy/tmp/
6
+ *.gem
7
+ .bundle
8
+ Gemfile.lock
9
+ pkg/*
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.2@corrency --create
data/Gemfile CHANGED
@@ -1,6 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  group :development, :test do
4
+ gem "rake", "0.8.7"
4
5
  gem "capybara", ">= 0.4.0"
5
6
  gem "shoulda"
6
7
  gem "sqlite3"
data/Gemfile.lock CHANGED
@@ -105,6 +105,7 @@ DEPENDENCIES
105
105
  capybara (>= 0.4.0)
106
106
  jeweler (~> 1.6.0)
107
107
  rails (>= 3.0.0)
108
+ rake (= 0.8.7)
108
109
  rcov
109
110
  shoulda
110
111
  sqlite3
data/Rakefile CHANGED
@@ -9,20 +9,7 @@ end
9
9
  require 'rake'
10
10
  require 'rake/rdoctask'
11
11
  require 'rake/testtask'
12
-
13
- require 'jeweler'
14
- Jeweler::Tasks.new do |gem|
15
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
16
- gem.name = "corrency"
17
- gem.homepage = "http://github.com/robwilliams/corrency"
18
- gem.license = "MIT"
19
- gem.summary = %Q{Adds Ecommerce Extensions to Various Core Libraries}
20
- gem.description = %Q{Adds Ecommerce Extensions to Various Core Libraries}
21
- gem.email = "rob@r-williams.com"
22
- gem.authors = ["Robert Williams"]
23
- # dependencies defined in Gemfile
24
- end
25
- Jeweler::RubygemsDotOrgTasks.new
12
+ require "bundler/gem_tasks"
26
13
 
27
14
  Rake::TestTask.new(:test) do |t|
28
15
  t.libs << 'lib'
data/corrency.gemspec CHANGED
@@ -1,109 +1,30 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "corrency/version"
5
4
 
6
5
  Gem::Specification.new do |s|
7
- s.name = %q{corrency}
8
- s.version = "0.1.1"
6
+ s.name = "corrency"
7
+ s.version = Corrency::VERSION
8
+ s.authors = ["Robert Williams"]
9
+ s.email = ["rob@r-williams.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Adds Ecommerce Extensions to Various Core Libraries}
12
+ s.description = %q{Adds Ecommerce Extensions to Various Core Libraries it really does}
9
13
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Robert Williams"]
12
- s.date = %q{2011-06-06}
13
- s.description = %q{Adds Ecommerce Extensions to Various Core Libraries}
14
- s.email = %q{rob@r-williams.com}
15
- s.extra_rdoc_files = [
16
- "README.rdoc"
17
- ]
18
- s.files = [
19
- "Gemfile",
20
- "Gemfile.lock",
21
- "MIT-LICENSE",
22
- "README.rdoc",
23
- "Rakefile",
24
- "VERSION",
25
- "corrency.gemspec",
26
- "lib/core_ext/big_decimal.rb",
27
- "lib/corrency.rb",
28
- "lib/corrency/config.rb",
29
- "test/big_decimal_test.rb",
30
- "test/corrency_test.rb",
31
- "test/dummy/Rakefile",
32
- "test/dummy/app/controllers/application_controller.rb",
33
- "test/dummy/app/controllers/products_controller.rb",
34
- "test/dummy/app/helpers/application_helper.rb",
35
- "test/dummy/app/helpers/products_helper.rb",
36
- "test/dummy/app/models/product.rb",
37
- "test/dummy/app/views/layouts/application.html.erb",
38
- "test/dummy/app/views/products/show.html.erb",
39
- "test/dummy/config.ru",
40
- "test/dummy/config/application.rb",
41
- "test/dummy/config/boot.rb",
42
- "test/dummy/config/database.yml",
43
- "test/dummy/config/environment.rb",
44
- "test/dummy/config/environments/development.rb",
45
- "test/dummy/config/environments/production.rb",
46
- "test/dummy/config/environments/test.rb",
47
- "test/dummy/config/initializers/backtrace_silencers.rb",
48
- "test/dummy/config/initializers/corrency.rb",
49
- "test/dummy/config/initializers/inflections.rb",
50
- "test/dummy/config/initializers/mime_types.rb",
51
- "test/dummy/config/initializers/secret_token.rb",
52
- "test/dummy/config/initializers/session_store.rb",
53
- "test/dummy/config/locales/en.yml",
54
- "test/dummy/config/routes.rb",
55
- "test/dummy/db/migrate/20110511100318_create_products.rb",
56
- "test/dummy/db/schema.rb",
57
- "test/dummy/public/404.html",
58
- "test/dummy/public/422.html",
59
- "test/dummy/public/500.html",
60
- "test/dummy/public/favicon.ico",
61
- "test/dummy/public/javascripts/application.js",
62
- "test/dummy/public/javascripts/controls.js",
63
- "test/dummy/public/javascripts/dragdrop.js",
64
- "test/dummy/public/javascripts/effects.js",
65
- "test/dummy/public/javascripts/prototype.js",
66
- "test/dummy/public/javascripts/rails.js",
67
- "test/dummy/public/stylesheets/.gitkeep",
68
- "test/dummy/script/rails",
69
- "test/integration/product_price_test.rb",
70
- "test/support/integration_case.rb",
71
- "test/test_helper.rb"
72
- ]
73
- s.homepage = %q{http://github.com/robwilliams/corrency}
74
- s.licenses = ["MIT"]
75
- s.require_paths = ["lib"]
76
- s.rubygems_version = %q{1.6.2}
77
- s.summary = %q{Adds Ecommerce Extensions to Various Core Libraries}
78
-
79
- if s.respond_to? :specification_version then
80
- s.specification_version = 3
14
+ s.rubyforge_project = "corrency"
81
15
 
82
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
83
- s.add_development_dependency(%q<capybara>, [">= 0.4.0"])
84
- s.add_development_dependency(%q<shoulda>, [">= 0"])
85
- s.add_development_dependency(%q<sqlite3>, [">= 0"])
86
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
87
- s.add_development_dependency(%q<rcov>, [">= 0"])
88
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
89
- s.add_development_dependency(%q<rails>, [">= 3.0.0"])
90
- else
91
- s.add_dependency(%q<capybara>, [">= 0.4.0"])
92
- s.add_dependency(%q<shoulda>, [">= 0"])
93
- s.add_dependency(%q<sqlite3>, [">= 0"])
94
- s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
95
- s.add_dependency(%q<rcov>, [">= 0"])
96
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
97
- s.add_dependency(%q<rails>, [">= 3.0.0"])
98
- end
99
- else
100
- s.add_dependency(%q<capybara>, [">= 0.4.0"])
101
- s.add_dependency(%q<shoulda>, [">= 0"])
102
- s.add_dependency(%q<sqlite3>, [">= 0"])
103
- s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
104
- s.add_dependency(%q<rcov>, [">= 0"])
105
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
106
- s.add_dependency(%q<rails>, [">= 3.0.0"])
107
- end
108
- end
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
109
20
 
21
+ # specify any dependencies here; for example:
22
+ s.add_development_dependency(%q<capybara>, [">= 0.4.0"])
23
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
24
+ s.add_development_dependency(%q<sqlite3>, [">= 0"])
25
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
26
+ s.add_development_dependency(%q<rcov>, [">= 0"])
27
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
28
+ s.add_development_dependency(%q<rails>, [">= 3.0.0"])
29
+ # s.add_runtime_dependency "rest-client"
30
+ end
@@ -4,12 +4,25 @@ require 'bigdecimal/util'
4
4
  class BigDecimal
5
5
 
6
6
  def inc_vat
7
- (self * ((Corrency::Config.vat_rate.to_f / 100) + 1)).to_d
7
+ (self * vat_rate).to_d
8
8
  end
9
9
 
10
+ def ex_vat
11
+ (self / vat_rate).to_d
12
+ end
13
+
14
+ def next_ninety_nine
15
+ self.ceil - BigDecimal.new("0.01")
16
+ end
17
+
10
18
  old_to_s = instance_method :to_s
11
19
 
12
20
  define_method :to_s do |*param|
13
21
  "%.2f" % self.round(2)
14
22
  end
23
+
24
+ protected
25
+ def vat_rate
26
+ 1 + (Corrency::Config.vat_rate.to_f / 100)
27
+ end
15
28
  end
@@ -0,0 +1,3 @@
1
+ module Corrency
2
+ VERSION = "0.2.0"
3
+ end
@@ -12,11 +12,33 @@ class BigDecimalTest < ActiveSupport::TestCase
12
12
  assert_equal(BigDecimal.new((@bd * (Corrency::Config.vat_rate.to_f / 100 + 1)).to_s), @bd.inc_vat)
13
13
  end
14
14
 
15
- should "return the correct class" do
15
+ should "return a BigDecimal" do
16
16
  assert_equal(BigDecimal, @bd.inc_vat.class)
17
17
  end
18
18
  end
19
19
 
20
+ context "ex_vat" do
21
+
22
+ should "return the correct total inc vat" do
23
+ assert_equal(BigDecimal.new((@bd / (Corrency::Config.vat_rate.to_f / 100 + 1)).to_s), @bd.ex_vat)
24
+ end
25
+
26
+ should "return a BigDecimal" do
27
+ assert_equal(BigDecimal, @bd.ex_vat.class)
28
+ end
29
+ end
30
+
31
+ context "next_ninety_nine" do
32
+
33
+ should "return the next nearest 0.99 decimal" do
34
+ assert_equal(BigDecimal.new("100.99"), @bd.next_ninety_nine)
35
+ end
36
+
37
+ should "return a BigDecimal" do
38
+ assert_equal(BigDecimal, @bd.next_ninety_nine.class)
39
+ end
40
+ end
41
+
20
42
  context "to_s" do
21
43
 
22
44
  should "return a string rounded to 2 decimal places" do
@@ -10,8 +10,7 @@ class ProductPriceTest < ActiveSupport::IntegrationCase
10
10
  test "should display correct price on GET to products#show" do
11
11
  assert_match '<span class="price">10.00</span>', page.body
12
12
  end
13
-
14
-
13
+
15
14
  # this also prove initializer works because vat_rate has been changed to 27.00
16
15
  test "should display correct price.inc_vat on GET to products#show" do
17
16
  assert_match '<span class="price_inc_vat">12.70</span>', page.body
data/test/test_helper.rb CHANGED
@@ -3,6 +3,7 @@ ENV["RAILS_ENV"] = "test"
3
3
 
4
4
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
5
  require "rails/test_help"
6
+ require 'shoulda'
6
7
 
7
8
  ActionMailer::Base.delivery_method = :test
8
9
  ActionMailer::Base.perform_deliveries = true
metadata CHANGED
@@ -1,114 +1,112 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: corrency
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
4
5
  prerelease:
5
- version: 0.1.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Robert Williams
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-06 00:00:00 +01:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-02 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: capybara
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70199186560760 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
23
21
  version: 0.4.0
24
22
  type: :development
25
23
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *70199186560760
25
+ - !ruby/object:Gem::Dependency
28
26
  name: shoulda
29
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &70199186559660 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
35
33
  type: :development
36
34
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *70199186559660
36
+ - !ruby/object:Gem::Dependency
39
37
  name: sqlite3
40
- requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirement: &70199186558460 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
46
44
  type: :development
47
45
  prerelease: false
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *70199186558460
47
+ - !ruby/object:Gem::Dependency
50
48
  name: jeweler
51
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: &70199186557020 !ruby/object:Gem::Requirement
52
50
  none: false
53
- requirements:
51
+ requirements:
54
52
  - - ~>
55
- - !ruby/object:Gem::Version
53
+ - !ruby/object:Gem::Version
56
54
  version: 1.6.0
57
55
  type: :development
58
56
  prerelease: false
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
57
+ version_requirements: *70199186557020
58
+ - !ruby/object:Gem::Dependency
61
59
  name: rcov
62
- requirement: &id005 !ruby/object:Gem::Requirement
60
+ requirement: &70199186554800 !ruby/object:Gem::Requirement
63
61
  none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
68
66
  type: :development
69
67
  prerelease: false
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
68
+ version_requirements: *70199186554800
69
+ - !ruby/object:Gem::Dependency
72
70
  name: bundler
73
- requirement: &id006 !ruby/object:Gem::Requirement
71
+ requirement: &70199186553640 !ruby/object:Gem::Requirement
74
72
  none: false
75
- requirements:
73
+ requirements:
76
74
  - - ~>
77
- - !ruby/object:Gem::Version
75
+ - !ruby/object:Gem::Version
78
76
  version: 1.0.0
79
77
  type: :development
80
78
  prerelease: false
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
79
+ version_requirements: *70199186553640
80
+ - !ruby/object:Gem::Dependency
83
81
  name: rails
84
- requirement: &id007 !ruby/object:Gem::Requirement
82
+ requirement: &70199186552640 !ruby/object:Gem::Requirement
85
83
  none: false
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
89
87
  version: 3.0.0
90
88
  type: :development
91
89
  prerelease: false
92
- version_requirements: *id007
93
- description: Adds Ecommerce Extensions to Various Core Libraries
94
- email: rob@r-williams.com
90
+ version_requirements: *70199186552640
91
+ description: Adds Ecommerce Extensions to Various Core Libraries it really does
92
+ email:
93
+ - rob@r-williams.com
95
94
  executables: []
96
-
97
95
  extensions: []
98
-
99
- extra_rdoc_files:
100
- - README.rdoc
101
- files:
96
+ extra_rdoc_files: []
97
+ files:
98
+ - .gitignore
99
+ - .rvmrc
102
100
  - Gemfile
103
101
  - Gemfile.lock
104
102
  - MIT-LICENSE
105
103
  - README.rdoc
106
104
  - Rakefile
107
- - VERSION
108
105
  - corrency.gemspec
109
106
  - lib/core_ext/big_decimal.rb
110
107
  - lib/corrency.rb
111
108
  - lib/corrency/config.rb
109
+ - lib/corrency/version.rb
112
110
  - test/big_decimal_test.rb
113
111
  - test/corrency_test.rb
114
112
  - test/dummy/Rakefile
@@ -152,36 +150,74 @@ files:
152
150
  - test/integration/product_price_test.rb
153
151
  - test/support/integration_case.rb
154
152
  - test/test_helper.rb
155
- has_rdoc: true
156
- homepage: http://github.com/robwilliams/corrency
157
- licenses:
158
- - MIT
153
+ homepage: ''
154
+ licenses: []
159
155
  post_install_message:
160
156
  rdoc_options: []
161
-
162
- require_paths:
157
+ require_paths:
163
158
  - lib
164
- required_ruby_version: !ruby/object:Gem::Requirement
159
+ required_ruby_version: !ruby/object:Gem::Requirement
165
160
  none: false
166
- requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- hash: 1256088515157523769
170
- segments:
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ segments:
171
166
  - 0
172
- version: "0"
173
- required_rubygems_version: !ruby/object:Gem::Requirement
167
+ hash: 1118588149199432669
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
174
169
  none: false
175
- requirements:
176
- - - ">="
177
- - !ruby/object:Gem::Version
178
- version: "0"
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
179
174
  requirements: []
180
-
181
- rubyforge_project:
182
- rubygems_version: 1.6.2
175
+ rubyforge_project: corrency
176
+ rubygems_version: 1.8.6
183
177
  signing_key:
184
178
  specification_version: 3
185
179
  summary: Adds Ecommerce Extensions to Various Core Libraries
186
- test_files: []
187
-
180
+ test_files:
181
+ - test/big_decimal_test.rb
182
+ - test/corrency_test.rb
183
+ - test/dummy/Rakefile
184
+ - test/dummy/app/controllers/application_controller.rb
185
+ - test/dummy/app/controllers/products_controller.rb
186
+ - test/dummy/app/helpers/application_helper.rb
187
+ - test/dummy/app/helpers/products_helper.rb
188
+ - test/dummy/app/models/product.rb
189
+ - test/dummy/app/views/layouts/application.html.erb
190
+ - test/dummy/app/views/products/show.html.erb
191
+ - test/dummy/config.ru
192
+ - test/dummy/config/application.rb
193
+ - test/dummy/config/boot.rb
194
+ - test/dummy/config/database.yml
195
+ - test/dummy/config/environment.rb
196
+ - test/dummy/config/environments/development.rb
197
+ - test/dummy/config/environments/production.rb
198
+ - test/dummy/config/environments/test.rb
199
+ - test/dummy/config/initializers/backtrace_silencers.rb
200
+ - test/dummy/config/initializers/corrency.rb
201
+ - test/dummy/config/initializers/inflections.rb
202
+ - test/dummy/config/initializers/mime_types.rb
203
+ - test/dummy/config/initializers/secret_token.rb
204
+ - test/dummy/config/initializers/session_store.rb
205
+ - test/dummy/config/locales/en.yml
206
+ - test/dummy/config/routes.rb
207
+ - test/dummy/db/migrate/20110511100318_create_products.rb
208
+ - test/dummy/db/schema.rb
209
+ - test/dummy/public/404.html
210
+ - test/dummy/public/422.html
211
+ - test/dummy/public/500.html
212
+ - test/dummy/public/favicon.ico
213
+ - test/dummy/public/javascripts/application.js
214
+ - test/dummy/public/javascripts/controls.js
215
+ - test/dummy/public/javascripts/dragdrop.js
216
+ - test/dummy/public/javascripts/effects.js
217
+ - test/dummy/public/javascripts/prototype.js
218
+ - test/dummy/public/javascripts/rails.js
219
+ - test/dummy/public/stylesheets/.gitkeep
220
+ - test/dummy/script/rails
221
+ - test/integration/product_price_test.rb
222
+ - test/support/integration_case.rb
223
+ - test/test_helper.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.1