Sha256: 83c50f0d3bae5381955ba543963172e9c0b82fca1331e8972d7fadd4413f001d
Contents?: true
Size: 961 Bytes
Versions: 1
Compression:
Stored size: 961 Bytes
Contents
class JsonParser::Fetcher include OptionsParser attr_reader :path, :json, :instance delegate :after, :flatten, to: :options_object delegate :wrap, to: :wrapper delegate :crawl, to: :crawler def initialize(json, path, instance, options = {}) @path = path.to_s.split('.') @json = json @instance = instance @options = options end def fetch value = crawl(json) value.flatten! if flatten && value.respond_to?(:flatten!) value = instance.send(after, value) if after value end private def crawler @crawler ||= buidl_crawler end def buidl_crawler JsonParser::Crawler.new(path, crawler_options) do |value| wrap(value) end end def crawler_options options.slice(:case_type, :compact) end def wrapper @wrapper ||= build_wrapper end def build_wrapper JsonParser::Wrapper.new(wrapper_options) end def wrapper_options options.slice(:clazz, :type) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
json_parser-1.0.0 | lib/json_parser/fetcher.rb |