Sha256: 5f7c4955a0c823d5aa1df08165d642e0024ecfbf0826e440ff8afbb157eaf5b3
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
require 'evernote-thrift' class NoteMeta [:updated, :created, :title, :notebookGuid, :guid, :contentLength, :tagGuids].each do |method| define_method method do iv_name = "@#{method}" value = instance_variable_get iv_name unless value value = instance_variable_get("@meta").send method instance_variable_set iv_name, value end value end end def initialize meta, note_store @meta = meta @store = note_store end def tags @tags ||= (tagGuids ? tagGuids.map{|id| @store.tag_name id} : []) end def book @book ||= @store.book_name notebookGuid end def stack @stack = (instance_variable_defined? :@stack) ? @stack : @store.stack_name(notebookGuid) end def to_h @h = attr_methods.each_with_object({}) do |method, hash| hash[method] = send method end end def marshal_dump to_h end def marshal_load hash hash.each do |key, value| instance_variable_set "@#{key}", value end end private def attr_methods self.class.instance_methods(false) - [:to_h, :marshal_dump, :marshal_load] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
yinx-0.1.0 | lib/yinx/note_meta.rb |