class Tads6Patrick::ORM
Public Class Methods
atualizar(obj)
click to toggle source
# File lib/tads6_patrick/orm.rb, line 36 def self.atualizar(obj) FileUtils.rm "#{path}/#{obj.id}.yml" File.open("#{path}/#{obj.id}.yml", "a") do |arquivo| arquivo.puts YAML.dump obj return obj.id end end
criar(*atributos)
click to toggle source
# File lib/tads6_patrick/orm.rb, line 3 def self.criar(*atributos) FileUtils.mkdir_p "#{path}"#caso o caminho especificado no path nao exista, este é criado id = proximo_id File.open("#{path}/#{id}.yml", "a") do |arquivo| obj = self.new atributos obj.id = id arquivo.puts YAML.dump obj return id end end
listar()
click to toggle source
# File lib/tads6_patrick/orm.rb, line 14 def self.listar @objs = [] $/ = '\n\n' (1..ultimo_id).each do |id| _path = "#{path}/#{id}.yml" if File.exist?(_path) File.open(_path, "r").each do |obj| @objs << YAML.load(obj) end end end @objs end
remove(id)
click to toggle source
# File lib/tads6_patrick/orm.rb, line 44 def self.remove(id) FileUtils.rm "#{path}/#{id}.yml" return id end
selecionar(id)
click to toggle source
# File lib/tads6_patrick/orm.rb, line 30 def self.selecionar(id) listar.each do |obj| return obj if obj.id == id end end
Private Class Methods
path()
click to toggle source
# File lib/tads6_patrick/orm.rb, line 62 def self.path "db/#{self.to_s.downcase}" end
proximo_id()
click to toggle source
# File lib/tads6_patrick/orm.rb, line 66 def self.proximo_id ultimo_id.to_i + 1 end
quantidade_registros()
click to toggle source
# File lib/tads6_patrick/orm.rb, line 51 def self.quantidade_registros Dir.glob("#{path}/*.yml").size + 1 end
ultimo_id()
click to toggle source
# File lib/tads6_patrick/orm.rb, line 55 def self.ultimo_id files = Dir.entries("#{path}").sort_by do |file| File.ctime("#{path}/#{file}") end File.basename("#{path}/#{files.last}", ".yml").to_i end