sashite-pan 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b34d7729fc0d82a1d1c2c86159962a4833440f7b
4
- data.tar.gz: 20f7db3f64d3300f646ebb4c1abcf1cc0f911c9a
3
+ metadata.gz: b0df5e40949504b396898aafaa9995e22ceffcc4
4
+ data.tar.gz: 21ea803ef8d8bedffe43c49f957ba953a4a906fe
5
5
  SHA512:
6
- metadata.gz: 44bf0808b56d9905d7c28b5e8045bba47938d280cf3c8822261a9c334719f1e59f1d971081f0543fe59dc94013364161d3e691a6cbef578808daf2bccae4c7ec
7
- data.tar.gz: 7c3593b2d96924d43477a612096d9d6438b0198caf97747d809f47d685f00f863edcd039cadc60a325ffcb90b3e542a0c0c656b7aca7f73aca56546824306ec5
6
+ metadata.gz: c31d786fe117f64ba500d4be7768cfee0019dfd7a65b7c7412f73ba685d07be1ba823b44d82bdf16224255935ede441805eed99b450a83ed5921db7753d08809
7
+ data.tar.gz: 7e74e5ddb41667b0cbfe3b54fe58fbdd556e9619012b1f3c6c988a55da1f6f96840273e0e2eabbef02c0c4e936a21eef58e8e1025dbabae8b4dca40031e69f88
data/README.md CHANGED
@@ -22,6 +22,28 @@ Or install it yourself as:
22
22
 
23
23
  $ gem install sashite-pan
24
24
 
25
+ ## API
26
+
27
+ Module method:
28
+
29
+ ```ruby
30
+ Sashite::PAN.load verb, arg1, arg2
31
+ ```
32
+
33
+ Set actor's instance methods:
34
+
35
+ * `verb`
36
+ * `actor`
37
+ * `square`
38
+ * `to_a`
39
+
40
+ Movement's instance methods:
41
+
42
+ * `verb`
43
+ * `src_square`
44
+ * `dst_square`
45
+ * `to_a`
46
+
25
47
  ## Example
26
48
 
27
49
  ```ruby
@@ -29,6 +51,7 @@ require 'sashite-pan'
29
51
 
30
52
  action = Sashite::PAN.load :shift, 42, 43
31
53
  action.src_square # => 42
54
+ action.to_a # => [ :shift, 42, 43 ]
32
55
  ```
33
56
 
34
57
  ## Contributing
data/VERSION.semver CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
data/lib/sashite/pan.rb CHANGED
@@ -1,10 +1,9 @@
1
- require_relative 'pan/capture'
2
- require_relative 'pan/drop'
3
1
  require_relative 'pan/error/not_implemented_verb_error'
4
2
  require_relative 'pan/error/same_square_error'
5
- require_relative 'pan/promote'
6
- require_relative 'pan/remove'
7
- require_relative 'pan/shift'
3
+ require_relative 'pan/movement/capture'
4
+ require_relative 'pan/movement/shift'
5
+ require_relative 'pan/set_actor/drop'
6
+ require_relative 'pan/set_actor/promote'
8
7
 
9
8
  module Sashite
10
9
  module PAN
@@ -20,9 +19,6 @@ module Sashite
20
19
  when :promote
21
20
  Promote.new arg1, arg2
22
21
 
23
- when :remove
24
- Remove.new arg1, arg2
25
-
26
22
  when :shift
27
23
  Shift.new arg1, arg2
28
24
 
@@ -1,6 +1,6 @@
1
1
  module Sashite
2
2
  module PAN
3
- class Capture
3
+ class Movement
4
4
  attr_reader :src_square, :dst_square
5
5
 
6
6
  def initialize src_square, dst_square
@@ -14,11 +14,15 @@ module Sashite
14
14
 
15
15
  def to_a
16
16
  [
17
- self.class.name.split('::').last.downcase.to_sym,
17
+ verb,
18
18
  @src_square,
19
19
  @dst_square
20
20
  ]
21
21
  end
22
+
23
+ def verb
24
+ self.class.name.split('::').last.downcase.to_sym
25
+ end
22
26
  end
23
27
  end
24
28
  end
