twisty_puzzles 0.0.28 → 0.0.32

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: 7843aac67563062698ede8d6de86b76153901bcccee07d3367863ef9e81096d4
4
- data.tar.gz: 4fe82e4186f3c832c502279748b27310658da80b057c9ff99ce22f5b04c46308
3
+ metadata.gz: 30f6be06789cf30593c62fd231ddf3ffb4329dccaf355c8f83a18c426add5ea5
4
+ data.tar.gz: e27c72a486cdbc65239cc3c9932094f726c30a82f047c7074754dc5e4687a89a
5
5
  SHA512:
6
- metadata.gz: 1df3581ec635a06f6c0ef9221a518d5174fbfa4b30e7439f27e2c3ff1b185141d7dd5e86a979c9b66610af5b21d6564f61ae8b93909e43c7e2b79976f4c3333d
7
- data.tar.gz: cc0899a42896b078a423fb511f61b63dc3f9a327824a0a68d9cfce17857cffaa7f5288a15629ab527e6c0ebb3257ce026c139028b008dec1699fcbdb61fa02ed
6
+ metadata.gz: da2ce3452e6b6e7b33d693a04bc2e4a5ecdf5f4115b08e4911b30983dd21809bdd73f0c9886dbec1af60e5fd83cfbc6e275879e0750166abab73e5388aef2b70
7
+ data.tar.gz: 23c7c71310a518c4f41814244f94cbcd0bdfd28c522ed995158f0d8431a709747e381098c15d5114a86d22239c8318f67ec4b3741b629d43ae5d5a4db32eab18
@@ -74,7 +74,7 @@ module TwistyPuzzles
74
74
 
75
75
  def self.exists_on_cube_size?(cube_size)
76
76
  cube_size >= min_cube_size && cube_size <= max_cube_size &&
77
- (cube_size % 2 == 0 ? self.exists_on_even_cube_sizes? : self.exists_on_odd_cube_sizes?)
77
+ (cube_size.even? ? exists_on_even_cube_sizes? : exists_on_odd_cube_sizes?)
78
78
  end
79
79
 
80
80
  def num_incarnations(_cube_size)
@@ -122,7 +122,7 @@ module TwistyPuzzles
122
122
  end
123
123
 
124
124
  def inspect
125
- "#{self.class}(#{@face_symbols.map(&:to_s).join(', ')})"
125
+ @inspect ||= "#{self.class.name.split('::').last}(#{@face_symbols.map(&:to_s).join(', ')})"
126
126
  end
127
127
 
128
128
  def to_s
@@ -17,16 +17,19 @@ module TwistyPuzzles
17
17
 
18
18
  RAW_DATA_RESERVED = [' ', '(', ')'].freeze
19
19
 
20
- def initialize(parts)
20
+ def initialize(parts, twist = 0)
21
21
  raise ArgumentError if parts.empty?
22
+ raise TypeError unless twist.is_a?(Integer)
23
+ raise ArgumentError if twist.negative?
22
24
 
23
25
  check_types(parts, Part)
24
26
  check_type_consistency(parts)
25
27
 
26
28
  @parts = parts
29
+ @twist = twist
27
30
  end
28
31
 
29
- attr_reader :parts
32
+ attr_reader :parts, :twist
30
33
 
31
34
  def eql?(other)
32
35
  self.class.equal?(other.class) && @parts == other.parts
@@ -34,6 +37,10 @@ module TwistyPuzzles
34
37
 
35
38
  alias == eql?
36
39
 
40
+ def inspect
41
+ @inspect ||= "#{self.class.name.split('::').last}(#{@parts.map(&:inspect).join(', ')})"
42
+ end
43
+
37
44
  def hash
38
45
  @hash ||= ([self.class] + @parts).hash
39
46
  end
@@ -91,7 +98,7 @@ module TwistyPuzzles
91
98
 
92
99
  index = @parts.find_index { |p| p.turned_equals?(part) }
93
100
  map_rotate_by_number = @parts[index].rotations.index(part)
94
- rotate_by(@parts.length - index).map_rotate_by(map_rotate_by_number)
101
+ rotate_by(index).map_rotate_by(map_rotate_by_number)
95
102
  end
96
103
 
97
104
  def equivalent?(other)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TwistyPuzzles
4
- VERSION = '0.0.28'
4
+ VERSION = '0.0.32'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twisty_puzzles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.28
4
+ version: 0.0.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernhard F. Brodowsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-20 00:00:00.000000000 Z
11
+ date: 2021-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize