Sha256: cfae76b3f5bfbe6b5c3c0435f46bb157d498497f18c1b1544d420ab2d5744cbb
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
require "multi_json" module Rulers module Model class FileModel def initialize(filename) @filename = filename # If filename is "dir/37.json", @id is 37 basename = File.split(filename)[-1] @id = File.basename(basename, ".json").to_i obj = File.read(filename) @hash = MultiJson.decode(obj) end def [](name) @hash[name.to_s] end def []=(name, value) @hash[name.to_s] = value end def self.find(id) begin FileModel.new("db/quotes/#{id}.json") rescue return nil end end def self.all files = Dir["db/quotes/*.json"] files.map { |f| FileModel.new f } end def self.create(attrs) hash = {} hash["submitter"] = attrs["submitter"] || "" hash["quote"] = attrs["quote"] || "" hash["attribution"] = attrs["attribution"] || "" files = Dir["db/quotes/*.json"] names = files.map { |f| f.split("/")[-1] } highest = names.map { |b| b[0...-5].to_i }.max id = highest + 1 File.open("db/quotes/#{id}.json", "w") do |f| f.write <<TEMPLATE { "submitter": "#{hash["submitter"]}", "quote": "#{hash["quote"]}", "attribution": "#{hash["attribution"]}" } TEMPLATE end FileModel.new "db/quotes/#{id}.json" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rulers_seanfred-0.0.2 | lib/rulers/file_model.rb |