geo_pattern 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ruby.yml +30 -0
  3. data/.gitignore +1 -0
  4. data/.simplecov +1 -0
  5. data/Gemfile +17 -19
  6. data/README.md +35 -12
  7. data/Rakefile +45 -49
  8. data/geo_pattern.gemspec +18 -22
  9. data/lib/geo_pattern/background.rb +9 -7
  10. data/lib/geo_pattern/background_generators/solid_generator.rb +4 -2
  11. data/lib/geo_pattern/color.rb +3 -1
  12. data/lib/geo_pattern/color_generators/base_color_generator.rb +12 -10
  13. data/lib/geo_pattern/color_generators/simple_generator.rb +2 -0
  14. data/lib/geo_pattern/color_preset.rb +7 -1
  15. data/lib/geo_pattern/errors.rb +2 -0
  16. data/lib/geo_pattern/geo_pattern_task.rb +11 -9
  17. data/lib/geo_pattern/helpers.rb +7 -5
  18. data/lib/geo_pattern/pattern.rb +6 -4
  19. data/lib/geo_pattern/pattern_generator.rb +14 -12
  20. data/lib/geo_pattern/pattern_helpers.rb +11 -8
  21. data/lib/geo_pattern/pattern_preset.rb +3 -1
  22. data/lib/geo_pattern/pattern_sieve.rb +5 -3
  23. data/lib/geo_pattern/pattern_store.rb +20 -18
  24. data/lib/geo_pattern/pattern_validator.rb +4 -2
  25. data/lib/geo_pattern/rake_task.rb +19 -16
  26. data/lib/geo_pattern/roles/comparable_metadata.rb +2 -0
  27. data/lib/geo_pattern/roles/named_generator.rb +3 -1
  28. data/lib/geo_pattern/seed.rb +2 -0
  29. data/lib/geo_pattern/structure.rb +9 -7
  30. data/lib/geo_pattern/structure_generators/base_generator.rb +17 -14
  31. data/lib/geo_pattern/structure_generators/chevrons_generator.rb +19 -17
  32. data/lib/geo_pattern/structure_generators/concentric_circles_generator.rb +19 -17
  33. data/lib/geo_pattern/structure_generators/diamonds_generator.rb +23 -17
  34. data/lib/geo_pattern/structure_generators/hexagons_generator.rb +25 -23
  35. data/lib/geo_pattern/structure_generators/mosaic_squares_generator.rb +35 -35
  36. data/lib/geo_pattern/structure_generators/nested_squares_generator.rb +23 -21
  37. data/lib/geo_pattern/structure_generators/octagons_generator.rb +12 -11
  38. data/lib/geo_pattern/structure_generators/overlapping_circles_generator.rb +13 -11
  39. data/lib/geo_pattern/structure_generators/overlapping_rings_generator.rb +15 -13
  40. data/lib/geo_pattern/structure_generators/plaid_generator.rb +18 -18
  41. data/lib/geo_pattern/structure_generators/plus_signs_generator.rb +24 -18
  42. data/lib/geo_pattern/structure_generators/sine_waves_generator.rb +17 -15
  43. data/lib/geo_pattern/structure_generators/squares_generator.rb +10 -9
  44. data/lib/geo_pattern/structure_generators/tessellation_generator.rb +36 -34
  45. data/lib/geo_pattern/structure_generators/triangles_generator.rb +22 -19
  46. data/lib/geo_pattern/structure_generators/xes_generator.rb +26 -19
  47. data/lib/geo_pattern/svg_image.rb +10 -8
  48. data/lib/geo_pattern/version.rb +3 -1
  49. data/lib/geo_pattern.rb +53 -51
  50. data/script/console +4 -3
  51. data/spec/background_generators/solid_generator_spec.rb +16 -14
  52. data/spec/background_spec.rb +13 -11
  53. data/spec/color_generators/base_color_generator_spec.rb +10 -8
  54. data/spec/color_generators/simple_generator_spec.rb +5 -3
  55. data/spec/color_preset_spec.rb +17 -15
  56. data/spec/color_spec.rb +8 -6
  57. data/spec/geo_pattern_spec.rb +59 -58
  58. data/spec/helpers_spec.rb +30 -28
  59. data/spec/pattern_preset_spec.rb +15 -13
  60. data/spec/pattern_sieve_spec.rb +13 -11
  61. data/spec/pattern_spec.rb +20 -18
  62. data/spec/pattern_store_spec.rb +21 -19
  63. data/spec/pattern_validator_spec.rb +11 -9
  64. data/spec/seed_spec.rb +6 -4
  65. data/spec/spec_helper.rb +9 -8
  66. data/spec/structure_generators/chevrons_generator_spec.rb +4 -2
  67. data/spec/structure_generators/concentric_circles_generator_spec.rb +4 -2
  68. data/spec/structure_generators/diamonds_generator_spec.rb +4 -2
  69. data/spec/structure_generators/hexagons_generator_spec.rb +4 -2
  70. data/spec/structure_generators/mosaic_squares_generator_spec.rb +4 -2
  71. data/spec/structure_generators/nested_squares_generator_spec.rb +4 -2
  72. data/spec/structure_generators/octagons_generator_spec.rb +4 -2
  73. data/spec/structure_generators/overlapping_circles_generator_spec.rb +4 -2
  74. data/spec/structure_generators/overlapping_rings_generator_spec.rb +4 -2
  75. data/spec/structure_generators/plaid_generator_spec.rb +4 -2
  76. data/spec/structure_generators/plus_signs_generator_spec.rb +4 -2
  77. data/spec/structure_generators/sine_waves_generator_spec.rb +4 -2
  78. data/spec/structure_generators/squares_generator_spec.rb +4 -2
  79. data/spec/structure_generators/tessellation_generator_spec.rb +4 -2
  80. data/spec/structure_generators/triangles_generator_spec.rb +4 -2
  81. data/spec/structure_generators/xes_generator_spec.rb +4 -2
  82. data/spec/structure_spec.rb +18 -16
  83. data/spec/support/aruba.rb +6 -6
  84. data/spec/support/helpers/fixtures.rb +3 -1
  85. data/spec/support/kernel.rb +8 -2
  86. data/spec/support/matchers/image.rb +4 -2
  87. data/spec/support/matchers/name.rb +3 -1
  88. data/spec/support/rspec.rb +4 -2
  89. data/spec/support/shared_examples/generator.rb +12 -10
  90. data/spec/support/shared_examples/pattern.rb +7 -5
  91. data/spec/support/shared_examples/pattern_name.rb +4 -2
  92. data/spec/support/shared_examples/structure.rb +12 -10
  93. data/spec/support/string.rb +3 -2
  94. data/spec/svg_spec.rb +5 -3
  95. metadata +11 -59
  96. data/.rubocop.yml +0 -71
  97. data/.travis.yml +0 -12
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe ColorGenerators::SimpleGenerator do
2
4
  subject(:generator) { described_class.new(color_string) }
