zakuro 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +9 -0
  3. data/.gitignore +69 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +14 -0
  6. data/.travis.yml +6 -0
  7. data/Gemfile +19 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +44 -0
  10. data/Rakefile +20 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/images/12/346/234/210/344/273/245/351/231/215/343/201/256/345/205/245/345/256/232/346/260/227.png +0 -0
  14. data/images/12/346/234/210/344/273/245/351/231/215/343/201/256/346/234/210/343/201/256/351/200/262/351/200/200.png +0 -0
  15. data/images/source/description.numbers +0 -0
  16. data/images//345/205/245/345/256/232/346/260/227/343/201/256/350/265/267/347/256/227.png +0 -0
  17. data/images//345/220/204/346/234/210/343/201/256/346/261/202/343/202/201/346/226/271.png +0 -0
  18. data/images//345/244/252/351/231/275/343/201/250/346/234/210.png +0 -0
  19. data/lib/zakuro.rb +9 -0
  20. data/lib/zakuro/condition.rb +239 -0
  21. data/lib/zakuro/cycle/abstract_remainder.rb +457 -0
  22. data/lib/zakuro/cycle/zodiac.rb +103 -0
  23. data/lib/zakuro/era/gengou/set-001-until-south.yaml +375 -0
  24. data/lib/zakuro/era/gengou/set-002-from-north.yaml +166 -0
  25. data/lib/zakuro/era/gengou/set-003-modern.yaml +12 -0
  26. data/lib/zakuro/era/japan.rb +630 -0
  27. data/lib/zakuro/era/western.rb +412 -0
  28. data/lib/zakuro/merchant.rb +57 -0
  29. data/lib/zakuro/output/error.rb +10 -0
  30. data/lib/zakuro/output/logger.rb +64 -0
  31. data/lib/zakuro/output/response.rb +170 -0
  32. data/lib/zakuro/output/result.rb +219 -0
  33. data/lib/zakuro/output/stringifier.rb +62 -0
  34. data/lib/zakuro/version.rb +7 -0
  35. data/lib/zakuro/version/abstract_version.rb +29 -0
  36. data/lib/zakuro/version/genka/genka.rb +19 -0
  37. data/lib/zakuro/version/gihou/gihou.rb +19 -0
  38. data/lib/zakuro/version/gregorio/gregorio.rb +19 -0
  39. data/lib/zakuro/version/houryaku/houryaku.rb +19 -0
  40. data/lib/zakuro/version/joukyou/joukyou.rb +19 -0
  41. data/lib/zakuro/version/kansei/kansei.rb +19 -0
  42. data/lib/zakuro/version/senmyou/README.md +586 -0
  43. data/lib/zakuro/version/senmyou/base/era.rb +81 -0
  44. data/lib/zakuro/version/senmyou/base/gengou.rb +210 -0
  45. data/lib/zakuro/version/senmyou/base/remainder.rb +60 -0
  46. data/lib/zakuro/version/senmyou/base/solar_term.rb +66 -0
  47. data/lib/zakuro/version/senmyou/base/year.rb +58 -0
  48. data/lib/zakuro/version/senmyou/monthly/lunar_phase.rb +220 -0
  49. data/lib/zakuro/version/senmyou/monthly/month.rb +112 -0
  50. data/lib/zakuro/version/senmyou/senmyou.rb +34 -0
  51. data/lib/zakuro/version/senmyou/stella/lunar_orbit.rb +332 -0
  52. data/lib/zakuro/version/senmyou/stella/solar_average.rb +192 -0
  53. data/lib/zakuro/version/senmyou/stella/solar_orbit.rb +398 -0
  54. data/lib/zakuro/version/senmyou/stella/winter_solstice.rb +106 -0
  55. data/lib/zakuro/version/senmyou/summary/annual_data.rb +186 -0
  56. data/lib/zakuro/version/senmyou/summary/gengou_data.rb +294 -0
  57. data/lib/zakuro/version/taien/taien.rb +19 -0
  58. data/lib/zakuro/version/tenpou/tenpou.rb +19 -0
  59. data/lib/zakuro/version_factory.rb +59 -0
  60. data/zakuro.gemspec +31 -0
  61. metadata +106 -0
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../abstract_version'
4
+
5
+ # :nodoc:
6
+ module Zakuro
7
+ #
8
+ # Taien 大衍暦
9
+ #
10
+ module Taien
11
+ #
12
+ # Gateway アクセサメソッド群
13
+ #
14
+ class Gateway < AbstractVersion
15
+ # @return [False] リリースなし
16
+ RELEASE = false
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../abstract_version'
4
+
5
+ # :nodoc:
6
+ module Zakuro
7
+ #
8
+ # Tenpou 天保暦
9
+ #
10
+ module Tenpou
11
+ #
12
+ # Gateway アクセサメソッド群
13
+ #
14
+ class Gateway < AbstractVersion
15
+ # @return [False] リリースなし
16
+ RELEASE = false
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './era/japan'
4
+ require_relative './era/western'
5
+ require_relative './version/genka/genka'
6
+ require_relative './version/gihou/gihou'
7
+ require_relative './version/taien/taien'
8
+ require_relative './version/senmyou/senmyou'
9
+ require_relative './version/joukyou/joukyou'
10
+ require_relative './version/houryaku/houryaku'
11
+ require_relative './version/kansei/kansei'
12
+ require_relative './version/tenpou/tenpou'
13
+ require_relative './version/gregorio/gregorio'
14
+
15
+ # :nodoc:
16
+ module Zakuro
17
+ #
18
+ # VersionFactory 暦生成
19
+ #
20
+ class VersionFactory
21
+ # :reek:TooManyStatements { max_statements: 6 }
22
+ # :reek:UncommunicativeVariableName {accept: e}
23
+
24
+ #
25
+ # 実行可能な暦を取得する
26
+ #
27
+ # @param [Date] date 西暦日
28
+ #
29
+ # @return [AbstractVersion] 暦クラス
30
+ #
31
+ def self.get_runnable_constant(date:)
32
+ class_name = Japan::Reki.class_name(
33
+ date: Western::Calendar.create(date: date)
34
+ )
35
+ constant = Object.const_get(class_name)
36
+ raise ArgumentError, 'unreleased version' unless constant::RELEASE
37
+
38
+ constant
39
+ rescue StandardError => e
40
+ raise e
41
+ end
42
+
43
+ # :reek:UncommunicativeVariableName {accept: e}
44
+
45
+ #
46
+ # 西暦日から和暦日に変換する
47
+ #
48
+ # @param [Date] western_date 西暦日
49
+ #
50
+ # @return [Result::SingleDay] 和暦日
51
+ #
52
+ def self.to_japan_date(western_date:)
53
+ runnable = VersionFactory.get_runnable_constant(date: western_date)
54
+ runnable.to_japan_date(western_date: western_date)
55
+ rescue StandardError => e
56
+ raise ZakuroError, e.message
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/zakuro/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'zakuro'
7
+ spec.version = Zakuro::VERSION
8
+ spec.authors = ['pldb']
9
+ spec.email = ['pldb.github@gmail.com']
10
+
11
+ spec.summary = 'japanese calendar library.'
12
+ spec.description = 'mainly lunar solar calendar'
13
+ spec.homepage = 'https://github.com/pldb/zakuro'
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
16
+
17
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
18
+
19
+ spec.metadata['homepage_uri'] = spec.homepage
20
+ spec.metadata['source_code_uri'] = 'https://github.com/pldb/zakuro'
21
+ spec.metadata['changelog_uri'] = 'https://github.com/pldb/zakuro'
22
+
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
27
+ end
28
+ spec.bindir = 'exe'
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ['lib']
31
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zakuro
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - pldb
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-08-01 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: mainly lunar solar calendar
14
+ email:
15
+ - pldb.github@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".editorconfig"
21
+ - ".gitignore"
22
+ - ".rspec"
23
+ - ".rubocop.yml"
24
+ - ".travis.yml"
25
+ - Gemfile
26
+ - LICENSE.txt
27
+ - README.md
28
+ - Rakefile
29
+ - bin/console
30
+ - bin/setup
31
+ - images/12月以降の入定気.png
32
+ - images/12月以降の月の進退.png
33
+ - images/source/description.numbers
34
+ - images/入定気の起算.png
35
+ - images/各月の求め方.png
36
+ - images/太陽と月.png
37
+ - lib/zakuro.rb
38
+ - lib/zakuro/condition.rb
39
+ - lib/zakuro/cycle/abstract_remainder.rb
40
+ - lib/zakuro/cycle/zodiac.rb
41
+ - lib/zakuro/era/gengou/set-001-until-south.yaml
42
+ - lib/zakuro/era/gengou/set-002-from-north.yaml
43
+ - lib/zakuro/era/gengou/set-003-modern.yaml
44
+ - lib/zakuro/era/japan.rb
45
+ - lib/zakuro/era/western.rb
46
+ - lib/zakuro/merchant.rb
47
+ - lib/zakuro/output/error.rb
48
+ - lib/zakuro/output/logger.rb
49
+ - lib/zakuro/output/response.rb
50
+ - lib/zakuro/output/result.rb
51
+ - lib/zakuro/output/stringifier.rb
52
+ - lib/zakuro/version.rb
53
+ - lib/zakuro/version/abstract_version.rb
54
+ - lib/zakuro/version/genka/genka.rb
55
+ - lib/zakuro/version/gihou/gihou.rb
56
+ - lib/zakuro/version/gregorio/gregorio.rb
57
+ - lib/zakuro/version/houryaku/houryaku.rb
58
+ - lib/zakuro/version/joukyou/joukyou.rb
59
+ - lib/zakuro/version/kansei/kansei.rb
60
+ - lib/zakuro/version/senmyou/README.md
61
+ - lib/zakuro/version/senmyou/base/era.rb
62
+ - lib/zakuro/version/senmyou/base/gengou.rb
63
+ - lib/zakuro/version/senmyou/base/remainder.rb
64
+ - lib/zakuro/version/senmyou/base/solar_term.rb
65
+ - lib/zakuro/version/senmyou/base/year.rb
66
+ - lib/zakuro/version/senmyou/monthly/lunar_phase.rb
67
+ - lib/zakuro/version/senmyou/monthly/month.rb
68
+ - lib/zakuro/version/senmyou/senmyou.rb
69
+ - lib/zakuro/version/senmyou/stella/lunar_orbit.rb
70
+ - lib/zakuro/version/senmyou/stella/solar_average.rb
71
+ - lib/zakuro/version/senmyou/stella/solar_orbit.rb
72
+ - lib/zakuro/version/senmyou/stella/winter_solstice.rb
73
+ - lib/zakuro/version/senmyou/summary/annual_data.rb
74
+ - lib/zakuro/version/senmyou/summary/gengou_data.rb
75
+ - lib/zakuro/version/taien/taien.rb
76
+ - lib/zakuro/version/tenpou/tenpou.rb
77
+ - lib/zakuro/version_factory.rb
78
+ - zakuro.gemspec
79
+ homepage: https://github.com/pldb/zakuro
80
+ licenses:
81
+ - MIT
82
+ metadata:
83
+ allowed_push_host: https://rubygems.org/
84
+ homepage_uri: https://github.com/pldb/zakuro
85
+ source_code_uri: https://github.com/pldb/zakuro
86
+ changelog_uri: https://github.com/pldb/zakuro
87
+ post_install_message:
88
+ rdoc_options: []
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 2.6.0
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ requirements: []
102
+ rubygems_version: 3.0.3
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: japanese calendar library.
106
+ test_files: []