Sha256: a2217ea748bed0929d746fd48ab02b9ec8f6561d0229acecf793e027a7d505c3

Contents?: true

Size: 881 Bytes

Versions: 5

Compression:

Stored size: 881 Bytes

Contents

$LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
require 'mongo_mapper'
require 'pp'

MongoMapper.database = 'testing'

# To create your own plugin, just create a module that
# extends ActiveSupport::Concern.
module FooPlugin
  extend ActiveSupport::Concern

  # ClassMethods module will automatically get extended
  module ClassMethods
    def foo
      'Foo class method!'
    end
  end

  # InstanceMethods module will automatically get included
  module InstanceMethods
    def foo
      'Foo instance method!'
    end
  end

  # Any configuration can be done in the #included block, which gets
  # class evaled. Feel free to add keys, validations, or anything else.
  included do
    puts "Configuring #{self}..."
    key :foo, String
  end
end

class User
  include MongoMapper::Document
  plugin FooPlugin
end

puts User.foo
puts User.new.foo
puts User.key?(:foo)

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mongo_mapper-0.10.1 examples/plugins.rb
mongo_mapper-0.10.0 examples/plugins.rb
mongo_mapper-0.9.2 examples/plugins.rb
mongo_mapper-0.9.1 examples/plugins.rb
mongo_mapper-0.9.0 examples/plugins.rb