Sha256: cae08aaab2fdaf5cd8b835e9da77c9e72613713dcb122b39e6e0d8908609c48a

Contents?: true

Size: 731 Bytes

Versions: 29

Compression:

Stored size: 731 Bytes

Contents

module Scopes::Variant

  #FIXME WARNING tested only under sqlite and postgresql
  Variant.scope :descend_by_popularity, lambda{
      order('COALESCE((SELECT COUNT(*) FROM  line_items GROUP BY line_items.variant_id HAVING line_items.variant_id = variants.id), 0) DESC')
  }

  # for selecting variants with an option value
  # no option type given since the value implies an option type
  # this scope can be chained repeatedly, since the join name is unique
  Variant.scope :has_option, lambda {|opt|
    tbl = 'o' + Time.now.to_i.to_s + Time.now.usec.to_s
    { :joins => "inner join option_values_variants as #{tbl} on variants.id = #{tbl}.variant_id",
      :conditions => ["#{tbl}.option_value_id = (?)", opt]
    }
  }

end

Version data entries

29 entries across 29 versions & 6 rubygems

Version Path
spree_core-0.70.7 lib/scopes/variant.rb
spree_core-0.70.6 lib/scopes/variant.rb
apispree_core-0.0.0 lib/scopes/variant.rb
My-Commerce_core-1.1.0 lib/scopes/variant.rb
My-Commerce_core-1.0.0 lib/scopes/variant.rb
MyCommerceapi-1.0.0 core/lib/scopes/variant.rb
MyCommerce-0.0.3 core/lib/scopes/variant.rb
rfcommerce_core-0.0.3 lib/scopes/variant.rb
spree_core-0.60.6 lib/scopes/variant.rb
spree_core-0.70.5 lib/scopes/variant.rb
spree_core-0.70.4 lib/scopes/variant.rb
spree_core-0.60.5 lib/scopes/variant.rb
spree_core-0.70.3 lib/scopes/variant.rb
spree_core-0.70.2 lib/scopes/variant.rb
spree_core-0.50.4 lib/scopes/variant.rb
spree_core-0.60.4 lib/scopes/variant.rb
spree_core-0.50.3 lib/scopes/variant.rb
spree_core-0.60.3 lib/scopes/variant.rb
spree_core-0.70.1 lib/scopes/variant.rb
spree_core-0.70.0 lib/scopes/variant.rb