3
5
 
4
- let(:color_string) { '#ff00ff' }
6
+ let(:color_string) { "#ff00ff" }
5
7
 
6
8
  it { is_expected.not_to be_nil }
7
9
 
8
- describe '#generate' do
10
+ describe "#generate" do
9
11
  let(:color) { generator.generate }
10
- it { expect(color.to_svg).to eq 'rgb(255, 0, 255)' }
12
+ it { expect(color.to_svg).to eq "rgb(255, 0, 255)" }
11
13
  end
12
14
  end
@@ -1,37 +1,39 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe ColorPreset do
4
6
  subject(:preset) { ColorPreset.new(**options) }
5
7
  let(:options) do
6
8
  {
7
- base_color: '#0f0f0f'
9
+ base_color: "#0f0f0f"
8
10
  }
9
11
  end
10
12
 
11
13
  it { expect(preset).not_to be nil }
12
14
 
13
- describe '#base_color' do
14
- it { expect(preset.base_color).to eq '#0f0f0f' }
15
+ describe "#base_color" do
16
+ it { expect(preset.base_color).to eq "#0f0f0f" }
15
17
  end
16
18
 
17
- describe '#color' do
18
- context 'when set' do
19
+ describe "#color" do
20
+ context "when set" do
19
21
  let(:options) do
20
22
  {
21
- base_color: '#0f0f0f',
22
- color: '#1f1f1f'
23
+ base_color: "#0f0f0f",
24
+ color: "#1f1f1f"
23
25
  }
24
26
  end
25
27
 
26
- it { expect(preset.color).to eq '#1f1f1f' }
28
+ it { expect(preset.color).to eq "#1f1f1f" }
27
29
  end
28
30
  end
