universum 0.4.0 → 0.5.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.
- checksums.yaml +4 -4
- data/Manifest.txt +0 -6
- data/Rakefile +3 -1
- data/lib/universum.rb +5 -4
- data/lib/universum/type.rb +0 -4
- data/lib/universum/universum.rb +1 -1
- data/lib/universum/version.rb +1 -1
- data/test/contracts/ballot.rb +6 -5
- metadata +32 -10
- data/lib/universum/enum.rb +0 -92
- data/lib/universum/units_money.rb +0 -63
- data/lib/universum/units_time.rb +0 -51
- data/test/test_enum.rb +0 -30
- data/test/test_units_money.rb +0 -59
- data/test/test_units_time.rb +0 -75
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9961651cc18f32bfc222fef5624575241469923a
|
4
|
+
data.tar.gz: ab74188d3a3324451981a8f67693ae494265ff39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8317f92d3e8ad3e96f28fc29da3eb7964f624c443f1cc315fac1bcceb9a943a8894f29643c847254c0b8a5be2861e319f408147e88ecf020878d6736460098d6
|
7
|
+
data.tar.gz: 88481a56b4b6675c2039122b4dca23ec241f9c7fc5882e3c614726ba9201cb1bece06b5d2c14db8cbef250edf3ba87cf05bb6e64be2ac90783232c81ef860178
|
data/Manifest.txt
CHANGED
@@ -8,15 +8,12 @@ lib/universum/account.rb
|
|
8
8
|
lib/universum/address.rb
|
9
9
|
lib/universum/contract.rb
|
10
10
|
lib/universum/convert.rb
|
11
|
-
lib/universum/enum.rb
|
12
11
|
lib/universum/event.rb
|
13
12
|
lib/universum/function.rb
|
14
13
|
lib/universum/receipt.rb
|
15
14
|
lib/universum/storage.rb
|
16
15
|
lib/universum/transaction.rb
|
17
16
|
lib/universum/type.rb
|
18
|
-
lib/universum/units_money.rb
|
19
|
-
lib/universum/units_time.rb
|
20
17
|
lib/universum/universum.rb
|
21
18
|
lib/universum/version.rb
|
22
19
|
test/contracts/ballot.rb
|
@@ -24,11 +21,8 @@ test/contracts/greeter.rb
|
|
24
21
|
test/contracts/mytoken.rb
|
25
22
|
test/helper.rb
|
26
23
|
test/test_ballot.rb
|
27
|
-
test/test_enum.rb
|
28
24
|
test/test_event.rb
|
29
25
|
test/test_greeter.rb
|
30
26
|
test/test_mytoken.rb
|
31
27
|
test/test_storage.rb
|
32
|
-
test/test_units_money.rb
|
33
|
-
test/test_units_time.rb
|
34
28
|
test/test_version.rb
|
data/Rakefile
CHANGED
data/lib/universum.rb
CHANGED
@@ -10,19 +10,20 @@ require 'uri'
|
|
10
10
|
|
11
11
|
|
12
12
|
## 3rd party gems
|
13
|
-
require 'safestruct' # SafeArray, SafeHash, SafeStruct, etc.
|
13
|
+
require 'safestruct' # SafeArray, SafeHash, SafeStruct, Enum, etc.
|
14
14
|
|
15
15
|
## note: make Mapping an alias for Hash (lets you use Mapping.of() for Hash.of)
|
16
16
|
Mapping = Hash
|
17
17
|
|
18
|
+
require 'units-time' # Timestamp, Timedelta, etc.
|
19
|
+
require 'units-money' # Money, etc.
|
20
|
+
|
21
|
+
|
18
22
|
|
19
23
|
## our own code
|
20
24
|
require 'universum/version' # note: let version always go first
|
21
25
|
|
22
|
-
require 'universum/units_time'
|
23
|
-
require 'universum/units_money'
|
24
26
|
|
25
|
-
require 'universum/enum'
|
26
27
|
require 'universum/event'
|
27
28
|
|
28
29
|
require 'universum/function'
|
data/lib/universum/type.rb
CHANGED
data/lib/universum/universum.rb
CHANGED
@@ -17,7 +17,7 @@ end # class Msg
|
|
17
17
|
class Block
|
18
18
|
attr_reader :timestamp, :number
|
19
19
|
|
20
|
-
def initialize( timestamp:
|
20
|
+
def initialize( timestamp: Timestamp.now, number: 0 )
|
21
21
|
@timestamp = timestamp # unix epoch time (in seconds since 1970)
|
22
22
|
@number = number # block height (start with 0 - genesis block)
|
23
23
|
end
|
data/lib/universum/version.rb
CHANGED
data/test/contracts/ballot.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
#########################
|
2
2
|
# Ballot Contract
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
Struct.new( :Voter,
|
5
|
+
weight: 0,
|
6
|
+
voted: false,
|
7
|
+
vote: 0,
|
8
|
+
delegate: Address(0))
|
8
9
|
|
9
|
-
|
10
|
+
Struct.new( :Proposal, vote_count: 0 )
|
10
11
|
|
11
12
|
## Create a new ballot with $(num_proposals) different proposals.
|
12
13
|
def setup( num_proposals )
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: universum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: safestruct
|
@@ -16,14 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.2.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: units-time
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: units-money
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.1.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.1.1
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: rdoc
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,15 +103,12 @@ files:
|
|
75
103
|
- lib/universum/address.rb
|
76
104
|
- lib/universum/contract.rb
|
77
105
|
- lib/universum/convert.rb
|
78
|
-
- lib/universum/enum.rb
|
79
106
|
- lib/universum/event.rb
|
80
107
|
- lib/universum/function.rb
|
81
108
|
- lib/universum/receipt.rb
|
82
109
|
- lib/universum/storage.rb
|
83
110
|
- lib/universum/transaction.rb
|
84
111
|
- lib/universum/type.rb
|
85
|
-
- lib/universum/units_money.rb
|
86
|
-
- lib/universum/units_time.rb
|
87
112
|
- lib/universum/universum.rb
|
88
113
|
- lib/universum/version.rb
|
89
114
|
- test/contracts/ballot.rb
|
@@ -91,13 +116,10 @@ files:
|
|
91
116
|
- test/contracts/mytoken.rb
|
92
117
|
- test/helper.rb
|
93
118
|
- test/test_ballot.rb
|
94
|
-
- test/test_enum.rb
|
95
119
|
- test/test_event.rb
|
96
120
|
- test/test_greeter.rb
|
97
121
|
- test/test_mytoken.rb
|
98
122
|
- test/test_storage.rb
|
99
|
-
- test/test_units_money.rb
|
100
|
-
- test/test_units_time.rb
|
101
123
|
- test/test_version.rb
|
102
124
|
homepage: https://github.com/s6ruby/universum
|
103
125
|
licenses:
|
data/lib/universum/enum.rb
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
##################################
|
4
|
-
## auto-create/builds enum class.
|
5
|
-
##
|
6
|
-
## Example:
|
7
|
-
## State = Enum.new( :fundraising, :expired_refund, :successful)
|
8
|
-
## auto-creates/builds:
|
9
|
-
##
|
10
|
-
## class Enum
|
11
|
-
## def initialize( key, value )
|
12
|
-
## @key = key
|
13
|
-
## @value = value
|
14
|
-
## end
|
15
|
-
## end
|
16
|
-
##
|
17
|
-
## class State < Enum
|
18
|
-
##
|
19
|
-
## FUNDRAISING = new(:fundraising, 0)
|
20
|
-
## EXPIRED_REFUND = new(:expired_refund, 1)
|
21
|
-
## SUCCESSFUL = new(:successful, 2)
|
22
|
-
##
|
23
|
-
## def self.fundraising() FUNDRAISING; end
|
24
|
-
## def self.expired_refund() EXPIRED_REFUND; end
|
25
|
-
## def self.successful() SUCCESSFUL; end
|
26
|
-
##
|
27
|
-
## def fundraising?() self == FUNDRAISING; end
|
28
|
-
## def expired_refund?() self == EXPIRED_REFUND; end
|
29
|
-
## def successful?() self == SUCCESSFUL; end
|
30
|
-
## end
|
31
|
-
##
|
32
|
-
## pp state = State.fundraising #=> #<State @key=:fundraising, @value=0>
|
33
|
-
## pp state.fundraising? #=> true
|
34
|
-
## pp state.expired_refund? #=> false
|
35
|
-
## pp state.successful? #=> false
|
36
|
-
## pp state = State.expired_refund #=> #<State @key=:expired_refund, @value=1>
|
37
|
-
## pp state.fundraising? #=> false
|
38
|
-
## pp state.expired_refund? #=> true
|
39
|
-
## pp state.successful? #=> false
|
40
|
-
|
41
|
-
|
42
|
-
## base class for enum
|
43
|
-
class Enum
|
44
|
-
## return a new Enum read-only class
|
45
|
-
|
46
|
-
def initialize( key, value )
|
47
|
-
@key = key
|
48
|
-
@value = value
|
49
|
-
end
|
50
|
-
|
51
|
-
|
52
|
-
###################
|
53
|
-
## meta-programming "macro" - build class (on the fly)
|
54
|
-
def self.build_class( *keys )
|
55
|
-
|
56
|
-
## check if all keys are symbols and follow the ruby id(entifier) naming rules
|
57
|
-
keys.each do |key|
|
58
|
-
if key.is_a?( Symbol ) && key =~ /\A[a-z][a-zA-Z0-9_]*\z/
|
59
|
-
else
|
60
|
-
raise ArgumentError.new( "[Enum] arguments to Enum.new must be all symbols following the ruby id naming rules; >#{key}< failed" )
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
klass = Class.new( Enum )
|
65
|
-
|
66
|
-
## add self.new too - note: call/forward to "old" orginal self.new of Event (base) class
|
67
|
-
klass.define_singleton_method( :new ) do |*args|
|
68
|
-
old_new( *args )
|
69
|
-
end
|
70
|
-
|
71
|
-
keys.each_with_index do |key,index|
|
72
|
-
klass.class_eval( <<RUBY )
|
73
|
-
#{key.upcase} = new( :#{key}, #{index} )
|
74
|
-
|
75
|
-
def #{key}?
|
76
|
-
self == #{key.upcase}
|
77
|
-
end
|
78
|
-
|
79
|
-
def self.#{key}
|
80
|
-
#{key.upcase}
|
81
|
-
end
|
82
|
-
RUBY
|
83
|
-
end
|
84
|
-
|
85
|
-
klass
|
86
|
-
end
|
87
|
-
|
88
|
-
class << self
|
89
|
-
alias_method :old_new, :new # note: store "old" orginal version of new
|
90
|
-
alias_method :new, :build_class # replace original version with create
|
91
|
-
end
|
92
|
-
end # class Enum
|
@@ -1,63 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
class Integer
|
4
|
-
|
5
|
-
E3 = 10**3 # 1_000
|
6
|
-
E6 = 10**6 # 1_000_000
|
7
|
-
E9 = 10**9 # 1_000_000_000
|
8
|
-
E12 = 10**12 # 1_000_000_000_000
|
9
|
-
E15 = 10**15 # 1_000_000_000_000_000
|
10
|
-
E18 = 10**18 # 1_000_000_000_000_000_000
|
11
|
-
|
12
|
-
def e3() self * E3; end
|
13
|
-
def e6() self * E6; end
|
14
|
-
def e9() self * E9; end
|
15
|
-
def e12() self * E12; end
|
16
|
-
def e15() self * E15; end
|
17
|
-
def e18() self * E18; end
|
18
|
-
|
19
|
-
|
20
|
-
## todo/fix: move ethereum money units to a module and include here
|
21
|
-
|
22
|
-
###########
|
23
|
-
# Ethereum money units
|
24
|
-
#
|
25
|
-
# wei 1 wei | 1
|
26
|
-
# kwei (babbage) 1e3 wei | 1_000
|
27
|
-
# mwei (lovelace) 1e6 wei | 1_000_000
|
28
|
-
# gwei (shannon) 1e9 wei | 1_000_000_000
|
29
|
-
# microether (szabo) 1e12 wei | 1_000_000_000_000
|
30
|
-
# milliether (finney) 1e15 wei | 1_000_000_000_000_000
|
31
|
-
# ether 1e18 wei | 1_000_000_000_000_000_000
|
32
|
-
#
|
33
|
-
# Names in Honor:
|
34
|
-
# wei => Wei Dai
|
35
|
-
# lovelace => Ada Lovelace (1815-1852)
|
36
|
-
# babbage => Charles Babbage (1791-1871)
|
37
|
-
# shannon => Claude Shannon (1916-2001)
|
38
|
-
# szabo => Nick Szabo
|
39
|
-
# finney => Hal Finney (1956-2014)
|
40
|
-
|
41
|
-
def wei() self; end
|
42
|
-
def kwei() self * E3; end
|
43
|
-
def mwei() self * E6; end
|
44
|
-
def gwei() self * E9; end
|
45
|
-
def microether() self * E12; end
|
46
|
-
def milliether() self * E15; end
|
47
|
-
def ether() self * E18; end
|
48
|
-
|
49
|
-
########################################################
|
50
|
-
## alias - use alias or alias_method - why? why not?
|
51
|
-
def babbage() kwei; end
|
52
|
-
def lovelace() mwei; end
|
53
|
-
def shannon() gwei; end
|
54
|
-
def szabo() microether; end
|
55
|
-
def finney() milliether; end
|
56
|
-
|
57
|
-
def microeth() microether; end
|
58
|
-
def micro() microether; end
|
59
|
-
def millieth() milliether; end
|
60
|
-
def milli() milliether; end
|
61
|
-
def eth() ether; end
|
62
|
-
|
63
|
-
end # class Integer
|
data/lib/universum/units_time.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
|
4
|
-
class Integer
|
5
|
-
|
6
|
-
######################################
|
7
|
-
## note: there's NO month (for now)!!!
|
8
|
-
## why? month might be 28,29,30,31 days
|
9
|
-
## use days e.g. 30.days or 31.days etc.
|
10
|
-
|
11
|
-
HOUR_IN_SECONDS = 60 * 60 # 60 minutes * 60 seconds
|
12
|
-
DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS # 24 hours * 60 * 60
|
13
|
-
WEEK_IN_SECONDS = 7 * DAY_IN_SECONDS # 7 days * 24 * 60 * 60
|
14
|
-
FORTNIGHT_IN_SECONDS = 14 * DAY_IN_SECONDS # 14 days * 24 * 60 * 60
|
15
|
-
YEAR_IN_SECONDS = 365 * DAY_IN_SECONDS # 365 days * 24 * 60 * 60
|
16
|
-
|
17
|
-
def second() self; end
|
18
|
-
def minute() self * 60; end
|
19
|
-
def hour() self * HOUR_IN_SECONDS; end
|
20
|
-
def day() self * DAY_IN_SECONDS; end
|
21
|
-
def week() self * WEEK_IN_SECONDS; end
|
22
|
-
def fortnight() self * FORTNIGHT_IN_SECONDS; end
|
23
|
-
def year() self * YEAR_IN_SECONDS; end
|
24
|
-
|
25
|
-
########################################################
|
26
|
-
## alias - use alias or alias_method - why? why not?
|
27
|
-
def seconds() second; end
|
28
|
-
def secs() second; end
|
29
|
-
def sec() second; end
|
30
|
-
def s() second; end
|
31
|
-
|
32
|
-
def minutes() minute; end
|
33
|
-
def mins() minute; end
|
34
|
-
def min() minute; end
|
35
|
-
def m() minute; end
|
36
|
-
|
37
|
-
def hours() hour; end
|
38
|
-
def h() hour; end
|
39
|
-
|
40
|
-
def days() day; end
|
41
|
-
def d() day; end
|
42
|
-
|
43
|
-
def weeks() week; end
|
44
|
-
def w() week; end
|
45
|
-
|
46
|
-
def fortnights() fortnight; end
|
47
|
-
|
48
|
-
def years() year; end
|
49
|
-
def y() year; end
|
50
|
-
|
51
|
-
end # class Integer
|
data/test/test_enum.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_enum.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
|
11
|
-
class TestEnum < MiniTest::Test
|
12
|
-
|
13
|
-
State = Enum.new( :fundraising, :expired_refund, :successful )
|
14
|
-
|
15
|
-
def test_state
|
16
|
-
pp State
|
17
|
-
|
18
|
-
state = State.fundraising
|
19
|
-
assert state.is_a?( Enum )
|
20
|
-
|
21
|
-
assert_equal true, state.fundraising?
|
22
|
-
assert_equal false, state.expired_refund?
|
23
|
-
assert_equal false, state.successful?
|
24
|
-
|
25
|
-
state = State.expired_refund
|
26
|
-
assert_equal false, state.fundraising?
|
27
|
-
assert_equal true, state.expired_refund?
|
28
|
-
assert_equal false, state.successful?
|
29
|
-
end
|
30
|
-
end # class TestEnum
|
data/test/test_units_money.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_units_money.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
|
11
|
-
class TestUnitsMoney < MiniTest::Test
|
12
|
-
|
13
|
-
def test_money
|
14
|
-
assert_equal 1_000_000_000_000_000_000, 1.e18
|
15
|
-
assert_equal 1_000_000_000_000_000, 1.e15
|
16
|
-
assert_equal 1_000_000_000_000, 1.e12
|
17
|
-
assert_equal 1_000_000_000, 1.e9
|
18
|
-
assert_equal 1_000_000, 1.e6
|
19
|
-
assert_equal 1_000, 1.e3
|
20
|
-
|
21
|
-
|
22
|
-
value = rand( 1_000_000_000 )
|
23
|
-
|
24
|
-
assert_equal 1_000_000_000_000_000_000, 1.ether
|
25
|
-
assert_equal 1_000_000_000_000_000_000, 1.eth
|
26
|
-
assert_equal 1_000_000_000_000_000_000*2, 1.ether*2
|
27
|
-
assert_equal value+1_000_000_000_000_000_000, value+1.ether
|
28
|
-
|
29
|
-
assert_equal 1_000_000_000_000_000, 1.milliether
|
30
|
-
assert_equal 1_000_000_000_000_000, 1.millieth
|
31
|
-
assert_equal 1_000_000_000_000_000, 1.milli
|
32
|
-
assert_equal 1_000_000_000_000_000, 1.finney
|
33
|
-
assert_equal 1_000_000_000_000_000*2, 1.milliether*2
|
34
|
-
assert_equal value+1_000_000_000_000_000, value+1.milliether
|
35
|
-
|
36
|
-
assert_equal 1_000_000_000_000, 1.microether
|
37
|
-
assert_equal 1_000_000_000_000, 1.microeth
|
38
|
-
assert_equal 1_000_000_000_000, 1.micro
|
39
|
-
assert_equal 1_000_000_000_000, 1.szabo
|
40
|
-
assert_equal 1_000_000_000_000*2, 1.microether*2
|
41
|
-
assert_equal value+1_000_000_000_000, value+1.microether
|
42
|
-
|
43
|
-
assert_equal 1_000_000_000, 1.gwei
|
44
|
-
assert_equal 1_000_000_000, 1.shannon
|
45
|
-
assert_equal 1_000_000_000*2, 1.gwei*2
|
46
|
-
assert_equal value+1_000_000_000, value+1.gwei
|
47
|
-
|
48
|
-
assert_equal 1_000_000, 1.mwei
|
49
|
-
assert_equal 1_000_000, 1.lovelace
|
50
|
-
assert_equal 1_000_000*2, 1.mwei*2
|
51
|
-
assert_equal value+1_000_000, value+1.mwei
|
52
|
-
|
53
|
-
assert_equal 1_000, 1.kwei
|
54
|
-
assert_equal 1_000, 1.babbage
|
55
|
-
assert_equal 1_000*2, 1.kwei*2
|
56
|
-
assert_equal value+1_000, value+1.kwei
|
57
|
-
end
|
58
|
-
|
59
|
-
end # class TestUnitsMoney
|
data/test/test_units_time.rb
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_units_time.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
|
11
|
-
class TestUnitsTime < MiniTest::Test
|
12
|
-
|
13
|
-
def test_time
|
14
|
-
now = Time.now.to_i
|
15
|
-
|
16
|
-
assert_equal 31_536_000, 1.year
|
17
|
-
assert_equal 31_536_000, 1.y
|
18
|
-
assert_equal 31_536_000*2, 2.years
|
19
|
-
assert_equal 31_536_000*2, 1.y*2
|
20
|
-
assert_equal now+31_536_000, now+1.year
|
21
|
-
assert_equal 31_536_000, 365.days
|
22
|
-
assert_equal 31_536_000, 365*24.hours
|
23
|
-
|
24
|
-
assert_equal 1_209_600, 1.fortnight
|
25
|
-
assert_equal 1_209_600*2, 2.fortnights
|
26
|
-
assert_equal 1_209_600*2, 1.fortnight*2
|
27
|
-
assert_equal now+1_209_600, now+1.fortnight
|
28
|
-
assert_equal 1_209_600, 2.weeks
|
29
|
-
assert_equal 1_209_600, 14.days
|
30
|
-
assert_equal 1_209_600, 14*24.hours
|
31
|
-
|
32
|
-
assert_equal 604_800, 1.week
|
33
|
-
assert_equal 604_800, 1.w
|
34
|
-
assert_equal 604_800*2, 2.weeks
|
35
|
-
assert_equal 604_800*2, 1.week*2
|
36
|
-
assert_equal now+604_800, now+1.week
|
37
|
-
assert_equal 604_800, 7.days
|
38
|
-
assert_equal 604_800, 7*24.hours
|
39
|
-
|
40
|
-
assert_equal 86_400, 1.day
|
41
|
-
assert_equal 86_400, 1.d
|
42
|
-
assert_equal 86_400*2, 2.days
|
43
|
-
assert_equal 86_400*2, 1.day*2
|
44
|
-
assert_equal now+86_400, now+1.day
|
45
|
-
assert_equal 86_400, 24.hours
|
46
|
-
assert_equal 86_400, 24*1.hour
|
47
|
-
|
48
|
-
assert_equal 3600, 1.hour
|
49
|
-
assert_equal 3600, 1.h
|
50
|
-
assert_equal 3600*2, 2.hours
|
51
|
-
assert_equal 3600*2, 1.hour*2
|
52
|
-
assert_equal now+3600, now+1.hour
|
53
|
-
assert_equal 3600, 60.minutes
|
54
|
-
assert_equal 3600, 60*1.minute
|
55
|
-
|
56
|
-
assert_equal 60, 1.minute
|
57
|
-
assert_equal 60, 1.min
|
58
|
-
assert_equal 60, 1.m
|
59
|
-
assert_equal 60*2, 2.minutes
|
60
|
-
assert_equal 60*2, 2.mins
|
61
|
-
assert_equal 60*2, 1.minute*2
|
62
|
-
assert_equal now+60, now+1.minute
|
63
|
-
assert_equal 60, 60.seconds
|
64
|
-
assert_equal 60, 60*1.second
|
65
|
-
|
66
|
-
assert_equal 1, 1.second
|
67
|
-
assert_equal 1, 1.sec
|
68
|
-
assert_equal 1, 1.s
|
69
|
-
assert_equal 1*2, 2.seconds
|
70
|
-
assert_equal 1*2, 2.secs
|
71
|
-
assert_equal 1*2, 1.second*2
|
72
|
-
assert_equal now+1, now+1.second
|
73
|
-
end
|
74
|
-
|
75
|
-
end # class TestUnitsTime
|