Class: Plist4r::PlistCache
- Defined in:
- lib/plist4r/plist_cache.rb
Instance Methods
Constructor Details
- (PlistCache) initialize(plist, *args, &blk)
A new instance of PlistCache
7 8 9 10 11 |
# File 'lib/plist4r/plist_cache.rb', line 7 def initialize plist, *args, &blk @checksum = {} @plist = plist @backend = Backend.new plist, *args, &blk end |
Instance Method Details
- (Object) from_string
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/plist4r/plist_cache.rb', line 13 def from_string if @from_string == @plist.from_string unless @from_string_plist_type == @plist.plist_type @from_string_plist_type = @plist.detect_plist_type end unless @from_string_file_format == @plist.file_format @plist.file_format @from_string_file_format end else @backend.call :from_string @from_string = @plist.from_string @from_string_file_format = @plist.file_format @plist.detect_plist_type unless @from_string_plist_type == @plist.plist_type @from_string_plist_type = @plist.plist_type end end @plist end |
- (Object) needs_update_for(fmt)
38 39 40 |
# File 'lib/plist4r/plist_cache.rb', line 38 def needs_update_for fmt @checksum[fmt] != @plist.to_hash.hash end |
- (Object) open
66 67 68 69 |
# File 'lib/plist4r/plist_cache.rb', line 66 def open @backend.call :open @plist end |
- (Object) save
71 72 73 74 |
# File 'lib/plist4r/plist_cache.rb', line 71 def save @backend.call :save @plist.filename_path end |
- (Object) to_binary
50 51 52 53 54 55 56 |
# File 'lib/plist4r/plist_cache.rb', line 50 def to_binary if needs_update_for(:binary) || @binary.nil? @binary = @backend.call :to_binary update_checksum_for(:binary) end @binary end |
- (Object) to_gnustep
58 59 60 61 62 63 64 |
# File 'lib/plist4r/plist_cache.rb', line 58 def to_gnustep if needs_update_for(:gnustep) || @gnustep.nil? @gnustep = @backend.call :to_gnustep update_checksum_for(:gnustep) end @gnustep end |
- (Object) to_xml
42 43 44 45 46 47 48 |
# File 'lib/plist4r/plist_cache.rb', line 42 def to_xml if needs_update_for(:xml) || @xml.nil? @xml = @backend.call :to_xml update_checksum_for(:xml) end @xml end |
- (Object) update_checksum_for(fmt)
34 35 36 |
# File 'lib/plist4r/plist_cache.rb', line 34 def update_checksum_for fmt @checksum[fmt] = @plist.to_hash.hash end |