29
31
 
30
- describe '#mode?' do
31
- context 'when nil' do
32
+ describe "#mode?" do
33
+ context "when nil" do
32
34
  let(:options) do
33
35
  {
34
- base_color: '#0f0f0f',
36
+ base_color: "#0f0f0f",
35
37
  color: nil
36
38
  }
37
39
  end
@@ -39,11 +41,11 @@ RSpec.describe ColorPreset do
39
41
  it { expect(preset).to be_mode :base_color }
40
42
  end
41
43
 
42
- context 'when defined' do
44
+ context "when defined" do
43
45
  let(:options) do
44
46
  {
45
- base_color: '#0f0f0f',
46
- color: '#1f1f1f'
47
+ base_color: "#0f0f0f",
48
+ color: "#1f1f1f"
47
49
  }
48
50
  end
49
51
 
data/spec/color_spec.rb CHANGED
@@ -1,15 +1,17 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe GeoPattern::Color do
4
6
  subject(:color) { described_class.new(color_string) }
5
- let(:color_string) { '#ff00ff' }
6
- let(:seed) { instance_double('GeoPattern::Seed') }
7
+ let(:color_string) { "#ff00ff" }
8
+ let(:seed) { instance_double("GeoPattern::Seed") }
7
9
 
8
- describe '#to_svg' do
9
- it { expect(color.to_svg).to eq 'rgb(255, 0, 255)' }
10
+ describe "#to_svg" do
11
+ it { expect(color.to_svg).to eq "rgb(255, 0, 255)" }
10
12
  end
11
13
 
12
- describe '#to_html' do
14
+ describe "#to_html" do
13
15
  it { expect(color.to_html).to eq color_string }
14
16
  end
15
17
  end
@@ -1,12 +1,13 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
3
4
 
4
5
  RSpec.describe GeoPattern do
5
6
  subject(:pattern) { GeoPattern.generate(input) }
6
- let(:input) { 'Mastering Markdown' }
7
- let(:color) { '#ffcc00' }
7
+ let(:input) { "Mastering Markdown" }
8
+ let(:color) { "#ffcc00" }
8
9
  let(:rgb_base_color) { PatternHelpers.html_to_rgb_for_string(seed, color) }
9
- let(:seed) { instance_double('GeoPattern::Seed') }
10
+ let(:seed) { instance_double("GeoPattern::Seed") }
10
11
 
11
12
  before :each do
12
13
  allow(seed).to receive(:to_i).with(14, 3).and_return(2616)
@@ -15,42 +16,42 @@ RSpec.describe GeoPattern do
15
16
 
16
17
  it { expect(pattern).not_to be_nil }
17
18
 
18
- describe '.generate' do
19
- context 'when invoked with the same input it returns the same output' do
19
+ describe ".generate" do
20
+ context "when invoked with the same input it returns the same output" do
20
21
  let(:other_pattern) { GeoPattern.generate(input) }
21
22
  it { expect(pattern.to_svg).to eq other_pattern.to_svg }
22
23
  end
23
24
 
24
- context 'when an invalid option is given' do
25
+ context "when an invalid option is given" do
25
26
  subject(:pattern) { GeoPattern.generate(input, **args) }
26
- let(:args) { { unknown: true } }
27
+ let(:args) { {unknown: true} }
27
28
 
28
29
  it { expect { pattern }.to raise_error ArgumentError }
29
30
  end
30
31
 
31
- context 'set background color of generated pattern' do
32
- let(:new_color) { '#ffcc00' }
32
+ context "set background color of generated pattern" do
33
+ let(:new_color) { "#ffcc00" }
33
34
 
34
- context 'when a base color is set' do
35
+ context "when a base color is set" do
35
36
  subject(:pattern) { GeoPattern.generate(input, base_color: color) }
36
- let(:new_color) { '#04fbf6' }
37
+ let(:new_color) { "#04fbf6" }
37
38
 
38
39
  it { expect(pattern.background.color.to_html).to eq(new_color) }
39
40
  end
40
41
 
41
- context 'when a color is set' do
42
+ context "when a color is set" do
42
43
  subject(:pattern) { GeoPattern.generate(input, color: color) }
43
44
 
44
45
  it { expect(pattern.background.color.to_html).to eq(new_color) }
45
46
  end
46
47
  end
47
48
 
