Sha256: a5cb5742a73888be7a8884892109b4ba86b72744a54565a04975bb9298b03d02

Contents?: true

Size: 535 Bytes

Versions: 3

Compression:

Stored size: 535 Bytes

Contents

#
# Mongoid fields extension
#
# field :foo, :delegate => {opts
#
Mongoid::Fields.option :delegate do |model, field, options|
  options = {} unless options.kind_of?(Hash)
  x_meth = options[:x] || :x
  y_meth = options[:y] || :y

  model.instance_eval do

    define_method x_meth do self[field.name][0]; end
    define_method y_meth do self[field.name][1]; end

    define_method "#{x_meth}=" do |arg|
      self[field.name][0] = arg
    end

    define_method "#{y_meth}=" do |arg|
      self[field.name][1] = arg
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mongoid_geospatial-3.1.0 lib/mongoid_geospatial/helpers/delegate.rb
mongoid_geospatial-3.0.0 lib/mongoid_geospatial/helpers/delegate.rb
mongoid_geospatial-2.8.3 lib/mongoid_geospatial/helpers/delegate.rb