Module: StylePalette
- Defined in:
- lib/style_palette.rb,
lib/style_palette/version.rb
Defined Under Namespace
Modules: Helper
Constant Summary collapse
- VERSION =
"0.0.5"
Instance Attribute Summary collapse
-
#palettes_config ⇒ Object
readonly
Returns the value of attribute palettes_config.
Class Method Summary collapse
- .brush(word, palette_name) ⇒ Object
- .brush_by_index(word, palette_name) ⇒ Object
- .brush_by_range(word, palette_name) ⇒ Object
- .brush_by_regex(word, palette_name) ⇒ Object
- .palettes ⇒ Object
- .palettes_config ⇒ Object
- .palettes_config=(style_palettes_file_path) ⇒ Object
- .palettes_config_json(style_palettes_json) ⇒ Object
- .reset ⇒ Object
Instance Attribute Details
#palettes_config ⇒ Object (readonly)
Returns the value of attribute palettes_config.
8 9 10 |
# File 'lib/style_palette.rb', line 8 def palettes_config @palettes_config end |
Class Method Details
.brush(word, palette_name) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/style_palette.rb', line 10 def self.brush(word, palette_name) word = word.to_s palette_name = palette_name.to_sym raise ArgumentError, "Palette not found '#{palette_name}'" unless palettes[palette_name] brush_by_regex(word, palette_name) || brush_by_range(word, palette_name) || brush_by_index(word, palette_name) end |
.brush_by_index(word, palette_name) ⇒ Object
36 37 38 39 |
# File 'lib/style_palette.rb', line 36 def self.brush_by_index(word, palette_name) index = word.each_byte.inject( &:+ ) palettes[palette_name][ index % palettes[palette_name].length ] end |
.brush_by_range(word, palette_name) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/style_palette.rb', line 22 def self.brush_by_range(word, palette_name) palettes[palette_name].select do |e| result = false if e.range from = e.range.split("..")[0].length > 0 ? e.range.split("..")[0].to_i : -Float::INFINITY to = e.range.split("..")[1] ? e.range.split("..")[1].to_i : Float::INFINITY result = (from..to).include?(word.to_i) end result end.to_a.first end |
.brush_by_regex(word, palette_name) ⇒ Object
18 19 20 |
# File 'lib/style_palette.rb', line 18 def self.brush_by_regex(word, palette_name) palettes[palette_name].select{ |e| e.regex && word =~ /#{e.regex}/ }.first end |
.palettes ⇒ Object
67 68 69 |
# File 'lib/style_palette.rb', line 67 def self.palettes @palettes || raise(Exception, "Palettes not initialized, try `StylePalette.palettes_config = <file_path>`") end |
.palettes_config ⇒ Object
46 47 48 |
# File 'lib/style_palette.rb', line 46 def self.palettes_config @palettes_config end |
.palettes_config=(style_palettes_file_path) ⇒ Object
41 42 43 44 |
# File 'lib/style_palette.rb', line 41 def self.palettes_config=(style_palettes_file_path) style_palettes_json = File.read(style_palettes_file_path) palettes_config_json style_palettes_json end |
.palettes_config_json(style_palettes_json) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/style_palette.rb', line 50 def self.palettes_config_json(style_palettes_json) @palettes_config = style_palettes_json palettes = {} JSON.parse(style_palettes_json).each do |palette_name, palette| palettes[palette_name.to_sym] = palette.map { |e| OpenStruct.new(e) } end @palettes = palettes end |
.reset ⇒ Object
62 63 64 65 |
# File 'lib/style_palette.rb', line 62 def self.reset @palettes = nil @palettes_config = nil end |