class MeowDBUtils

Public Class Methods

new(file) click to toggle source
# File src/meowdb/utils.rb, line 4
def initialize(file)
  @file = file
end

Public Instance Methods

get(id) click to toggle source
# File src/meowdb/utils.rb, line 41
def get(id)
  all_data = self.get_all()
  info = ""
  properties = id.split(".")
  properties.each do |property|
    info += "[\"#{property}\"]"
    if (properties.index(property) != (properties.length - 1))
      eval("all_data#{info} = {}") if (!eval("all_data#{info}"))
    end
  end
  return eval("all_data#{info}")
end
get_all() click to toggle source
# File src/meowdb/utils.rb, line 37
def get_all()
  return JSON.parse(File.read(@file))
end
set(id, data, create = false) click to toggle source
# File src/meowdb/utils.rb, line 54
def set(id, data, create = false)
  all_data = self.get_all()
  info = ""
  properties = id.split(".")
  properties.each do |property|
    info += "[\"#{property}\"]"
    if (properties.index(property) == (properties.length - 1))
      last = eval("all_data#{info}")
      eval("all_data#{info} = #{self.stringify_data(data)}") unless last && create
    else
      eval("all_data#{info} = {}") if (!eval("all_data#{info}"))
    end
  end

  File.write(@file, JSON.generate(all_data))
  return eval("all_data#{info}")
end
stringify_data(data) click to toggle source
# File src/meowdb/utils.rb, line 28
def stringify_data(data)
  return "\"#{data}\"" if data.is_a?(String)
  return "#{data}" if data.is_a?(Integer)
  return "#{JSON.generate(data)}" if data.is_a?(Hash)
  return "[#{data.map{|e| self.stringify_data(e)}.join(",")}]" if data.is_a?(Array)
  return "nil" if data.is_a?(NilClass)
  return "#{data.to_s()}"
end
valid_id?(id) click to toggle source
# File src/meowdb/utils.rb, line 8
def valid_id?(id)
  return false if !id.is_a?(String)
  return false if id.length < 1
  return false if (id =~ /^[a-zA-Z0-9.]+$/).nil?
  return false if id.split(".").include?("")
  return false if id.end_with?(".")
  return true
end
valid_value?(value) click to toggle source
# File src/meowdb/utils.rb, line 17
def valid_value?(value)
  return true if value.is_a?(String)
  return true if value.is_a?(Integer)
  return true if value.is_a?(Hash)
  return true if value.is_a?(Array)
  return true if value.is_a?(TrueClass)
  return true if value.is_a?(FalseClass)
  return true if value.is_a?(NilClass)
  return false
end