sashite-cgsn 0.1.0 → 0.2.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sashite/cgsn.rb +15 -5
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5130413add3619290ba1adcb1240d3e924510277ebd1361e25860a23846a4013
4
- data.tar.gz: 2a614fa5d19b477db200774bc617e4d55e061232a74bbcd8566a4063930403c8
3
+ metadata.gz: 4ad5676b320060471229ab9926bce89a0c9435a327404f8a8d1bed076f502566
4
+ data.tar.gz: 99266756eb144bd3910035559859102d442a1dff5e6e7b3ae06cdbade39a4b82
5
5
  SHA512:
6
- metadata.gz: 41dddcc173c4d1315668c8179ba8023122bd38a430dd90d62ec7f202d478a6bec09c154deac1867307af53cb0eeb5aca91d9a16e6126f407cfe08d3d71b5ed69
7
- data.tar.gz: 3c45298716d464f82383a91f99ef27a06ae17c999df42443445eff2afb628ce36eb998a9500eb3c1085b58f7059b057818ec97e72d8886e0e63fb9443463c487
6
+ metadata.gz: 075a7253c398c3bebf01b9ec5e19d6ed4ac1445fb35f2b6451583b176841fb7d0645f95302afdaf73cfb0b6af964814442dc272810ded910e6d69fab062cb379
7
+ data.tar.gz: 57aade4830f9ed6f9ad57294881b1e0659296d18f1da8a9e21434164186701b359848909b3c02747841f436d0d4a9328f85cabac7ccf44d5ec4d19cf450e78b2
data/lib/sashite/cgsn.rb CHANGED
@@ -16,6 +16,7 @@ module Sashite
16
16
  in_progress
17
17
  checkmate
18
18
  stalemate
19
+ staleturn
19
20
  bare_king
20
21
  mare_king
21
22
  insufficient
@@ -32,6 +33,7 @@ module Sashite
32
33
  in_progress
33
34
  checkmate
34
35
  stalemate
36
+ staleturn
35
37
  bare_king
36
38
  mare_king
37
39
  insufficient
@@ -54,11 +56,14 @@ module Sashite
54
56
  #
55
57
  # @example
56
58
  # Sashite::Cgsn.valid?("checkmate") # => true
59
+ # Sashite::Cgsn.valid?("staleturn") # => true
57
60
  # Sashite::Cgsn.valid?("time_limit") # => true
58
61
  # Sashite::Cgsn.valid?("invalid") # => false
59
62
  # Sashite::Cgsn.valid?("Checkmate") # => false
63
+ # Sashite::Cgsn.valid?(:checkmate) # => true (converts to "checkmate")
60
64
  def self.valid?(value)
61
- STATUSES.include?(value)
65
+ status_string = String(value)
66
+ STATUSES.include?(status_string)
62
67
  rescue ::TypeError
63
68
  false
64
69
  end
@@ -71,6 +76,7 @@ module Sashite
71
76
  #
72
77
  # @example
73
78
  # Sashite::Cgsn.parse("checkmate") # => #<Cgsn::Status value="checkmate">
79
+ # Sashite::Cgsn.parse("staleturn") # => #<Cgsn::Status value="staleturn">
74
80
  # Sashite::Cgsn.parse("resignation") # => #<Cgsn::Status value="resignation">
75
81
  def self.parse(value)
76
82
  Status.new(value)
@@ -83,9 +89,11 @@ module Sashite
83
89
  #
84
90
  # @example
85
91
  # Sashite::Cgsn.inferable?("checkmate") # => true
92
+ # Sashite::Cgsn.inferable?("staleturn") # => true
86
93
  # Sashite::Cgsn.inferable?("resignation") # => false
87
94
  def self.inferable?(status)
88
- INFERABLE_STATUSES.include?(status)
95
+ status_string = String(status)
96
+ INFERABLE_STATUSES.include?(status_string)
89
97
  rescue ::TypeError
90
98
  false
91
99
  end
@@ -98,8 +106,10 @@ module Sashite
98
106
  # @example
99
107
  # Sashite::Cgsn.explicit_only?("resignation") # => true
100
108
  # Sashite::Cgsn.explicit_only?("checkmate") # => false
109
+ # Sashite::Cgsn.explicit_only?("staleturn") # => false
101
110
  def self.explicit_only?(status)
102
- EXPLICIT_ONLY_STATUSES.include?(status)
111
+ status_string = String(status)
112
+ EXPLICIT_ONLY_STATUSES.include?(status_string)
103
113
  rescue ::TypeError
104
114
  false
105
115
  end
@@ -110,7 +120,7 @@ module Sashite
110
120
  #
111
121
  # @example
112
122
  # Sashite::Cgsn.statuses
113
- # # => ["in_progress", "checkmate", "stalemate", ...]
123
+ # # => ["in_progress", "checkmate", "stalemate", "staleturn", ...]
114
124
  def self.statuses
115
125
  STATUSES.dup
116
126
  end
@@ -121,7 +131,7 @@ module Sashite
121
131
  #
122
132
  # @example
123
133
  # Sashite::Cgsn.inferable_statuses
124
- # # => ["in_progress", "checkmate", "stalemate", ...]
134
+ # # => ["in_progress", "checkmate", "stalemate", "staleturn", ...]
125
135
  def self.inferable_statuses
126
136
  INFERABLE_STATUSES.dup
127
137
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sashite-cgsn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Kato
@@ -53,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  requirements: []
56
- rubygems_version: 3.7.1
56
+ rubygems_version: 3.7.2
57
57
  specification_version: 4
58
58
  summary: CGSN (Chess Game Status Notation) implementation for Ruby with immutable
59
59
  status objects