Sha256: 0af0356c6f355caa7f4aae8d58e154715084ad6cddbc357b69786cf121964df9

Contents?: true

Size: 1.12 KB

Versions: 19

Compression:

Stored size: 1.12 KB

Contents

module Pulitzer
  class FreeFormSection < Pulitzer::ApplicationRecord
    belongs_to :version
    belongs_to :free_form_section_type
    has_many :partials, -> { order :sort_order}

    accepts_nested_attributes_for :partials
    
    delegate :sort_order, to: :free_form_section_type, allow_nil: true
    
    def self.export_config
      {
        except: [:id, :version_id, :free_form_section_type_id],
        include: {
          partials: Pulitzer::Partial.export_config
        }
      }
    end

    def self.convert_nested_assoc(json_hash)
      json_hash[attrs_name].map!{|ffs_attrs|
        new_attrs = Pulitzer::Partial.convert_hash_to_nested ffs_attrs
      }
      json_hash      
    end

    def partial(name)
      self.partials.to_a.detect{|ffs| ffs.name == name}
    end

    def clone_me
      clone_attrs = self.attributes.dup
      clone_attrs.delete 'id'
      clone_attrs.delete 'version_id'

      my_clone = Pulitzer::FreeFormSection.create!(clone_attrs)
      partials.each do |partial|
        cloned_partial = partial.clone_me
        my_clone.partials << cloned_partial
      end
      my_clone
    end

  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
pulitzer-0.15.31 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.30 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.29 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.28 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.27 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.26 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.25 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.24 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.23 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.22 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.21 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.20 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.19 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.18 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.17 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.16 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.15 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.14 app/models/pulitzer/free_form_section.rb
pulitzer-0.15.13 app/models/pulitzer/free_form_section.rb