grobber 0.0.2 → 0.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 +5 -5
- data/lib/grobber.rb +1 -1
- data/lib/grobber/square_matrix.rb +73 -69
- metadata +28 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 68751b57f17cc548fc044e5fdbc090bb6e81396c2b25596dcfd423023439dc6f
|
4
|
+
data.tar.gz: b94b39bfc7dcf6ce762736aebdba0ad1870017eeeeb6973e1e7457e40a2466a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a36e206021a0354a9544479c7d4bc4bf1304f19ce11f202fa85b2ce263ff6068ef5a958f504b738839d7b261a8949af52a7b7a00c3b255f1977692eb4c0e5d56
|
7
|
+
data.tar.gz: 483b98cfea65fcb6b5569f3b67d60d44a4d1f6630942a49142e0601d72fc0fab120f0efa6d43d2b55e02751cd123e712610f9d89dde593db1d05d13126f786ad
|
data/lib/grobber.rb
CHANGED
@@ -1,97 +1,101 @@
|
|
1
|
-
|
1
|
+
module Grobber
|
2
2
|
|
3
|
-
|
3
|
+
class SquareMatrix
|
4
4
|
|
5
|
-
|
6
|
-
check_square(_array)
|
7
|
-
@array = _array
|
8
|
-
end
|
5
|
+
attr_reader :array
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
def initialize _array
|
8
|
+
check_square(_array)
|
9
|
+
@array = _array
|
13
10
|
end
|
14
|
-
end
|
15
11
|
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
def each_with_coords
|
13
|
+
array.each_with_index do |e, i|
|
14
|
+
yield e, *coords_for(i)
|
15
|
+
end
|
16
|
+
end
|
19
17
|
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
def coords_for index
|
19
|
+
[x_coord(index), y_coord(index)]
|
20
|
+
end
|
23
21
|
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
def array_length
|
23
|
+
array.length
|
24
|
+
end
|
27
25
|
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
def length
|
27
|
+
length_for array
|
28
|
+
end
|
31
29
|
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
def x_coord index
|
31
|
+
index % length
|
32
|
+
end
|
35
33
|
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
def y_coord index
|
35
|
+
(index / length)
|
36
|
+
end
|
39
37
|
|
40
|
-
|
41
|
-
|
42
|
-
array[index_for(length - 1 - x_coord(i), y_coord(i))]
|
38
|
+
def index_for x, y
|
39
|
+
length * y + x
|
43
40
|
end
|
44
|
-
end
|
45
41
|
|
46
|
-
|
47
|
-
|
48
|
-
|
42
|
+
def flop_array
|
43
|
+
array_length.times.map do |i|
|
44
|
+
array[index_for(length - 1 - x_coord(i), y_coord(i))]
|
45
|
+
end
|
46
|
+
end
|
49
47
|
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
def flop
|
49
|
+
self.class.new flop_array
|
50
|
+
end
|
53
51
|
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
def flip_flop
|
53
|
+
self.class.new flip_flop_array
|
54
|
+
end
|
57
55
|
|
58
|
-
|
59
|
-
|
60
|
-
array[index_for x_coord(i), length - 1 - y_coord(i)]
|
56
|
+
def flip_flop_array
|
57
|
+
right_add_array(flop) + flip.right_add_array(flip.flop)
|
61
58
|
end
|
62
|
-
end
|
63
59
|
|
64
|
-
|
65
|
-
|
66
|
-
|
60
|
+
def flip_array
|
61
|
+
array_length.times.map do |i|
|
62
|
+
array[index_for x_coord(i), length - 1 - y_coord(i)]
|
63
|
+
end
|
64
|
+
end
|
67
65
|
|
68
|
-
|
69
|
-
|
70
|
-
line(i) + square_matrix.line(i)
|
66
|
+
def flip
|
67
|
+
self.class.new flip_array
|
71
68
|
end
|
72
|
-
end
|
73
69
|
|
74
|
-
|
75
|
-
|
70
|
+
def right_add_array square_matrix
|
71
|
+
length.times.flat_map do |i|
|
72
|
+
line(i) + square_matrix.line(i)
|
73
|
+
end
|
74
|
+
end
|
76
75
|
|
77
|
-
|
78
|
-
|
79
|
-
end
|
76
|
+
def bottom_add square_matrix
|
77
|
+
end
|
80
78
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
end
|
79
|
+
def length_for array
|
80
|
+
(array.length ** 0.5).to_i
|
81
|
+
end
|
85
82
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
83
|
+
def check_square array
|
84
|
+
length = length_for array
|
85
|
+
raise "Non Square Matrix" unless array.length == length ** 2
|
86
|
+
end
|
87
|
+
|
88
|
+
def line i
|
89
|
+
s_index = length * i
|
90
|
+
array[s_index..s_index + length - 1]
|
91
|
+
end
|
90
92
|
|
91
|
-
|
92
|
-
|
93
|
-
|
93
|
+
def display
|
94
|
+
length.times do |i|
|
95
|
+
puts line(i).to_s
|
96
|
+
end
|
94
97
|
end
|
98
|
+
|
95
99
|
end
|
96
100
|
|
97
|
-
end
|
101
|
+
end
|
metadata
CHANGED
@@ -1,37 +1,51 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grobber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Theo
|
7
|
+
- Theo Carrive
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rmagick
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.0'
|
20
|
-
- - '>='
|
17
|
+
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: 2.0.0
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '2.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.0.0
|
30
|
+
- - "~>"
|
28
31
|
- !ruby/object:Gem::Version
|
29
32
|
version: '2.0'
|
30
|
-
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rspec
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
31
38
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
39
|
+
version: '3.0'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.0'
|
33
47
|
description: Generate a picture based on a string value
|
34
|
-
email:
|
48
|
+
email: theo@cheerz.com
|
35
49
|
executables: []
|
36
50
|
extensions: []
|
37
51
|
extra_rdoc_files: []
|
@@ -49,17 +63,17 @@ require_paths:
|
|
49
63
|
- lib
|
50
64
|
required_ruby_version: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- -
|
66
|
+
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
55
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
70
|
requirements:
|
57
|
-
- -
|
71
|
+
- - ">="
|
58
72
|
- !ruby/object:Gem::Version
|
59
73
|
version: '0'
|
60
74
|
requirements: []
|
61
75
|
rubyforge_project:
|
62
|
-
rubygems_version: 2.
|
76
|
+
rubygems_version: 2.7.8
|
63
77
|
signing_key:
|
64
78
|
specification_version: 4
|
65
79
|
summary: Grobber Generator
|