geo_pattern 1.4.0 → 1.6.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 (118) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +80 -16
  4. data/lib/geo_pattern/background.rb +9 -7
  5. data/lib/geo_pattern/background_generators/solid_generator.rb +4 -2
  6. data/lib/geo_pattern/color.rb +3 -1
  7. data/lib/geo_pattern/color_generators/base_color_generator.rb +10 -15
  8. data/lib/geo_pattern/color_generators/simple_generator.rb +2 -0
  9. data/lib/geo_pattern/color_preset.rb +7 -1
  10. data/lib/geo_pattern/errors.rb +2 -0
  11. data/lib/geo_pattern/geo_pattern_task.rb +11 -9
  12. data/lib/geo_pattern/helpers.rb +7 -5
  13. data/lib/geo_pattern/pattern.rb +6 -4
  14. data/lib/geo_pattern/pattern_generator.rb +14 -12
  15. data/lib/geo_pattern/pattern_helpers.rb +29 -11
  16. data/lib/geo_pattern/pattern_preset.rb +3 -1
  17. data/lib/geo_pattern/pattern_sieve.rb +5 -3
  18. data/lib/geo_pattern/pattern_store.rb +20 -18
  19. data/lib/geo_pattern/pattern_validator.rb +4 -2
  20. data/lib/geo_pattern/rake_task.rb +19 -16
  21. data/lib/geo_pattern/roles/comparable_metadata.rb +3 -1
  22. data/lib/geo_pattern/roles/named_generator.rb +3 -1
  23. data/lib/geo_pattern/seed.rb +2 -0
  24. data/lib/geo_pattern/structure.rb +9 -7
  25. data/lib/geo_pattern/structure_generators/base_generator.rb +17 -14
  26. data/lib/geo_pattern/structure_generators/chevrons_generator.rb +19 -17
  27. data/lib/geo_pattern/structure_generators/concentric_circles_generator.rb +19 -17
  28. data/lib/geo_pattern/structure_generators/diamonds_generator.rb +23 -17
  29. data/lib/geo_pattern/structure_generators/hexagons_generator.rb +25 -23
  30. data/lib/geo_pattern/structure_generators/mosaic_squares_generator.rb +35 -35
  31. data/lib/geo_pattern/structure_generators/nested_squares_generator.rb +23 -21
  32. data/lib/geo_pattern/structure_generators/octagons_generator.rb +12 -11
  33. data/lib/geo_pattern/structure_generators/overlapping_circles_generator.rb +13 -11
  34. data/lib/geo_pattern/structure_generators/overlapping_rings_generator.rb +15 -13
  35. data/lib/geo_pattern/structure_generators/plaid_generator.rb +18 -18
  36. data/lib/geo_pattern/structure_generators/plus_signs_generator.rb +24 -18
  37. data/lib/geo_pattern/structure_generators/sine_waves_generator.rb +17 -15
  38. data/lib/geo_pattern/structure_generators/squares_generator.rb +10 -9
  39. data/lib/geo_pattern/structure_generators/tessellation_generator.rb +36 -34
  40. data/lib/geo_pattern/structure_generators/triangles_generator.rb +22 -19
  41. data/lib/geo_pattern/structure_generators/xes_generator.rb +26 -19
  42. data/lib/geo_pattern/svg_image.rb +10 -8
  43. data/lib/geo_pattern/version.rb +3 -1
  44. data/lib/geo_pattern.rb +53 -51
  45. metadata +61 -139
  46. data/.gitignore +0 -18
  47. data/.rspec +0 -3
  48. data/.rubocop.yml +0 -71
  49. data/.simplecov +0 -25
  50. data/.travis.yml +0 -12
  51. data/Gemfile +0 -26
  52. data/Rakefile +0 -86
  53. data/fixtures/generated_patterns/chevrons.svg +0 -1
  54. data/fixtures/generated_patterns/concentric_circles.svg +0 -1
  55. data/fixtures/generated_patterns/diamonds.svg +0 -1
  56. data/fixtures/generated_patterns/diamonds_with_base_color.svg +0 -1
  57. data/fixtures/generated_patterns/diamonds_with_color.svg +0 -1
  58. data/fixtures/generated_patterns/hexagons.svg +0 -1
  59. data/fixtures/generated_patterns/mosaic_squares.svg +0 -1
  60. data/fixtures/generated_patterns/nested_squares.svg +0 -1
  61. data/fixtures/generated_patterns/octagons.svg +0 -1
  62. data/fixtures/generated_patterns/overlapping_circles.svg +0 -1
  63. data/fixtures/generated_patterns/overlapping_rings.svg +0 -1
  64. data/fixtures/generated_patterns/plaid.svg +0 -1
  65. data/fixtures/generated_patterns/plus_signs.svg +0 -1
  66. data/fixtures/generated_patterns/sine_waves.svg +0 -1
  67. data/fixtures/generated_patterns/squares.svg +0 -1
  68. data/fixtures/generated_patterns/tessellation.svg +0 -1
  69. data/fixtures/generated_patterns/triangles.svg +0 -1
  70. data/fixtures/generated_patterns/xes.svg +0 -1
  71. data/geo_pattern.gemspec +0 -29
  72. data/script/bootstrap +0 -30
  73. data/script/console +0 -8
  74. data/script/test +0 -21
  75. data/spec/background_generators/solid_generator_spec.rb +0 -50
  76. data/spec/background_spec.rb +0 -25
  77. data/spec/color_generators/base_color_generator_spec.rb +0 -31
  78. data/spec/color_generators/simple_generator_spec.rb +0 -12
  79. data/spec/color_preset_spec.rb +0 -53
  80. data/spec/color_spec.rb +0 -15
  81. data/spec/geo_pattern_spec.rb +0 -115
  82. data/spec/helpers_spec.rb +0 -65
  83. data/spec/pattern_preset_spec.rb +0 -41
  84. data/spec/pattern_sieve_spec.rb +0 -66
  85. data/spec/pattern_spec.rb +0 -72
  86. data/spec/pattern_store_spec.rb +0 -47
  87. data/spec/pattern_validator_spec.rb +0 -28
  88. data/spec/seed_spec.rb +0 -14
  89. data/spec/spec_helper.rb +0 -18
  90. data/spec/structure_generators/chevrons_generator_spec.rb +0 -5
  91. data/spec/structure_generators/concentric_circles_generator_spec.rb +0 -5
  92. data/spec/structure_generators/diamonds_generator_spec.rb +0 -5
  93. data/spec/structure_generators/hexagons_generator_spec.rb +0 -5
  94. data/spec/structure_generators/mosaic_squares_generator_spec.rb +0 -5
  95. data/spec/structure_generators/nested_squares_generator_spec.rb +0 -5
  96. data/spec/structure_generators/octagons_generator_spec.rb +0 -5
  97. data/spec/structure_generators/overlapping_circles_generator_spec.rb +0 -5
  98. data/spec/structure_generators/overlapping_rings_generator_spec.rb +0 -5
  99. data/spec/structure_generators/plaid_generator_spec.rb +0 -5
  100. data/spec/structure_generators/plus_signs_generator_spec.rb +0 -5
  101. data/spec/structure_generators/sine_waves_generator_spec.rb +0 -5
  102. data/spec/structure_generators/squares_generator_spec.rb +0 -5
  103. data/spec/structure_generators/tessellation_generator_spec.rb +0 -5
  104. data/spec/structure_generators/triangles_generator_spec.rb +0 -5
  105. data/spec/structure_generators/xes_generator_spec.rb +0 -5
  106. data/spec/structure_spec.rb +0 -38
  107. data/spec/support/aruba.rb +0 -24
  108. data/spec/support/helpers/fixtures.rb +0 -12
  109. data/spec/support/kernel.rb +0 -40
  110. data/spec/support/matchers/image.rb +0 -17
  111. data/spec/support/matchers/name.rb +0 -15
  112. data/spec/support/rspec.rb +0 -24
  113. data/spec/support/shared_examples/generator.rb +0 -46
  114. data/spec/support/shared_examples/pattern.rb +0 -31
  115. data/spec/support/shared_examples/pattern_name.rb +0 -7
  116. data/spec/support/shared_examples/structure.rb +0 -48
  117. data/spec/support/string.rb +0 -2
  118. data/spec/svg_spec.rb +0 -12
