geo_pattern 1.4.0 → 1.5.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.
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,28 +1,30 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe PatternValidator do
4
6
  subject(:validator) { PatternValidator.new(store) }
5
- let(:store) { instance_double('GeoPattern::PatternStore') }
7
+ let(:store) { instance_double("GeoPattern::PatternStore") }
6
8
  let(:patterns) { [] }
7
9
 
8
10
  # Minimum valid object test
9
11
  it { expect(validator).not_to be_nil }
10
12
 
11
- describe '#validate' do
12
- context 'when valid pattern is validated' do
13
+ describe "#validate" do
14
+ context "when valid pattern is validated" do
13
15
  before :each do
14
- allow(store).to receive(:known?).with('pattern1').and_return(true)
16
+ allow(store).to receive(:known?).with("pattern1").and_return(true)
15
17
  end
16
18
 
17
- it { expect { validator.validate(%w(pattern1)) }.not_to raise_error }
19
+ it { expect { validator.validate(%w[pattern1]) }.not_to raise_error }
18
20
  end
19
21
 
20
- context 'when invalid pattern is validated' do
22
+ context "when invalid pattern is validated" do
21
23
  before :each do
22
- allow(store).to receive(:known?).with('pattern1').and_return(false)
24
+ allow(store).to receive(:known?).with("pattern1").and_return(false)
23
25
  end
24
26
 
25
- it { expect { validator.validate(%w(pattern1)) }.to raise_error InvalidPatternError }
27
+ it { expect { validator.validate(%w[pattern1]) }.to raise_error InvalidPatternError }
26
28
  end
27
29
  end
28
30
  end
data/spec/seed_spec.rb CHANGED
@@ -1,13 +1,15 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe Seed do
4
6
  subject(:seed) { Seed.new(input) }
5
- let(:input) { 'string' }
7
+ let(:input) { "string" }
6
8
 
7
9
  it { expect(seed).not_to be_nil }
8
10
 
9
- describe '#[]' do
10
- context 'when use an integer' do
11
+ describe "#[]" do
12
+ context "when use an integer" do
11
13
  it { expect(seed[1]).to be_kind_of String }
12
14
  end
13
15
  end
data/spec/spec_helper.rb CHANGED
@@ -1,18 +1,19 @@
1
- # encoding: utf-8
2
- $LOAD_PATH << File.expand_path('../../lib', __FILE__)
1
+ # frozen_string_literal: true
3
2
 
4
- require 'simplecov'
5
- SimpleCov.command_name 'rspec'
3
+ $LOAD_PATH << File.expand_path("../lib", __dir__)
4
+
5
+ require "simplecov"
6
+ SimpleCov.command_name "rspec"
6
7
  SimpleCov.start
7
8
 
8
9
  # Pull in all of the gems including those in the `test` group
9
- require 'bundler'
10
+ require "bundler"
10
11
  Bundler.require :default, :test, :development
11
12
 
12
- require 'geo_pattern'
13
+ require "geo_pattern"
13
14
 
14
15
  # Loading support files
15
- GeoPattern::Helpers.require_files_matching_pattern ::File.expand_path('../support/**/*.rb', __FILE__)
16
+ GeoPattern::Helpers.require_files_matching_pattern ::File.expand_path("support/**/*.rb", __dir__)
16
17
 
17
18
  # No need to add the namespace to every class tested
