class Blueprinter::AutoExtractor
@api private
Public Class Methods
new()
click to toggle source
# File lib/blueprinter/extractors/auto_extractor.rb, line 6 def initialize @hash_extractor = HashExtractor.new @public_send_extractor = PublicSendExtractor.new @block_extractor = BlockExtractor.new @datetime_formatter = DateTimeFormatter.new end
Public Instance Methods
extract(field_name, object, local_options, options = {})
click to toggle source
# File lib/blueprinter/extractors/auto_extractor.rb, line 13 def extract(field_name, object, local_options, options = {}) extraction = extractor(object, options).extract(field_name, object, local_options, options) value = @datetime_formatter.format(extraction, options) use_default_value?(value, options[:default_if]) ? default_value(options) : value end
Private Instance Methods
default_value(field_options)
click to toggle source
# File lib/blueprinter/extractors/auto_extractor.rb, line 21 def default_value(field_options) field_options.key?(:default) ? field_options.fetch(:default) : Blueprinter.configuration.field_default end
extractor(object, options)
click to toggle source
# File lib/blueprinter/extractors/auto_extractor.rb, line 25 def extractor(object, options) if options[:block] @block_extractor elsif object.is_a?(Hash) @hash_extractor else @public_send_extractor end end