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,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