chessmate 0.8.0 → 0.8.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: e8a0298012d7f8cad83eb00236534883f661bf131b826400de162a952d6a846e
4
- data.tar.gz: b3047583dc762d0fa97c555102f59a7289e5dcd913ae76fa71a8b4b937a1b6ec
3
+ metadata.gz: e4320f3ff2c0dbac49fb6b11753cf8938f0c15f3777b875af02c708b46772f10
4
+ data.tar.gz: e28d1a784d8a824cae0a5bc61918bb83d63d54cf009ea9498f8613059bd2f4e0
5
5
  SHA512:
6
- metadata.gz: c34f8fc54e8c829e454142f82f4c8b4f788018f32b646de78c39201462e57d849c50792b5cb5d591480fa99aba3fba56a328210ee1bfa5492779eb75bf0efd70
7
- data.tar.gz: b865da7aba16232d0fadb70f7156bae86a8bbcf79688ae53644f6209f5bfbd427f246da18d8dc29c34778903551b60cd6dc6e8f1e16ecb2cec9125d2e028edc5
6
+ metadata.gz: b7f3f1928d0584c5bd5f80a7abd7357a1f20170f8280afd987a2a8b50ddf2c7e019abbedfaee572798a2ce60af71c7ede9c2ab2aefbd9cb0bf8dc61ce3363556
7
+ data.tar.gz: 713289a71b4b42625de6e98af40a8419b51f7539288e5ee5576837cff48dada6e6176ed1d0d27b06207e9d2ebb1db90ce2a9e570231af622ebfffac5c7acd2bc
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- chessmate (0.7.1)
4
+ chessmate (0.8.1)
5
5
  deep_dup (~> 0)
6
6
 
7
7
  GEM
@@ -11,7 +11,7 @@ class ChessMate
11
11
  require 'pieces/queen'
12
12
  require 'pieces/king'
13
13
  require 'helpers/default'
14
- require 'helpers/logger'
14
+ require 'helpers/chess_logger'
15
15
 
16
16
  attr_reader :board,
17
17
  :turn,
@@ -92,7 +92,7 @@ class ChessMate
92
92
  @promotable = dest if piece_type[1] == 'P' && promote?(orig)
93
93
 
94
94
  unless @ignore_logging
95
- logger = Logger.new(orig, dest, @board)
95
+ logger = ChessLogger.new(orig, dest, @board)
96
96
  @move_history << logger.log_move
97
97
  end
98
98
 
@@ -282,7 +282,7 @@ class ChessMate
282
282
 
283
283
  return if @ignore_logging
284
284
 
285
- logger = Logger.new(nil, nil, nil, promotion_type: piece_type, history: @move_history)
285
+ logger = ChessLogger.new(nil, nil, nil, promotion_type: piece_type, history: @move_history)
286
286
  @move_history[-1] += logger.log_promotion
287
287
  end
288
288
  end
@@ -3,7 +3,7 @@
3
3
  require 'helpers/notation_parser'
4
4
  require 'chessmate'
5
5
 
6
- class Logger
6
+ class ChessLogger
7
7
  def initialize(orig, dest, board, en_passant: false, promotion_type: nil, history: nil)
8
8
  @promotion_type = promotion_type
9
9
  @history = history
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helper'
4
- require_relative '../lib/helpers/logger'
4
+ require_relative '../lib/helpers/chess_logger'
5
5
  require 'chessmate'
6
6
 
7
- describe 'Logger' do
7
+ describe 'ChessLogger' do
8
8
  before :each do
