Class: Xxx2json::Core
- Inherits:
-
Object
- Object
- Xxx2json::Core
- Defined in:
- lib/xxx2json/core.rb
Instance Method Summary collapse
- #convert_csv(buffer, col_sep, headers) ⇒ Object
- #convert_regexp(buffer, format) ⇒ Object
- #convert_rss(buffer) ⇒ Object
-
#initialize ⇒ Core
constructor
A new instance of Core.
Constructor Details
#initialize ⇒ Core
Returns a new instance of Core.
11 12 |
# File 'lib/xxx2json/core.rb', line 11 def initialize end |
Instance Method Details
#convert_csv(buffer, col_sep, headers) ⇒ Object
14 15 16 17 18 |
# File 'lib/xxx2json/core.rb', line 14 def convert_csv(buffer, col_sep, headers) CSV.parse(buffer, col_sep: col_sep, headers: headers.nil?).map do |row| headers.nil? ? row.to_hash : Hash[*headers.zip(row).flatten] end end |
#convert_regexp(buffer, format) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/xxx2json/core.rb', line 20 def convert_regexp(buffer, format) format = format.gsub(/^\/(.+)\/$/, '\1') parser = Fluent::TextParser::RegexpParser.new(Regexp.new(format)) results = [] begin buffer.lines.each_with_index do |line, i| line = line.strip time, parsed = parser.call(line) if parsed.nil? STDERR.puts "format error! line #{i + 1} [#{line}]" end results << parsed unless parsed.nil? end rescue ArgumentError, RegexpError => e STDERR.puts "\n#{e.}\n#{e.backtrace.join("\n")}" parsed_time = parsed = nil end results end |
#convert_rss(buffer) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/xxx2json/core.rb', line 40 def convert_rss(buffer) rss = Crack::XML.parse(buffer) if rss.key?('rss') display = rss['rss']['channel']['item'] elsif rss.key?('rdf:RDF') display = rss['rdf:RDF']['item'] elsif rss.key?('root') display = rss['root']['articles']['article'] elsif rss.key?('feed') display = rss['feed']['entry'] end display end |