@@ -0,0 +1,8 @@
1
+ require_relative '../movement'
2
+
3
+ module Sashite
4
+ module PAN
5
+ class Capture < Movement
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative '../movement'
2
+
3
+ module Sashite
4
+ module PAN
5
+ class Shift < Movement
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,27 @@
1
+ module Sashite
2
+ module PAN
3
+ class SetActor
4
+ attr_reader :actor, :square
5
+
6
+ def initialize square, actor
7
+ raise TypeError unless actor.is_a? Symbol
8
+ raise TypeError unless square.is_a? Fixnum
9
+
10
+ @actor = actor
11
+ @square = square
12
+ end
13
+
14
+ def to_a
15
+ [
16
+ verb,
17
+ @square,
18
+ @actor
19
+ ]
20
+ end
21
+
22
+ def verb
23
+ self.class.name.split('::').last.downcase.to_sym
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,8 @@
1
+ require_relative '../set_actor'
2
+
3
+ module Sashite
4
+ module PAN
5
+ class Drop < SetActor
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative '../set_actor'
2
+
3
+ module Sashite
4
+ module PAN
5
+ class Promote < SetActor
6
+ end
7
+ end
8
+ end
data/test/test_capture.rb CHANGED
@@ -29,6 +29,10 @@ describe Sashite::PAN do
29
29
  @action.to_a.must_equal Sashite::PAN::Capture.new(42, 43).to_a
30
30
  end
31
31
 
32
+ it 'returns the verb of the action' do
33
+ @action.verb.must_equal :capture
34
+ end
35
+
32
36
  it 'returns the src_square of the action' do
33
37
  @action.src_square.must_equal 42
34
38
  end
data/test/test_drop.rb CHANGED
@@ -25,12 +25,16 @@ describe Sashite::PAN do
25
25
  @action.to_a.must_equal Sashite::PAN::Drop.new(42, :foobar).to_a
26
26
  end
27
27
 
28
+ it 'returns the verb of the action' do
29
+ @action.verb.must_equal :drop
30
+ end
31
+
28
32
  it 'returns the actor of the action' do
29
33
  @action.actor.must_equal :foobar
30
34
  end
31
35
 
32
- it 'returns the dst_square of the action' do
33
- @action.dst_square.must_equal 42
36
+ it 'returns the square of the action' do
37
+ @action.square.must_equal 42
34
38
  end
35
39
  end
36
40
  end
data/test/test_promote.rb CHANGED
@@ -25,8 +25,12 @@ describe Sashite::PAN do
25
25
  @action.to_a.must_equal Sashite::PAN::Promote.new(42, :foobar).to_a
26
26
  end
27
27
 
28
- it 'returns the src_square of the action' do
29
- @action.src_square.must_equal 42
28
+ it 'returns the verb of the action' do
29
+ @action.verb.must_equal :promote
30
+ end
31
+
32
+ it 'returns the square of the action' do
33
+ @action.square.must_equal 42
30
34
  end
31
35
 
32
36
  it 'returns the actor of the action' do
data/test/test_shift.rb CHANGED
@@ -29,6 +29,10 @@ describe Sashite::PAN do
29
29
  @action.to_a.must_equal Sashite::PAN::Shift.new(42, 43).to_a
30
30
  end
31
31
 
32
+ it 'returns the verb of the action' do
33
+ @action.verb.must_equal :shift
34
+ end
35
+
32
36
  it 'returns the src_square of the action' do
33
37
  @action.src_square.must_equal 42
34
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sashite-pan
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 Wack
@@ -70,21 +70,20 @@ files:
70
70
  - VERSION.semver
71
71
  - lib/sashite-pan.rb
72
72
  - lib/sashite/pan.rb
73
- - lib/sashite/pan/capture.rb
74
- - lib/sashite/pan/drop.rb
75
73
  - lib/sashite/pan/error/not_implemented_verb_error.rb
76
74
  - lib/sashite/pan/error/same_square_error.rb
77
- - lib/sashite/pan/promote.rb
78
- - lib/sashite/pan/remove.rb
79
- - lib/sashite/pan/shift.rb
75
+ - lib/sashite/pan/movement.rb
76
+ - lib/sashite/pan/movement/capture.rb
77
+ - lib/sashite/pan/movement/shift.rb
78
+ - lib/sashite/pan/set_actor.rb
79
+ - lib/sashite/pan/set_actor/drop.rb
80
+ - lib/sashite/pan/set_actor/promote.rb
80
81
  - sashite-pan.gemspec
81
82
  - test/_test_helper.rb
82
83
  - test/test_capture.rb
83
84
  - test/test_drop.rb
84
- - test/test_movement.rb
85
85
  - test/test_pan.rb
86
86
  - test/test_promote.rb
87
- - test/test_remove.rb
88
87
  - test/test_shift.rb
89
88
  homepage: https://github.com/sashite/pan.rb
90
89
  licenses:
