fauve 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62e3905a46d1054c308be5dda7bb4c41d3371eac
4
- data.tar.gz: 1cc8599130f0f3240e1ee16e2e9ed4745ee5863a
3
+ metadata.gz: 8862c71f9ab4ddec3a1b22801f9bb62b200fa45f
4
+ data.tar.gz: 2e3c90592dbb4103e719aa328eb4e5f0a87c332e
5
5
  SHA512:
6
- metadata.gz: 8ed476915a985221daba2f9fddb42fcce17e02d584029fb89b59f39460e946799e9834392a582df187a352a9dbcba7701ac47b88f8e600ad48ed0344cbd1098c
7
- data.tar.gz: a4e0e32cbe55744dd9fbd95749a8bb0b7ea3d5c4f3c3d058bce490a165fd63778eaa3c8d1b656eed541182c24e32051a00611f13a4fa0c9c544fabdcd68b6c20
6
+ metadata.gz: 9b4de518d61ee6efc7c684e3acb556198e128419d68437ab2e3f4079d7d13b87d5d6efb34f13ef2e50db98eed7f587ee728f158610612482e24b4f704d363be4
7
+ data.tar.gz: 4d6c170b18b8c5c8d8eab772cb67b7cce86f26e7bf700c60912a7dc8b30f3a0bafbf38cab4bc9c192165ac3eeb5ddac760af1032dd4fa6ae601ea3b4f8fb96ed
@@ -1,24 +1,22 @@
1
1
  module Fauve
2
2
 
3
- # Representation of a colour_scheme.
4
- # Holds a raw colour map as well as the current section,
5
- # reference and colour
3
+ # Representation of a colour_scheme.
4
+ # Holds the current section, reference and colour
6
5
 
7
6
  class ColourScheme
8
7
 
9
8
  attr_accessor :colour
10
9
  alias_method :to_s, :colour
11
10
 
12
- def initialize(map: Fauve::Config::colour_map, section_name: :app, reference_name: 0)
13
- @colour_map = Fauve::Scheme::ColourMap.new(map)
14
- @section = Fauve::Scheme::Section.new(colour_map, section_name)
11
+ def initialize(section_name: :app, reference_name: 0)
12
+ @section = Fauve::Scheme::Section.new(section_name)
15
13
  @reference = Fauve::Scheme::Reference.new(reference_name)
16
- @colour = Fauve::Scheme::Colour.new(colour_map, section, reference).colour
14
+ @colour = Fauve::Scheme::Colour.new(section, reference).colour
17
15
  end
18
16
 
19
17
  private
20
18
 
21
- attr_reader :section, :reference, :colour_map
19
+ attr_reader :section, :reference
22
20
 
23
21
  end
24
22
  end
data/lib/fauve/helpers.rb CHANGED
@@ -17,7 +17,6 @@ module Sass
17
17
 
18
18
  def raw_colour
19
19
  Fauve::ColourScheme.new(
20
- map: Fauve::Config::colour_map,
21
20
  section_name: fauve_section,
22
21
  reference_name: fauve_reference
23
22
  ).to_s
data/lib/fauve/railtie.rb CHANGED
@@ -7,6 +7,7 @@ module Fauve::Rails
7
7
 
8
8
  initializer :fauve_setup do |app|
9
9
  config.fauve.config_file = File.join(Rails.root, 'config/fauve.yml') unless config.fauve.config_file
10
+ Fauve::Scheme::ColourMap.instance.map = YAML.load_file(Fauve::Rails::Railtie.config.fauve.config_file)
10
11
  end
11
12
 
12
13
  end
@@ -12,8 +12,8 @@ module Fauve
12
12
 
13
13
  attr_reader :filters, :raw_colour
14
14
 
15
- def initialize(colour_map, section, reference)
16
- @colour_map = colour_map
15
+ def initialize(section, reference)
16
+ @colour_map = ColourMap.instance
17
17
  @section = section
18
18
  @reference = reference
19
19
  @candidate = operations.shift
@@ -44,17 +44,17 @@ module Fauve
44
44
  end
45
45
 
46
46
  def resolve(colour)
47
- raise Fauve::CircularReferenceError.new('Circular reference detected') if @@candidates.include?(colour)
47
+ raise CircularReferenceError.new('Circular reference detected') if @@candidates.include?(colour)
48
48
  @@candidates << colour
49
49
  @candidate = recursed(colour).raw_colour
50
50
  end
51
51
 
52
52
  def recursed(colour)
53
- self.class.new(colour_map, source_section(colour), source_reference(colour))
53
+ self.class.new(source_section(colour), source_reference(colour))
54
54
  end
55
55
 
56
56
  def source_section(key)
