toychest 0.1.0 → 0.1.2
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/lib/toychest/bag.rb +40 -0
- data/lib/toychest/board.rb +50 -0
- data/lib/toychest/card.rb +103 -0
- data/lib/toychest/cookie.rb +22 -0
- data/lib/toychest/dice.rb +39 -0
- data/lib/toychest/duck.rb +10 -0
- data/lib/toychest/lotto.rb +56 -0
- data/lib/toychest/nasa.rb +62 -0
- data/lib/toychest/piece.rb +41 -0
- data/lib/toychest/sky.rb +28 -0
- data/lib/toychest/tarot.rb +14 -0
- data/lib/toychest/tile.rb +37 -0
- data/lib/toychest/version.rb +1 -1
- data/lib/toychest/zodiac.rb +36 -0
- data/lib/toychest.rb +34 -14
- data/toychest-0.1.0.gem +0 -0
- data/toychest-0.1.1.gem +0 -0
- metadata +32 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11758ca81a8bc1b071880f468f18f4ff459c4b153e9671a0df123c369b362267
|
4
|
+
data.tar.gz: 4f2c408e86f25361c704952ec78e881f19939f8582f7cbd24f8863f51d3e069d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1bcfc5b5f941eb820b6618fc46b588d7bc050ab755d58d6c0cdfb5159ae9a40a7cc7679888317624b0d2248803ad46d1da9d72d81f1a53ecd1117fee166ffcf
|
7
|
+
data.tar.gz: 34980687827de9b22f72a736828f25c85e019ef883d492341af67325fe6ca5f4f8ea66a53d297386bd0636441251c47a9716288d2dc40d825fcf921d3f07d7ad
|
data/lib/toychest/bag.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
module BAG
|
2
|
+
@@ON = { default: lambda { |p, k, h={}| puts %[Bag #{p.board} #{k} #{h}] } }
|
3
|
+
def self.on
|
4
|
+
@@ON
|
5
|
+
end
|
6
|
+
class B
|
7
|
+
def initialize k
|
8
|
+
@id = k
|
9
|
+
@h = {}
|
10
|
+
@on = {}
|
11
|
+
end
|
12
|
+
def [] k
|
13
|
+
@h[k]
|
14
|
+
end
|
15
|
+
def []= k,v
|
16
|
+
@h[k] = v
|
17
|
+
end
|
18
|
+
def on k, h={}, &b
|
19
|
+
if block_given?
|
20
|
+
@on[k] = b
|
21
|
+
else
|
22
|
+
if @on.has_key? k
|
23
|
+
return @on[k].call(self, k, h)
|
24
|
+
else
|
25
|
+
if BAG.on.has_key? k
|
26
|
+
return BAG.on[k].call(self, k, h)
|
27
|
+
else
|
28
|
+
return BAG.on[:default].call(self, k, h)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
def to_h
|
34
|
+
@h
|
35
|
+
end
|
36
|
+
end
|
37
|
+
def self.[] k
|
38
|
+
B.new(k)
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module BOARD
|
2
|
+
@@ON = { default: lambda { |p, k, h={}| puts %[BOARD #{p.board} #{k} #{h}] } }
|
3
|
+
def self.on
|
4
|
+
@@ON
|
5
|
+
end
|
6
|
+
class B
|
7
|
+
attr_reader :board
|
8
|
+
def initialize k
|
9
|
+
@board = k
|
10
|
+
end
|
11
|
+
def [] k
|
12
|
+
C.new(@board, k)
|
13
|
+
end
|
14
|
+
class C
|
15
|
+
attr_reader :board
|
16
|
+
def initialize k, c
|
17
|
+
@board, @cell = k, c
|
18
|
+
@h = {}
|
19
|
+
@on = {}
|
20
|
+
end
|
21
|
+
def [] k
|
22
|
+
@h[k]
|
23
|
+
end
|
24
|
+
def []= k,v
|
25
|
+
@h[k] = v
|
26
|
+
end
|
27
|
+
def on k, h={}, &b
|
28
|
+
if block_given?
|
29
|
+
@on[k] = b
|
30
|
+
else
|
31
|
+
if @on.has_key? k
|
32
|
+
@on[k].call(self, k, h)
|
33
|
+
else
|
34
|
+
if BOARD.on.has_key? k
|
35
|
+
BOARD.on[k].call(self, k, h)
|
36
|
+
else
|
37
|
+
BOARD.on[:default].call(self, k, h)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
def to_h
|
43
|
+
@h
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
def self.[] k
|
48
|
+
B.new(k)
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
module CARD
|
2
|
+
@@D = {
|
3
|
+
blank: {
|
4
|
+
suits:{ none: :clear },
|
5
|
+
face: { face: 1 },
|
6
|
+
numbers: [0],
|
7
|
+
special: { special: 2 }
|
8
|
+
},
|
9
|
+
poker: {
|
10
|
+
suits: { hearts: :red, diamonds: :red, spades: :black, clubs: :black },
|
11
|
+
face: { a: 11, k: 10, q: 10, j: 10 },
|
12
|
+
numbers: (2..10),
|
13
|
+
special: {}
|
14
|
+
},
|
15
|
+
bicycle: {
|
16
|
+
suits: { hearts: :red, diamonds: :red, spades: :black, clubs: :black },
|
17
|
+
face: { ace: 11, king: 10, queen: 10, jack: 10 },
|
18
|
+
numbers: (2..10),
|
19
|
+
special: { joker: 10, Joker: 10 }
|
20
|
+
},
|
21
|
+
}
|
22
|
+
def self.deck
|
23
|
+
@@D
|
24
|
+
end
|
25
|
+
def self.card h={}
|
26
|
+
return {
|
27
|
+
id: 0,
|
28
|
+
name: "blank",
|
29
|
+
suit: "none",
|
30
|
+
color: "none",
|
31
|
+
card: "card",
|
32
|
+
points: 0,
|
33
|
+
draw: lambda { |s, a, e| puts %[DRAW #{s} #{a} #{e}] },
|
34
|
+
burn: lambda { |s, a, e| puts %[BURN #{s} #{a} #{e}] }
|
35
|
+
}.merge(h)
|
36
|
+
end
|
37
|
+
@@C = Hash.new { |h,k| h[k] = C.new(k) }
|
38
|
+
class C
|
39
|
+
attr_reader :hand, :burn
|
40
|
+
attr_accessor :deck, :type
|
41
|
+
def initialize k
|
42
|
+
@id = k
|
43
|
+
@shoe = 0
|
44
|
+
@type = :blank
|
45
|
+
@deck = []
|
46
|
+
@hand = []
|
47
|
+
@burn = []
|
48
|
+
if @deck.length == 0
|
49
|
+
shoe
|
50
|
+
end
|
51
|
+
end
|
52
|
+
def clear!
|
53
|
+
@deck.clear
|
54
|
+
end
|
55
|
+
def shuffle!
|
56
|
+
@deck.shuffle!
|
57
|
+
end
|
58
|
+
def shake!
|
59
|
+
@hand.shuffle!
|
60
|
+
end
|
61
|
+
def card h={}
|
62
|
+
@deck << CARD.card({ id: @deck.length }.merge(h))
|
63
|
+
end
|
64
|
+
def shoe *t, &b
|
65
|
+
@shoe += 1
|
66
|
+
d = CARD.deck[t[0] || @type]
|
67
|
+
d[:suits].each_pair do |suit, color|
|
68
|
+
d[:face].each_pair do |card, points|
|
69
|
+
card({ name: %[#{card} of #{suit}], suit: suit, color: color, card: card, points: points,
|
70
|
+
draw: lambda { |s, a, e| puts %[#{t[0] || @type} Face card #{e[:name]}] },
|
71
|
+
burn: lambda { |s, a, e| puts %[#{t[0] || @type} face card #{e[:name]}] }
|
72
|
+
})
|
73
|
+
end
|
74
|
+
d[:numbers].each do |card|
|
75
|
+
card({ name: %[#{card.humanize} of #{suit}], suit: suit, color: color, card: card, points: card,
|
76
|
+
draw: lambda { |s, a, e| puts %[#{t[0] || @type} Number card #{e[:name]}] },
|
77
|
+
burn: lambda { |s, a, e| puts %[#{t[0] || @type} number card #{e[:name]}] } })
|
78
|
+
end
|
79
|
+
end
|
80
|
+
d[:special].each_pair do |card, points|
|
81
|
+
card({ name: %[#{card.to_s.gsub("_"," ")} #{t[0] || @type} card], suit: :special, color: :none, card: card, points: points,
|
82
|
+
draw: lambda { |s, a, e| puts %[#{t[0] || @type} Special card #{e[:name]}] },
|
83
|
+
burn: lambda { |s, a, e| puts %[#{t[0] || @type} special card #{e[:name]}] } })
|
84
|
+
end
|
85
|
+
if block_given?
|
86
|
+
b.call(self)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
def draw *n
|
90
|
+
@hand.each { |e| e[:burn].call(self, @hand, e); @burn << e }
|
91
|
+
@hand.clear
|
92
|
+
(n[0] || 1).times { if @deck.length == 0; next; end; @hand << @deck.shift; }
|
93
|
+
@hand.each { |e| e[:draw].call(self, @hand, e) }
|
94
|
+
return @hand
|
95
|
+
end
|
96
|
+
def [] k
|
97
|
+
draw k
|
98
|
+
end
|
99
|
+
end
|
100
|
+
def self.[] k
|
101
|
+
@@C[k]
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module COOKIE
|
2
|
+
@@C = Hash.new { |h,k| h[k] = C.new(k) }
|
3
|
+
class Co
|
4
|
+
include HTTParty
|
5
|
+
base_uri 'https://aphorismcookie.herokuapp.com'
|
6
|
+
end
|
7
|
+
class C
|
8
|
+
attr_reader :fortune
|
9
|
+
def initialize k
|
10
|
+
@id = k
|
11
|
+
if !@fortune
|
12
|
+
new!
|
13
|
+
end
|
14
|
+
end
|
15
|
+
def new!
|
16
|
+
@fortune = Co.get('/')['data']['message']
|
17
|
+
end
|
18
|
+
end
|
19
|
+
def self.[] k
|
20
|
+
@@C[k]
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module DICE
|
2
|
+
@@D = Hash.new { |h,k| h[k] = D.new(k) }
|
3
|
+
class D
|
4
|
+
attr_accessor :dice, :roll, :on
|
5
|
+
def initialize k
|
6
|
+
@id = k
|
7
|
+
@dice = []
|
8
|
+
@roll = 0
|
9
|
+
@on = { monopoly: '2d6', yatzee: '5d6', critical: '1d20', luck: '1d8', save: '1d4', percent: '1d100', ratio: '2d10' }
|
10
|
+
end
|
11
|
+
def run i, &b
|
12
|
+
if i.class == Symbol
|
13
|
+
ix = @on[i]
|
14
|
+
elsif i.class == String
|
15
|
+
ix = i
|
16
|
+
elsif i.class == Integer
|
17
|
+
ix = %[1d#{i}]
|
18
|
+
end
|
19
|
+
ii = ix.split("d")
|
20
|
+
n = ii[0].to_i
|
21
|
+
s = ii[1].to_i
|
22
|
+
@dice.clear
|
23
|
+
@roll = 0
|
24
|
+
n.times { x = rand(1..s); @roll += x; @dice << x }
|
25
|
+
h = { number: n, sides: s, roll: @roll, dice: @dice }
|
26
|
+
if block_given?
|
27
|
+
return b.call(h)
|
28
|
+
else
|
29
|
+
return h
|
30
|
+
end
|
31
|
+
end
|
32
|
+
def [] k
|
33
|
+
run k
|
34
|
+
end
|
35
|
+
end
|
36
|
+
def self.[] k
|
37
|
+
@@D[k]
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module DUCK
|
2
|
+
class Du
|
3
|
+
include HTTParty
|
4
|
+
base_uri "https://api.duckduckgo.com/"
|
5
|
+
end
|
6
|
+
def self.[] k
|
7
|
+
j = JSON.parse(Du.get("/?format=json&pretty=1&no_html=1&skip_disambig=1&q=" + CGI.escape(k)))
|
8
|
+
return { heading: j['Heading'], text: j['Abstract'], image: j['Image'] }
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module LOTTO
|
2
|
+
@@L = Hash.new { |h,k| h[k] = L.new(k) }
|
3
|
+
@@D = []
|
4
|
+
@@S = 5
|
5
|
+
@@T = 47
|
6
|
+
def self.top
|
7
|
+
@@T
|
8
|
+
end
|
9
|
+
def self.digits
|
10
|
+
@@D
|
11
|
+
end
|
12
|
+
def self.size
|
13
|
+
@@S
|
14
|
+
end
|
15
|
+
class L
|
16
|
+
attr_reader :ticket
|
17
|
+
def initialize k
|
18
|
+
@id = k
|
19
|
+
if !ticket
|
20
|
+
run
|
21
|
+
end
|
22
|
+
end
|
23
|
+
def run
|
24
|
+
@ticket = LOTTO.digits.sample(LOTTO.size)
|
25
|
+
end
|
26
|
+
def win? w
|
27
|
+
t = 0
|
28
|
+
w.each { |e| if @ticket.include?(e); t += 1; end }
|
29
|
+
return t
|
30
|
+
end
|
31
|
+
end
|
32
|
+
@@W = false
|
33
|
+
def self.winner
|
34
|
+
@@W
|
35
|
+
end
|
36
|
+
@@WW = false
|
37
|
+
def self.winners
|
38
|
+
@@WW
|
39
|
+
end
|
40
|
+
def self.reset!
|
41
|
+
@@W = @@WW = false
|
42
|
+
end
|
43
|
+
def self.event
|
44
|
+
h = {}
|
45
|
+
@@W = LOTTO.digits.sample(LOTTO.size)
|
46
|
+
@@L.each_pair do |k,v|
|
47
|
+
h[k] = v.win?(winner)
|
48
|
+
end
|
49
|
+
@@WW = h.sort_by { |k,v| -v }
|
50
|
+
return { winner: @@W, tickets: @@WW }
|
51
|
+
end
|
52
|
+
def self.[] k
|
53
|
+
@@L[k]
|
54
|
+
end
|
55
|
+
@@T.times { |t| @@D << t + 1 }
|
56
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module NASA
|
2
|
+
n = Astronomy::Information.new
|
3
|
+
@@N = n.data
|
4
|
+
def self.categories
|
5
|
+
@@N.keys
|
6
|
+
end
|
7
|
+
def self.category
|
8
|
+
@@N
|
9
|
+
end
|
10
|
+
def self.[] q
|
11
|
+
h = {}
|
12
|
+
r = Regexp.new(q)
|
13
|
+
@@N.each_pair { |kk,vv|
|
14
|
+
hh = {}
|
15
|
+
vv.each { |e|
|
16
|
+
if r.match(e['name']) || r.match(e['description']);
|
17
|
+
hh[e['name']] = e['description'];
|
18
|
+
end;
|
19
|
+
}.compact
|
20
|
+
if hh.keys.length > 0
|
21
|
+
h[kk] = hh
|
22
|
+
end
|
23
|
+
}
|
24
|
+
return h
|
25
|
+
end
|
26
|
+
@@Zodiac = NASA['zodiac']['Constellation']
|
27
|
+
@@Shower = NASA['shower']['Meteor Shower']
|
28
|
+
@@System = Hash.new { |h,k| h[k] = [] }
|
29
|
+
@@Planet = NASA['planet']['Planet']
|
30
|
+
@@Moon = NASA['moon']["Moon"]
|
31
|
+
@@Planet.each_pair do |k,v|
|
32
|
+
r = Regexp.new(k)
|
33
|
+
@@Moon.each_pair do |kk,vv|
|
34
|
+
if r.match(vv)
|
35
|
+
@@System[k] << kk
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
def self.year
|
40
|
+
[ 'January', 'Feberuary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ]
|
41
|
+
end
|
42
|
+
@@Calendar = {}
|
43
|
+
NASA.year.each { |e| @@Calendar[e] = NASA[e] }
|
44
|
+
def self.calendar
|
45
|
+
@@Calendar
|
46
|
+
end
|
47
|
+
def self.zodiac
|
48
|
+
@@Zodiac
|
49
|
+
end
|
50
|
+
def self.system
|
51
|
+
@@System
|
52
|
+
end
|
53
|
+
def self.planet
|
54
|
+
@@Planet
|
55
|
+
end
|
56
|
+
def self.shower
|
57
|
+
@@Shower
|
58
|
+
end
|
59
|
+
def self.moon
|
60
|
+
@@Moon
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module PIECE
|
2
|
+
@@ON = { default: lambda { |p, k, h={}| puts %[Piece #{p.board} #{k} #{h}] } }
|
3
|
+
def self.on
|
4
|
+
@@ON
|
5
|
+
end
|
6
|
+
class P
|
7
|
+
attr_reader :board
|
8
|
+
def initialize k
|
9
|
+
@board = k
|
10
|
+
@h = {}
|
11
|
+
@on = {}
|
12
|
+
end
|
13
|
+
def [] k
|
14
|
+
@h[k]
|
15
|
+
end
|
16
|
+
def []= k,v
|
17
|
+
@h[k] = v
|
18
|
+
end
|
19
|
+
def on k, h={}, &b
|
20
|
+
if block_given?
|
21
|
+
@on[k] = b
|
22
|
+
else
|
23
|
+
if @on.has_key? k
|
24
|
+
return @on[k].call(self, k, h)
|
25
|
+
else
|
26
|
+
if PIECE.on.has_key? k
|
27
|
+
return PIECE.on[k].call(self, k, h)
|
28
|
+
else
|
29
|
+
return PIECE.on[:default].call(self, k, h)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
def to_h
|
35
|
+
@h
|
36
|
+
end
|
37
|
+
end
|
38
|
+
def self.[] k
|
39
|
+
P.new(k)
|
40
|
+
end
|
41
|
+
end
|
data/lib/toychest/sky.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
module SKY
|
2
|
+
def self.at(h={}, &b)
|
3
|
+
h = {
|
4
|
+
phase: SunCalc.moon_illumination(h[:date]),
|
5
|
+
moon: SunCalc.moon_position(h[:date], h[:lat], h[:lon]),
|
6
|
+
night: SunCalc.moon_times(h[:date], h[:lat], h[:lon]),
|
7
|
+
sun: SunCalc.sun_position(h[:date], h[:lat], h[:lon]),
|
8
|
+
day: SunCalc.sun_times(h[:date], h[:lat], h[:lon])
|
9
|
+
}
|
10
|
+
if block_given?
|
11
|
+
return b.call(h)
|
12
|
+
else
|
13
|
+
return h
|
14
|
+
end
|
15
|
+
end
|
16
|
+
def self.now &b
|
17
|
+
utc = Time.now.utc
|
18
|
+
now = Time.now
|
19
|
+
m = Lunartic.on_date(DateTime.new(now.year, now.month, now.day, now.hour, now.min, now.sec))
|
20
|
+
t = SunCalc.moon_illumination(now)[:phase]
|
21
|
+
h = { epoch: utc.to_i, day: m.day, phase: m.phase, full: m.percent_full, moon: t, now: now }
|
22
|
+
if block_given?
|
23
|
+
return b.call(h)
|
24
|
+
else
|
25
|
+
return h
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module TAROT
|
2
|
+
class Tarot
|
3
|
+
include HTTParty
|
4
|
+
base_uri "https://tarotapi.dev"
|
5
|
+
end
|
6
|
+
def self.cards *n, &b
|
7
|
+
dir, a = [], []; (n[0] || 1).times { dir << ['up', 'rev'].sample }
|
8
|
+
Tarot.get("/api/v1/cards/random?n=#{n[0] || 1}")['cards'].each_with_index { |e,i| e['direction'] = dir[i]; a << b.call(e) }
|
9
|
+
return a
|
10
|
+
end
|
11
|
+
def self.reading *n
|
12
|
+
TAROT.cards(n[0]) { |e| x = e["meaning_#{e['direction']}"]; %[#{e['name']} (#{e['direction']}) - #{x}] }
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module TILE
|
2
|
+
@@T = Hash.new { |h,k| h[k] = T.new(k) }
|
3
|
+
class T
|
4
|
+
def initialize k
|
5
|
+
@id = k
|
6
|
+
@t = Hash.new { |h,k| h[k] = Tile.new(@id, k) }
|
7
|
+
end
|
8
|
+
def keys
|
9
|
+
@t.keys
|
10
|
+
end
|
11
|
+
def [] k
|
12
|
+
@t[k]
|
13
|
+
end
|
14
|
+
class Tile
|
15
|
+
def initialize k, t
|
16
|
+
@id, @tile = k, t
|
17
|
+
@h = {}
|
18
|
+
end
|
19
|
+
def []= k,v
|
20
|
+
@h[k] = v
|
21
|
+
end
|
22
|
+
def [] k
|
23
|
+
@h[k]
|
24
|
+
end
|
25
|
+
def on k, h={}, &b
|
26
|
+
if block_given?
|
27
|
+
@on[k] = b
|
28
|
+
else
|
29
|
+
@on[k].call(h)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
def self.[] k
|
35
|
+
@@T[k]
|
36
|
+
end
|
37
|
+
end
|
data/lib/toychest/version.rb
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
module ZODIAC
|
2
|
+
|
3
|
+
@@Z = Hash.new { |h,k| h[k] = Z.new(k) }
|
4
|
+
class Zo
|
5
|
+
include HTTParty
|
6
|
+
base_uri "https://horoscope-app-api.vercel.app"
|
7
|
+
end
|
8
|
+
class Z
|
9
|
+
attr_reader :sign, :daily, :weekly, :monthly
|
10
|
+
def initialize k
|
11
|
+
@id = k
|
12
|
+
end
|
13
|
+
def [] k
|
14
|
+
run k
|
15
|
+
end
|
16
|
+
def run s
|
17
|
+
@sign = s
|
18
|
+
daily!
|
19
|
+
weekly!
|
20
|
+
monthly!
|
21
|
+
return { month: @monthly, week: @weekly, day: @daily }
|
22
|
+
end
|
23
|
+
def daily!
|
24
|
+
@daily = Zo.get("/api/v1/get-horoscope/daily?day=TODAY&sign=" + @sign)['data']['horoscope_data']
|
25
|
+
end
|
26
|
+
def weekly!
|
27
|
+
@weekly = Zo.get("/api/v1/get-horoscope/weekly?day=TODAY&sign=" + @sign)['data']['horoscope_data']
|
28
|
+
end
|
29
|
+
def monthly!
|
30
|
+
@monthly = Zo.get("/api/v1/get-horoscope/monthly?day=TODAY&sign=" + @sign)['data']['horoscope_data']
|
31
|
+
end
|
32
|
+
end
|
33
|
+
def self.[] k
|
34
|
+
@@Z[k]
|
35
|
+
end
|
36
|
+
end
|
data/lib/toychest.rb
CHANGED
@@ -4,16 +4,19 @@ require 'zodiac'
|
|
4
4
|
require 'nickel'
|
5
5
|
require 'sun_calc'
|
6
6
|
require 'lunartic'
|
7
|
+
require 'humanize'
|
7
8
|
|
8
9
|
require_relative 'toychest/version'
|
9
|
-
#
|
10
|
-
require_relative 'toychest/
|
10
|
+
# duck duck go
|
11
|
+
require_relative 'toychest/duck'
|
11
12
|
# space info
|
12
13
|
require_relative 'toychest/nasa'
|
13
14
|
# sun and moon timing
|
14
15
|
require_relative 'toychest/sky'
|
15
16
|
# random decks of cards
|
16
17
|
require_relative 'toychest/card'
|
18
|
+
# tarot cards
|
19
|
+
require_relative 'toychest/tarot'
|
17
20
|
# random dice
|
18
21
|
require_relative 'toychest/dice'
|
19
22
|
# community lottery
|
@@ -30,8 +33,6 @@ require_relative 'toychest/tile'
|
|
30
33
|
require_relative 'toychest/piece'
|
31
34
|
# inventory
|
32
35
|
require_relative 'toychest/bag'
|
33
|
-
# attributes and statistics
|
34
|
-
require_relative 'toychest/me'
|
35
36
|
|
36
37
|
module Toychest
|
37
38
|
class Error < StandardError; end
|
@@ -42,12 +43,10 @@ module Toychest
|
|
42
43
|
end
|
43
44
|
@@C = Hash.new { |h,k| h[k] = C.new(k) }
|
44
45
|
class C
|
45
|
-
attr_reader :
|
46
|
+
attr_reader :bag, :board, :piece, :tile, :card, :dice, :lotto, :cookie, :zodiac
|
46
47
|
def initialize k
|
47
48
|
@id = k
|
48
49
|
@on = {}
|
49
|
-
@me = ME[@id]
|
50
|
-
@bank = BANK[@id]
|
51
50
|
@bag = BAG[@id]
|
52
51
|
@board = BOARD[@id]
|
53
52
|
@piece = PIECE[@id]
|
@@ -58,7 +57,6 @@ module Toychest
|
|
58
57
|
@cookie = COOKIE[@id]
|
59
58
|
@zodiac = ZODIAC[@id]
|
60
59
|
@h = {
|
61
|
-
me: @me,
|
62
60
|
bank: @bank,
|
63
61
|
bag: @bag,
|
64
62
|
board: @board,
|
@@ -93,12 +91,7 @@ module Toychest
|
|
93
91
|
end
|
94
92
|
end
|
95
93
|
end
|
96
|
-
|
97
|
-
# micro self-finance
|
98
|
-
def self.bank
|
99
|
-
BANK
|
100
|
-
end
|
101
|
-
|
94
|
+
|
102
95
|
# community lotto
|
103
96
|
def self.lotto
|
104
97
|
LOTTO
|
@@ -126,4 +119,31 @@ module Toychest
|
|
126
119
|
def self.nasa
|
127
120
|
NASA
|
128
121
|
end
|
122
|
+
|
123
|
+
# duck duck go
|
124
|
+
def self.duck
|
125
|
+
DUCK
|
126
|
+
end
|
127
|
+
|
129
128
|
end
|
129
|
+
|
130
|
+
# Toychest.now
|
131
|
+
|
132
|
+
# x = Toychest.nasa
|
133
|
+
# x.category
|
134
|
+
# x.planet
|
135
|
+
# x.moon
|
136
|
+
# x.calendar
|
137
|
+
# x.categories
|
138
|
+
# x.zodiac
|
139
|
+
|
140
|
+
# u = Toychest['user']
|
141
|
+
# u.bag => game event handler
|
142
|
+
# u.cookie => fortune cookie
|
143
|
+
# u.zodiac => horoscope
|
144
|
+
# u.dice[roll] => roll some dice
|
145
|
+
# u.card
|
146
|
+
# u.lotto
|
147
|
+
# u.board
|
148
|
+
# u.piece
|
149
|
+
# u.tile
|
data/toychest-0.1.0.gem
ADDED
Binary file
|
data/toychest-0.1.1.gem
ADDED
Binary file
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toychest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Olson
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: zodiac
|
@@ -93,6 +93,20 @@ dependencies:
|
|
93
93
|
- - ">="
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: '0'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: humanize
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
type: :runtime
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
96
110
|
- !ruby/object:Gem::Dependency
|
97
111
|
name: pry
|
98
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,8 +133,23 @@ files:
|
|
119
133
|
- README.md
|
120
134
|
- Rakefile
|
121
135
|
- lib/toychest.rb
|
136
|
+
- lib/toychest/bag.rb
|
137
|
+
- lib/toychest/board.rb
|
138
|
+
- lib/toychest/card.rb
|
139
|
+
- lib/toychest/cookie.rb
|
140
|
+
- lib/toychest/dice.rb
|
141
|
+
- lib/toychest/duck.rb
|
142
|
+
- lib/toychest/lotto.rb
|
143
|
+
- lib/toychest/nasa.rb
|
144
|
+
- lib/toychest/piece.rb
|
145
|
+
- lib/toychest/sky.rb
|
146
|
+
- lib/toychest/tarot.rb
|
147
|
+
- lib/toychest/tile.rb
|
122
148
|
- lib/toychest/version.rb
|
149
|
+
- lib/toychest/zodiac.rb
|
123
150
|
- sig/toychest.rbs
|
151
|
+
- toychest-0.1.0.gem
|
152
|
+
- toychest-0.1.1.gem
|
124
153
|
homepage: https://github.com/xorgnak/toychest
|
125
154
|
licenses:
|
126
155
|
- MIT
|
@@ -142,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
171
|
- !ruby/object:Gem::Version
|
143
172
|
version: '0'
|
144
173
|
requirements: []
|
145
|
-
rubygems_version: 3.6.
|
174
|
+
rubygems_version: 3.6.7
|
146
175
|
specification_version: 4
|
147
176
|
summary: randomized event content generators
|
148
177
|
test_files: []
|