Sha256: 5f547037c531e54fc02147ad58c1955ac67d45608a0966c7bcad64129ff87973

Contents?: true

Size: 588 Bytes

Versions: 19

Compression:

Stored size: 588 Bytes

Contents

module Zendesk2::Attributes
  def assoc_reader(name, options={})
    assoc_key  = options[:key] || "#{name}_id"
    collection = options[:collection] || "#{name}s"
    define_method(name) do
      self.connection.send(collection).get(self.send(assoc_key))
    end
  end

  def assoc_writer(name, options={})
    assoc_key = options[:key] || "#{name}_id"
    define_method("#{name}=") do |assoc|
      self.send("#{assoc_key}=", assoc.id)
    end
  end

  def assoc_accessor(name, options={})
    assoc_reader(name, options)
    assoc_writer(name, options)
  end

  # TODO: collection
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
zendesk2-0.2.5 lib/zendesk2/attributes.rb
zendesk2-0.2.4 lib/zendesk2/attributes.rb
zendesk2-0.2.3 lib/zendesk2/attributes.rb
zendesk2-0.2.2 lib/zendesk2/attributes.rb
zendesk2-0.2.1 lib/zendesk2/attributes.rb
zendesk2-0.2.0 lib/zendesk2/attributes.rb
zendesk2-0.1.3 lib/zendesk2/attributes.rb
zendesk2-0.1.2 lib/zendesk2/attributes.rb
zendesk2-0.1.1 lib/zendesk2/attributes.rb
zendesk2-0.1.0 lib/zendesk2/attributes.rb
zendesk2-0.0.23 lib/zendesk2/attributes.rb
zendesk2-0.0.22 lib/zendesk2/attributes.rb
zendesk2-0.0.20 lib/zendesk2/attributes.rb
zendesk2-0.0.19 lib/zendesk2/attributes.rb
zendesk2-0.0.18 lib/zendesk2/attributes.rb
zendesk2-0.0.17 lib/zendesk2/attributes.rb
zendesk2-0.0.16 lib/zendesk2/attributes.rb
zendesk2-0.0.15 lib/zendesk2/attributes.rb
zendesk2-0.0.14 lib/zendesk2/attributes.rb