Sha256: 19bf92bc5fbf84396516b8ee32c7e11199e75a57b9c4bee0b1c8ebd22c31a1c8

Contents?: true

Size: 894 Bytes

Versions: 17

Compression:

Stored size: 894 Bytes

Contents

class Card::Query
  class RefSpec < Spec
    REFSPECS = {
      :refer_to       => ['referer_id','referee_id',''],
      :link_to        => ['referer_id','referee_id',"ref_type='L' AND"],
      :include        => ['referer_id','referee_id',"ref_type='I' AND"],
      :link_to_missing=> ['referer_id','referee_id',"present = 0 AND ref_type='L'"],
      :referred_to_by => ['referee_id','referer_id',''],
      :linked_to_by   => ['referee_id','referer_id',"ref_type='L' AND"],
      :included_by    => ['referee_id','referer_id',"ref_type='I' AND"]
    }
    
    def initialize key, cardspec
      @key, @cardspec = key, cardspec
    end

    def to_sql *args
      field1, field2, where = REFSPECS[ @key.to_sym ]
      and_where = @key != :link_to_missing && "#{ field2 } IN #{ @cardspec.to_sql }"
      %{(select #{field1} from card_references where #{where} #{and_where})}
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
wagn-1.14.2 lib/card/query/ref_spec.rb
wagn-1.14.1 lib/card/query/ref_spec.rb
wagn-1.14.0 lib/card/query/ref_spec.rb
wagn-1.14.0.pre3 lib/card/query/ref_spec.rb
wagn-1.14.0.pre2 lib/card/query/ref_spec.rb
wagn-1.14.0.pre1 lib/card/query/ref_spec.rb
wagn-1.13.0 lib/card/query/ref_spec.rb
wagn-1.13.0.pre2 lib/card/query/ref_spec.rb
wagn-1.13.0.pre1 lib/card/query/ref_spec.rb
wagn-1.13.0.pre lib/card/query/ref_spec.rb
wagn-1.12.13 lib/card/query/ref_spec.rb
wagn-1.12.12 lib/card/query/ref_spec.rb
wagn-1.12.11 lib/card/query/ref_spec.rb
wagn-1.12.10 lib/card/query/ref_spec.rb
wagn-1.12.9 lib/card/query/ref_spec.rb
wagn-1.12.8 lib/card/query/ref_spec.rb
wagn-1.12.7 lib/card/query/ref_spec.rb