Sha256: 73c1807937e6f06bde6870e4909e2fd48d57eb677e74ec50e220dc53b354f713

Contents?: true

Size: 665 Bytes

Versions: 7

Compression:

Stored size: 665 Bytes

Contents

module ActiveHouse
  module Fromable
    extend ActiveSupport::Concern

    included do
      private

      def from_subquery
        return model_class._table_name if @subquery.nil?
        query = @subquery.is_a?(ActiveHouse::Query) ? @subquery.to_query : @subquery
        "( #{query} )"
      end

      def build_from_query_part
        "FROM #{from_subquery}"
      end
    end

    def initialize(*)
      @subquery = nil
      super
    end

    def from(table_or_subquery)
      raise ArgumentError, '' if !table_or_subquery.is_a?(ActiveHouse::Query) && !table_or_subquery.is_a?(String)
      chain_query subquery: table_or_subquery.dup
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
active_house-0.4.0 lib/active_house/fromable.rb
active_house-0.3.2 lib/active_house/fromable.rb
active_house-0.3.1 lib/active_house/fromable.rb
active_house-0.3.0 lib/active_house/fromable.rb
active_house-0.2.2 lib/active_house/fromable.rb
active_house-0.2.1 lib/active_house/fromable.rb
active_house-0.2.0 lib/active_house/fromable.rb