shengxiao 0.1.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 +7 -0
- data/lib/data/data.json +146 -0
- data/lib/locales/en.yml +15 -0
- data/lib/locales/ru.yml +15 -0
- data/lib/locales/zh-CN.yml +15 -0
- data/lib/shengxiao.rb +15 -0
- data/lib/shengxiao/date.rb +11 -0
- data/lib/shengxiao/finder.rb +42 -0
- data/lib/shengxiao/version.rb +3 -0
- metadata +79 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 9f6587ce08492dcb26cc5194affe8b7fe600313f
|
|
4
|
+
data.tar.gz: 5720baf0f0b1abe4182e40a90f2cef9d467b53dc
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: def06517a83744837725e7470a932e7c5967b9f20cd2c613d8bac242a70b8b147e4206eb00cbebd50a6af2ca8ff105d385a11333f8af887b5a1ffa7922d4a904
|
|
7
|
+
data.tar.gz: 8176aac47d31184ffbb37a766b62db8d0ce6c267101a8bad98e837e43b60f0bd9bd4682936079b94459632a3f3cfab098fa1d3badec92741ff7c6e1042a0890d
|
data/lib/data/data.json
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
[
|
|
2
|
+
{ "year": "1900", "start_date": "31 Jan", "sign": "rat" },
|
|
3
|
+
{ "year": "1901", "start_date": "19 Feb", "sign": "ox" },
|
|
4
|
+
{ "year": "1902", "start_date": "08 Feb", "sign": "tiger" },
|
|
5
|
+
{ "year": "1903", "start_date": "29 Jan", "sign": "rabbit" },
|
|
6
|
+
{ "year": "1904", "start_date": "16 Feb", "sign": "dragon" },
|
|
7
|
+
{ "year": "1905", "start_date": "04 Feb", "sign": "snake" },
|
|
8
|
+
{ "year": "1906", "start_date": "25 Jan", "sign": "horse" },
|
|
9
|
+
{ "year": "1907", "start_date": "13 Feb", "sign": "goat" },
|
|
10
|
+
{ "year": "1908", "start_date": "02 Feb", "sign": "monkey" },
|
|
11
|
+
{ "year": "1909", "start_date": "22 Jan", "sign": "rooster" },
|
|
12
|
+
{ "year": "1910", "start_date": "10 Feb", "sign": "dog" },
|
|
13
|
+
{ "year": "1911", "start_date": "30 Jan", "sign": "pig" },
|
|
14
|
+
{ "year": "1912", "start_date": "18 Feb", "sign": "rat" },
|
|
15
|
+
{ "year": "1913", "start_date": "06 Feb", "sign": "ox" },
|
|
16
|
+
{ "year": "1914", "start_date": "26 Jan", "sign": "tiger" },
|
|
17
|
+
{ "year": "1915", "start_date": "14 Feb", "sign": "rabbit" },
|
|
18
|
+
{ "year": "1916", "start_date": "03 Feb", "sign": "dragon" },
|
|
19
|
+
{ "year": "1917", "start_date": "23 Jan", "sign": "snake" },
|
|
20
|
+
{ "year": "1918", "start_date": "11 Feb", "sign": "horse" },
|
|
21
|
+
{ "year": "1919", "start_date": "01 Feb", "sign": "goat" },
|
|
22
|
+
{ "year": "1920", "start_date": "20 Feb", "sign": "monkey" },
|
|
23
|
+
{ "year": "1921", "start_date": "08 Feb", "sign": "rooster" },
|
|
24
|
+
{ "year": "1922", "start_date": "28 Jan", "sign": "dog" },
|
|
25
|
+
{ "year": "1923", "start_date": "16 Feb", "sign": "pig" },
|
|
26
|
+
{ "year": "1924", "start_date": "05 Feb", "sign": "rat" },
|
|
27
|
+
{ "year": "1925", "start_date": "24 Jan", "sign": "ox" },
|
|
28
|
+
{ "year": "1926", "start_date": "13 Feb", "sign": "tiger" },
|
|
29
|
+
{ "year": "1927", "start_date": "02 Feb", "sign": "rabbit" },
|
|
30
|
+
{ "year": "1928", "start_date": "23 Jan", "sign": "dragon" },
|
|
31
|
+
{ "year": "1929", "start_date": "10 Feb", "sign": "snake" },
|
|
32
|
+
{ "year": "1930", "start_date": "30 Jan", "sign": "horse" },
|
|
33
|
+
{ "year": "1931", "start_date": "17 Feb", "sign": "goat" },
|
|
34
|
+
{ "year": "1932", "start_date": "06 Feb", "sign": "monkey" },
|
|
35
|
+
{ "year": "1933", "start_date": "26 Jan", "sign": "rooster" },
|
|
36
|
+
{ "year": "1934", "start_date": "14 Feb", "sign": "dog" },
|
|
37
|
+
{ "year": "1935", "start_date": "04 Feb", "sign": "pig" },
|
|
38
|
+
{ "year": "1936", "start_date": "24 Jan", "sign": "rat" },
|
|
39
|
+
{ "year": "1937", "start_date": "11 Feb", "sign": "ox" },
|
|
40
|
+
{ "year": "1938", "start_date": "31 Jan", "sign": "tiger" },
|
|
41
|
+
{ "year": "1939", "start_date": "19 Feb", "sign": "rabbit" },
|
|
42
|
+
{ "year": "1940", "start_date": "08 Feb", "sign": "dragon" },
|
|
43
|
+
{ "year": "1941", "start_date": "27 Jan", "sign": "snake" },
|
|
44
|
+
{ "year": "1942", "start_date": "15 Feb", "sign": "horse" },
|
|
45
|
+
{ "year": "1943", "start_date": "05 Feb", "sign": "goat" },
|
|
46
|
+
{ "year": "1944", "start_date": "25 Jan", "sign": "monkey" },
|
|
47
|
+
{ "year": "1945", "start_date": "13 Feb", "sign": "rooster" },
|
|
48
|
+
{ "year": "1946", "start_date": "02 Feb", "sign": "dog" },
|
|
49
|
+
{ "year": "1947", "start_date": "22 Jan", "sign": "pig" },
|
|
50
|
+
{ "year": "1948", "start_date": "10 Feb", "sign": "rat" },
|
|
51
|
+
{ "year": "1949", "start_date": "29 Jan", "sign": "ox" },
|
|
52
|
+
{ "year": "1950", "start_date": "17 Feb", "sign": "tiger" },
|
|
53
|
+
{ "year": "1951", "start_date": "06 Feb", "sign": "rabbit" },
|
|
54
|
+
{ "year": "1952", "start_date": "27 Jan", "sign": "dragon" },
|
|
55
|
+
{ "year": "1953", "start_date": "14 Feb", "sign": "snake" },
|
|
56
|
+
{ "year": "1954", "start_date": "03 Feb", "sign": "horse" },
|
|
57
|
+
{ "year": "1955", "start_date": "24 Jan", "sign": "goat" },
|
|
58
|
+
{ "year": "1956", "start_date": "12 Feb", "sign": "monkey" },
|
|
59
|
+
{ "year": "1957", "start_date": "31 Jan", "sign": "rooster" },
|
|
60
|
+
{ "year": "1958", "start_date": "18 Feb", "sign": "dog" },
|
|
61
|
+
{ "year": "1959", "start_date": "08 Feb", "sign": "pig" },
|
|
62
|
+
{ "year": "1960", "start_date": "28 Jan", "sign": "rat" },
|
|
63
|
+
{ "year": "1961", "start_date": "15 Feb", "sign": "ox" },
|
|
64
|
+
{ "year": "1962", "start_date": "05 Feb", "sign": "tiger" },
|
|
65
|
+
{ "year": "1963", "start_date": "25 Jan", "sign": "rabbit" },
|
|
66
|
+
{ "year": "1964", "start_date": "13 Feb", "sign": "dragon" },
|
|
67
|
+
{ "year": "1965", "start_date": "02 Feb", "sign": "snake" },
|
|
68
|
+
{ "year": "1966", "start_date": "21 Jan", "sign": "horse" },
|
|
69
|
+
{ "year": "1967", "start_date": "09 Feb", "sign": "goat" },
|
|
70
|
+
{ "year": "1968", "start_date": "30 Jan", "sign": "monkey" },
|
|
71
|
+
{ "year": "1969", "start_date": "17 Feb", "sign": "rooster" },
|
|
72
|
+
{ "year": "1970", "start_date": "06 Feb", "sign": "dog" },
|
|
73
|
+
{ "year": "1971", "start_date": "27 Jan", "sign": "pig" },
|
|
74
|
+
{ "year": "1972", "start_date": "15 Feb", "sign": "rat" },
|
|
75
|
+
{ "year": "1973", "start_date": "03 Feb", "sign": "ox" },
|
|
76
|
+
{ "year": "1974", "start_date": "23 Jan", "sign": "tiger" },
|
|
77
|
+
{ "year": "1975", "start_date": "11 Feb", "sign": "rabbit" },
|
|
78
|
+
{ "year": "1976", "start_date": "31 Jan", "sign": "dragon" },
|
|
79
|
+
{ "year": "1977", "start_date": "18 Feb", "sign": "snake" },
|
|
80
|
+
{ "year": "1978", "start_date": "07 Feb", "sign": "horse" },
|
|
81
|
+
{ "year": "1979", "start_date": "28 Jan", "sign": "goat" },
|
|
82
|
+
{ "year": "1980", "start_date": "16 Feb", "sign": "monkey" },
|
|
83
|
+
{ "year": "1981", "start_date": "05 Feb", "sign": "rooster" },
|
|
84
|
+
{ "year": "1982", "start_date": "25 Jan", "sign": "dog" },
|
|
85
|
+
{ "year": "1983", "start_date": "13 Feb", "sign": "pig" },
|
|
86
|
+
{ "year": "1984", "start_date": "02 Feb", "sign": "rat" },
|
|
87
|
+
{ "year": "1985", "start_date": "20 Feb", "sign": "ox" },
|
|
88
|
+
{ "year": "1986", "start_date": "09 Feb", "sign": "tiger" },
|
|
89
|
+
{ "year": "1987", "start_date": "29 Jan", "sign": "rabbit" },
|
|
90
|
+
{ "year": "1988", "start_date": "17 Feb", "sign": "dragon" },
|
|
91
|
+
{ "year": "1989", "start_date": "06 Feb", "sign": "snake" },
|
|
92
|
+
{ "year": "1990", "start_date": "27 Jan", "sign": "horse" },
|
|
93
|
+
{ "year": "1991", "start_date": "15 Feb", "sign": "goat" },
|
|
94
|
+
{ "year": "1992", "start_date": "04 Feb", "sign": "monkey" },
|
|
95
|
+
{ "year": "1993", "start_date": "23 Jan", "sign": "rooster" },
|
|
96
|
+
{ "year": "1994", "start_date": "10 Feb", "sign": "dog" },
|
|
97
|
+
{ "year": "1995", "start_date": "31 Jan", "sign": "pig" },
|
|
98
|
+
{ "year": "1996", "start_date": "19 Feb", "sign": "rat" },
|
|
99
|
+
{ "year": "1997", "start_date": "07 Feb", "sign": "ox" },
|
|
100
|
+
{ "year": "1998", "start_date": "27 Jan", "sign": "tiger" },
|
|
101
|
+
{ "year": "1999", "start_date": "16 Feb", "sign": "rabbit" },
|
|
102
|
+
{ "year": "2000", "start_date": "05 Feb", "sign": "dragon" },
|
|
103
|
+
{ "year": "2001", "start_date": "24 Jan", "sign": "snake" },
|
|
104
|
+
{ "year": "2002", "start_date": "12 Feb", "sign": "horse" },
|
|
105
|
+
{ "year": "2003", "start_date": "01 Feb", "sign": "goat" },
|
|
106
|
+
{ "year": "2004", "start_date": "22 Jan", "sign": "monkey" },
|
|
107
|
+
{ "year": "2005", "start_date": "09 Feb", "sign": "rooster" },
|
|
108
|
+
{ "year": "2006", "start_date": "29 Jan", "sign": "dog" },
|
|
109
|
+
{ "year": "2007", "start_date": "18 Feb", "sign": "pig" },
|
|
110
|
+
{ "year": "2008", "start_date": "07 Feb", "sign": "rat" },
|
|
111
|
+
{ "year": "2009", "start_date": "26 Jan", "sign": "ox" },
|
|
112
|
+
{ "year": "2010", "start_date": "10 Feb", "sign": "tiger" },
|
|
113
|
+
{ "year": "2011", "start_date": "03 Feb", "sign": "rabbit" },
|
|
114
|
+
{ "year": "2012", "start_date": "23 Jan", "sign": "dragon" },
|
|
115
|
+
{ "year": "2013", "start_date": "10 Feb", "sign": "snake" },
|
|
116
|
+
{ "year": "2014", "start_date": "31 Jan", "sign": "horse" },
|
|
117
|
+
{ "year": "2015", "start_date": "19 Feb", "sign": "goat" },
|
|
118
|
+
{ "year": "2016", "start_date": "09 Feb", "sign": "monkey" },
|
|
119
|
+
{ "year": "2017", "start_date": "28 Jan", "sign": "rooster" },
|
|
120
|
+
{ "year": "2018", "start_date": "16 Feb", "sign": "dog" },
|
|
121
|
+
{ "year": "2019", "start_date": "05 Feb", "sign": "pig" },
|
|
122
|
+
{ "year": "2020", "start_date": "25 Jan", "sign": "rat" },
|
|
123
|
+
{ "year": "2021", "start_date": "12 Feb", "sign": "ox" },
|
|
124
|
+
{ "year": "2022", "start_date": "01 Feb", "sign": "tiger" },
|
|
125
|
+
{ "year": "2023", "start_date": "22 Jan", "sign": "rabbit" },
|
|
126
|
+
{ "year": "2024", "start_date": "10 Feb", "sign": "dragon" },
|
|
127
|
+
{ "year": "2025", "start_date": "29 Jan", "sign": "snake" },
|
|
128
|
+
{ "year": "2026", "start_date": "17 Feb", "sign": "horse" },
|
|
129
|
+
{ "year": "2027", "start_date": "06 Feb", "sign": "goat" },
|
|
130
|
+
{ "year": "2028", "start_date": "26 Jan", "sign": "monkey" },
|
|
131
|
+
{ "year": "2029", "start_date": "13 Feb", "sign": "rooster" },
|
|
132
|
+
{ "year": "2030", "start_date": "03 Feb", "sign": "dog" },
|
|
133
|
+
{ "year": "2031", "start_date": "23 Jan", "sign": "pig" },
|
|
134
|
+
{ "year": "2032", "start_date": "11 Feb", "sign": "rat" },
|
|
135
|
+
{ "year": "2033", "start_date": "31 Jan", "sign": "ox" },
|
|
136
|
+
{ "year": "2034", "start_date": "19 Feb", "sign": "tiger" },
|
|
137
|
+
{ "year": "2035", "start_date": "08 Feb", "sign": "rabbit" },
|
|
138
|
+
{ "year": "2036", "start_date": "28 Jan", "sign": "dragon" },
|
|
139
|
+
{ "year": "2037", "start_date": "15 Feb", "sign": "snake" },
|
|
140
|
+
{ "year": "2038", "start_date": "04 Feb", "sign": "horse" },
|
|
141
|
+
{ "year": "2039", "start_date": "24 Jan", "sign": "goat" },
|
|
142
|
+
{ "year": "2040", "start_date": "12 Feb", "sign": "monkey" },
|
|
143
|
+
{ "year": "2041", "start_date": "01 Feb", "sign": "rooster" },
|
|
144
|
+
{ "year": "2042", "start_date": "22 Jan", "sign": "dog" },
|
|
145
|
+
{ "year": "2043", "start_date": "10 Feb", "sign": "pig" }
|
|
146
|
+
]
|
data/lib/locales/en.yml
ADDED
data/lib/locales/ru.yml
ADDED
data/lib/shengxiao.rb
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'i18n'
|
|
2
|
+
glob = Dir.glob(File.dirname(File.expand_path(__FILE__)))
|
|
3
|
+
I18n.config.load_path += Dir[File.join(glob, 'locales', '*.yml')]
|
|
4
|
+
|
|
5
|
+
require 'date'
|
|
6
|
+
require 'json'
|
|
7
|
+
require 'shengxiao/finder'
|
|
8
|
+
|
|
9
|
+
module ShengXiao
|
|
10
|
+
def self.sign(date)
|
|
11
|
+
ShengXiao::Finder.sign_for(date)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
require 'shengxiao/date'
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module ShengXiao
|
|
2
|
+
module Finder
|
|
3
|
+
@data = []
|
|
4
|
+
|
|
5
|
+
class << self
|
|
6
|
+
def sign_for(date)
|
|
7
|
+
date = Date.parse(date) unless date.is_a?(Date)
|
|
8
|
+
year = date.year
|
|
9
|
+
|
|
10
|
+
parse_data_from_file if @data.empty?
|
|
11
|
+
year_data = get_year_data(year)
|
|
12
|
+
|
|
13
|
+
raise "Date should be specified in the given range: "\
|
|
14
|
+
"#{@data_start} - #{@data_end}. "\
|
|
15
|
+
"You specified: #{date}." unless year_data
|
|
16
|
+
|
|
17
|
+
year_start_date = Date.parse("#{year_data['start_date']} #{year}")
|
|
18
|
+
if date < year_start_date
|
|
19
|
+
year_data = get_year_data(year-1)
|
|
20
|
+
raise "Given date should be no earlier than #{@data_start}. "\
|
|
21
|
+
"You specified: #{date}." unless year_data
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
sign = year_data["sign"]
|
|
25
|
+
I18n.t("shengxiao.signs.#{sign}")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def parse_data_from_file
|
|
31
|
+
data_file = File.read(File.join(File.dirname(__FILE__), '..', 'data', 'data.json'))
|
|
32
|
+
@data = JSON.parse(data_file)
|
|
33
|
+
@data_start = Date.parse("#{@data.first['start_date']} #{@data.first['year']}")
|
|
34
|
+
@data_end = Date.parse("31 Jan #{@data.last['year']}")
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def get_year_data(year)
|
|
38
|
+
@data.detect { |d| d['year'] == year.to_s }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: shengxiao
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Albina Yusupova
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2017-03-26 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: i18n
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 0.8.0
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 0.8.0
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rake
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '10.0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '10.0'
|
|
41
|
+
description: Chinese zodiac calculator gem
|
|
42
|
+
email: yusupova.albina@gmail.com
|
|
43
|
+
executables: []
|
|
44
|
+
extensions: []
|
|
45
|
+
extra_rdoc_files: []
|
|
46
|
+
files:
|
|
47
|
+
- lib/data/data.json
|
|
48
|
+
- lib/locales/en.yml
|
|
49
|
+
- lib/locales/ru.yml
|
|
50
|
+
- lib/locales/zh-CN.yml
|
|
51
|
+
- lib/shengxiao.rb
|
|
52
|
+
- lib/shengxiao/date.rb
|
|
53
|
+
- lib/shengxiao/finder.rb
|
|
54
|
+
- lib/shengxiao/version.rb
|
|
55
|
+
homepage: https://github.com/yusupova/shengxiao
|
|
56
|
+
licenses:
|
|
57
|
+
- MIT
|
|
58
|
+
metadata: {}
|
|
59
|
+
post_install_message:
|
|
60
|
+
rdoc_options: []
|
|
61
|
+
require_paths:
|
|
62
|
+
- lib
|
|
63
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
|
+
requirements:
|
|
70
|
+
- - ">="
|
|
71
|
+
- !ruby/object:Gem::Version
|
|
72
|
+
version: '0'
|
|
73
|
+
requirements: []
|
|
74
|
+
rubyforge_project:
|
|
75
|
+
rubygems_version: 2.6.10
|
|
76
|
+
signing_key:
|
|
77
|
+
specification_version: 4
|
|
78
|
+
summary: Chinese zodiac (Shengxiao) calculator
|
|
79
|
+
test_files: []
|