Sha256: 122b5c98d95c555c1453da2f68dc6901c74272feb9d70be66988be82700b6e6d

Contents?: true

Size: 614 Bytes

Versions: 7

Compression:

Stored size: 614 Bytes

Contents

module Kosher
  class Seller < Struct.new(:merchant_id, :name, :average_rating)
    class << self
      attr_accessor :blacklist

      def build(doc)
        merchant_id    = doc['MerchantId']
        name           = doc['Name']
        average_rating = doc['AverageFeedbackRating'].to_f

        new(merchant_id, name, average_rating)
      end
    end

    def blacklist
      self.class.blacklist
    end

    def blacklisted?
      blacklist.include?(merchant_id) rescue false
    end

    def kosher?
      return false if blacklisted?

      average_rating == 0.0 || average_rating > 4.7
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
fassbinder-0.0.1 lib/fassbinder/seller.rb
kosher-0.1.12 lib/kosher/seller.rb
kosher-0.1.11 lib/kosher/seller.rb
kosher-0.1.10 lib/kosher/seller.rb
kosher-0.1.9 lib/kosher/seller.rb
kosher-0.1.8 lib/kosher/seller.rb
kosher-0.1.7 lib/kosher/seller.rb