Sha256: d2a304236a49a103071025957d7feeff28b5dc922093710d15292b4b57caaf8d
Contents?: true
Size: 1.21 KB
Versions: 2
Compression:
Stored size: 1.21 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 created_at Time.at created / 1000 end def updated_at Time.at updated / 1000 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
yinx-0.1.2 | lib/yinx/note_meta.rb |
yinx-0.1.1 | lib/yinx/note_meta.rb |