module ActiveJson::Base
Public Instance Methods
[](index)
click to toggle source
# File lib/active_json/base.rb, line 16 def [](index) database.dig(index) end
configure() { |config| ... }
click to toggle source
# File lib/active_json/base.rb, line 3 def configure @config ||= OpenStruct.new(path: nil, readonly: false) yield(@config) end
inspect()
click to toggle source
# File lib/active_json/base.rb, line 38 def inspect database.to_h end
method_missing(method_name, *args, &block)
click to toggle source
# File lib/active_json/base.rb, line 8 def method_missing(method_name, *args, &block) database.public_send(method_name, *args, &block) end
reload()
click to toggle source
# File lib/active_json/base.rb, line 20 def reload @database = nil database end
respond_to_missing?(method_name, *)
click to toggle source
# File lib/active_json/base.rb, line 12 def respond_to_missing?(method_name, *) database.respond_to?(method_name) end
save()
click to toggle source
# File lib/active_json/base.rb, line 26 def save raise ActiveJson::ReadOnlyDatabase if @config[:readonly] result = JSON.pretty_generate(database.to_h) File.open(@config[:path], 'w') do |file| file.write(result) end true end
Private Instance Methods
database()
click to toggle source
# File lib/active_json/base.rb, line 44 def database @database ||= JSON.parse( File.read(@config[:path]), object_class: ActiveJson::Hash, array_class: ActiveJson::Array ) end