Sha256: bf086cfedbe54a234969980cd84d332f22fc3dc65207043afcb16d0c8c601e7a
Contents?: true
Size: 982 Bytes
Versions: 2
Compression:
Stored size: 982 Bytes
Contents
class InitialVersionBuilder < Revision attr_reader :versionable, :version def initialize(versionable) @versionable = versionable @version = build_version_type build_initial_version end private def build_version_type if is_a_nested_association? parent.initial_version.version_children.build(versionable: versionable) else versionable.versions.build(initial: true) end end def build_initial_version build_version_attributes version.save end def build_version_attributes versionable_attributes.each do |attr| attr = AttributeEncapsulator.new(attr) build_attribute(attr) end end def build_attribute(attr) version_attributes.build( name: attr.key, new_value: attr.value) end def is_a_nested_association? versionable.is_a_nested_association? end def nested_within versionable.nested_within end def parent versionable.public_send(nested_within) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
controlled_versioning-0.6.1 | lib/controlled_versioning/initial_version_builder.rb |
controlled_versioning-0.6 | lib/controlled_versioning/initial_version_builder.rb |