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