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 +7 -0
- data/Rakefile +7 -0
- data/lib/priceMarkup.rb +25 -0
- data/test/test_priceMarkup.rb +99 -0
- metadata +48 -0
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
data/lib/priceMarkup.rb
ADDED
|
@@ -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
|