class Spectra::Spectrum

Attributes

_prefix[RW]
colors[RW]
views[RW]

Public Instance Methods

color(name, attributes) click to toggle source
# File lib/spectra/models/spectrum.rb, line 43
def color(name, attributes)
  self.colors ||= [] 
  self.colors << Color.new(name, Components.componentize(attributes))
end
components(*components) click to toggle source
# File lib/spectra/models/spectrum.rb, line 48
def components(*components)
  components.hash_from(:red, :green, :blue, :alpha)
end
format(type, directory = nil, &renamer) click to toggle source
# File lib/spectra/models/spectrum.rb, line 38
def format(type, directory = nil, &renamer)
  self.views ||= []
  self.views.concat(Views.from_attributes({ type: type, directory: directory, renamer: renamer }))
end
formats(*types) click to toggle source
# File lib/spectra/models/spectrum.rb, line 34
def formats(*types) 
  types.each { |type| format(type) }
end
generate(definition) click to toggle source
# File lib/spectra/models/spectrum.rb, line 12
def generate(definition)
  # evaluate color definition file, setup defaults
  self.instance_eval(definition)
  self.log_report()

  # pull in default formats if we don't have any
  self.formats(:palette, :objc) unless self.views

  # render views according to the specification
  self.views.each do |view|
    view.serialize({ colors: self.colors, prefix: self._prefix })
  end
end
hex(*components) click to toggle source
# File lib/spectra/models/spectrum.rb, line 52
def hex(*components)
  components.hash_from(:hex, :alpha)
end
log_report() click to toggle source

Debug

# File lib/spectra/models/spectrum.rb, line 64
def log_report 
  color_info = self.colors.inject("") do |memo, color|
    memo += "[∫] Evaluated #{color}\n"
  end
  
  Spectra.logger.debug(color_info)
end
prefix(prefix) click to toggle source

DSL

# File lib/spectra/models/spectrum.rb, line 30
def prefix(prefix)
  self._prefix = prefix 
end
white(*components) click to toggle source
# File lib/spectra/models/spectrum.rb, line 56
def white(*components)
  components.hash_from(:white, :alpha)
end