Class: Relaton::Cli::Command

Inherits:
Thor
  • Object
show all
Includes:
Relaton::Cli
Defined in:
lib/relaton/cli/command.rb

Constant Summary

Constants included from Relaton::Cli

VERSION

Instance Method Summary collapse

Methods included from Relaton::Cli

parse_xml, processor, registry, relaton, start, version

Instance Method Details

#concatenate(source_dir, outfile) ⇒ Object



64
65
66
# File 'lib/relaton/cli/command.rb', line 64

def concatenate(source_dir, outfile)
  Relaton::Cli::RelatonFile.concatenate(source_dir, outfile, options)
end

#convert(file) ⇒ Object

rubocop:disable Metrics/AbcSize,Metrics/MethodLength



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/relaton/cli/command.rb', line 140

def convert(file) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
  xml = Nokogiri::XML(File.read(file, encoding: "UTF-8"))
  item = Relaton::Cli.parse_xml xml
  result = if /yaml|yml/.match?(options[:format])
             item.to_yaml
           else item.send "to_#{options[:format]}"
           end
  ext = case options[:format]
        when "bibtex" then "bib"
        when "asciibib" then "adoc"
        else options[:format]
        end
  output = options[:output] || file.sub(/(?<=\.)[^.]+$/, ext)
  File.write output, result, encoding: "UTF-8"
end

#extract(source_dir, outdir) ⇒ Object



53
54
55
# File 'lib/relaton/cli/command.rb', line 53

def extract(source_dir, outdir)
  Relaton::Cli::RelatonFile.extract(source_dir, outdir, options)
end

#fetch(code) ⇒ Object



43
44
45
46
# File 'lib/relaton/cli/command.rb', line 43

def fetch(code)
  io = IO.new($stdout.fcntl(::Fcntl::F_DUPFD), mode: "w:UTF-8")
  io.puts(fetch_document(code, options) || supported_type_message)
end

#fetch_data(source) ⇒ Object



160
161
162
# File 'lib/relaton/cli/command.rb', line 160

def fetch_data(source)
  DataFetcher.fetch source, options
end

#split(source, outdir) ⇒ Object



73
74
75
# File 'lib/relaton/cli/command.rb', line 73

def split(source, outdir)
  Relaton::Cli::RelatonFile.split(source, outdir, options)
end

#version ⇒ Object



20
21
22
# File 'lib/relaton/cli/command.rb', line 20

def version
  Relaton::Cli.version
end

#xml2html(file, style = nil, template = nil) ⇒ Object



119
120
121
# File 'lib/relaton/cli/command.rb', line 119

def xml2html(file, style = nil, template = nil)
  Relaton::Cli::XMLConvertor.to_html(file, style, template)
end

#xml2yaml(filename) ⇒ Object



107
108
109
# File 'lib/relaton/cli/command.rb', line 107

def xml2yaml(filename)
  Relaton::Cli::XMLConvertor.to_yaml(filename, options)
end

#yaml2html(file, style = nil, template = nil) ⇒ Object



132
133
134
# File 'lib/relaton/cli/command.rb', line 132

def yaml2html(file, style = nil, template = nil)
  Relaton::Cli::YAMLConvertor.to_html(file, style, template)
end

#yaml2xml(filename) ⇒ Object



90
91
92
# File 'lib/relaton/cli/command.rb', line 90

def yaml2xml(filename)
  Relaton::Cli::YAMLConvertor.to_xml(filename, options)
end