@@ -1,47 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe PatternStore do
4
- subject(:pattern_store) { PatternStore.new }
5
-
6
- it { expect(pattern_store).not_to be_nil }
7
-
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'
13
- end
14
-
15
- context 'as klass' do
16
- let(:pattern_name) { XesPattern }
17
- it_behaves_like 'a known pattern name'
18
- end
19
-
20
- context 'as symbol' do
21
- let(:pattern_name) { :xes }
22
- it_behaves_like 'a known pattern name'
23
- end
24
- end
25
-
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'
30
- end
31
-
32
- context 'as klass' do
33
- let(:pattern_name) do
34
- stub_const('UnknownPattern', Class.new)
35
- UnknownPattern
36
- end
37
-
38
- it_behaves_like 'an unknown pattern name'
39
- end
40
-
41
- context 'as symbol' do
42
- let(:pattern_name) { :unknown }
43
- it_behaves_like 'an unknown pattern name'
44
- end
45
- end
46
- end
47
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe PatternValidator do
4
- subject(:validator) { PatternValidator.new(store) }
5
- let(:store) { instance_double('GeoPattern::PatternStore') }
6
- let(:patterns) { [] }
7
-
8
- # Minimum valid object test
9
- it { expect(validator).not_to be_nil }
10
-
11
- describe '#validate' do
12
- context 'when valid pattern is validated' do
13
- before :each do
14
- allow(store).to receive(:known?).with('pattern1').and_return(true)
15
- end
16
-
17
- it { expect { validator.validate(%w(pattern1)) }.not_to raise_error }
18
- end
19
-
20
- context 'when invalid pattern is validated' do
21
- before :each do
22
- allow(store).to receive(:known?).with('pattern1').and_return(false)
23
- end
24
-
25
- it { expect { validator.validate(%w(pattern1)) }.to raise_error InvalidPatternError }
26
- end
27
- end
28
- end
data/spec/seed_spec.rb DELETED
@@ -1,14 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Seed do
4
- subject(:seed) { Seed.new(input) }
5
- let(:input) { 'string' }
6
-
7
- it { expect(seed).not_to be_nil }
8
-
9
- describe '#[]' do
10
- context 'when use an integer' do
11
- it { expect(seed[1]).to be_kind_of String }
12
- end
13
- end
14
- end
data/spec/spec_helper.rb DELETED
@@ -1,18 +0,0 @@
1
- # encoding: utf-8
2
- $LOAD_PATH << File.expand_path('../../lib', __FILE__)
3
-
4
- require 'simplecov'
5
- SimpleCov.command_name 'rspec'
6
- SimpleCov.start
7
-
8
- # Pull in all of the gems including those in the `test` group
9
- require 'bundler'
10
- Bundler.require :default, :test, :development
11
-
12
- require 'geo_pattern'
13
-
14
- # Loading support files
15
- GeoPattern::Helpers.require_files_matching_pattern ::File.expand_path('../support/**/*.rb', __FILE__)
16
-
17
- # No need to add the namespace to every class tested
18
- include GeoPattern
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::ChevronsGenerator do
4
- it_behaves_like 'a structure generator', :chevrons
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::ConcentricCirclesGenerator do
4
- it_behaves_like 'a structure generator', :concentric_circles
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::DiamondsGenerator do
4
- it_behaves_like 'a structure generator', :diamonds
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::HexagonsGenerator do
4
- it_behaves_like 'a structure generator', :hexagons
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::MosaicSquaresGenerator do
4
- it_behaves_like 'a structure generator', :mosaic_squares
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::NestedSquaresGenerator do
4
- it_behaves_like 'a structure generator', :nested_squares
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::OctagonsGenerator do
4
- it_behaves_like 'a structure generator', :octagons
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::OverlappingCirclesGenerator do
4
- it_behaves_like 'a structure generator', :overlapping_circles
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::OverlappingRingsGenerator do
4
- it_behaves_like 'a structure generator', :overlapping_rings
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::PlaidGenerator do
4
- it_behaves_like 'a structure generator', :plaid
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::PlusSignsGenerator do
4
- it_behaves_like 'a structure generator', :plus_signs
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::SineWavesGenerator do
4
- it_behaves_like 'a structure generator', :sine_waves
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::SquaresGenerator do
4
- it_behaves_like 'a structure generator', :squares
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::TessellationGenerator do
4
- it_behaves_like 'a structure generator', :tessellation
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::TrianglesGenerator do
4
- it_behaves_like 'a structure generator', :triangles
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe StructureGenerators::XesGenerator do
4
- it_behaves_like 'a structure generator', :xes
5
- end
@@ -1,38 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Structure do
4
- subject(:metadata) { described_class.new(image: svg_image, preset: preset, generator: generator, name: name) }
5
-
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) }
10
-
11
- let(:name) { :chevron }
12
- let(:fill_color_dark) { '#222' }
13
- let(:fill_color_light) { '#ddd' }
14
- let(:stroke_color) { '#000' }
15
- let(:stroke_opacity) { 0.02 }
16
- let(:opacity_min) { 0.02 }
17
- let(:opacity_max) { 0.15 }
18
-
19
- it { is_expected.not_to be_nil }
20
-
21
- before :each do
22
- allow(preset).to receive(:fill_color_dark).and_return(fill_color_dark)
23
- allow(preset).to receive(:fill_color_light).and_return(fill_color_light)
24
- allow(preset).to receive(:stroke_color).and_return(stroke_color)
25
- allow(preset).to receive(:stroke_opacity).and_return(stroke_opacity)
26
- allow(preset).to receive(:opacity_min).and_return(opacity_min)
27
- allow(preset).to receive(:opacity_max).and_return(opacity_max)
28
- end
29
-
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
38
- end
@@ -1,24 +0,0 @@
1
- # encoding: utf-8
2
- require 'aruba/api'
3
- require 'aruba/reporting'
4
-
5
- # Spec Helpers
6
- module SpecHelper
7
- # Helpers for aruba
8
- module Aruba
9
- include ::Aruba::Api
10
-
11
- def dirs
12
- @dirs ||= %w(tmp rspec)
13
- end
14
- end
15
- end
16
-
17
- RSpec.configure do |c|
18
- c.include SpecHelper::Aruba
19
-
20
- c.before :each do
21
- clean_current_dir
22
- restore_env
23
- end
24
- end
@@ -1,12 +0,0 @@
1
- module SpecHelper
2
- module Fixtures
3
- def fixtures_path(name)
4
- base_path = Pathname.new(File.expand_path('../../../../fixtures', __FILE__))
5
- base_path + Pathname.new(name)
6
- end
7
- end
8
- end
9
-
10
- RSpec.configure do |c|
11
- c.include SpecHelper::Fixtures
12
- end
@@ -1,40 +0,0 @@
1
- module Kernel
2
- # Captures the given stream and returns it:
3
- #
4
- # @param [String] stream
5
- #
6
- # The name of the stream to be captured
7
- #
8
- # @example Capture output
9
- #
10
- # stream = capture(:stdout) { puts 'notice' }
11
- # stream # => "notice\n"
12
- #
13
- # stream = capture(:stderr) { warn 'error' }
14
- # stream # => "error\n"
15
- #
16
- # @example Capture output for subprocesses
17
- #
18
- # stream = capture(:stdout) { system('echo notice') }
19
- # stream # => "notice\n"
20
- #
21
- # stream = capture(:stderr) { system('echo error 1>&2') }
22
- # stream # => "error\n"
23
- def capture(stream)
24
- stream = stream.to_s
25
- captured_stream = Tempfile.new(stream)
26
- stream_io = eval("$#{stream}")
27
- origin_stream = stream_io.dup
28
- stream_io.reopen(captured_stream)
29
-
30
- yield
31
-
32
- stream_io.rewind
33
- return captured_stream.read
34
- ensure
35
- captured_stream.close
36
- captured_stream.unlink
37
- stream_io.reopen(origin_stream)
38
- end
39
- alias_method :silence, :capture
40
- end
@@ -1,17 +0,0 @@
1
- require 'rspec/expectations'
2
-
3
- RSpec::Matchers.define :have_image_with_rgb_color do |*expected|
4
- expected = format('rgb(%s, %s, %s)', *expected.flatten)
5
-
6
- match do |actual|
7
- actual.image.include? expected
8
- end
9
-
10
- failure_message_when_negated do |actual|
11
- "expected that #{actual} includes color #{expected}"
12
- end
13
-
14
- failure_message do |actual|
15
- "expected that #{actual} not includes color #{expected}"
16
- end
17
- end
@@ -1,15 +0,0 @@
1
- require 'rspec/expectations'
2
-
3
- RSpec::Matchers.define :have_name do |expected|
4
- match do |actual|
5
- actual.name? expected
6
- end
7
-
8
- failure_message_when_negated do |actual|
9
- "expected that #{actual} does not nave name \"#{expected}\""
10
- end
11
-
12
- failure_message do |actual|
13
- "expected that #{actual} has name \"#{expected}\""
14
- end
15
- end
@@ -1,24 +0,0 @@
1
- RSpec.configure do |config|
2
- config.expect_with :rspec do |expectations|
3
- expectations.include_chain_clauses_in_custom_matcher_descriptions = true
4
- end
5
-
6
- config.mock_with :rspec do |mocks|
7
- mocks.verify_partial_doubles = true
8
- end
9
-
10
- config.filter_run :focus
11
- config.run_all_when_everything_filtered = true
12
-
13
- config.disable_monkey_patching!
14
- config.warnings = false
15
-
16
- if config.files_to_run.one?
17
- config.default_formatter = 'doc'
18
- end
19
-
20
- config.profile_examples = 10 if ENV.key? 'RSPEC_PROFILE'
21
-
22
- config.order = :random
23
- Kernel.srand config.seed
24
- end
@@ -1,46 +0,0 @@
1
- RSpec.shared_examples 'a structure generator' do |name|
2
- subject { described_class.new(seed, preset, svg_image) }
3
-
4
- let(:seed) { instance_double('GeoPattern::Seed') }
5
- let(:preset) { instance_double('GeoPattern::PatternPreset') }
6
- let(:svg_image) { SvgImage.new }
7
- let(:pattern) { instance_double('GeoPattern::Pattern') }
8
-
9
- let(:name) { name }
10
-
11
- let(:fill_color_dark) { '#222' }
12
- let(:fill_color_light) { '#ddd' }
13
- let(:stroke_color) { '#000' }
14
- let(:stroke_opacity) { 0.02 }
15
- let(:opacity_min) { 0.02 }
16
- let(:opacity_max) { 0.15 }
17
-
18
- before :each do
19
- allow(preset).to receive(:fill_color_dark).and_return(fill_color_dark)
20
- allow(preset).to receive(:fill_color_light).and_return(fill_color_light)
21
- allow(preset).to receive(:stroke_color).and_return(stroke_color)
22
- allow(preset).to receive(:stroke_opacity).and_return(stroke_opacity)
23
- allow(preset).to receive(:opacity_min).and_return(opacity_min)
24
- allow(preset).to receive(:opacity_max).and_return(opacity_max)
25
-
26
- allow(seed).to receive(:to_i).and_return(1)
27
- end
28
-
29
- it { is_expected.not_to be_nil }
30
- it { is_expected.to respond_to(:generate) }
31
-
32
- it do
33
- expect(pattern).to receive(:structure=).with(kind_of(Structure))
34
- expect(pattern).to receive(:height=).with(kind_of(Numeric))
35
- expect(pattern).to receive(:width=).with(kind_of(Numeric))
36
-
37
- subject.generate(pattern)
38
- end
39
-
40
- it_behaves_like 'a named generator', name
41
- end
42
-
43
- RSpec.shared_examples 'a named generator' do |name|
44
- it { is_expected.to have_name name }
45
- it { is_expected.to have_name name.to_s }
46
- end
@@ -1,31 +0,0 @@
1
- RSpec.shared_examples 'a chosen pattern' do |name|
2
- subject(:pattern) { GeoPattern.generate(input, patterns: name) }
3
-
4
- let(:file_name) { "#{name}.svg" }
5
-
6
- before :each do
7
- write_file file_name, pattern.to_s
8
- end
9
-
10
- it { expect(pattern.structure).to be_name name }
11
- it { check_binary_file_content(file_name, fixtures_path("generated_patterns/#{name}.svg")) }
12
- end
13
-
14
- RSpec.shared_examples 'an invalid pattern' do |chosen_pattern|
15
- subject(:pattern) { GeoPattern.generate(input, patterns: chosen_pattern) }
16
-
17
- it { expect { subject }.to raise_error InvalidPatternError }
18
- end
19
-
20
- RSpec.shared_examples 'an old style pattern' do |chosen_pattern, name|
21
- subject(:pattern) { GeoPattern.generate(input, patterns: chosen_pattern) }
22
-
23
- let(:file_name) { "#{name}.svg" }
24
-
25
- before :each do
26
- write_file file_name, pattern.to_s
27
- end
28
-
29
- it { expect(pattern.structure).to be_name name }
30
- it { check_binary_file_content(file_name, fixtures_path("generated_patterns/#{name}.svg")) }
31
- end
@@ -1,7 +0,0 @@
1
- RSpec.shared_examples 'a known pattern name' do
2
- it { silence(:stderr) { expect(pattern_store[pattern_name]).not_to be_nil } }
3
- end
4
-
5
- RSpec.shared_examples 'an unknown pattern name' do
6
- it { silence(:stderr) { expect(pattern_store[pattern_name]).to be_nil } }
7
- end
@@ -1,48 +0,0 @@
1
- RSpec.shared_examples 'a metadata argument' do |argument|
2
- describe "##{argument}" do
3
- it { expect(metadata.public_send(argument)).to eq public_send(argument) }
4
- end
5
-
6
- describe "##{argument}?" do
7
- context "when #{argument} is not defined" do
8
- let(argument) { nil }
9
- it { expect { metadata }.to raise_error ArgumentError, "Argument #{argument} is missing" }
10
- end
11
-
12
- context "when #{argument} is defined" do
13
- context 'when argument is not given' do
14
- it { is_expected.to public_send(:"be_#{argument}", nil) }
15
- end
16
-
17
- context 'when argument is the same as the defined one' do
18
- it { is_expected.to public_send(:"be_#{argument}", public_send(argument)) }
19
- end
20
-
21
- context 'when argument is different from the defined one' do
22
- it { is_expected.not_to public_send(:"be_#{argument}", 'blub') }
23
- end
24
- end
25
- end
26
- end
27
-
28
- RSpec.shared_examples 'a forwarded metadata argument' do |argument|
29
- describe "##{argument}" do
30
- it { expect(metadata.public_send(argument)).to eq public_send(argument) }
31
- end
32
-
33
- describe "##{argument}?" do
34
- context "when #{argument} is defined" do
35
- context 'when argument is not given' do
36
- it { is_expected.to public_send(:"be_#{argument}", nil) }
37
- end
38
-
39
- context 'when argument is the same as the defined one' do
40
- it { is_expected.to public_send(:"be_#{argument}", public_send(argument)) }
41
- end
42
-
43
- context 'when argument is different from the defined one' do
44
- it { is_expected.not_to public_send(:"be_#{argument}", 'blub') }
45
- end
46
- end
47
- end
48
- end
@@ -1,2 +0,0 @@
1
- # encoding: utf-8
2
- require 'active_support/core_ext/string/strip'
data/spec/svg_spec.rb DELETED
@@ -1,12 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe SvgImage do
4
- context '#<=>' do
5
- it 'is comparable' do
6
- svg1 = SvgImage.new
7
- svg2 = SvgImage.new
8
-
9
- expect(svg1).to eq svg2
10
- end
11
- end
12
- end