@@ -114,8 +113,6 @@ test_files:
114
113
  - test/_test_helper.rb
115
114
  - test/test_capture.rb
116
115
  - test/test_drop.rb
117
- - test/test_movement.rb
118
116
  - test/test_pan.rb
119
117
  - test/test_promote.rb
120
- - test/test_remove.rb
121
118
  - test/test_shift.rb
@@ -1,23 +0,0 @@
1
- module Sashite
2
- module PAN
3
- class Drop
4
- attr_reader :actor, :dst_square
5
-
6
- def initialize dst_square, actor
7
- raise TypeError unless actor.is_a? Symbol
8
- raise TypeError unless dst_square.is_a? Fixnum
9
-
10
- @actor = actor
11
- @dst_square = dst_square
12
- end
13
-
14
- def to_a
15
- [
16
- self.class.name.split('::').last.downcase.to_sym,
17
- @dst_square,
18
- @actor
19
- ]
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module Sashite
2
- module PAN
3
- class Promote
4
- attr_reader :src_square, :actor
5
-
6
- def initialize src_square, actor
7
- raise TypeError unless src_square.is_a? Fixnum
8
- raise TypeError unless actor.is_a? Symbol
9
-
10
- @src_square = src_square
11
- @actor = actor
12
- end
13
-
14
- def to_a
15
- [
16
- self.class.name.split('::').last.downcase.to_sym,
17
- @src_square,
18
- @actor
19
- ]
20
- end
21
- end
22
- end
23
- end
@@ -1,24 +0,0 @@
1
- module Sashite
2
- module PAN
3
- class Remove
4
- attr_reader :src_square, :dst_square
5
-
6
- def initialize src_square, dst_square
7
- raise TypeError unless src_square.is_a? Fixnum
8
- raise TypeError unless dst_square.is_a? Fixnum
9
- raise SameSquareError if src_square == dst_square
10
-
11
- @src_square = src_square
12
- @dst_square = dst_square
13
- end
14
-
15
- def to_a
16
- [
17
- self.class.name.split('::').last.downcase.to_sym,
18
- @src_square,
19
- @dst_square
20
- ]
21
- end
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- module Sashite
2
- module PAN
3
- class Shift
4
- attr_reader :src_square, :dst_square
5
-
6
- def initialize src_square, dst_square
7
- raise TypeError unless src_square.is_a? Fixnum
8
- raise TypeError unless dst_square.is_a? Fixnum
9
- raise SameSquareError if src_square == dst_square
10
-
11
- @src_square = src_square
12
- @dst_square = dst_square
13
- end
14
-
15
- def to_a
16
- [
17
- self.class.name.split('::').last.downcase.to_sym,
18
- @src_square,
19
- @dst_square
20
- ]
21
- end
22
- end
23
- end
24
- end
@@ -1,9 +0,0 @@
1
- require_relative '_test_helper'
2
-
3
- describe Sashite::PAN do
4
- describe 'errors' do
5
- it 'raises a not implemented method error' do
6
- -> { Sashite::PAN.load :foobar, 42, 43 }.must_raise Sashite::PAN::NotImplementedVerbError
7
- end
8
- end
9
- end
data/test/test_remove.rb DELETED
@@ -1,41 +0,0 @@
1
- require_relative '_test_helper'
2
-
3
- describe Sashite::PAN do
4
- describe 'remove' do
5
- describe 'errors' do
6
- it 'raises a same square error' do
7
- -> { Sashite::PAN::Remove.new 42, 42 }.must_raise Sashite::PAN::SameSquareError
8
- end
9
-
10
- it 'raises a type error from the source square' do
11
- -> { Sashite::PAN::Remove.new '42', 43 }.must_raise TypeError
12
- end
13
-
14
- it 'raises a type error from the destination square' do
15
- -> { Sashite::PAN::Remove.new 42, '43' }.must_raise TypeError
16
- end
17
- end
18
-
19
- describe 'instances' do
20
- before do
21
- @action = Sashite::PAN.load :remove, 42, 43
22
- end
23
-
24
- it 'returns the action' do
25
- @action.to_a.must_equal [ :remove, 42, 43 ]
26
- end
27
-
28
- it 'returns the action (once again)' do
29
- @action.to_a.must_equal Sashite::PAN::Remove.new(42, 43).to_a
30
- end
31
-
32
- it 'returns the src_square of the action' do
33
- @action.src_square.must_equal 42
34
- end
35
-
36
- it 'returns the dst_square of the action' do
37
- @action.dst_square.must_equal 43
38
- end
39
- end
40
- end
41
- end