uniform_invoice_lottery 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +5 -0
- data/README.md +4 -27
- data/lib/uniform_invoice_lottery.rb +16 -0
- data/lib/uniform_invoice_lottery/prizes.rb +5 -1
- data/lib/uniform_invoice_lottery/version.rb +1 -1
- data/spec/support_spec.rb +21 -0
- data/spec/uniform_invoice_lottery_spec.rb +42 -1
- metadata +5 -4
- data/spec/data_crawler_spec.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e89798e7823c640221b8a2ac0b49d226164aad6a
|
4
|
+
data.tar.gz: f9c02a59ffe7973b2f74a77a00ce654e65d1de17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fdf534694afaef64454d4c19de3cb8024dea810f6b43cd4c08e2dcf9a8b071ce5591ee42e7726e7e12e2772783f98452852a3f0c57e3e5485fb12b52cda6763
|
7
|
+
data.tar.gz: 7b9018af7d2333a2d8ac038d27f7bb1d221abf6310df29c37f1572679732fc039309d8ab10cefa87cd4d0c2806543732bfefd881ee7e3675096aea6004526500
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -20,38 +20,15 @@ Or install it yourself as:
|
|
20
20
|
$ gem install uniform_invoice_lottery
|
21
21
|
|
22
22
|
## Usage
|
23
|
-
|
24
|
-
回傳號碼結果字串,例如:
|
25
23
|
```ruby
|
26
24
|
require 'uniform_invoice_lottery'
|
27
|
-
UniformInvoiceLottery.check '82930261', time: Time.new(2015, 7, 26)
|
28
|
-
|
29
|
-
|
30
|
-
嫌太長就這樣寫
|
25
|
+
prize = UniformInvoiceLottery.check '82930261', time: Time.new(2015, 7, 26)
|
26
|
+
prize = UniformInvoiceLottery.check '82930261', year: 2015, month: 7 day: 26
|
31
27
|
|
32
|
-
|
33
|
-
|
34
|
-
uni_invoice.check '82930261', time: Time.new(2015, 7, 26)
|
28
|
+
puts prize.amount # => "10000000"
|
29
|
+
puts prize.title # => "特別獎"
|
35
30
|
```
|
36
31
|
|
37
|
-
上面這段回傳 `"特別獎"`。
|
38
|
-
|
39
|
-
|
40
|
-
總共有這幾個回傳值:
|
41
|
-
|
42
|
-
特別獎
|
43
|
-
特獎
|
44
|
-
頭獎
|
45
|
-
二獎
|
46
|
-
三獎
|
47
|
-
四獎
|
48
|
-
五獎
|
49
|
-
六獎
|
50
|
-
增開六獎
|
51
|
-
下次再來,兩個月後又是一條好漢
|
52
|
-
|
53
|
-
XD。
|
54
|
-
|
55
32
|
## Contributing
|
56
33
|
|
57
34
|
1. Fork it ( https://github.com/Yukaii/uniform_invoice_lottery/fork )
|
@@ -14,5 +14,21 @@ module UniformInvoiceLottery
|
|
14
14
|
def check invoice_code, opts={}
|
15
15
|
LotteryCheckService.new.check(invoice_code, opts)
|
16
16
|
end
|
17
|
+
|
18
|
+
def records
|
19
|
+
LotteryCrawler.crawler.records
|
20
|
+
end
|
21
|
+
|
22
|
+
def find_record_by(year: nil, start_month: nil)
|
23
|
+
record = LotteryCrawler.find_record_by(
|
24
|
+
year: year,
|
25
|
+
start_month: start_month,
|
26
|
+
end_month: start_month + 1
|
27
|
+
)
|
28
|
+
|
29
|
+
yield(record) if block_given?
|
30
|
+
|
31
|
+
record
|
32
|
+
end
|
17
33
|
end
|
18
34
|
end
|
@@ -11,6 +11,10 @@ module UniformInvoiceLottery
|
|
11
11
|
def priority
|
12
12
|
self.class.const_get(:PRIORITY)
|
13
13
|
end
|
14
|
+
|
15
|
+
def to_s
|
16
|
+
"#{title}: NT$ #{amount}"
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
class SpecialPrize < Prize
|
@@ -68,7 +72,7 @@ module UniformInvoiceLottery
|
|
68
72
|
end
|
69
73
|
|
70
74
|
class NullPrize < Prize
|
71
|
-
TITLE = "
|
75
|
+
TITLE = "沒中獎"
|
72
76
|
AMOUNT = 0
|
73
77
|
PRIORITY = 999
|
74
78
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'uniform_invoice_lottery/support'
|
3
|
+
require 'uniform_invoice_lottery/exceptions'
|
4
|
+
|
5
|
+
describe UniformInvoiceLottery::Support do
|
6
|
+
before do
|
7
|
+
@object = Object.new
|
8
|
+
@object.extend(UniformInvoiceLottery::Support)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should calculate correct lottery month" do
|
12
|
+
expect( @object.get_draw_month( Time.new(2015, 1, 15) )).to eq(11)
|
13
|
+
expect( @object.get_draw_month( Time.new(2015, 1, 25) )).to eq( 1)
|
14
|
+
expect( @object.get_draw_month( Time.new(2015, 2, 28) )).to eq( 1)
|
15
|
+
|
16
|
+
expect( @object.get_lottery_months(3)).to eq([1,2])
|
17
|
+
expect( @object.get_lottery_months(1)).to eq([11,12])
|
18
|
+
# 奇數月開獎的說
|
19
|
+
expect{ @object.get_lottery_months(2) }.to raise_error(UniformInvoiceLottery::InvalidLotteryMonthError)
|
20
|
+
end
|
21
|
+
end
|
@@ -3,6 +3,47 @@ require 'uniform_invoice_lottery'
|
|
3
3
|
|
4
4
|
describe UniformInvoiceLottery do
|
5
5
|
it "can check lottery" do
|
6
|
-
|
6
|
+
special_prize = UniformInvoiceLottery.check('82930261', time: Time.new(2015, 7, 26))
|
7
|
+
expect(special_prize.title).to eq("特別獎")
|
8
|
+
expect(special_prize.amount).to eq(10_000_000)
|
9
|
+
expect(special_prize.to_s).to eq("特別獎: NT$ 10000000")
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should load records' do
|
13
|
+
records = UniformInvoiceLottery.records
|
14
|
+
|
15
|
+
expect(records.class).to eq(Array)
|
16
|
+
|
17
|
+
unless records.empty?
|
18
|
+
expect(records.first.class).to eq(Hash)
|
19
|
+
%w(year start_month end_month special_prize grand_prize first_prizes additional_sixth_prizes).each {|k|
|
20
|
+
expect(records.first).to have_key(k)
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'can find record by year and start_month' do
|
26
|
+
_r = {
|
27
|
+
'year' => 104,
|
28
|
+
'start_month' => 1,
|
29
|
+
'end_month' => 2,
|
30
|
+
'special_prize' => '60538935',
|
31
|
+
'grand_prize' => '50887710',
|
32
|
+
'first_prizes' => [
|
33
|
+
'63856949',
|
34
|
+
'39459262',
|
35
|
+
'61944942',
|
36
|
+
],
|
37
|
+
'additional_sixth_prizes' => [
|
38
|
+
'022',
|
39
|
+
'355',
|
40
|
+
'038',
|
41
|
+
]
|
42
|
+
}
|
43
|
+
expect(UniformInvoiceLottery.find_record_by(year: 104, start_month: 1)).to eq(_r)
|
44
|
+
|
45
|
+
UniformInvoiceLottery.find_record_by(year: 104, start_month: 1) do |record|
|
46
|
+
expect(record).not_to be_nil
|
47
|
+
end
|
7
48
|
end
|
8
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uniform_invoice_lottery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yukai Huang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -201,6 +201,7 @@ extra_rdoc_files: []
|
|
201
201
|
files:
|
202
202
|
- ".gitignore"
|
203
203
|
- ".pryrc"
|
204
|
+
- ".travis.yml"
|
204
205
|
- Gemfile
|
205
206
|
- Guardfile
|
206
207
|
- LICENSE.txt
|
@@ -214,8 +215,8 @@ files:
|
|
214
215
|
- lib/uniform_invoice_lottery/prizes.rb
|
215
216
|
- lib/uniform_invoice_lottery/support.rb
|
216
217
|
- lib/uniform_invoice_lottery/version.rb
|
217
|
-
- spec/data_crawler_spec.rb
|
218
218
|
- spec/spec_helper.rb
|
219
|
+
- spec/support_spec.rb
|
219
220
|
- spec/uniform_invoice_lottery_spec.rb
|
220
221
|
- uniform_invoice_lottery.gemspec
|
221
222
|
homepage: https://github.com/Yukaii/uniform-invoice-lottery
|
@@ -243,7 +244,7 @@ signing_key:
|
|
243
244
|
specification_version: 4
|
244
245
|
summary: "一個統一發票的查詢、兌獎 gem"
|
245
246
|
test_files:
|
246
|
-
- spec/data_crawler_spec.rb
|
247
247
|
- spec/spec_helper.rb
|
248
|
+
- spec/support_spec.rb
|
248
249
|
- spec/uniform_invoice_lottery_spec.rb
|
249
250
|
has_rdoc:
|
data/spec/data_crawler_spec.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# require 'spec_helper'
|
2
|
-
# require 'uniform_invoice_lottery'
|
3
|
-
|
4
|
-
# describe UniformInvoiceLottery::DataCrawler do
|
5
|
-
|
6
|
-
# let(:data_crawler) {
|
7
|
-
# UniformInvoiceLottery::DataCrawler
|
8
|
-
# }
|
9
|
-
|
10
|
-
# describe "test DataCrawler module" do
|
11
|
-
# it "should have DataCrawler sub module" do
|
12
|
-
# records = data_crawler.records
|
13
|
-
|
14
|
-
# expect(records.class).to eq(Array)
|
15
|
-
|
16
|
-
# unless records.empty?
|
17
|
-
# expect(records.first.class).to eq(Hash)
|
18
|
-
# %w(year start_month end_month so_special_price special_price head_prices additional_sixth_prices).each {|k|
|
19
|
-
# expect(records.first).to have_key(k)
|
20
|
-
# }
|
21
|
-
# end
|
22
|
-
# end
|
23
|
-
|
24
|
-
# it "should calculate correct lottery month" do
|
25
|
-
# expect(data_crawler.get_draw_month( Time.new(2015, 1, 15) )).to eq(11)
|
26
|
-
# expect(data_crawler.get_draw_month( Time.new(2015, 1, 25) )).to eq( 1)
|
27
|
-
# expect(data_crawler.get_draw_month( Time.new(2015, 2, 28) )).to eq( 1)
|
28
|
-
|
29
|
-
# expect(data_crawler.get_lottery_months(3)).to eq([1,2])
|
30
|
-
# expect(data_crawler.get_lottery_months(1)).to eq([11,12])
|
31
|
-
# # 奇數月開獎的說
|
32
|
-
# expect{ data_crawler.get_lottery_months(2) }.to raise_error(UniformInvoiceLottery::InvalidLotteryMonthError)
|
33
|
-
# end
|
34
|
-
# end
|
35
|
-
|
36
|
-
# end
|