Module: Ars::Familiar::Scribe
- Defined in:
- lib/ars/familiar/scribe.rb
Defined Under Namespace
Modules: Scribable
Classes: Entry
Class Method Summary
collapse
Class Method Details
.commit ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# 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) ⇒ Object
80
81
82
|
# File 'lib/ars/familiar/scribe.rb', line 80
def self.included(subclass)
subclass.extend Scribable
end
|
.read_for(model) ⇒ Object
67
68
69
70
71
72
73
74
75
76
77
78
|
# 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) ⇒ Object
44
45
46
47
48
49
50
51
|
# File 'lib/ars/familiar/scribe.rb', line 44
def self.register(class_name = nil)
return @register 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
|