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
Defined Under Namespace
Classes: Column, ColumnMismatchError, Definition, DuplicateColumnNameError, Error, FormattedStringExceedsLengthError, Generator, LineWrongSizeError, Parser, ParserError, RequiredSectionEmptyError, RequiredSectionNotFoundError, Section, SectionsNotSameLengthError
Constant Summary collapse
- VERSION =
"0.99.7"
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
rubocop:disable Naming/MethodName.
-
.write(filename, definition_name, data) ⇒ Object
Writes the File.
Class Method Details
.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.
39 40 41 42 43 44 |
# File 'lib/slither.rb', line 39 def self.define(name, = {}, &block) # rubocop:disable Lint/UnusedMethodArgument definition = Definition.new() yield(definition) definitions[name] = definition definition end |
.generate(definition_name, data) ⇒ Object
Generate a File from Data.
47 48 49 50 51 52 53 |
# File 'lib/slither.rb', line 47 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 |
.parse(filename, definition_name) ⇒ Object
60 61 62 63 64 65 |
# File 'lib/slither.rb', line 60 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 |
.parseIo(io, definition_name) ⇒ Object
rubocop:disable Naming/MethodName
67 68 69 70 71 72 73 |
# File 'lib/slither.rb', line 67 def self.parseIo(io, definition_name) # rubocop:disable Naming/MethodName 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 |
.write(filename, definition_name, data) ⇒ Object
Writes the File
56 57 58 |
# File 'lib/slither.rb', line 56 def self.write(filename, definition_name, data) File.write(filename, generate(definition_name, data)) end |