48
- context 'specify the pattern' do
49
+ context "specify the pattern" do
49
50
  subject(:pattern) { GeoPattern.generate(input, patterns: chosen_pattern) }
50
51
 
51
52
  let(:chosen_pattern) { :sine_waves }
52
53
 
53
- context 'when the deprecated generator option is used' do
54
+ context "when the deprecated generator option is used" do
54
55
  subject(:pattern) { GeoPattern.generate(input, generator: chosen_pattern) }
55
56
  subject(:other_pattern) { GeoPattern.generate(input, patterns: chosen_pattern) }
56
57
 
@@ -58,57 +59,57 @@ RSpec.describe GeoPattern do
58
59
  it { silence(:stderr) { expect(pattern.to_svg).to eq other_pattern.to_svg } }
59
60
  end
60
61
 
61
- context 'when multiple patterns are selected' do
62
- let(:chosen_pattern) { [:sine_waves, :xes] }
62
+ context "when multiple patterns are selected" do
63
+ let(:chosen_pattern) { %i[sine_waves xes] }
63
64
 
64
65
  it { expect(pattern.structure.name).to eq(:sine_waves).or eq(:xes) }
65
66
  end
66
67
 
67
- context 'when an old style pattern was chosen via class name' do
68
- it_behaves_like 'an old style pattern', ChevronPattern, :chevrons
69
- it_behaves_like 'an old style pattern', ConcentricCirclesPattern, :concentric_circles
70
- it_behaves_like 'an old style pattern', DiamondPattern, :diamonds
71
- it_behaves_like 'an old style pattern', HexagonPattern, :hexagons
72
- it_behaves_like 'an old style pattern', MosaicSquaresPattern, :mosaic_squares
73
- it_behaves_like 'an old style pattern', NestedSquaresPattern, :nested_squares
74
- it_behaves_like 'an old style pattern', OctagonPattern, :octagons
75
- it_behaves_like 'an old style pattern', OverlappingCirclesPattern, :overlapping_circles
76
- it_behaves_like 'an old style pattern', OverlappingRingsPattern, :overlapping_rings
77
- it_behaves_like 'an old style pattern', PlaidPattern, :plaid
78
- it_behaves_like 'an old style pattern', PlusSignPattern, :plus_signs
79
- it_behaves_like 'an old style pattern', SineWavePattern, :sine_waves
80
- it_behaves_like 'an old style pattern', SquarePattern, :squares
81
- it_behaves_like 'an old style pattern', TessellationPattern, :tessellation
82
- it_behaves_like 'an old style pattern', TrianglePattern, :triangles
83
- it_behaves_like 'an old style pattern', XesPattern, :xes
68
+ context "when an old style pattern was chosen via class name" do
69
+ it_behaves_like "an old style pattern", ChevronPattern, :chevrons
70
+ it_behaves_like "an old style pattern", ConcentricCirclesPattern, :concentric_circles
71
+ it_behaves_like "an old style pattern", DiamondPattern, :diamonds
72
+ it_behaves_like "an old style pattern", HexagonPattern, :hexagons
73
+ it_behaves_like "an old style pattern", MosaicSquaresPattern, :mosaic_squares
74
+ it_behaves_like "an old style pattern", NestedSquaresPattern, :nested_squares
75
+ it_behaves_like "an old style pattern", OctagonPattern, :octagons
76
+ it_behaves_like "an old style pattern", OverlappingCirclesPattern, :overlapping_circles
77
+ it_behaves_like "an old style pattern", OverlappingRingsPattern, :overlapping_rings
78
+ it_behaves_like "an old style pattern", PlaidPattern, :plaid
79
+ it_behaves_like "an old style pattern", PlusSignPattern, :plus_signs
80
+ it_behaves_like "an old style pattern", SineWavePattern, :sine_waves
81
+ it_behaves_like "an old style pattern", SquarePattern, :squares
82
+ it_behaves_like "an old style pattern", TessellationPattern, :tessellation
83
+ it_behaves_like "an old style pattern", TrianglePattern, :triangles
84
+ it_behaves_like "an old style pattern", XesPattern, :xes
84
85
  end
85
86
 
