Class: Factbase::ToJSON

Inherits:
Object
  • Object
show all
Defined in:
lib/factbase/to_json.rb

Overview

Factbase to JSON converter.

This class helps converting an entire Factbase to YAML format, for example:

require 'factbase/to_json'
fb = Factbase.new
puts Factbase::ToJSON.new(fb).json
Author

Yegor Bugayenko ([email protected])

Copyright

Copyright © 2024 Yegor Bugayenko

License

MIT

Instance Method Summary collapse

Constructor Details

#initialize(fb, sorter = '_id') ⇒ ToJSON

Constructor.



39
40
41
42
# File 'lib/factbase/to_json.rb', line 39

def initialize(fb, sorter = '_id')
  @fb = fb
  @sorter = sorter
end

Instance Method Details

#jsonString

Convert the entire factbase into JSON.

Returns:

  • (String)

    The factbase in JSON format



46
47
48
49
# File 'lib/factbase/to_json.rb', line 46

def json
  maps = Marshal.load(@fb.export)
  maps.sort_by { |m| m[@sorter] }.map { |m| m.sort.to_h }.to_json
end