feen 4.0.2 → 4.0.3
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 +4 -4
- data/LICENSE.md +2 -2
- data/README.md +13 -13
- data/lib/feen/parser.rb +2 -2
- data/lib/feen.rb +5 -5
- metadata +10 -152
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98cae677c862ba15d503bd607228abfd3aa06f7b4524c30f1a8890f446978784
|
4
|
+
data.tar.gz: ce5628e2b182d15d7e51567b67550338308a87508bf4422cae6e710b04aa6e33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b294ea3521b0e34fbce443942d7c9aec06388f290025977d6995312f0a01492aedd498ea6a9e41b5eb19f9762ae79a6970a512f192fda2ab09ec890cd77c606d
|
7
|
+
data.tar.gz: 6dd225e8abcf4189f4124225a35d26c1f1faf39e804204f2467bf11350539394f9ea52eeabb3835d1d3ab232c74b1136e341f21669b469a126395473034bdac7
|
data/LICENSE.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
The MIT License
|
1
|
+
# The MIT License
|
2
2
|
|
3
|
-
Copyright (c) 2020-
|
3
|
+
Copyright (c) 2020-2023 Sashité
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -6,17 +6,17 @@
|
|
6
6
|
[](https://github.com/sashite/feen.rb/actions?query=workflow%3Arubocop+branch%3Amain)
|
7
7
|
[](https://github.com/sashite/feen.rb/raw/main/LICENSE.md)
|
8
8
|
|
9
|
-
> __FEEN__ (
|
9
|
+
> __FEEN__ (FEN Easy Extensible Notation) support for the Ruby language.
|
10
10
|
|
11
11
|
## Overview
|
12
12
|
|
13
|
-
This is an implementation of [FEEN](https://developer.sashite.com/specs/
|
13
|
+
This is an implementation of [FEEN](https://developer.sashite.com/specs/fen-easy-extensible-notation), a generic format that can be used for serializing and deserializing chess positions.
|
14
14
|
|
15
|
-
The main chess variants
|
15
|
+
The main chess variants may be supported, including [Chess](https://en.wikipedia.org/wiki/Chess), [Janggi](https://en.wikipedia.org/wiki/Janggi), [Makruk](https://en.wikipedia.org/wiki/Makruk), [Shogi](https://en.wikipedia.org/wiki/Shogi), [Xiangqi](https://en.wikipedia.org/wiki/Xiangqi).
|
16
16
|
|
17
|
-
More exotic variants
|
17
|
+
More exotic variants may be also supported, like: [Dai dai shogi](https://en.wikipedia.org/wiki/Dai_dai_shogi), [Four-player chess](https://en.wikipedia.org/wiki/Four-player_chess), or [Three-dimensional chess](https://en.wikipedia.org/wiki/Three-dimensional_chess) 🖖
|
18
18
|
|
19
|
-
](https://github.com/sashite/feen.rb/raw/main/star-trek-chess.jpg)
|
20
20
|
|
21
21
|
## Installation
|
22
22
|
|
@@ -29,7 +29,7 @@ gem "feen"
|
|
29
29
|
And then execute:
|
30
30
|
|
31
31
|
```sh
|
32
|
-
bundle
|
32
|
+
bundle install
|
33
33
|
```
|
34
34
|
|
35
35
|
Or install it yourself as:
|
@@ -46,12 +46,12 @@ require "feen"
|
|
46
46
|
# Dump a classic Tsume Shogi problem
|
47
47
|
FEEN.dump(
|
48
48
|
in_hand: %w[S r r b g g g g s n n n n p p p p p p p p p p p p p p p p p],
|
49
|
-
shape:
|
49
|
+
shape: [9, 9],
|
50
50
|
side_id: 0,
|
51
|
-
square:
|
52
|
-
3
|
53
|
-
4
|
54
|
-
5
|
51
|
+
square: {
|
52
|
+
3 => "s",
|
53
|
+
4 => "k",
|
54
|
+
5 => "s",
|
55
55
|
22 => "+P",
|
56
56
|
43 => "+B"
|
57
57
|
}
|
@@ -67,8 +67,8 @@ FEEN.parse("3,s,k,s,3/9/4,+P,4/9/7,+B,1/9/9/9/9 0 S,b,g,g,g,g,n,n,n,n,p,p,p,p,p,
|
|
67
67
|
|
68
68
|
The code is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
69
69
|
|
70
|
-
## About
|
70
|
+
## About Sashité
|
71
71
|
|
72
|
-
This [gem](https://rubygems.org/gems/feen) is maintained by [
|
72
|
+
This [gem](https://rubygems.org/gems/feen) is maintained by [Sashité](https://sashite.com/).
|
73
73
|
|
74
74
|
With some [lines of code](https://github.com/sashite/), let's share the beauty of Chinese, Japanese and Western cultures through the game of chess!
|
data/lib/feen/parser.rb
CHANGED
@@ -32,9 +32,9 @@ module FEEN
|
|
32
32
|
|
33
33
|
{
|
34
34
|
in_hand: InHand.parse(in_hand_str),
|
35
|
-
shape:
|
35
|
+
shape: Shape.new(square_str).to_a,
|
36
36
|
side_id: Turn.parse(side_id_str),
|
37
|
-
square:
|
37
|
+
square: Square.new(square_str).to_h
|
38
38
|
}
|
39
39
|
end
|
40
40
|
end
|
data/lib/feen.rb
CHANGED
@@ -6,7 +6,7 @@ require_relative File.join("feen", "parser")
|
|
6
6
|
# This module provides a Ruby interface for data serialization and
|
7
7
|
# deserialization in FEEN format.
|
8
8
|
#
|
9
|
-
# @see https://developer.sashite.com/specs/
|
9
|
+
# @see https://developer.sashite.com/specs/fen-easy-extensible-notation
|
10
10
|
module FEEN
|
11
11
|
# Dumps position params into a FEEN string.
|
12
12
|
#
|
@@ -33,10 +33,10 @@ module FEEN
|
|
33
33
|
# @return [String] The FEEN string representing the position.
|
34
34
|
def self.dump(in_hand:, shape:, side_id:, square:)
|
35
35
|
Dumper.call(
|
36
|
-
in_hand
|
37
|
-
shape
|
38
|
-
side_id
|
39
|
-
square:
|
36
|
+
in_hand:,
|
37
|
+
shape:,
|
38
|
+
side_id:,
|
39
|
+
square:
|
40
40
|
)
|
41
41
|
end
|
42
42
|
|
metadata
CHANGED
@@ -1,155 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: feen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cyril Kato
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: brutal
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: bundler
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: byebug
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rake
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rubocop-md
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rubocop-performance
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rubocop-rake
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rubocop-thread_safety
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: simplecov
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: yard
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
11
|
+
date: 2023-04-24 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
153
13
|
description: A Ruby interface for data serialization and deserialization in FEEN format.
|
154
14
|
email: contact@cyril.email
|
155
15
|
executables: []
|
@@ -168,14 +28,12 @@ files:
|
|
168
28
|
- lib/feen/parser/shape.rb
|
169
29
|
- lib/feen/parser/square.rb
|
170
30
|
- lib/feen/parser/turn.rb
|
171
|
-
homepage: https://
|
31
|
+
homepage: https://github.com/sashite/feen.rb
|
172
32
|
licenses:
|
173
33
|
- MIT
|
174
34
|
metadata:
|
175
|
-
|
176
|
-
|
177
|
-
source_code_uri: https://github.com/sashite/feen.rb
|
178
|
-
post_install_message:
|
35
|
+
rubygems_mfa_required: 'true'
|
36
|
+
post_install_message:
|
179
37
|
rdoc_options: []
|
180
38
|
require_paths:
|
181
39
|
- lib
|
@@ -183,15 +41,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
183
41
|
requirements:
|
184
42
|
- - ">="
|
185
43
|
- !ruby/object:Gem::Version
|
186
|
-
version: 3.
|
44
|
+
version: 3.2.0
|
187
45
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
46
|
requirements:
|
189
47
|
- - ">="
|
190
48
|
- !ruby/object:Gem::Version
|
191
49
|
version: '0'
|
192
50
|
requirements: []
|
193
|
-
rubygems_version: 3.
|
194
|
-
signing_key:
|
51
|
+
rubygems_version: 3.4.6
|
52
|
+
signing_key:
|
195
53
|
specification_version: 4
|
196
54
|
summary: FEEN support for the Ruby language.
|
197
55
|
test_files: []
|