57
- section.class.new(colour_map, key[SECTION_NAME_REGEX])
57
+ section.class.new(key[SECTION_NAME_REGEX])
58
58
  end
59
59
 
60
60
  def source_reference(key)
@@ -64,7 +64,7 @@ module Fauve
64
64
  def operations
65
65
  @operations ||= section.to_h[reference.key].split(',').collect{ |element| element.strip }
66
66
  rescue
67
- raise Fauve::UndefinedReferenceError.new("Reference isn't a valid index or key")
67
+ raise UndefinedReferenceError.new("Reference #{reference.key} isn't a valid index or key")
68
68
  end
69
69
 
70
70
  def is_valid_hex_colour?
@@ -2,17 +2,14 @@ module Fauve
2
2
  module Scheme
3
3
 
4
4
  # Representation of a colour map as part of a wider scheme.
5
- # Holds the colour map hash as defined in the options yaml file
5
+ # Holds the colour map hash as defined in the fauve.yaml file
6
6
 
7
7
  class ColourMap
8
8
 
9
- attr_reader :map
9
+ include Singleton
10
10
 
11
- def initialize(map)
12
- @map = map
13
- end
11
+ attr_accessor :map
14
12
 
15
- private
16
13
  end
17
14
  end
18
15
  end
@@ -4,15 +4,15 @@ module Fauve
4
4
  # Representation of a section key as part of a wider scheme.
5
5
  # Holds a section name, which points to a top-level key within
6
6
  # a colour scheme.
7
- # Takes a Fauve::Scheme::ColourMap and a section name (string)
7
+ # Takes a section name (string)
8
8
 
9
9
  class Section
10
10
 
11
11
  attr_reader :name
12
12
 
13
- def initialize(colour_map, name)
14
- @colour_map = colour_map
13
+ def initialize(name)
15
14
  @name = name.to_s
15
+ @colour_map = ColourMap.instance
16
16
  end
17
17
 
18
18
  def to_h
data/lib/fauve/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fauve
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
data/lib/fauve.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'fauve/version'
2
2
  require 'fauve/errors'
3
- require 'fauve/config'
4
3
 
5
4
  if defined? Rails
6
5
  require 'sprockets/railtie'
@@ -14,8 +13,8 @@ if defined? Rails
14
13
  require 'fauve/helpers'
15
14
  end
16
15
 
16
+
17
17
  module Fauve
18
18
  module Rails
19
19
  end
20
- end
21
-
20
+ end
@@ -4,11 +4,10 @@ module Fauve
4
4
 
5
5
  describe ColourScheme do
6
6
 
7
- let(:map) { YAML.load_file File.expand_path("./spec/fixtures/fauve.yml") }
8
- let(:section_name) { :scheme }
7
+ let(:section_name) { :scheme }
9
8
  let(:reference_name) { 2 }
10
9
 
11
- subject { described_class.new( map: map, section_name: section_name, reference_name: reference_name ) }
10
+ subject { described_class.new(section_name: section_name, reference_name: reference_name) }
12
11
 
13
12
  describe '#initialize' do
14
13
  it 'instantiates a full colour scheme' do
@@ -4,15 +4,10 @@ module Sass
4
4
  module Script
5
5
  describe Functions do
6
6
 
7
- let(:config) { YAML.load_file File.expand_path("./spec/fixtures/fauve.yml") }
8
7
  let(:section) { :scheme }
9
- let(:filters) { Hash.new }
8
+ let(:filters) { [] }
10
9
  let(:reference) { 3 }
11
10
 
12
- before do
13
- allow(Fauve::Config).to receive(:colour_map).and_return(config)
14
- end
15
-
16
11
  subject { FauveFunction.new }
17
12
 
18
13
  describe '#fauve' do
@@ -16,6 +16,21 @@ module Fauve
16
16
  expect(subject.config.fauve).to be_a ActiveSupport::OrderedOptions
17
17
  end
18
18
  end
19
+
20
+ context 'configuration loading' do
21
+ it 'loads an initializer' do
22
+ expect(described_class.instance.initializers.first.name).to eq :fauve_setup
23
+ expect(described_class.instance.railtie_name).to eq 'fauve_rails_railtie'
24
+ end
25
+ end
26
+
27
+ context 'ColourMap configuration' do
28
+
29
+ it 'sets up a ColourMap object with a hash from fauve.yml' do
30
+ expect(described_class.instance.initializers.first.block.source).to match /config\/fauve\.yml/
31
+ expect(described_class.instance.initializers.first.block.source).to match /Fauve::Scheme::ColourMap.instance.map =/
32
+ end
33
+ end
19
34
  end
20
35
  end
21
36
  end
@@ -4,13 +4,11 @@ module Fauve
4
4
  module Scheme
5
5
  describe Colour do
6
6
 
