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