86
- context 'when an valid pattern was chosen' do
87
- it_behaves_like 'a chosen pattern', :chevrons
88
- it_behaves_like 'a chosen pattern', :concentric_circles
89
- it_behaves_like 'a chosen pattern', :diamonds
90
- it_behaves_like 'a chosen pattern', :hexagons
91
- it_behaves_like 'a chosen pattern', :mosaic_squares
92
- it_behaves_like 'a chosen pattern', :nested_squares
93
- it_behaves_like 'a chosen pattern', :octagons
94
- it_behaves_like 'a chosen pattern', :overlapping_circles
95
- it_behaves_like 'a chosen pattern', :overlapping_rings
96
- it_behaves_like 'a chosen pattern', :plaid
97
- it_behaves_like 'a chosen pattern', :plus_signs
98
- it_behaves_like 'a chosen pattern', :sine_waves
99
- it_behaves_like 'a chosen pattern', :squares
100
- it_behaves_like 'a chosen pattern', :tessellation
101
- it_behaves_like 'a chosen pattern', :triangles
102
- it_behaves_like 'a chosen pattern', :xes
87
+ context "when an valid pattern was chosen" do
88
+ it_behaves_like "a chosen pattern", :chevrons
89
+ it_behaves_like "a chosen pattern", :concentric_circles
90
+ it_behaves_like "a chosen pattern", :diamonds
91
+ it_behaves_like "a chosen pattern", :hexagons
92
+ it_behaves_like "a chosen pattern", :mosaic_squares
93
+ it_behaves_like "a chosen pattern", :nested_squares
94
+ it_behaves_like "a chosen pattern", :octagons
95
+ it_behaves_like "a chosen pattern", :overlapping_circles
96
+ it_behaves_like "a chosen pattern", :overlapping_rings
97
+ it_behaves_like "a chosen pattern", :plaid
98
+ it_behaves_like "a chosen pattern", :plus_signs
99
+ it_behaves_like "a chosen pattern", :sine_waves
100
+ it_behaves_like "a chosen pattern", :squares
101
+ it_behaves_like "a chosen pattern", :tessellation
102
+ it_behaves_like "a chosen pattern", :triangles
103
+ it_behaves_like "a chosen pattern", :xes
103
104
  end
104
105
 
105
- context 'when invalid patterns were chosen' do
106
- InvalidPatternClass = Class.new
106
+ context "when invalid patterns were chosen" do
107
+ InvalidPatternClass = Class.new # rubocop:disable Lint/ConstantDefinitionInBlock
107
108
 
108
- it_behaves_like 'an invalid pattern', InvalidPatternClass
109
- it_behaves_like 'an invalid pattern', 'invalid_pattern'
110
- it_behaves_like 'an invalid pattern', :invalid_pattern
111
- it_behaves_like 'an invalid pattern', [:sine_waves, 'invalid_pattern']
109
+ it_behaves_like "an invalid pattern", InvalidPatternClass
110
+ it_behaves_like "an invalid pattern", "invalid_pattern"
111
+ it_behaves_like "an invalid pattern", :invalid_pattern
112
+ it_behaves_like "an invalid pattern", [:sine_waves, "invalid_pattern"]
112
113
  end
113
114
  end
114
115
  end
data/spec/helpers_spec.rb CHANGED
@@ -1,64 +1,66 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe Helpers do
4
- describe '.underscore' do
6
+ describe ".underscore" do
5
7
  subject { described_class.underscore string }
6
8
 
7
- context 'when string is empty' do
8
- let(:string) { '' }
9
+ context "when string is empty" do
10
+ let(:string) { "" }
9
11
 
10
- it { is_expected.to eq '' }
12
+ it { is_expected.to eq "" }
11
13
  end
12
14
 
13
- context 'when string is in snakecase' do
14
- let(:string) { 'HelloWorld' }
15
+ context "when string is in snakecase" do
16
+ let(:string) { "HelloWorld" }
15
17
 
16
- it { is_expected.to eq 'hello_world' }
18
+ it { is_expected.to eq "hello_world" }
17
19
  end
18
20
 
19
- context 'when string is in snakecase at some places' do
20
- let(:string) { 'helloWorld' }
21
+ context "when string is in snakecase at some places" do
22
+ let(:string) { "helloWorld" }
21
23
 
22
- it { is_expected.to eq 'hello_world' }
24
+ it { is_expected.to eq "hello_world" }
23
25
  end
24
26
  end
25
27
 
26
- describe '.demodulize' do
28
+ describe ".demodulize" do
27
29
  subject { described_class.demodulize string }
28
30
 
