Class: Synonymous::Entry

Inherits:
Object
  • Object
show all
Defined in:
lib/synonymous/entry.rb

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Entry

Returns a new instance of Entry.



6
7
8
# File 'lib/synonymous/entry.rb', line 6

def initialize(data)
  @data = data
end

Instance Method Details

#definitionObject



24
25
26
27
28
29
30
# File 'lib/synonymous/entry.rb', line 24

def definition
  case definitions.count
  when 1 then definitions[0]
  when 0 then raise Synonymous::Error, "No definitions"
  else raise Synonymous::Error, "Multiple definitions"
  end
end

#definitionsObject



32
33
34
35
# File 'lib/synonymous/entry.rb', line 32

def definitions
  # https://dictionaryapi.com/products/json#sec-2.def
  @data.fetch("def").map { |data| Definition.new(data) }
end

#functional_labelObject



10
11
12
13
# File 'lib/synonymous/entry.rb', line 10

def functional_label
  # https://dictionaryapi.com/products/json#sec-2.fl
  @data.fetch("fl")
end

#headwordObject



15
16
17
18
# File 'lib/synonymous/entry.rb', line 15

def headword
  # https://dictionaryapi.com/products/json#sec-2.hwi
  Headword.new(@data.fetch("hwi"))
end

#sensesObject



20
21
22
# File 'lib/synonymous/entry.rb', line 20

def senses
  definition.senses
end