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 +4 -4
- data/lib/fauve/colour_scheme.rb +6 -8
- data/lib/fauve/helpers.rb +0 -1
- data/lib/fauve/railtie.rb +1 -0
- data/lib/fauve/scheme/colour.rb +6 -6
- data/lib/fauve/scheme/colour_map.rb +3 -6
- data/lib/fauve/scheme/section.rb +3 -3
- data/lib/fauve/version.rb +1 -1
- data/lib/fauve.rb +2 -3
- data/spec/lib/fauve/colour_scheme_spec.rb +2 -3
- data/spec/lib/fauve/helpers_spec.rb +1 -6
- data/spec/lib/fauve/railtie_spec.rb +15 -0
- data/spec/lib/fauve/scheme/colour_spec.rb +2 -4
- data/spec/lib/fauve/scheme/section_spec.rb +1 -3
- data/spec/spec_helper.rb +2 -1
- metadata +2 -5
- data/lib/fauve/config.rb +0 -12
- data/spec/lib/fauve/config_spec.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8862c71f9ab4ddec3a1b22801f9bb62b200fa45f
|
4
|
+
data.tar.gz: 2e3c90592dbb4103e719aa328eb4e5f0a87c332e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b4de518d61ee6efc7c684e3acb556198e128419d68437ab2e3f4079d7d13b87d5d6efb34f13ef2e50db98eed7f587ee728f158610612482e24b4f704d363be4
|
7
|
+
data.tar.gz: 4d6c170b18b8c5c8d8eab772cb67b7cce86f26e7bf700c60912a7dc8b30f3a0bafbf38cab4bc9c192165ac3eeb5ddac760af1032dd4fa6ae601ea3b4f8fb96ed
|
data/lib/fauve/colour_scheme.rb
CHANGED
@@ -1,24 +1,22 @@
|
|
1
1
|
module Fauve
|
2
2
|
|
3
|
-
|
4
|
-
|
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(
|
13
|
-
@
|
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(
|
14
|
+
@colour = Fauve::Scheme::Colour.new(section, reference).colour
|
17
15
|
end
|
18
16
|
|
19
17
|
private
|
20
18
|
|
21
|
-
attr_reader :section, :reference
|
19
|
+
attr_reader :section, :reference
|
22
20
|
|
23
21
|
end
|
24
22
|
end
|
data/lib/fauve/helpers.rb
CHANGED
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
|
data/lib/fauve/scheme/colour.rb
CHANGED
@@ -12,8 +12,8 @@ module Fauve
|
|
12
12
|
|
13
13
|
attr_reader :filters, :raw_colour
|
14
14
|
|
15
|
-
def initialize(
|
16
|
-
@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
|
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(
|
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(
|
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
|
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
|
5
|
+
# Holds the colour map hash as defined in the fauve.yaml file
|
6
6
|
|
7
7
|
class ColourMap
|
8
8
|
|
9
|
-
|
9
|
+
include Singleton
|
10
10
|
|
11
|
-
|
12
|
-
@map = map
|
13
|
-
end
|
11
|
+
attr_accessor :map
|
14
12
|
|
15
|
-
private
|
16
13
|
end
|
17
14
|
end
|
18
15
|
end
|
data/lib/fauve/scheme/section.rb
CHANGED
@@ -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
|
7
|
+
# Takes a section name (string)
|
8
8
|
|
9
9
|
class Section
|
10
10
|
|
11
11
|
attr_reader :name
|
12
12
|
|
13
|
-
def initialize(
|
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
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(:
|
8
|
-
let(:section_name) { :scheme }
|
7
|
+
let(:section_name) { :scheme }
|
9
8
|
let(:reference_name) { 2 }
|
10
9
|
|
11
|
-
subject { described_class.new(
|
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) {
|
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(
|
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(
|
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(
|
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.
|
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-
|
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,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
|