etoji 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f9221749c7d4b81d689b5374d482a46f50b9c0b362b8e33864871bcadfc9ecf9
4
- data.tar.gz: f8eeb9b427ec6a1be88811019ec245bf680579a2549e1fe3236928580596f7f6
3
+ metadata.gz: 0b28cd30ad8f3111e91d658dfba76ca4768f9cccdb7806add1475fbc7ebe3c04
4
+ data.tar.gz: 9e0fe3f93d5f679dc583f30eb8dd68a5fdcc27988f826ad40e8a5a562da1f102
5
5
  SHA512:
6
- metadata.gz: 4034b814a166c7ec57eb1414d9e01b2f861b1003ca5ca817a6dbb42b29e312115ac2fcf6c3b8a512e74ad625e720e78f86070e4df63c08b2b6cbfda9c38c183b
7
- data.tar.gz: fa6f6777389c7e2a4dd9b837041ffb13527eaf7d43e4fac9663a8234f00881101f029f8109240e6264e922ca7e05b307cc184da325d27827d6df982a84a2ed56
6
+ metadata.gz: c28f3236bbb35df7b395ac2f28019a230c2abbf439e39b4898368690b7e1b72e975024ab7535e36d415936840f670a25d218b28ee37217b974131edc964e28f4
7
+ data.tar.gz: 8afc27bcc0922d3bc5211af8a2e0e79e800d9832243c53694df18db258f88a485b90a9aae5efcad02cffa9866be74ec4f297ad46f368fe51b04eaf9dc4a30764
@@ -17,8 +17,9 @@ jobs:
17
17
  matrix:
18
18
  ruby:
19
19
  - '3.2.0'
20
+ - '3.3.0'
20
21
  steps:
21
- - uses: actions/checkout@v2
22
+ - uses: actions/checkout@v4
22
23
  - name: Set up Ruby
23
24
  uses: ruby/setup-ruby@v1
24
25
  with:
@@ -0,0 +1,28 @@
1
+ name: typecheck
2
+
3
+ on:
4
+ pull_request:
5
+ types:
6
+ - opened
7
+ - synchronize
8
+ - reopened
9
+ push:
10
+ branches:
11
+ - main
12
+
13
+ jobs:
14
+ build:
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ ruby:
19
+ - '3.2.0'
20
+ steps:
21
+ - uses: actions/checkout@v2
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: ${{ matrix.ruby }}
26
+ bundler-cache: true
27
+ - name: Run steep check
28
+ run: bundle exec steep check
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ source "https://rubygems.org"
5
5
  # Specify your gem's dependencies in etoji.gemspec
6
6
  gemspec
7
7
 
8
- gem "rake", "~> 13.0"
9
-
10
- gem "rspec", "~> 3.0"
8
+ gem "rake"
9
+ gem "rspec"
10
+ gem "rbs", require: false
11
+ gem "steep", require: false
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Etoji
2
2
 
