Module: Yamlr::Reader
- Defined in:
- lib/yamlr/reader.rb,
lib/yamlr/reader/node.rb,
lib/yamlr/reader/format.rb,
lib/yamlr/reader/parser.rb,
lib/yamlr/reader/builder.rb
Defined Under Namespace
Modules: Builder, Format, Node, Parser Classes: EmptyFileError, EmptyInputError, InvalidInputError
Class Method Summary collapse
-
.read(input, options) ⇒ Object
parses file or string into Ruby Array, or Hash.
Class Method Details
.read(input, options) ⇒ Object
parses file or string into Ruby Array, or Hash
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/yamlr/reader.rb', line 14 def self.read(input, ) raise Yamlr::Reader::EmptyInputError if input.is_a?(String) && input.strip.empty? raise Yamlr::Reader::InvalidInputError unless input.is_a?(String) or input.is_a?(File) input = File.exists?(input) ? IO.readlines(input) : input.split("\n") raise Yamlr::Reader::EmptyFileError if input.empty? hash = {} lineno = 0 input.each {|line| parsed_hash = Yamlr::Reader::Parser.parse(line, , (lineno += 1)) formatted_hash = Yamlr::Reader::Format.format(parsed_hash) Yamlr::Reader::Builder.build(hash, formatted_hash) } hash.delete(:adr) case when [:list] then hash when ![:list] then hash.delete(:lst) && (hash.length == 1) ? hash[1] : hash end end |