Class: Iev::Cli::Command
- Inherits:
-
Thor
- Object
- Thor
- Iev::Cli::Command
show all
- Includes:
- CommandHelper
- Defined in:
- lib/iev/cli/command.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Ui
debug, error, info, progress, set_ui_tag, warn
Class Method Details
.exit_on_failure? ⇒ Boolean
189
190
191
|
# File 'lib/iev/cli/command.rb', line 189
def self.exit_on_failure?
true
end
|
Instance Method Details
#db2yaml(dbfile) ⇒ Object
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# File 'lib/iev/cli/command.rb', line 115
def db2yaml(dbfile)
warn "[DEPRECATED] 'db2yaml' is deprecated. Use 'export' instead."
handle_generic_options(options)
Iev::Exporter.new(
dbfile,
output_dir: options[:output],
only_concepts: options[:only_concepts],
only_languages: options[:only_languages],
).export
summary
end
|
#export(file) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/iev/cli/command.rb', line 44
def export(file)
handle_generic_options(options)
exporter = Iev::Exporter.new(
file,
output_dir: options[:output],
only_concepts: options[:only_concepts],
only_languages: options[:only_languages],
fetch_relaton_links: options[:relaton],
on_progress: method(:export_progress),
)
exporter.export
print_export_summary(exporter.stats)
rescue ArgumentError => e
error e.message
exit 1
rescue Sequel::Error => e
error "Database error: #{e.message}"
exit 1
end
|
#fetch(code) ⇒ Object
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
# File 'lib/iev/cli/command.rb', line 172
def fetch(code)
raw = if options[:scrape]
Scraper.new.fetch_concept(code)
else
DataSource.fetch_concept(code)
end
concept = build_concept_from_raw(code, raw)
print_concept_grouped_yaml(concept)
rescue Iev::DataSource::NotFoundError
error "IEV concept not found: #{code}"
exit 1
rescue Ferrum::Error => e
error "Scraping failed: #{e.message}"
exit 1
end
|
#subject_areas ⇒ Object
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
# File 'lib/iev/cli/command.rb', line 149
def subject_areas
if options[:refresh]
cache_path = File.join(Iev.config.cache_dir, "subject_areas.yaml")
FileUtils.rm_f(cache_path) if File.exist?(cache_path)
end
result = Iev::SubjectAreas.fetch
yaml = YAML.dump(result)
if options[:output]
File.write(options[:output], yaml, encoding: "utf-8")
puts "Written to #{options[:output]}"
else
puts yaml
end
rescue Iev::SubjectAreas::FetchError => e
error e.message
exit 1
end
|
#version ⇒ Object
12
13
14
|
# File 'lib/iev/cli/command.rb', line 12
def version
puts "iev #{Iev::VERSION}"
end
|
#xlsx2db(file) ⇒ Object
137
138
139
140
141
142
143
|
# File 'lib/iev/cli/command.rb', line 137
def xlsx2db(file)
handle_generic_options(options)
db = Sequel.sqlite
DbWriter.new(db).import_spreadsheet(file)
save_db_to_file(db, options[:output])
summary
end
|
#xlsx2yaml(file) ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/iev/cli/command.rb', line 83
def xlsx2yaml(file)
warn "[DEPRECATED] 'xlsx2yaml' is deprecated. Use 'export' instead."
handle_generic_options(options)
Iev::Exporter.new(
file,
output_dir: options[:output],
only_concepts: options[:only_concepts],
only_languages: options[:only_languages],
).export
summary
end
|