lib/bumblebee/column.rb in bumblebee-3.0.1 vs lib/bumblebee/column.rb in bumblebee-3.1.0.pre.alpha
- old
+ new
@@ -27,42 +27,36 @@
raise ArgumentError, 'header is required' if header.to_s.empty?
@header = header.to_s
@property = property || @header
@through = Array(through)
- @to_csv = ::Bumblebee::Mutator.new(to_csv)
- @to_object = ::Bumblebee::Mutator.new(to_object)
+ @to_csv = Mutator.new(to_csv)
+ @to_object = Mutator.new(to_object)
+ @resolver = Objectable.resolver
freeze
end
# Extract from object and set on hash
def csv_set(data_object, hash)
- value = extract(traverse(data_object), property)
+ value = resolver.get(data_object, full_property)
to_csv.set(hash, header, value)
end
def object_set(csv_object, hash)
- pointer = build(hash)
- value = csv_object[header]
+ value = csv_object[header]
- to_object.set(pointer, property, value)
+ to_object.set(hash, full_property, value)
hash
end
private
- def traverse(object)
- ::Bumblebee::ObjectInterface.traverse(object, through)
- end
+ attr_reader :resolver
- def extract(object, key)
- ::Bumblebee::ObjectInterface.get(object, key)
- end
-
- def build(object)
- ::Bumblebee::ObjectInterface.build(object, through)
+ def full_property
+ through + [property]
end
end
end