29
- context 'when constant' do
31
+ context "when constant" do
30
32
  before :each do
31
- stub_const('HelloWorld', Class.new)
33
+ stub_const("HelloWorld", Class.new)
32
34
  end
33
35
 
34
36
  let(:string) { HelloWorld }
35
37
 
36
- it { is_expected.to eq 'HelloWorld' }
38
+ it { is_expected.to eq "HelloWorld" }
37
39
  end
38
40
 
39
- context 'when string' do
40
- context 'is empty' do
41
- let(:string) { '' }
41
+ context "when string" do
42
+ context "is empty" do
43
+ let(:string) { "" }
42
44
 
43
- it { is_expected.to eq '' }
45
+ it { is_expected.to eq "" }
44
46
  end
45
47
 
46
- context 'starts with ::' do
47
- let(:string) { '::Class' }
48
+ context "starts with ::" do
49
+ let(:string) { "::Class" }
48
50
 
49
- it { is_expected.to eq 'Class' }
51
+ it { is_expected.to eq "Class" }
50
52
  end
51
53
 
52
- context 'has :: in betweend' do
53
- let(:string) { 'HelloWorld::Class' }
54
+ context "has :: in betweend" do
55
+ let(:string) { "HelloWorld::Class" }
54
56
 
55
- it { is_expected.to eq 'Class' }
57
+ it { is_expected.to eq "Class" }
56
58
  end
57
59
 
58
- context 'when no namespaces is given' do
59
- let(:string) { 'HelloWorld' }
60
+ context "when no namespaces is given" do
61
+ let(:string) { "HelloWorld" }
60
62
 
61
- it { is_expected.to eq 'HelloWorld' }
63
+ it { is_expected.to eq "HelloWorld" }
62
64
  end
63
65
  end
64
66
  end
@@ -1,12 +1,14 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe PatternPreset do
4
6
  subject(:preset) { PatternPreset.new(options) }
5
7
  let(:options) do