9
9
  @normal_moves_board = [
10
10
  [nil, nil, nil, nil, nil, nil, nil, nil],
@@ -64,105 +64,105 @@ describe 'Logger' do
64
64
 
65
65
  context 'pawn moves' do
66
66
  it 'should log normal pawn moves' do
67
- logger = Logger.new([6, 0], [5, 0], @normal_moves_board)
67
+ logger = ChessLogger.new([6, 0], [5, 0], @normal_moves_board)
68
68
  expect(logger.log_move).to eql('a3')
69
69
  end
70
70
 
71
71
  it 'should log capturing moves' do
72
- logger = Logger.new([6, 0], [5, 1], @capture_moves_board)
72
+ logger = ChessLogger.new([6, 0], [5, 1], @capture_moves_board)
73
73
  expect(logger.log_move).to eql('axb3')
74
74
  end
75
75
 
76
76
  it 'should log en passant moves' do
77
- logger = Logger.new([3, 6], [2, 7], @capture_moves_board, en_passant: true)
77
+ logger = ChessLogger.new([3, 6], [2, 7], @capture_moves_board, en_passant: true)
78
78
  expect(logger.log_move).to eql('gxh6')
79
79
  end
80
80
  end
81
81
 
82
82
  context 'knight moves' do
83
83
  it 'should log normal knight moves' do
84
- logger = Logger.new([6, 1], [4, 0], @normal_moves_board)
84
+ logger = ChessLogger.new([6, 1], [4, 0], @normal_moves_board)
85
85
  expect(logger.log_move).to eql('Na4')
86
86
  end
87
87
 
88
88
  it 'should log capturing moves' do
89
- logger = Logger.new([6, 1], [4, 0], @capture_moves_board)
89
+ logger = ChessLogger.new([6, 1], [4, 0], @capture_moves_board)
90
90
  expect(logger.log_move).to eql('Nxa4')
91
91
  end
92
92
  end
93
93
 
94
94
  context 'bishop moves' do
95
95
  it 'should log normal bishop moves' do
96
- logger = Logger.new([6, 2], [5, 1], @normal_moves_board)
96
+ logger = ChessLogger.new([6, 2], [5, 1], @normal_moves_board)
97
97
  expect(logger.log_move).to eql('Bb3')
98
98
  end
99
99
 
100
100
  it 'should log capturing moves' do
101
- logger = Logger.new([6, 2], [5, 1], @capture_moves_board)
101
+ logger = ChessLogger.new([6, 2], [5, 1], @capture_moves_board)
102
102
  expect(logger.log_move).to eql('Bxb3')
103
103
  end
104
104
  end
105
105
 
106
106
  context 'queen moves' do
107
107
  it 'should log normal queen moves' do
108
- logger = Logger.new([6, 3], [5, 3], @normal_moves_board)
108
+ logger = ChessLogger.new([6, 3], [5, 3], @normal_moves_board)
109
109
  expect(logger.log_move).to eql('Qd3')
110
110
  end
111
111
 
112
112
  it 'should log capturing moves' do
113
- logger = Logger.new([6, 3], [5, 3], @capture_moves_board)
113
+ logger = ChessLogger.new([6, 3], [5, 3], @capture_moves_board)
114
114
  expect(logger.log_move).to eql('Qxd3')
115
115
  end
116
116
  end
117
117
 
118
118
  context 'king moves' do
119
119
  it 'should log normal king moves' do
120
- logger = Logger.new([6, 4], [5, 4], @normal_moves_board)
120
+ logger = ChessLogger.new([6, 4], [5, 4], @normal_moves_board)
121
121
  expect(logger.log_move).to eql('Ke3')
122
122
  end
123
123
 
124
124
  it 'should log capturing moves' do
125
- logger = Logger.new([6, 4], [5, 3], @capture_moves_board)
125
+ logger = ChessLogger.new([6, 4], [5, 3], @capture_moves_board)
126
126
  expect(logger.log_move).to eql('Kxd3')
127
127
  end
128
128
  end
129
129
 
130
130
  context 'ambiguous moves' do
131
131
  it 'should add file info to log moves with pieces in same file' do
132
- logger = Logger.new([7, 0], [5, 0], @ambiguous_moves_board)
132
+ logger = ChessLogger.new([7, 0], [5, 0], @ambiguous_moves_board)
133
133
  expect(logger.log_move).to eql('R1a3')
134
134
  end
135
135
 
136
136
  it 'should add rank info to log moves with pieces in same rank' do
137
- logger = Logger.new([0, 3], [0, 5], @ambiguous_moves_board)
137
+ logger = ChessLogger.new([0, 3], [0, 5], @ambiguous_moves_board)
138
138
  expect(logger.log_move).to eql('Rdf8')
139
139
  end
140
140
 
141
141
  it 'should add file and rank info to log moves with multiple pieces in same file and rank' do
142
- logger = Logger.new([4, 7], [7, 4], @ambiguous_moves_board)
142
+ logger = ChessLogger.new([4, 7], [7, 4], @ambiguous_moves_board)
143
143
  expect(logger.log_move).to eql('Qh4e1')
144
144
  end
145
145
 
146
146
  it 'should handle knights/bishops/queens with ability to move to dest square' do
147
- logger = Logger.new([2, 3], [0, 1], @ambiguous_moves_board)
147
+ logger = ChessLogger.new([2, 3], [0, 1], @ambiguous_moves_board)
148
148
  expect(logger.log_move).to eql('Bdb8')
149
149
  end
150
150
  end
151
151
 
152
152
  context 'specialty moves' do
153
153
  it 'should log kingside castles' do
154
- logger = Logger.new([7, 4], [7, 6], @specialty_moves_board)
154
+ logger = ChessLogger.new([7, 4], [7, 6], @specialty_moves_board)
155
155
  expect(logger.log_move).to eql('0-0')
156
156
  end
157
157
 
158
158
  it 'should log queenside castles' do
159
- logger = Logger.new([7, 4], [7, 2], @specialty_moves_board)
159
+ logger = ChessLogger.new([7, 4], [7, 2], @specialty_moves_board)
160
160
  expect(logger.log_move).to eql('0-0-0')
161
161
  end
162
162
 
163
163
  it 'should log pawn promotion' do
164
164
  %w[R N B Q].each do |piece|
165
- logger = Logger.new(nil, nil, nil, promotion_type: piece)
165
+ logger = ChessLogger.new(nil, nil, nil, promotion_type: piece)
166
166
  expect(logger.log_promotion).to eql("=(#{piece})")
167
167
  end
168
168
  end
@@ -170,12 +170,12 @@ describe 'Logger' do
170
170
 
171
171
  context 'game status indications' do
172
172
  it 'should log check' do
173
- logger = Logger.new([5, 0], [6, 2], @check_board)
173
+ logger = ChessLogger.new([5, 0], [6, 2], @check_board)
174
174
  expect(logger.log_move).to eql('Nc2+')
175
175
  end
176
176
 
177
177
  it 'should log checkmate' do
178
- logger = Logger.new([0, 3], [0, 4], @check_board)
178
+ logger = ChessLogger.new([0, 3], [0, 4], @check_board)
179
179
  expect(logger.log_move).to eql('Qe8#')
180
180
  end
181
181
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chessmate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Porter
@@ -78,8 +78,8 @@ files:
78
78
  - LICENSE
79
79
  - README.md
80
80
  - lib/chessmate.rb
81
+ - lib/helpers/chess_logger.rb
81
82
  - lib/helpers/default.rb
82
- - lib/helpers/logger.rb
83
83
  - lib/helpers/notation_parser.rb
84
84
  - lib/pieces/bishop.rb
85
85
  - lib/pieces/king.rb