module Ars::Familiar::Scribe
Public Class Methods
commit()
click to toggle source
# File lib/ars/familiar/scribe.rb, line 53 def self.commit register.each do |entry| dump = Marshal.dump(entry.to_class.scribe) filename = File.join(Ars::Medium.configuration.root, 'lib/portable_models', model.to_filename) dirname = File.dirname filename FileUtils.mkdir_p dirname File.open(filename, 'w') do |file| file << dump end end end
included(subclass)
click to toggle source
# File lib/ars/familiar/scribe.rb, line 80 def self.included(subclass) subclass.extend Scribable end
read_for(model)
click to toggle source
# File lib/ars/familiar/scribe.rb, line 67 def self.read_for(model) model = Entry.new(model.class.name) filename = File.join(Ars::Medium.configuration.root, 'lib/portable_models', model.to_filename) dirname = File.dirname filename FileUtils.mkdir_p dirname if File.exist? filename File.open(filename, 'r') do |file| model.scribe Marshal.load(file) end end end
register(class_name = nil)
click to toggle source
# File lib/ars/familiar/scribe.rb, line 44 def self.register(class_name = nil) return @register # bypass return @register unless class_name return @register if @register.member?(class_name) return @register unless class_name.builder.respond_to? :scribe @register << Entry.new(class_name) @register end