class SimpleRewriter::Rewriter

Attributes

attributes[R]
record[R]

Public Class Methods

new(record:, attributes: []) click to toggle source
# File lib/simple_rewriter/rewriter.rb, line 5
def initialize(record:, attributes: [])
  @record = record
  @attributes = attributes
end

Public Instance Methods

call() click to toggle source
# File lib/simple_rewriter/rewriter.rb, line 10
def call
  rewrite_attributes
  finalize
end

Private Instance Methods

configuration() click to toggle source
# File lib/simple_rewriter/rewriter.rb, line 53
def configuration
  SimpleRewriter.configuration
end
finalize() click to toggle source
# File lib/simple_rewriter/rewriter.rb, line 36
def finalize
  OpenStruct.new(
    success?: success?,
    record:   record
  )
end
new_value_for(value, options) click to toggle source
# File lib/simple_rewriter/rewriter.rb, line 32
def new_value_for(value, options)
  SimpleRewriter::Attribute.new(value, options).generate
end
rewrite(attribute, attr_value, options = nil) click to toggle source
# File lib/simple_rewriter/rewriter.rb, line 27
def rewrite(attribute, attr_value, options = nil)
  new_attr_value = new_value_for(attr_value, options)
  configuration.writer.call(record, attribute, new_attr_value)
end
rewrite_attributes() click to toggle source
# File lib/simple_rewriter/rewriter.rb, line 19
def rewrite_attributes
  configuration.reader.call(record, attributes) do |attribute, attr_value, options|
    rewrite(attribute, attr_value, options)
  rescue SimpleRewriter::ClassResolver::NotSupportedAttribute
    next
  end
end
saveable?() click to toggle source
# File lib/simple_rewriter/rewriter.rb, line 48
def saveable?
  return false if record.is_a?(Hash)
  configuration.save
end
success?() click to toggle source
# File lib/simple_rewriter/rewriter.rb, line 43
def success?
  return true unless saveable?
  record.save
end