18
- include GeoPattern
19
+ include GeoPattern # rubocop:disable Style/MixinUsage
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::ChevronsGenerator do
4
- it_behaves_like 'a structure generator', :chevrons
6
+ it_behaves_like "a structure generator", :chevrons
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::ConcentricCirclesGenerator do
4
- it_behaves_like 'a structure generator', :concentric_circles
6
+ it_behaves_like "a structure generator", :concentric_circles
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::DiamondsGenerator do
4
- it_behaves_like 'a structure generator', :diamonds
6
+ it_behaves_like "a structure generator", :diamonds
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::HexagonsGenerator do
4
- it_behaves_like 'a structure generator', :hexagons
6
+ it_behaves_like "a structure generator", :hexagons
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::MosaicSquaresGenerator do
4
- it_behaves_like 'a structure generator', :mosaic_squares
6
+ it_behaves_like "a structure generator", :mosaic_squares
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::NestedSquaresGenerator do
4
- it_behaves_like 'a structure generator', :nested_squares
6
+ it_behaves_like "a structure generator", :nested_squares
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::OctagonsGenerator do
4
- it_behaves_like 'a structure generator', :octagons
6
+ it_behaves_like "a structure generator", :octagons
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::OverlappingCirclesGenerator do
4
- it_behaves_like 'a structure generator', :overlapping_circles
6
+ it_behaves_like "a structure generator", :overlapping_circles
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::OverlappingRingsGenerator do
4
- it_behaves_like 'a structure generator', :overlapping_rings
6
+ it_behaves_like "a structure generator", :overlapping_rings
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::PlaidGenerator do
4
- it_behaves_like 'a structure generator', :plaid
6
+ it_behaves_like "a structure generator", :plaid
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::PlusSignsGenerator do
4
- it_behaves_like 'a structure generator', :plus_signs
6
+ it_behaves_like "a structure generator", :plus_signs
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::SineWavesGenerator do
4
- it_behaves_like 'a structure generator', :sine_waves
6
+ it_behaves_like "a structure generator", :sine_waves
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::SquaresGenerator do
4
- it_behaves_like 'a structure generator', :squares
6
+ it_behaves_like "a structure generator", :squares
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::TessellationGenerator do
4
- it_behaves_like 'a structure generator', :tessellation
6
+ it_behaves_like "a structure generator", :tessellation
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::TrianglesGenerator do
4
- it_behaves_like 'a structure generator', :triangles
6
+ it_behaves_like "a structure generator", :triangles
5
7
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe StructureGenerators::XesGenerator do
4
- it_behaves_like 'a structure generator', :xes
6
+ it_behaves_like "a structure generator", :xes
5
7
  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 Structure do
4
6
  subject(:metadata) { described_class.new(image: svg_image, preset: preset, generator: generator, name: name) }
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(:preset) { instance_double('GeoPattern::PatternPreset') }
9
- let(:generator) { stub_const('GeoPattern::StructureGenerators::ChevronGenerator', Class.new) }
8
+ let(:svg_image) { instance_double("GeoPattern::SvgImage") }
9
+ let(:svg_image_content) { fixtures_path("generated_patterns/sine_waves.svg").read.chomp }
10
+ let(:preset) { instance_double("GeoPattern::PatternPreset") }
11
+ let(:generator) { stub_const("GeoPattern::StructureGenerators::ChevronGenerator", Class.new) }
10
12
 
11
13
  let(:name) { :chevron }
12
- let(:fill_color_dark) { '#222' }
13
- let(:fill_color_light) { '#ddd' }
14
- let(:stroke_color) { '#000' }
14
+ let(:fill_color_dark) { "#222" }
15
+ let(:fill_color_light) { "#ddd" }
16
+ let(:stroke_color) { "#000" }
15
17
  let(:stroke_opacity) { 0.02 }
16
18
  let(:opacity_min) { 0.02 }
17
19
  let(:opacity_max) { 0.15 }
@@ -27,12 +29,12 @@ RSpec.describe Structure do
27
29
  allow(preset).to receive(:opacity_max).and_return(opacity_max)
28
30
  end
29
31
 