7
- let(:config) { YAML.load_file File.expand_path("./spec/fixtures/fauve.yml") }
8
- let(:colour_map) { Fauve::Scheme::ColourMap.new(config) }
9
7
  let(:section_name) { :scheme }
10
- let(:section) { Fauve::Scheme::Section.new(colour_map, section_name) }
8
+ let(:section) { Fauve::Scheme::Section.new(section_name) }
11
9
  let(:reference) { Fauve::Scheme::Reference.new(reference_name) }
12
10
 
13
- subject { described_class.new( colour_map, section, reference ) }
11
+ subject { described_class.new(section, reference) }
14
12
 
15
13
  describe '#initialize' do
16
14
  context 'when passed filters' do
@@ -5,10 +5,8 @@ module Fauve
5
5
  describe Section do
6
6
 
7
7
  let(:section_name) { 'i_like_bananas' }
8
- let(:config) { YAML.load_file File.expand_path("./spec/fixtures/fauve.yml") }
9
- let(:colour_map) { Fauve::Scheme::ColourMap.new(config) }
10
8
 
11
- subject { described_class.new(colour_map, section_name) }
9
+ subject { described_class.new(section_name) }
12
10
 
13
11
  describe '#initialize' do
14
12
  it 'exposes the section name' do
data/spec/spec_helper.rb CHANGED
@@ -5,7 +5,6 @@ require 'pry'
5
5
  require 'sass'
6
6
  require 'yaml'
7
7
  require 'sprockets/railtie'
8
- require 'fauve/config'
9
8
  require 'fauve/railtie'
10
9
  require 'fauve/errors'
11
10
  require 'fauve/engine'
@@ -15,3 +14,5 @@ require 'fauve/scheme/reference'
15
14
  require 'fauve/scheme/colour'
16
15
  require 'fauve/colour_scheme'
17
16
  require 'fauve/helpers'
17
+
18
+ Fauve::Scheme::ColourMap.instance.map = YAML.load_file(File.expand_path("./spec/fixtures/fauve.yml"))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fauve
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Angel-Bradford
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-31 00:00:00.000000000 Z
12
+ date: 2015-09-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sass
@@ -187,7 +187,6 @@ files:
187
187
  - lib/fauve.rb
188
188
  - lib/fauve/cli.rb
189
189
  - lib/fauve/colour_scheme.rb
190
- - lib/fauve/config.rb
191
190
  - lib/fauve/engine.rb
192
191
  - lib/fauve/errors.rb
193
192
  - lib/fauve/helpers.rb
@@ -199,7 +198,6 @@ files:
199
198
  - lib/fauve/version.rb
200
199
  - spec/fixtures/fauve.yml
201
200
  - spec/lib/fauve/colour_scheme_spec.rb
202
- - spec/lib/fauve/config_spec.rb
203
201
  - spec/lib/fauve/engine_spec.rb
204
202
  - spec/lib/fauve/helpers_spec.rb
205
203
  - spec/lib/fauve/railtie_spec.rb
@@ -234,7 +232,6 @@ summary: Fauve lets you manage your app's colour scheme
234
232
  test_files:
235
233
  - spec/fixtures/fauve.yml
236
234
  - spec/lib/fauve/colour_scheme_spec.rb
237
- - spec/lib/fauve/config_spec.rb
238
235
  - spec/lib/fauve/engine_spec.rb
239
236
  - spec/lib/fauve/helpers_spec.rb
240
237
  - spec/lib/fauve/railtie_spec.rb
data/lib/fauve/config.rb DELETED
@@ -1,12 +0,0 @@
1
- module Fauve
2
-
3
- module Config
4
-
5
- def self.colour_map
6
- YAML.load_file Fauve::Rails::Railtie.config.fauve.config_file
7
- end
8
-
9
- end
10
-
11
- end
12
-
@@ -1,29 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Fauve
4
- describe Config do
5
-
6
- let(:config_file) { File.expand_path("./spec/fixtures/fauve.yml") }
7
-
8
- before do
9
- allow(Fauve::Rails::Railtie.config.fauve).to receive(:config_file).and_return(config_file)
10
- end
11
-
12
- subject { described_class }
13
-
14
- describe '.colour_map' do
15
- it 'returns a hashified colour scheme' do
16
- expect(subject.colour_map).to be_a Hash
17
- end
18
-
19
- it 'includes all sections' do
20
- expect(subject.colour_map).to have_key 'scheme'
21
- expect(subject.colour_map).to have_key 'forms'
22
- expect(subject.colour_map).to have_key 'links'
23
- expect(subject.colour_map).to have_key 'buttons'
24
- expect(subject.colour_map).to have_key 'multi_level'
25
- expect(subject.colour_map).to have_key 'odd_case'
26
- end
27
- end
28
- end
29
- end