class Fontist::Import::ConvertFormulas

Public Instance Methods

call() click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 6
def call
  find_formulas.each do |formula|
    convert_to_yaml(formula)
  end
end

Private Instance Methods

convert_to_yaml(formula) click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 36
def convert_to_yaml(formula)
  hash = formula_hash(formula)
  write_yaml(formula, hash)
end
find_formulas() click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 14
def find_formulas
  require_formulas_files
  formulas_instances
end
formula_hash(formula) click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 41
def formula_hash(formula)
  code = File.read(formula_path(formula))
  FormulaSerializer.new(formula, code).call
end
formula_path(formula) click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 46
def formula_path(formula)
  formula.method(:extract).source_location.first
end
formulas_instances() click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 26
def formulas_instances
  classes = Formulas.constants.select do |constant|
    Formulas.const_get(constant).is_a?(Class)
  end

  classes.map do |constant|
    Object.const_get("Fontist::Formulas::#{constant}").instance
  end
end
require_formulas_files() click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 19
def require_formulas_files
  path = Fontist.lib_path.join("fontist", "converted_formulas")
  Dir[path.join("**/*.rb").to_s].sort.each do |file|
    require file
  end
end
stringify_keys(hash) click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 60
def stringify_keys(hash)
  JSON.parse(hash.to_json)
end
write_yaml(formula, hash) click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 50
def write_yaml(formula, hash)
  File.write(yaml_formula_path(formula), YAML.dump(stringify_keys(hash)))
end
yaml_formula_path(formula) click to toggle source
# File lib/fontist/import/convert_formulas.rb, line 54
def yaml_formula_path(formula)
  name = formula_path(formula).match(/formulas\/(.*)_fonts?.rb/)[1]

  Fontist.formulas_path.join(name + ".yml")
end