30
- it_behaves_like 'a metadata argument', :name
31
- it_behaves_like 'a metadata argument', :generator
32
- it_behaves_like 'a forwarded metadata argument', :fill_color_dark
33
- it_behaves_like 'a forwarded metadata argument', :fill_color_light
34
- it_behaves_like 'a forwarded metadata argument', :stroke_color
35
- it_behaves_like 'a forwarded metadata argument', :stroke_opacity
36
- it_behaves_like 'a forwarded metadata argument', :opacity_min
37
- it_behaves_like 'a forwarded metadata argument', :opacity_max
32
+ it_behaves_like "a metadata argument", :name
33
+ it_behaves_like "a metadata argument", :generator
34
+ it_behaves_like "a forwarded metadata argument", :fill_color_dark
35
+ it_behaves_like "a forwarded metadata argument", :fill_color_light
36
+ it_behaves_like "a forwarded metadata argument", :stroke_color
37
+ it_behaves_like "a forwarded metadata argument", :stroke_opacity
38
+ it_behaves_like "a forwarded metadata argument", :opacity_min
39
+ it_behaves_like "a forwarded metadata argument", :opacity_max
38
40
  end
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
2
- require 'aruba/api'
3
- require 'aruba/reporting'
1
+ # frozen_string_literal: true
2
+
3
+ require "aruba/rspec"
4
+ require "aruba/api"
4
5
 
5
6
  # Spec Helpers
6
7
  module SpecHelper
@@ -9,7 +10,7 @@ module SpecHelper
9
10
  include ::Aruba::Api
10
11
 
11
12
  def dirs
12
- @dirs ||= %w(tmp rspec)
13
+ @dirs ||= %w[tmp rspec]
13
14
  end
14
15
  end
15
16
  end
@@ -18,7 +19,6 @@ RSpec.configure do |c|
18
19
  c.include SpecHelper::Aruba
19
20
 
20
21
  c.before :each do
21
- clean_current_dir
22
- restore_env
22
+ setup_aruba
23
23
  end
24
24
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SpecHelper
2
4
  module Fixtures
3
5
  def fixtures_path(name)
4
- base_path = Pathname.new(File.expand_path('../../../../fixtures', __FILE__))
6
+ base_path = Pathname.new(File.expand_path("../../../fixtures", __dir__))
5
7
  base_path + Pathname.new(name)
6
8
  end
7
9
  end
@@ -1,3 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/EvalWithLocation
4
+
1
5
  module Kernel
2
6
  # Captures the given stream and returns it:
3
7
  #
@@ -23,14 +27,14 @@ module Kernel
23
27
  def capture(stream)
24
28
  stream = stream.to_s
25
29
  captured_stream = Tempfile.new(stream)
26
- stream_io = eval("$#{stream}")
30
+ stream_io = eval("$#{stream}") # rubocop:disable Security/Eval
27
31
  origin_stream = stream_io.dup
28
32
  stream_io.reopen(captured_stream)
29
33
 
30
34
  yield
31
35
 
32
36
  stream_io.rewind
33
- return captured_stream.read
37
+ captured_stream.read
34
38
  ensure
35
39
  captured_stream.close
36
40
  captured_stream.unlink
@@ -38,3 +42,5 @@ module Kernel
38
42
  end
39
43
  alias_method :silence, :capture
40
44
  end
45
+
46
+ # rubocop:enable Style/EvalWithLocation
@@ -1,7 +1,9 @@
1
- require 'rspec/expectations'
1
+ # frozen_string_literal: true
2
+
3
+ require "rspec/expectations"
2
4
 
3
5
  RSpec::Matchers.define :have_image_with_rgb_color do |*expected|
4
- expected = format('rgb(%s, %s, %s)', *expected.flatten)
6
+ expected = format("rgb(%s, %s, %s)", *expected.flatten) # rubocop:disable Style/FormatStringToken
5
7
 
6
8
  match do |actual|
7
9
  actual.image.include? expected
@@ -1,4 +1,6 @@
1
- require 'rspec/expectations'
1
+ # frozen_string_literal: true
2
+
3
+ require "rspec/expectations"
2
4
 
3
5
  RSpec::Matchers.define :have_name do |expected|
4
6
  match do |actual|
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.configure do |config|
2
4
  config.expect_with :rspec do |expectations|
