Sha256: 41d1a1a8e974ec25cb292f38703349db2bf97bc05b10b45131e2403076d55979

Contents?: true

Size: 759 Bytes

Versions: 8

Compression:

Stored size: 759 Bytes

Contents

module Museum
  class CaseDetail < ::ApplicationRecord
    validates_presence_of :key, :case, :loupe

    belongs_to :case, class_name: 'Museum::Case', foreign_key: :museum_case_id
    belongs_to :loupe, class_name: 'Museum::Loupe', foreign_key: :museum_loupe_id

    def self.update_or_create_by(args, attributes)
      self.find_or_create_by(args).update(attributes)
    end

    def self.find_all_by_loupe_slug(slug)
      where(museum_loupe_id: Loupe.id_by_slug(slug))
    end

    def self.detail(key)
      detail = find_by_key(key)
      if detail.nil?
        raise 'Could not find ' + key
      else
        detail.value
      end
    end

    def self.follow(key)
      detail(key).fetch('Accept' => 'application/vnd.github.html')
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
museum-0.5.8 app/models/museum/case_detail.rb
museum-0.5.7 app/models/museum/case_detail.rb
museum-0.5.6 app/models/museum/case_detail.rb
museum-0.5.4 app/models/museum/case_detail.rb
museum-0.5.3 app/models/museum/case_detail.rb
museum-0.5.2 app/models/museum/case_detail.rb
museum-0.5.1 app/models/museum/case_detail.rb
museum-0.5.0 app/models/museum/case_detail.rb