Class: Nydp::ImageStore
Instance Attribute Summary collapse
-
#store(id, image) ⇒ Object
Returns the value of attribute store.
Instance Method Summary collapse
- #digest ⇒ Object
- #file_name(id) ⇒ Object
- #generate(id) ⇒ Object
- #get ⇒ Object
-
#initialize(store = nil) ⇒ ImageStore
constructor
A new instance of ImageStore.
- #load(id) ⇒ Object
- #load?(fname) ⇒ Boolean
- #resurrect(id) ⇒ Object
Constructor Details
#initialize(store = nil) ⇒ ImageStore
Returns a new instance of ImageStore.
7 8 9 10 |
# File 'lib/nydp/image_store.rb', line 7 def initialize store=nil @store = store FileUtils.mkdir_p(store, mode: 0775) if store end |
Instance Attribute Details
#store(id, image) ⇒ Object
Returns the value of attribute store.
5 6 7 |
# File 'lib/nydp/image_store.rb', line 5 def store @store end |
Instance Method Details
#digest ⇒ Object
12 |
# File 'lib/nydp/image_store.rb', line 12 def digest ; Digest::MD5.hexdigest(Nydp.all_files.map { |f| File.read f }.join) ; end |
#file_name(id) ⇒ Object
13 |
# File 'lib/nydp/image_store.rb', line 13 def file_name id ; File.join @store, "#{id}.nydp_image" ; end |
#generate(id) ⇒ Object
17 |
# File 'lib/nydp/image_store.rb', line 17 def generate id ; Marshal.dump(::Nydp.build_nydp).tap { |im| store id, im } ; end |
#get ⇒ Object
19 |
# File 'lib/nydp/image_store.rb', line 19 def get ; Marshal.load(@image ||= resurrect(digest)) ; end |
#load(id) ⇒ Object
15 |
# File 'lib/nydp/image_store.rb', line 15 def load id ; load?(file_name id) if @store ; end |
#load?(fname) ⇒ Boolean
14 |
# File 'lib/nydp/image_store.rb', line 14 def load? fname ; File.binread(fname) if File.exists?(fname) ; end |
#resurrect(id) ⇒ Object
18 |
# File 'lib/nydp/image_store.rb', line 18 def resurrect id ; load(id) || generate(id) ; end |