3
5
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
@@ -14,10 +16,10 @@ RSpec.configure do |config|
14
16
  config.warnings = false
15
17
 
16
18
  if config.files_to_run.one?
17
- config.default_formatter = 'doc'
19
+ config.default_formatter = "doc"
18
20
  end
19
21
 
20
- config.profile_examples = 10 if ENV.key? 'RSPEC_PROFILE'
22
+ config.profile_examples = 10 if ENV.key? "RSPEC_PROFILE"
21
23
 
22
24
  config.order = :random
23
25
  Kernel.srand config.seed
@@ -1,16 +1,18 @@
1
- RSpec.shared_examples 'a structure generator' do |name|
2
- subject { described_class.new(seed, preset, svg_image) }
1
+ # frozen_string_literal: true
3
2
 
4
- let(:seed) { instance_double('GeoPattern::Seed') }
5
- let(:preset) { instance_double('GeoPattern::PatternPreset') }
3
+ RSpec.shared_examples "a structure generator" do |name|
4
+ subject { described_class.new(seed, preset, svg_image) }
5
+
6
+ let(:seed) { instance_double("GeoPattern::Seed") }
7
+ let(:preset) { instance_double("GeoPattern::PatternPreset") }
6
8
  let(:svg_image) { SvgImage.new }
7
- let(:pattern) { instance_double('GeoPattern::Pattern') }
9
+ let(:pattern) { instance_double("GeoPattern::Pattern") }
8
10
 
9
11
  let(:name) { name }
10
12
 
11
- let(:fill_color_dark) { '#222' }
12
- let(:fill_color_light) { '#ddd' }
13
- let(:stroke_color) { '#000' }
13
+ let(:fill_color_dark) { "#222" }
14
+ let(:fill_color_light) { "#ddd" }
15
+ let(:stroke_color) { "#000" }
14
16
  let(:stroke_opacity) { 0.02 }
15
17
  let(:opacity_min) { 0.02 }
16
18
  let(:opacity_max) { 0.15 }
@@ -37,10 +39,10 @@ RSpec.shared_examples 'a structure generator' do |name|
37
39
  subject.generate(pattern)
38
40
  end
39
41
 
40
- it_behaves_like 'a named generator', name
42
+ it_behaves_like "a named generator", name
41
43
  end
42
44
 
43
- RSpec.shared_examples 'a named generator' do |name|
45
+ RSpec.shared_examples "a named generator" do |name|
44
46
  it { is_expected.to have_name name }
45
47
  it { is_expected.to have_name name.to_s }
46
48
  end
@@ -1,4 +1,6 @@
1
- RSpec.shared_examples 'a chosen pattern' do |name|
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.shared_examples "a chosen pattern" do |name|
2
4
  subject(:pattern) { GeoPattern.generate(input, patterns: name) }
3
5
 
4
6
  let(:file_name) { "#{name}.svg" }
@@ -8,16 +10,16 @@ RSpec.shared_examples 'a chosen pattern' do |name|
8
10
  end
9
11
 
10
12
  it { expect(pattern.structure).to be_name name }
11
- it { check_binary_file_content(file_name, fixtures_path("generated_patterns/#{name}.svg")) }
13
+ it { expect(file_name).to have_same_file_content_as("%/generated_patterns/#{name}.svg") }
12
14
  end
13
15
 
14
- RSpec.shared_examples 'an invalid pattern' do |chosen_pattern|
16
+ RSpec.shared_examples "an invalid pattern" do |chosen_pattern|
15
17
  subject(:pattern) { GeoPattern.generate(input, patterns: chosen_pattern) }
16
18
 
17
19
  it { expect { subject }.to raise_error InvalidPatternError }
18
20
  end
19
21
 
20
- RSpec.shared_examples 'an old style pattern' do |chosen_pattern, name|
22
+ RSpec.shared_examples "an old style pattern" do |chosen_pattern, name|
21
23
  subject(:pattern) { GeoPattern.generate(input, patterns: chosen_pattern) }
22
24
 
