Module: ActiveInteraction::ActiveRecordable

Included in:
Base
Defined in:
lib/active_interaction/concerns/active_recordable.rb

Overview

Implement the minimal ActiveRecord interface.

Instance Method Summary collapse

Instance Method Details

#column_for_attribute(name) ⇒ Filter::Column?

Returns the column object for the named filter.

Examples:

class Interaction < ActiveInteraction::Base
  string :email, default: nil

  def execute; end
end

Interaction.new.column_for_attribute(:email)
# => #<ActiveInteraction::Filter::Column:0x007faebeb2a6c8 @type=:string>

Interaction.new.column_for_attribute(:not_a_filter)
# => nil

Parameters:

  • name (Symbol)

    The name of a filter.

Returns:



26
27
28
29
# File 'lib/active_interaction/concerns/active_recordable.rb', line 26

def column_for_attribute(name)
  filter = self.class.filters[name]
  Filter::Column.intern(filter.database_column_type) if filter
end

#has_attribute?(name) ⇒ Boolean

Returns true if a filter of that name exists.

Examples:

class Interaction < ActiveInteraction::Base
  string :email, default: nil

  def execute; end
end

Interaction.new.has_attribute?(:email)
# => true

Interaction.new.has_attribute?(:not_a_filter)
# => false

Parameters:

  • name (String, Symbol)

    The name of a filter.

Returns:

  • (Boolean)


49
50
51
# File 'lib/active_interaction/concerns/active_recordable.rb', line 49

def has_attribute?(name) # rubocop:disable Naming/PredicateName
  self.class.filters.key?(name.to_sym)
end