Module: Slither
- Defined in:
- lib/slither.rb,
lib/slither/column.rb,
lib/slither/parser.rb,
lib/slither/section.rb,
lib/slither/version.rb,
lib/slither/generator.rb,
lib/slither/definition.rb more...
Defined Under Namespace
Classes: Column, ColumnMismatchError, Definition, DuplicateColumnNameError, Error, FormattedStringExceedsLengthError, Generator, LineWrongSizeError, Parser, ParserError, RequiredSectionEmptyError, RequiredSectionNotFoundError, Section, SectionsNotSameLengthError
Constant Summary collapse
- VERSION =
"0.99.6"
Class Method Summary collapse
-
.define(name, options = {}) {|definition| ... } ⇒ Object
Define a Slither’s definition to parse a file.
-
.generate(definition_name, data) ⇒ Object
Generate a File from Data.
- .parse(filename, definition_name) ⇒ Object
- .parseIo(io, definition_name) ⇒ Object
-
.write(filename, definition_name, data) ⇒ Object
Writes the File.
Class Method Details
permalink .define(name, options = {}) {|definition| ... } ⇒ Object
Define a Slither’s definition to parse a file.
name - String name of the definition, this should be unique. options - Hash of options to pass to the definition.
Ex: by_bytes: true, to parse by bytes
Ex: align: :left, to align the columns to the left
block - Block to define the sections of the definition. See README.md for more info.
27 28 29 30 31 32 |
# File 'lib/slither.rb', line 27 def self.define(name, = {}, &block) definition = Definition.new() yield(definition) definitions[name] = definition definition end |
permalink .generate(definition_name, data) ⇒ Object
Generate a File from Data.
35 36 37 38 39 40 41 |
# File 'lib/slither.rb', line 35 def self.generate(definition_name, data) definition = definition(definition_name) raise ArgumentError, "Definition name '#{name}' was not found." unless definition generator = Generator.new(definition) generator.generate(data) end |
permalink .parse(filename, definition_name) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/slither.rb', line 50 def self.parse(filename, definition_name) raise ArgumentError, "File #{filename} does not exist." unless File.exist?(filename) file_io = File.open(filename, 'r') parseIo(file_io, definition_name) end |
permalink .parseIo(io, definition_name) ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/slither.rb', line 57 def self.parseIo(io, definition_name) definition = definition(definition_name) raise ArgumentError, "Definition name '#{definition_name}' was not found." unless definition parser = Parser.new(definition, io) definition.[:by_bytes] ? parser.parse_by_bytes : parser.parse end |
permalink .write(filename, definition_name, data) ⇒ Object
Writes the File
44 45 46 47 48 |
# File 'lib/slither.rb', line 44 def self.write(filename, definition_name, data) File.open(filename, "w") do |f| f.write generate(definition_name, data) end end |