23
25
  let(:file_name) { "#{name}.svg" }
@@ -27,5 +29,5 @@ RSpec.shared_examples 'an old style pattern' do |chosen_pattern, name|
27
29
  end
28
30
 
29
31
  it { expect(pattern.structure).to be_name name }
30
- it { check_binary_file_content(file_name, fixtures_path("generated_patterns/#{name}.svg")) }
32
+ it { expect(file_name).to have_same_file_content_as("%/generated_patterns/#{name}.svg") }
31
33
  end
@@ -1,7 +1,9 @@
1
- RSpec.shared_examples 'a known pattern name' do
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.shared_examples "a known pattern name" do
2
4
  it { silence(:stderr) { expect(pattern_store[pattern_name]).not_to be_nil } }
3
5
  end
4
6
 
5
- RSpec.shared_examples 'an unknown pattern name' do
7
+ RSpec.shared_examples "an unknown pattern name" do
6
8
  it { silence(:stderr) { expect(pattern_store[pattern_name]).to be_nil } }
7
9
  end
@@ -1,4 +1,6 @@
1
- RSpec.shared_examples 'a metadata argument' do |argument|
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.shared_examples "a metadata argument" do |argument|
2
4
  describe "##{argument}" do
3
5
  it { expect(metadata.public_send(argument)).to eq public_send(argument) }
4
6
  end
@@ -10,38 +12,38 @@ RSpec.shared_examples 'a metadata argument' do |argument|
10
12
  end
11
13
 
12
14
  context "when #{argument} is defined" do
13
- context 'when argument is not given' do
15
+ context "when argument is not given" do
14
16
  it { is_expected.to public_send(:"be_#{argument}", nil) }
15
17
  end
16
18
 
17
- context 'when argument is the same as the defined one' do
19
+ context "when argument is the same as the defined one" do
18
20
  it { is_expected.to public_send(:"be_#{argument}", public_send(argument)) }
19
21
  end
20
22
 
21
- context 'when argument is different from the defined one' do
22
- it { is_expected.not_to public_send(:"be_#{argument}", 'blub') }
23
+ context "when argument is different from the defined one" do
24
+ it { is_expected.not_to public_send(:"be_#{argument}", "blub") }
23
25
  end
24
26
  end
25
27
  end
26
28
  end
27
29
 
28
- RSpec.shared_examples 'a forwarded metadata argument' do |argument|
30
+ RSpec.shared_examples "a forwarded metadata argument" do |argument|
29
31
  describe "##{argument}" do
30
32
  it { expect(metadata.public_send(argument)).to eq public_send(argument) }
31
33
  end
32
34
 
33
35
  describe "##{argument}?" do
34
36
  context "when #{argument} is defined" do
35
- context 'when argument is not given' do
37
+ context "when argument is not given" do
36
38
  it { is_expected.to public_send(:"be_#{argument}", nil) }
37
39
  end
38
40
 
39
- context 'when argument is the same as the defined one' do
41
+ context "when argument is the same as the defined one" do
40
42
  it { is_expected.to public_send(:"be_#{argument}", public_send(argument)) }
41
43
  end
42
44
 
43
- context 'when argument is different from the defined one' do
44
- it { is_expected.not_to public_send(:"be_#{argument}", 'blub') }
45
+ context "when argument is different from the defined one" do
46
+ it { is_expected.not_to public_send(:"be_#{argument}", "blub") }
45
47
  end
46
48
  end
47
49
  end
@@ -1,2 +1,3 @@
1
- # encoding: utf-8
2
- require 'active_support/core_ext/string/strip'
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/core_ext/string/strip"
data/spec/svg_spec.rb CHANGED
@@ -1,8 +1,10 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe SvgImage do
4
- context '#<=>' do
5
- it 'is comparable' do
6
+ context "#<=>" do
7
+ it "is comparable" do
6
8
  svg1 = SvgImage.new
7
9
  svg2 = SvgImage.new
8
10