Sha256: fdd5cf8ccaaad17d5f6c6322b09f301ec08150b9d201358961db2b3da17a8735

Contents?: true

Size: 895 Bytes

Versions: 4

Compression:

Stored size: 895 Bytes

Contents

module Quickery
  class QuickeryBuilder
    attr_reader :model
    attr_reader :depender_column_name
    attr_reader :dependee_column_name
    attr_reader :association_chains

    def initialize(model:, association_chains:, dependee_column_name:, depender_column_name:)
      @model = model
      @association_chains = association_chains
      @dependee_column_name = dependee_column_name
      @depender_column_name = depender_column_name
    end

    def add_to_model
      @model.quickery_builders ||= {}
      @model.quickery_builders[depender_column_name] = self
    end

    def add_to_association_chains
      association_chains.each do |association_chain|
        association_chain.quickery_builder = self
      end
    end

    def create_model_callbacks
      @callbacks_builder = CallbacksBuilder.new(quickery_builder: self)
      @callbacks_builder.build_callbacks
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
quickery-1.3.1 lib/quickery/quickery_builder.rb
quickery-1.3.0 lib/quickery/quickery_builder.rb
quickery-1.2.0 lib/quickery/quickery_builder.rb
quickery-1.1.0 lib/quickery/quickery_builder.rb