merriam_webster_plus 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.DS_Store +0 -0
- data/.byebug_history +256 -0
- data/.github/workflows/main.yml +21 -0
- data/.gitignore +9 -0
- data/.rubocop.yml +10 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +68 -0
- data/LICENSE.txt +21 -0
- data/README.md +93 -0
- data/Rakefile +18 -0
- data/bin/console +15 -0
- data/bin/mwp +4 -0
- data/bin/setup +8 -0
- data/fixtures/.DS_Store +0 -0
- data/fixtures/vcr_cassettes/.DS_Store +0 -0
- data/fixtures/vcr_cassettes/empty_api_entries.yml +37 -0
- data/fixtures/vcr_cassettes/heteronym_entries.yml +277 -0
- data/fixtures/vcr_cassettes/invalid_api_entries.yml +41 -0
- data/fixtures/vcr_cassettes/invalid_dictionary_plus_lookup.yml +79 -0
- data/fixtures/vcr_cassettes/invalid_endpoint_api_entries.yml +132 -0
- data/fixtures/vcr_cassettes/main_entries_dictionary.yml +210 -0
- data/fixtures/vcr_cassettes/main_entries_thesaurus.yml +70 -0
- data/fixtures/vcr_cassettes/main_entry_dictionary.yml +210 -0
- data/fixtures/vcr_cassettes/main_entry_thesaurus.yml +70 -0
- data/fixtures/vcr_cassettes/non_heteronym_entries.yml +157 -0
- data/fixtures/vcr_cassettes/valid_api_entries.yml +210 -0
- data/fixtures/vcr_cassettes/valid_dictionary_plus_lookup.yml +277 -0
- data/fixtures/vcr_cassettes/word_medley_primary_entry_population.yml +1384 -0
- data/fixtures/vcr_cassettes/word_not_in_dictionary_primary_entry.yml +141 -0
- data/fixtures/vcr_cassettes/word_not_in_thesaurus_primary_entry.yml +144 -0
- data/lib/.DS_Store +0 -0
- data/lib/merriam_webster_plus/.DS_Store +0 -0
- data/lib/merriam_webster_plus/client.rb +88 -0
- data/lib/merriam_webster_plus/dictionary_entries.rb +41 -0
- data/lib/merriam_webster_plus/dictionary_entry.rb +124 -0
- data/lib/merriam_webster_plus/dictionary_plus.rb +46 -0
- data/lib/merriam_webster_plus/dictionary_sense.rb +57 -0
- data/lib/merriam_webster_plus/entry_audio_merger.rb +55 -0
- data/lib/merriam_webster_plus/populator.rb +31 -0
- data/lib/merriam_webster_plus/primary_entry_finder.rb +41 -0
- data/lib/merriam_webster_plus/thesaurus_entries.rb +13 -0
- data/lib/merriam_webster_plus/thesaurus_entry.rb +12 -0
- data/lib/merriam_webster_plus/thesaurus_sense.rb +47 -0
- data/lib/merriam_webster_plus/version.rb +5 -0
- data/lib/merriam_webster_plus.rb +9 -0
- data/merriam_webster_plus.gemspec +35 -0
- data/test_out.csv +11 -0
- metadata +219 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
module MerriamWebsterPlus
|
|
2
|
+
class EntryAudioMerger
|
|
3
|
+
attr_reader :dst_entries, :src_entries
|
|
4
|
+
|
|
5
|
+
def initialize(dst_entries:, src_entries:)
|
|
6
|
+
@dst_entries = dst_entries
|
|
7
|
+
@src_entries = src_entries
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def merged_entries
|
|
11
|
+
heteronym? ? entries_with_multi_audio : entries_with_single_audio
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def heteronym?
|
|
17
|
+
audios.size > 1
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def entries_with_multi_audio
|
|
21
|
+
return remove_ids(dst_entries) if dst_entries == src_entries
|
|
22
|
+
|
|
23
|
+
dst_entries.each do |dst_entry|
|
|
24
|
+
target_uuid = dst_entry[:target_uuid]
|
|
25
|
+
dst_entry[:audio] = src_entries_audio_index[target_uuid]
|
|
26
|
+
end
|
|
27
|
+
remove_ids(dst_entries)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def src_entries_audio_index
|
|
31
|
+
indexed_audio = {}
|
|
32
|
+
src_entries.each do |src_entry|
|
|
33
|
+
indexed_audio[src_entry[:uuid]] ||= src_entry[:audio]
|
|
34
|
+
end
|
|
35
|
+
indexed_audio
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def entries_with_single_audio
|
|
39
|
+
dst_entries.map { |dst_entry| dst_entry[:audio] = src_audio }
|
|
40
|
+
remove_ids(dst_entries)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def src_audio
|
|
44
|
+
audios.first
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def audios
|
|
48
|
+
src_entries.map { |entry| entry.slice(:audio)[:audio] }.compact.uniq
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def remove_ids(entries)
|
|
52
|
+
entries.map { |entry| entry.except(:uuid, :target_uuid) }
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require "merriam_webster_plus/dictionary_plus"
|
|
2
|
+
|
|
3
|
+
module MerriamWebsterPlus
|
|
4
|
+
class Populator
|
|
5
|
+
attr_reader :lookupper, :src_dir, :dst_dir
|
|
6
|
+
|
|
7
|
+
def initialize(lookupper:, src_dir:, dst_dir:)
|
|
8
|
+
@lookupper = lookupper
|
|
9
|
+
@src_dir = src_dir
|
|
10
|
+
@dst_dir = dst_dir
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def populate
|
|
14
|
+
csv_out = CSV.open(dst_dir, "wb", write_headers: true, headers: src_headers)
|
|
15
|
+
|
|
16
|
+
CSV.foreach(src_dir, headers: true, header_converters: :symbol) do |src_row|
|
|
17
|
+
entry = lookupper.new(word: src_row[0]).primary_entry
|
|
18
|
+
entry ? (csv_out << entry.values) : (csv_out << src_row)
|
|
19
|
+
rescue StandardError
|
|
20
|
+
csv_out << src_row
|
|
21
|
+
end
|
|
22
|
+
csv_out.close
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def src_headers
|
|
28
|
+
CSV.foreach(src_dir).first
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module MerriamWebsterPlus
|
|
2
|
+
class PrimaryEntryFinder
|
|
3
|
+
attr_reader :primary_src_entries, :secondary_src_entries, :tertiary_src_entries
|
|
4
|
+
|
|
5
|
+
def initialize(primary_src_entries:, secondary_src_entries:, tertiary_src_entries:)
|
|
6
|
+
@primary_src_entries = primary_src_entries
|
|
7
|
+
@secondary_src_entries = secondary_src_entries
|
|
8
|
+
@tertiary_src_entries = tertiary_src_entries
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def primary_entry
|
|
12
|
+
first_complete_entry(primary_src_entries) ||
|
|
13
|
+
first_complete_entry(secondary_src_entries) ||
|
|
14
|
+
first_entry(tertiary_src_entries)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def first_complete_entry(entries)
|
|
20
|
+
entries.each do |entry|
|
|
21
|
+
entry[:senses]&.each do |sense_section|
|
|
22
|
+
sense = sense_section&.dig(1)
|
|
23
|
+
return singled_entry(entry: entry, sense: sense) if !sense[:example].nil? && !sense[:definition].nil?
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
nil
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def first_entry(entries)
|
|
30
|
+
singled_entry(entry: entries.first, sense: entries&.dig(0, :senses, 0)&.dig(1))
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def singled_entry(entry:, sense:)
|
|
34
|
+
{ word: entry[:word],
|
|
35
|
+
class: entry[:class],
|
|
36
|
+
definition: sense&.dig(:definition),
|
|
37
|
+
example: sense&.dig(:example),
|
|
38
|
+
audio: entry[:audio] }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require "merriam_webster_plus/client"
|
|
2
|
+
require "merriam_webster_plus/thesaurus_entry"
|
|
3
|
+
|
|
4
|
+
module MerriamWebsterPlus
|
|
5
|
+
class ThesaurusEntries < DictionaryEntries
|
|
6
|
+
private
|
|
7
|
+
|
|
8
|
+
def title_post_initialize
|
|
9
|
+
@api_entries = MerriamWebsterPlus::Client.new(word: word, title: :collegiate_thesaurus).api_entries
|
|
10
|
+
@entry_parser = ThesaurusEntry
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require "merriam_webster_plus/dictionary_entry"
|
|
2
|
+
require "merriam_webster_plus/thesaurus_sense"
|
|
3
|
+
|
|
4
|
+
module MerriamWebsterPlus
|
|
5
|
+
class ThesaurusEntry < DictionaryEntry
|
|
6
|
+
private
|
|
7
|
+
|
|
8
|
+
def title_post_initialize
|
|
9
|
+
@sense_parser = ThesaurusSense
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
module MerriamWebsterPlus
|
|
2
|
+
class ThesaurusSense < DictionarySense
|
|
3
|
+
def primary_sense
|
|
4
|
+
{
|
|
5
|
+
definition: definition,
|
|
6
|
+
synonyms: synonyms,
|
|
7
|
+
synonyms_and_near_synonyms: synonyms_and_near_synonyms,
|
|
8
|
+
related_words: related_words,
|
|
9
|
+
synonymous_phrases: synonymous_phrases,
|
|
10
|
+
near_antonyms: near_antonyms,
|
|
11
|
+
antonyms: antonyms,
|
|
12
|
+
antonyms_and_near_antonyms: antonyms_and_near_antonyms,
|
|
13
|
+
example: example_sentence
|
|
14
|
+
}.compact
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def synonyms
|
|
20
|
+
sense&.dig(:syn_list, 0)&.map { |word_obj| word_obj&.dig(:wd) }&.join(", ")
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def synonyms_and_near_synonyms
|
|
24
|
+
sense&.dig(:sim_list, 0)&.map { |word_obj| word_obj&.dig(:wd) }&.join(", ")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def related_words
|
|
28
|
+
sense&.dig(:rel_list, 0)&.map { |word_obj| word_obj&.dig(:wd) }&.join(", ")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def synonymous_phrases
|
|
32
|
+
sense&.dig(:phrase_list, 0)&.map { |word_obj| word_obj&.dig(:wd) }&.join(", ")
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def near_antonyms
|
|
36
|
+
sense&.dig(:near_list, 0)&.map { |word_obj| word_obj&.dig(:wd) }&.join(", ")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def antonyms
|
|
40
|
+
sense&.dig(:ant_list, 0)&.map { |word_obj| word_obj&.dig(:wd) }&.join(", ")
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def antonyms_and_near_antonyms
|
|
44
|
+
sense&.dig(:opp_list, 0)&.map { |word_obj| word_obj&.dig(:wd) }&.join(", ")
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
lib = File.expand_path("lib", __dir__)
|
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
|
+
require "merriam_webster_plus/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "merriam_webster_plus"
|
|
7
|
+
spec.version = MerriamWebsterPlus::VERSION
|
|
8
|
+
spec.authors = ["Christopher J. Corona"]
|
|
9
|
+
spec.email = ["CRiSToBaLZ@users.noreply.github.com"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "Easily get word definitions, synonyms/antonyms, usage examples, audio pronunciations, and more! Backed by Merriam-Webster API."
|
|
12
|
+
spec.description = spec.summary
|
|
13
|
+
spec.homepage = "https://github.com/CRiSToBaLZ/merriam_webster_plus"
|
|
14
|
+
spec.license = "MIT"
|
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
|
16
|
+
|
|
17
|
+
# Specify which files should be added to the gem when it is released.
|
|
18
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
19
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
20
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
spec.executables = ["mwp"]
|
|
24
|
+
spec.require_paths = ["lib"]
|
|
25
|
+
|
|
26
|
+
spec.add_dependency "bundler", "~> 2.3"
|
|
27
|
+
spec.add_dependency "httparty"
|
|
28
|
+
spec.add_dependency "json"
|
|
29
|
+
spec.add_dependency "minitest"
|
|
30
|
+
spec.add_dependency "minitest-stub-const"
|
|
31
|
+
spec.add_dependency "rake"
|
|
32
|
+
spec.add_dependency "rubocop"
|
|
33
|
+
spec.add_dependency "vcr"
|
|
34
|
+
spec.add_dependency "webmock"
|
|
35
|
+
end
|
data/test_out.csv
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
word,part_of_speech,definition,example_sentence,audio
|
|
2
|
+
Internet,noun,an electronic communications network that connects computer networks and organizational computer facilities around the world —used with the except when being used attributively,doing research on the Internet,https://media.merriam-webster.com/audio/prons/en/us/mp3/i/inter01s.mp3
|
|
3
|
+
reversible,adjective,capable of being reversed or of reversing,a reversible chemical reaction,https://media.merriam-webster.com/audio/prons/en/us/mp3/r/revers05.mp3
|
|
4
|
+
yearn,verb,"to long persistently, wistfully, or sadly",yearns to make a difference,https://media.merriam-webster.com/audio/prons/en/us/mp3/y/yearn001.mp3
|
|
5
|
+
acre,noun,"any of various units of area; specifically : a unit in the U.S. and England equal to 43,560 square feet (4047 square meters)",acres of free publicity,https://media.merriam-webster.com/audio/prons/en/us/mp3/a/acre0001.mp3
|
|
6
|
+
contrast,noun,the quality or state of being different,the contrast between the two approaches to the problem of overeating could not be greater,https://media.merriam-webster.com/audio/prons/en/us/mp3/c/contra64.mp3
|
|
7
|
+
superior,adjective,having a feeling of superiority that shows itself in an overbearing attitude,that superior sportscaster lets it be known that he thinks all foreign baseball teams are second-rate,https://media.merriam-webster.com/audio/prons/en/us/mp3/s/superi14.mp3
|
|
8
|
+
pardoned,verb,to cease to have feelings of anger or bitterness toward,he eventually pardoned his sister after she apologized,
|
|
9
|
+
salmon,noun,a large anadromous salmonid fish (Salmo salar) of the North Atlantic noted as a game and food fish —called also Atlantic salmon,,https://media.merriam-webster.com/audio/prons/en/us/mp3/s/salmon01.mp3
|
|
10
|
+
fungi,combining form,fungus,fungiform,
|
|
11
|
+
Ferris wheel,noun,an amusement device consisting of a large upright power-driven wheel carrying seats that remain horizontal around its rim,,https://media.merriam-webster.com/audio/prons/en/us/mp3/f/ferris01.mp3
|
metadata
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: merriam_webster_plus
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Christopher J. Corona
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2022-06-22 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: bundler
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '2.3'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '2.3'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: httparty
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: json
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: minitest
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: minitest-stub-const
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: rake
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: rubocop
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: vcr
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :runtime
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: webmock
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :runtime
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
139
|
+
description: Easily get word definitions, synonyms/antonyms, usage examples, audio
|
|
140
|
+
pronunciations, and more! Backed by Merriam-Webster API.
|
|
141
|
+
email:
|
|
142
|
+
- CRiSToBaLZ@users.noreply.github.com
|
|
143
|
+
executables:
|
|
144
|
+
- mwp
|
|
145
|
+
extensions: []
|
|
146
|
+
extra_rdoc_files: []
|
|
147
|
+
files:
|
|
148
|
+
- ".DS_Store"
|
|
149
|
+
- ".byebug_history"
|
|
150
|
+
- ".github/workflows/main.yml"
|
|
151
|
+
- ".gitignore"
|
|
152
|
+
- ".rubocop.yml"
|
|
153
|
+
- Gemfile
|
|
154
|
+
- Gemfile.lock
|
|
155
|
+
- LICENSE.txt
|
|
156
|
+
- README.md
|
|
157
|
+
- Rakefile
|
|
158
|
+
- bin/console
|
|
159
|
+
- bin/mwp
|
|
160
|
+
- bin/setup
|
|
161
|
+
- fixtures/.DS_Store
|
|
162
|
+
- fixtures/vcr_cassettes/.DS_Store
|
|
163
|
+
- fixtures/vcr_cassettes/empty_api_entries.yml
|
|
164
|
+
- fixtures/vcr_cassettes/heteronym_entries.yml
|
|
165
|
+
- fixtures/vcr_cassettes/invalid_api_entries.yml
|
|
166
|
+
- fixtures/vcr_cassettes/invalid_dictionary_plus_lookup.yml
|
|
167
|
+
- fixtures/vcr_cassettes/invalid_endpoint_api_entries.yml
|
|
168
|
+
- fixtures/vcr_cassettes/main_entries_dictionary.yml
|
|
169
|
+
- fixtures/vcr_cassettes/main_entries_thesaurus.yml
|
|
170
|
+
- fixtures/vcr_cassettes/main_entry_dictionary.yml
|
|
171
|
+
- fixtures/vcr_cassettes/main_entry_thesaurus.yml
|
|
172
|
+
- fixtures/vcr_cassettes/non_heteronym_entries.yml
|
|
173
|
+
- fixtures/vcr_cassettes/valid_api_entries.yml
|
|
174
|
+
- fixtures/vcr_cassettes/valid_dictionary_plus_lookup.yml
|
|
175
|
+
- fixtures/vcr_cassettes/word_medley_primary_entry_population.yml
|
|
176
|
+
- fixtures/vcr_cassettes/word_not_in_dictionary_primary_entry.yml
|
|
177
|
+
- fixtures/vcr_cassettes/word_not_in_thesaurus_primary_entry.yml
|
|
178
|
+
- lib/.DS_Store
|
|
179
|
+
- lib/merriam_webster_plus.rb
|
|
180
|
+
- lib/merriam_webster_plus/.DS_Store
|
|
181
|
+
- lib/merriam_webster_plus/client.rb
|
|
182
|
+
- lib/merriam_webster_plus/dictionary_entries.rb
|
|
183
|
+
- lib/merriam_webster_plus/dictionary_entry.rb
|
|
184
|
+
- lib/merriam_webster_plus/dictionary_plus.rb
|
|
185
|
+
- lib/merriam_webster_plus/dictionary_sense.rb
|
|
186
|
+
- lib/merriam_webster_plus/entry_audio_merger.rb
|
|
187
|
+
- lib/merriam_webster_plus/populator.rb
|
|
188
|
+
- lib/merriam_webster_plus/primary_entry_finder.rb
|
|
189
|
+
- lib/merriam_webster_plus/thesaurus_entries.rb
|
|
190
|
+
- lib/merriam_webster_plus/thesaurus_entry.rb
|
|
191
|
+
- lib/merriam_webster_plus/thesaurus_sense.rb
|
|
192
|
+
- lib/merriam_webster_plus/version.rb
|
|
193
|
+
- merriam_webster_plus.gemspec
|
|
194
|
+
- test_out.csv
|
|
195
|
+
homepage: https://github.com/CRiSToBaLZ/merriam_webster_plus
|
|
196
|
+
licenses:
|
|
197
|
+
- MIT
|
|
198
|
+
metadata: {}
|
|
199
|
+
post_install_message:
|
|
200
|
+
rdoc_options: []
|
|
201
|
+
require_paths:
|
|
202
|
+
- lib
|
|
203
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
204
|
+
requirements:
|
|
205
|
+
- - ">="
|
|
206
|
+
- !ruby/object:Gem::Version
|
|
207
|
+
version: 2.3.0
|
|
208
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
|
+
requirements:
|
|
210
|
+
- - ">="
|
|
211
|
+
- !ruby/object:Gem::Version
|
|
212
|
+
version: '0'
|
|
213
|
+
requirements: []
|
|
214
|
+
rubygems_version: 3.3.16
|
|
215
|
+
signing_key:
|
|
216
|
+
specification_version: 4
|
|
217
|
+
summary: Easily get word definitions, synonyms/antonyms, usage examples, audio pronunciations,
|
|
218
|
+
and more! Backed by Merriam-Webster API.
|
|
219
|
+
test_files: []
|