Sha256: 4d33a0fd01b00aee5191454961227c508814347ff36b3df12c1d546d661f47fe
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
motion_require 'document.rb' motion_require 'sync.rb' class Yapper::Attachment include Yapper::Document include Yapper::Sync sync class_attribute :attachments self.attachments = {}.with_indifferent_access field :name field :uid field :additional_fields def self.create(name, fields={}) name = name.pluralize raise "#{name} attachment not a defined" unless attachments[name] fields.keys.each do |field| raise "Attachment field #{field} not defined for #{name}" unless attachments[name][:with].include?(field) end attachment = self.new attachment.name = name attachment.additional_fields = fields attachment.save attachment end def self.url(uid, size=nil) options = "[[\"f\",\"#{uid}\"]" options << ",[\"p\",\"thumb\", \"#{size}\"]" if size options << "]" path = [options].pack("m").tr("\n=",'') NSURL.URLWithString("#{Yapper::Sync.base_url}/#{path}.jpg") end def data self.attachments[name][:block].call(self) end def metadata self.additional_fields.merge(:id => self.id, :name => self.name).with_indifferent_access end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
motion-yapper-0.0.1 | lib/yapper/attachment.rb |