class Lookbook::DataParser

def call

def call
  result = @input.present? ? parse(@input) : @fallback
  result.is_a?(Hash) ? result.deep_symbolize_keys : result
rescue => exception
  @fail_silently ? @fallback : raise(exception)
end

def initialize(input, fail_silently: false, fallback: nil)

def initialize(input, fail_silently: false, fallback: nil)
  @input = input
  @fail_silently = fail_silently
  @fallback = fallback
end

def parse(input)

def parse(input)
  raise ParserError.new "DataParser must be subclassed with a :parse method defined"
end