3
- [![test](https://github.com/MITSUBOSHI/etoji/actions/workflows/test.yml/badge.svg)](https://github.com/MITSUBOSHI/etoji/actions/workflows/test.yml)
3
+ [![test](https://github.com/MITSUBOSHI/etoji/actions/workflows/test.yml/badge.svg)](https://github.com/MITSUBOSHI/etoji/actions/workflows/test.yml)[![typecheck](https://github.com/MITSUBOSHI/etoji/actions/workflows/typecheck.yml/badge.svg)](https://github.com/MITSUBOSHI/etoji/actions/workflows/typecheck.yml)
4
4
 
5
5
 
6
6
  Simple 干支(eto) library
@@ -15,7 +15,8 @@ Etoji.geto(year: 2023)
15
15
  # number=4,
16
16
  # emoji="🐰",
17
17
  # character="卯",
18
- # character_hiragana="う",
18
+ # character_hiragana_kun="う",
19
+ # character_hiragana_on="ぼう",
19
20
  # animal_name_ja="兎",
20
21
  # animal_name_ja_hiragana="うさぎ",
21
22
  # animal_name_en="rabbit">
data/Steepfile ADDED
@@ -0,0 +1,9 @@
1
+ target :lib do
2
+ signature "sig"
3
+
4
+ check "lib"
5
+
6
+ library(
7
+ "json"
8
+ )
9
+ end
data/db/jyunishi.json CHANGED
@@ -3,7 +3,8 @@
3
3
  "number": 1,
4
4
  "emoji": "🐭",
5
5
  "character": "子",
6
- "character_hiragana": "ね",
6
+ "character_hiragana_kun": "ね",
7
+ "character_hiragana_on": "し",
7
8
  "animal_name": {
8
9
  "ja": "鼠",
9
10
  "ja_hiragana": "ねずみ",
@@ -14,7 +15,8 @@
14
15
  "number": 2,
15
16
  "emoji": "🐮",
16
17
  "character": "丑",
17
- "character_hiragana": "うし",
18
+ "character_hiragana_kun": "うし",
19
+ "character_hiragana_on": "ちゅう",
18
20
  "animal_name": {
19
21
  "ja": "牛",
20
22
  "ja_hiragana": "うし",
@@ -25,7 +27,8 @@
25
27
  "number": 3,
26
28
  "emoji": "🐯",
27
29
  "character": "寅",
28
- "character_hiragana": "とら",
30
+ "character_hiragana_kun": "とら",
31
+ "character_hiragana_on": "いん",
29
32
  "animal_name": {
30
33
  "ja": "虎",
31
34
  "ja_hiragana": "とら",
@@ -36,7 +39,8 @@
36
39
  "number": 4,
37
40
  "emoji": "🐰",
38
41
  "character": "卯",
39
- "character_hiragana": "う",
42
+ "character_hiragana_kun": "う",
43
+ "character_hiragana_on": "ぼう",
40
44
  "animal_name": {
41
45
  "ja": "兎",
42
46
  "ja_hiragana": "うさぎ",
@@ -47,7 +51,8 @@
47
51
  "number": 5,
48
52
  "emoji": "🐲",
49
53
  "character": "辰",
50
- "character_hiragana": "たつ",
54
+ "character_hiragana_kun": "たつ",
55
+ "character_hiragana_on": "しん",
51
56
  "animal_name": {
52
57
  "ja": "龍",
53
58
  "ja_hiragana": "りゅう",
@@ -58,7 +63,8 @@
58
63
  "number": 6,
59
64
  "emoji": "🐍",
60
65
  "character": "巳",
61
- "character_hiragana": "たつ",
66
+ "character_hiragana_kun": "",
67
+ "character_hiragana_on": "し",
62
68
  "animal_name": {
63
69
  "ja": "蛇",
64
70
  "ja_hiragana": "へび",
@@ -69,7 +75,8 @@
69
75
  "number": 7,
70
76
  "emoji": "🐴",
71
77
  "character": "午",
72
- "character_hiragana": "うま",
78
+ "character_hiragana_kun": "うま",
79
+ "character_hiragana_on": "ご",
73
80
  "animal_name": {
74
81
  "ja": "馬",
75
82
  "ja_hiragana": "うま",
@@ -80,7 +87,8 @@
80
87
  "number": 8,
81
88
  "emoji": "🐏",
82
89
  "character": "未",
83
- "character_hiragana": "ひつじ",
90
+ "character_hiragana_kun": "ひつじ",
91
+ "character_hiragana_on": "び",
84
92
  "animal_name": {
85
93
  "ja": "羊",
86
94
  "ja_hiragana": "ひつじ",
@@ -91,7 +99,8 @@
91
99
  "number": 9,
92
100
  "emoji": "🐵",
93
101
  "character": "申",
94
- "character_hiragana": "さる",
102
+ "character_hiragana_kun": "さる",
103
+ "character_hiragana_on": "しん",
95
104
  "animal_name": {
96
105
  "ja": "猿",
97
106
  "ja_hiragana": "さる",
@@ -102,7 +111,8 @@
102
111
  "number": 10,
103
112
  "emoji": "🐔",
104
113
  "character": "酉",
105
- "character_hiragana": "とり",
114
+ "character_hiragana_kun": "とり",
115
+ "character_hiragana_on": "ゆう",
106
116
  "animal_name": {
107
117
  "ja": "鶏",
108
118
  "ja_hiragana": "にわとり",
@@ -113,7 +123,8 @@
113
123
  "number": 11,
114
124
  "emoji": "🐶",
115
125
  "character": "戌",
116
- "character_hiragana": "いぬ",
126
+ "character_hiragana_kun": "いぬ",
127
+ "character_hiragana_on": "じゅつ",
117
128
  "animal_name": {
118
129
  "ja": "犬",
119
130
  "ja_hiragana": "いぬ",
@@ -124,7 +135,8 @@
124
135
  "number": 12,
125
136
  "emoji": "🐗",
126
137
  "character": "亥",
127
- "character_hiragana": "い",
138
+ "character_hiragana_kun": "い",
139
+ "character_hiragana_on": "がい",
128
140
  "animal_name": {
129
141
  "ja": "猪",
130
142
  "ja_hiragana": "いのしし",
data/etoji.gemspec CHANGED
@@ -26,9 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
27
27
  spec.require_paths = ["lib"]
28
28
 
29
- # Uncomment to register a new dependency of your gem
30
- # spec.add_dependency "example-gem", "~> 1.0"
31
-
32
- # For more information and examples about making a new gem, checkout our
33
- # guide at: https://bundler.io/guides/creating_gem.html
29
+ spec.add_dependency 'json'
34
30
  end
data/lib/etoji/jikkan.rb CHANGED
@@ -4,9 +4,9 @@ require 'json'
4
4
  module Etoji
5
5
  module Jikkan
6
6
  class NotFound < StandardError; end
7
+ class Kan < ::Data.define(:number, :character, :character_hiragana_on, :character_hiragana_kun); end
7
8
 
8
9
  SOURCE_FILE_PATH = File.expand_path('../../../db/jikkan.json', __FILE__)
9
- Kan = ::Data.define(:number, :character, :character_hiragana_on, :character_hiragana_kun)
10
10
  MEMBERS = JSON.parse(File.read(SOURCE_FILE_PATH), symbolize_names: true).map { |attributes|
11
11
  Kan.new(
12
12
  number: attributes[:number],
@@ -4,15 +4,16 @@ require 'json'
4
4
  module Etoji
5
5
  module Jyunishi
6
6
  class NotFound < StandardError; end
7
+ class Animal < ::Data.define(:number, :emoji, :character, :character_hiragana_kun, :character_hiragana_on, :animal_name_ja, :animal_name_ja_hiragana, :animal_name_en); end
7
8
 
8
9
  SOURCE_FILE_PATH = File.expand_path('../../../db/jyunishi.json', __FILE__)
9
- Animal = ::Data.define(:number, :emoji, :character, :character_hiragana, :animal_name_ja, :animal_name_ja_hiragana, :animal_name_en)
10
10
  MEMBERS = JSON.parse(File.read(SOURCE_FILE_PATH), symbolize_names: true).map { |attributes|
11
11
  Animal.new(
12
12
  number: attributes[:number],
13
13
  emoji: attributes[:emoji],
14
14
  character: attributes[:character],
15
- character_hiragana: attributes[:character_hiragana],
15
+ character_hiragana_kun: attributes[:character_hiragana_kun],
16
+ character_hiragana_on: attributes[:character_hiragana_on],
16
17
  animal_name_ja: attributes.dig(:animal_name, :ja),
17
18
  animal_name_ja_hiragana: attributes.dig(:animal_name, :ja_hiragana),
18
19
  animal_name_en: attributes.dig(:animal_name, :en)
data/lib/etoji/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Etoji
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/etoji.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "etoji/version"
4
- require "etoji/jikkan"
5
- require "etoji/jyunishi"
3
+ require_relative "etoji/version"
4
+ require_relative "etoji/jikkan"
5
+ require_relative "etoji/jyunishi"
6
6
 
7
7
  module Etoji
8
8
  class Error < StandardError; end
@@ -0,0 +1,22 @@
1
+ module Etoji
2
+ module Jikkan
3
+ SOURCE_FILE_PATH: String
4
+ MEMBERS: Array[Kan]
5
+ self.@kans_by_number: Hash[Integer, Kan]
6
+
7
+ def self.all: -> Array[Kan]
8
+ def self.find_by_number: (Integer) -> Kan
9
+
10
+ class Kan
11
+ attr_reader number: Integer
12
+ attr_reader character: String
13
+ attr_reader character_hiragana_on: String
14
+ attr_reader character_hiragana_kun: String
15
+
16
+ def initialize: (number: Integer, character: String, character_hiragana_on: String, character_hiragana_kun: String) -> void
17
+ end
18
+
19
+ class NotFound < StandardError
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+ module Etoji
2
+ module Jyunishi
3
+ SOURCE_FILE_PATH: String
4
+ MEMBERS: Array[Animal]
5
+ self.@animals_by_number: Hash[Integer, Animal]
6
+
7
+ def self.all: -> Array[Animal]
8
+ def self.find_by_number: (Integer) -> Animal
9
+
10
+ class Animal
11
+ attr_reader number: Integer
12
+ attr_reader emoji: String
13
+ attr_reader character: String
14
+ attr_reader character_hiragana_on: String
15
+ attr_reader character_hiragana_kun: String
16
+ attr_reader animal_name_ja: String
17
+ attr_reader animal_name_ja_hiragana: String
18
+ attr_reader animal_name_en: String
19
+
20
+ def initialize: (number: Integer, emoji: String, character: String, character_hiragana_on: String, character_hiragana_kun: String, animal_name_ja: String, animal_name_ja_hiragana: String, animal_name_en: String) -> void
21
+ end
22
+
23
+ class NotFound < StandardError
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,3 @@
1
+ module Etoji
2
+ VERSION: String
3
+ end
data/sig/lib/etoji.rbs ADDED
@@ -0,0 +1,11 @@
1
+ module Etoji
2
+ class Error < StandardError
3
+ end
4
+
5
+ def self.geto: (year: Integer|String, ?with_prev: false, ?with_next: false) -> Jyunishi::Animal
6
+ | (year: Integer|String, with_prev: true, ?with_next: bool) -> Array[Jyunishi::Animal]
7
+ | (year: Integer|String, ?with_prev: bool, with_next: true) -> Array[Jyunishi::Animal]
8
+ def self.geto_full_string: (year: Integer|String) -> String
9
+
10
+ def self.convert_year: (Integer|String) -> Integer
11
+ end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: etoji
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - mitsubosh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-04 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2024-01-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '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'
13
27
  description: Simple 干支(eto) library
14
28
  email:
15
29
  - yuya.mitsuboshi@gmail.com
@@ -18,12 +32,14 @@ extensions: []
18
32
  extra_rdoc_files: []
19
33
  files:
20
34
  - ".github/workflows/test.yml"
35
+ - ".github/workflows/typecheck.yml"
21
36
  - ".gitignore"
22
37
  - ".rspec"
23
38
  - Gemfile
24
39
  - LICENSE.txt
25
40
  - README.md
26
41
  - Rakefile
42
+ - Steepfile
27
43
  - bin/console
28
44
  - bin/setup
29
45
  - db/jikkan.json
@@ -34,6 +50,10 @@ files:
34
50
  - lib/etoji/jikkan.rb
35
51
  - lib/etoji/jyunishi.rb
36
52
  - lib/etoji/version.rb
53
+ - sig/lib/etoji.rbs
54
+ - sig/lib/etoji/jikkan.rbs
55
+ - sig/lib/etoji/jyunishi.rbs
56
+ - sig/lib/etoji/version.rbs
37
57
  homepage: https://github.com/MITSUBOSHI/etoji
38
58
  licenses:
39
59
  - MIT
@@ -55,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
75
  - !ruby/object:Gem::Version
56
76
  version: '0'
57
77
  requirements: []
58
- rubygems_version: 3.4.1
78
+ rubygems_version: 3.5.3
59
79
  signing_key:
60
80
  specification_version: 4
61
81
  summary: Simple 干支(eto) library