6
8
  {
7
- fill_color_dark: '#222',
8
- fill_color_light: '#ddd',
9
- stroke_color: '#000',
9
+ fill_color_dark: "#222",
10
+ fill_color_light: "#ddd",
11
+ stroke_color: "#000",
10
12
  stroke_opacity: 0.02,
11
13
  opacity_min: 0.02,
12
14
  opacity_max: 0.15
@@ -15,27 +17,27 @@ RSpec.describe PatternPreset do
15
17
 
16
18
  it { expect(preset).not_to be nil }
17
19
 
18
- describe '#fill_color_dark' do
19
- it { expect(preset.fill_color_dark).to eq '#222' }
20
+ describe "#fill_color_dark" do
21
+ it { expect(preset.fill_color_dark).to eq "#222" }
20
22
  end
21
23
 
22
- describe '#fill_color_light' do
23
- it { expect(preset.fill_color_light).to eq '#ddd' }
24
+ describe "#fill_color_light" do
25
+ it { expect(preset.fill_color_light).to eq "#ddd" }
24
26
  end
25
27
 
26
- describe '#stroke_color' do
27
- it { expect(preset.stroke_color).to eq '#000' }
28
+ describe "#stroke_color" do
29
+ it { expect(preset.stroke_color).to eq "#000" }
28
30
  end
29
31
 
30
- describe '#stroke_opacity' do
32
+ describe "#stroke_opacity" do
31
33
  it { expect(preset.stroke_opacity).to eq 0.02 }
32
34
  end
33
35
 
34
- describe '#opacity_min' do
36
+ describe "#opacity_min" do
35
37
  it { expect(preset.opacity_min).to eq 0.02 }
36
38
  end
37
39
 
38
- describe '#opacity_max' do
40
+ describe "#opacity_max" do
39
41
  it { expect(preset.opacity_max).to eq 0.15 }
40
42
  end
41
43
  end
@@ -1,17 +1,19 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe PatternSieve do
4
6
  subject(:sieve) { PatternSieve.new(requested_patterns, seed, store) }
5
7
 
6
8
  before :each do
7
- stub_const('Pattern1', Class.new)
8
- stub_const('Pattern2', Class.new)
9
+ stub_const("Pattern1", Class.new)
10
+ stub_const("Pattern2", Class.new)
9
11
  end
10
12
 
11
- let(:store) { instance_double('GeoPattern::PatternStore') }
13
+ let(:store) { instance_double("GeoPattern::PatternStore") }
12
14
  let(:available_patterns) { [Pattern1, Pattern2] }
13
- let(:requested_patterns) { [:pattern1, :pattern2] }
14
- let(:seed) { instance_double('GeoPattern::Seed') }
15
+ let(:requested_patterns) { %i[pattern1 pattern2] }
16
+ let(:seed) { instance_double("GeoPattern::Seed") }
15
17
 
16
18
  before :each do
17
19
  allow(seed).to receive(:to_i).with(20, 1).and_return(1)
@@ -21,8 +23,8 @@ RSpec.describe PatternSieve do
21
23
  # Minimum valid object test
22
24
  it { expect(sieve).not_to be_nil }
23
25
 
24
- describe '#fetch' do
25
- context 'when requested_patterns is empty' do
26
+ describe "#fetch" do
27
+ context "when requested_patterns is empty" do
26
28
  let(:requested_patterns) { nil }
27
29
 
28
30
  before :each do
@@ -33,7 +35,7 @@ RSpec.describe PatternSieve do
33
35
  it { expect(sieve.fetch).to eq Pattern2 }
34
36
  end
35
37
 
36
- context 'when a valid pattern is requested' do
38
+ context "when a valid pattern is requested" do
37
39
  let(:requested_patterns) { [:pattern1] }
38
40
 
39
41
  before :each do
@@ -43,7 +45,7 @@ RSpec.describe PatternSieve do
43
45
  it { expect(sieve.fetch).to eq Pattern1 }
44
46
  end
45
47
 
46
- context 'when an invalid pattern is requested' do
48
+ context "when an invalid pattern is requested" do
47
49
  let(:requested_patterns) { [:patternX] }
48
50
 
49
51
  before :each do
@@ -53,7 +55,7 @@ RSpec.describe PatternSieve do
53
55
  it { expect(sieve.fetch).to be nil }
54
56
  end
55
57
 
56
- context 'when a requested pattern is nil' do
58
+ context "when a requested pattern is nil" do
57
59
  let(:requested_patterns) { [:pattern1, nil, :pattern2] }
58
60
 
59
61
  before :each do
data/spec/pattern_spec.rb CHANGED
@@ -1,16 +1,18 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe Pattern do
4
6
  subject(:pattern) { Pattern.new(svg_image) }
5
7
 
6
- let(:svg_image) { instance_double('GeoPattern::SvgImage') }
7
- let(:svg_image_content) { fixtures_path('generated_patterns/sine_waves.svg').read.chomp }
8
- let(:background) { instance_double('GeoPattern::Background') }
9
- let(:background_image) { instance_double('GeoPattern::SvgImage') }
8
+ let(:svg_image) { instance_double("GeoPattern::SvgImage") }
9
+ let(:svg_image_content) { fixtures_path("generated_patterns/sine_waves.svg").read.chomp }
10
+ let(:background) { instance_double("GeoPattern::Background") }
11
+ let(:background_image) { instance_double("GeoPattern::SvgImage") }
10
12
  let(:background_body) { %(<rect x="0" y="0" width="100%" height="100%" fill="rgb(121, 131, 76)" />) }
11
- let(:structure) { instance_double('GeoPattern::Structure') }
12
- let(:structure_image) { instance_double('GeoPattern::SvgImage') }
13
- let(:structure_body) { %(<path d=\"M0 53 C 28.0 0, 52.0 0, 80 53 S 132.0 106, 160 53 S 212.0 0, 240.0, 53\" fill=\"none\" stroke=\"#222\" style=\"opacity:0.046;stroke-width:6px;\" transform=\"translate(-40, -79.5)\" />) }
13
+ let(:structure) { instance_double("GeoPattern::Structure") }
14
+ let(:structure_image) { instance_double("GeoPattern::SvgImage") }
15
+ let(:structure_body) { %(<path d="M0 53 C 28.0 0, 52.0 0, 80 53 S 132.0 106, 160 53 S 212.0 0, 240.0, 53" fill="none" stroke="#222" style="opacity:0.046;stroke-width:6px;" transform="translate(-40, -79.5)" />) }
14
16
 
15
17
  it { expect(pattern).not_to be_nil }
16
18
 
@@ -24,7 +26,7 @@ RSpec.describe Pattern do
24
26
  allow(structure).to receive(:image).and_return structure_image
25
27
  end
26
28
 
27
- describe '#to_s' do
29
+ describe "#to_s" do
28
30
  before :each do
29
31
  allow(svg_image).to receive(:to_s).and_return(svg_image_content)
30
32
  end
@@ -32,25 +34,25 @@ RSpec.describe Pattern do
32
34
  it { expect(pattern.to_s).to eq svg_image_content }
33
35
  end
34
36
 
35
- describe '#to_base64' do
37
+ describe "#to_base64" do
36
38
  before :each do
37
39
  allow(svg_image).to receive(:to_s).and_return(svg_image_content)
38
40
  end
39
41
 
40
- it { expect(pattern.to_base64).to include 'PHN2ZyB4bWxuc' }
42
+ it { expect(pattern.to_base64).to include "PHN2ZyB4bWxuc" }
41
43
  end
42
44
 
43
- describe '#to_data_uri' do
45
+ describe "#to_data_uri" do
44
46
  before :each do
45
47
  allow(svg_image).to receive(:to_s).and_return(svg_image_content)
46
48
  end
47
49
 
48
- it { expect(pattern.to_data_uri).to include 'PHN2ZyB4bWxuc' }
50
+ it { expect(pattern.to_data_uri).to include "PHN2ZyB4bWxuc" }
49
51
  end
50
52
 
51
- describe '#generate_me' do
52
- context 'when a background is added' do
53
- let(:generator) { instance_double('GeoPattern::BackgroundGenerator') }
53
+ describe "#generate_me" do
54
+ context "when a background is added" do
55
+ let(:generator) { instance_double("GeoPattern::BackgroundGenerator") }
54
56
 
55
57
  before :each do
56
58
  expect(generator).to receive(:generate).with(pattern)
@@ -62,11 +64,11 @@ RSpec.describe Pattern do
62
64
  end
63
65
  end
64
66
 
65
- describe '#include?' do
67
+ describe "#include?" do
66
68
  it do
67
69
  expect(svg_image).to receive(:include?)
68
70
 
69
- pattern.include? ''
71
+ pattern.include? ""
70
72
  end
71
73
  end
72
74
  end
@@ -1,46 +1,48 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe PatternStore do
4
6
  subject(:pattern_store) { PatternStore.new }
5
7
 
6
8
  it { expect(pattern_store).not_to be_nil }
7
9
 
8
- describe '#[]' do
9
- context 'when a known pattern is requested' do
10
- context 'as string' do
11
- let(:pattern_name) { 'xes' }
12
- it_behaves_like 'a known pattern name'
10
+ describe "#[]" do
11
+ context "when a known pattern is requested" do
12
+ context "as string" do
13
+ let(:pattern_name) { "xes" }
14
+ it_behaves_like "a known pattern name"
13
15
  end
14
16
 
15
- context 'as klass' do
17
+ context "as klass" do
16
18
  let(:pattern_name) { XesPattern }
17
- it_behaves_like 'a known pattern name'
19
+ it_behaves_like "a known pattern name"
18
20
  end
19
21
 
20
- context 'as symbol' do
22
+ context "as symbol" do
21
23
  let(:pattern_name) { :xes }
22
- it_behaves_like 'a known pattern name'
24
+ it_behaves_like "a known pattern name"
23
25
  end
24
26
  end
25
27
 
26
- context 'when an unknown pattern is requested' do
27
- context 'as string' do
28
- let(:pattern_name) { 'unknown' }
29
- it_behaves_like 'an unknown pattern name'
28
+ context "when an unknown pattern is requested" do
29
+ context "as string" do
30
+ let(:pattern_name) { "unknown" }
31
+ it_behaves_like "an unknown pattern name"
30
32
  end
31
33
 
32
- context 'as klass' do
34
+ context "as klass" do
33
35
  let(:pattern_name) do
34
- stub_const('UnknownPattern', Class.new)
36
+ stub_const("UnknownPattern", Class.new)
35
37
  UnknownPattern
36
38
  end
37
39
 
38
- it_behaves_like 'an unknown pattern name'
40
+ it_behaves_like "an unknown pattern name"
39
41
  end
40
42
 
41
- context 'as symbol' do
43
+ context "as symbol" do
42
44
  let(:pattern_name) { :unknown }
43
- it_behaves_like 'an unknown pattern name'
45
+ it_behaves_like "an unknown pattern name"
44
46
  end
45
47
  end
46
48
  end