priceMarkup 0.0.1

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
+ SHA1:
3
+ metadata.gz: 81d29b622cbd202dd600e4d78a7ee7c207ae74f5
4
+ data.tar.gz: 57b5b470677a882526cd6a8cc2fd1a05078373e5
5
+ SHA512:
6
+ metadata.gz: 099a14853471bcddfec18c007083a7957b606c71e840e4924a8fc9fa4b7c9405454e1592bb39ed9202b2b9b024d850866b521f6201839142fbd6668b2a5ca876
7
+ data.tar.gz: 26de7a639998cddb8d9040eabedfd980b886eab03eebe239d751dbf12296485f6c2c3a8e3636b1fc6c632e945a08ee07bf7257253b74c4ac4d15023acfbf0081
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs << 'test'
5
+ end
6
+ desc "Run tests"
7
+ task :default => :test
@@ -0,0 +1,25 @@
1
+ module Dowstore
2
+
3
+ def self.priceMarkup(item, mypriceMarkup=0.25, afterdecimal=-1000)
4
+
5
+ result = item + (item * mypriceMarkup)
6
+ modulo = result % 1
7
+
8
+ if (result.is_a? Integer) && afterdecimal == -1000
9
+ #If result is integer and afterdecimal not specified, return result
10
+ result.to_s
11
+
12
+ elsif modulo == 0 && afterdecimal==-1000
13
+ #if the modulus is zero and aferdecimal is not specified, return result
14
+
15
+ sprintf("%.0f", result)
16
+
17
+ else
18
+ if afterdecimal ==-1000
19
+ #make the default value of afterdecimal =2
20
+ afterdecimal =2
21
+ end
22
+ sprintf("%.#{afterdecimal.to_s}f", result)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,99 @@
1
+ require 'test/unit'
2
+ require 'priceMarkup'
3
+
4
+ class MarkupTest < Test::Unit::TestCase
5
+
6
+ # Default priceMarkup is 0.25
7
+
8
+ def test_integer_with_default_true
9
+ assert_equal 125.to_s,
10
+ Dowstore.priceMarkup(100)
11
+ end
12
+
13
+ def test_integer_with_default_false
14
+ assert_not_equal 100,
15
+ Dowstore.priceMarkup(100)
16
+ end
17
+
18
+ def test_integer_without_default_true_one
19
+ assert_equal 300.to_s,
20
+ Dowstore.priceMarkup(100, 2)
21
+ end
22
+
23
+ def test_integer_without_default_false_one
24
+ assert_not_equal 200.to_s,
25
+ Dowstore.priceMarkup(100, 2)
26
+ end
27
+
28
+
29
+ def test_integer_without_default_true_two
30
+ assert_equal "300.000",
31
+ Dowstore.priceMarkup(100, 2, 3)
32
+ end
33
+
34
+ def test_integer_without_default_false_two
35
+ assert_not_equal "300.00",
36
+ Dowstore.priceMarkup(100, 2, 3)
37
+ end
38
+
39
+ def test_integer_without_default_true_three
40
+ assert_equal "300",
41
+ Dowstore.priceMarkup(100, 2, 0)
42
+ end
43
+
44
+ def test_integer_without_default_false_three
45
+ assert_not_equal "300.0",
46
+ Dowstore.priceMarkup(100, 2, 0)
47
+ end
48
+
49
+ def test_integer_without_default_true_four
50
+ assert_equal "355.6",
51
+ Dowstore.priceMarkup(100, 2.5556, 1)
52
+ end
53
+
54
+ def test_integer_without_default_false_four
55
+ assert_not_equal "355.5",
56
+ Dowstore.priceMarkup(100, 2.5556, 1)
57
+ end
58
+
59
+ def test_real_with_default_true
60
+ assert_equal "125.94",
61
+ Dowstore.priceMarkup(100.75)
62
+ end
63
+
64
+ def test_real_with_default_false
65
+ assert_not_equal "125.940",
66
+ Dowstore.priceMarkup(100.75)
67
+ end
68
+
69
+ def test_real_without_default_true_one
70
+ assert_equal "357.66",
71
+ Dowstore.priceMarkup(100.75, 2.55)
72
+ end
73
+
74
+ def test_real_without_default_false_one
75
+ assert_not_equal "357.660",
76
+ Dowstore.priceMarkup(100.75, 2.55)
77
+ end
78
+
79
+ def test_real_without_default_true_two
80
+ assert_equal "352.6250",
81
+ Dowstore.priceMarkup(100.75, 2.5, 4)
82
+ end
83
+
84
+ def test_real_without_default_false_two
85
+ assert_not_equal "352.625",
86
+ Dowstore.priceMarkup(100.75, 2.5, 4)
87
+ end
88
+
89
+ def test_real_without_default_true_three
90
+ assert_equal "353",
91
+ Dowstore.priceMarkup(100.75, 2.5, 0)
92
+ end
93
+
94
+ def test_real_without_default_false_three
95
+ assert_not_equal "353.0",
96
+ Dowstore.priceMarkup(100.75, 2.5, 0)
97
+ end
98
+
99
+ end
metadata ADDED
@@ -0,0 +1,48 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: priceMarkup
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - tomgdow
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-11 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: ! "An experimetal gem. \nConverts cost-price to selling price with default
14
+ mark-up of 25%. \n"
15
+ email: thomasgdowling@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - Rakefile
21
+ - lib/priceMarkup.rb
22
+ - test/test_priceMarkup.rb
23
+ homepage: http://rubygems.org/gems/priceMarkup
24
+ licenses:
25
+ - MIT
26
+ metadata: {}
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 2.1.5
44
+ signing_key:
45
+ specification_version: 4
46
+ summary: Converts cost price to selling price with default priceMarkup of 25%
47
+ test_files:
48
+ - test/test_priceMarkup.rb