Class: Spree::ColorNames

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
app/models/spree/color_names.rb

Class Method Summary collapse

Class Method Details

.colorsObject



6
7
8
9
10
11
12
13
14
15
16
# File 'app/models/spree/color_names.rb', line 6

def colors
  @colors ||= Rails.cache.fetch('color_names', expires_in: 1.day) do
    file_path = File.join(Spree::Storefront::Engine.root, 'vendor', 'colornames.json')

    if File.exist?(file_path)
      JSON.parse(File.read(file_path))
    else
      []
    end
  end
end

.colors_cacheObject



18
19
20
21
22
23
# File 'app/models/spree/color_names.rb', line 18

def colors_cache
  @colors_cache ||= colors.inject({}) do |hash, color|
    hash[color['name'].downcase] = color
    hash
  end
end

.find_by_name(name) ⇒ Object



25
26
27
# File 'app/models/spree/color_names.rb', line 25

def find_by_name(name)
  colors_cache[name.downcase]
end

.split_by_color_name(name) ⇒ Object



29
30
31
32
# File 'app/models/spree/color_names.rb', line 29

def split_by_color_name(name)
  multi_color_regex = /(\s+and\s+|\s*-\s*|\s*&\s*|\s*\+\s*|\s*\/\s*)/
  name.gsub(multi_color_regex, ',').split(',').map(&:strip)
end