Sha256: 40a02247b4ad14198c16a0f85fa700a4351cbf5aad828e126e01a7963964a1ea

Contents?: true

Size: 820 Bytes

Versions: 6

Compression:

Stored size: 820 Bytes

Contents

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

MarkMapper.application.create

# 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

  def foo
    'Foo instance method!'
  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 MarkMapper::Document
  plugin FooPlugin
end

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

MarkMapper.application.drop

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mark_mapper-0.0.6 examples/plugins.rb
mark_mapper-0.0.5 examples/plugins.rb
mark_mapper-0.0.4 examples/plugins.rb
mark_mapper-0.0.3 examples/plugins.rb
mark_mapper-0.0.2 examples/plugins.rb
mark_mapper-0.0.1 examples/plugins.rb