Module: Helpers::Properties

Included in:
DAV4Rack::Carddav::Resource
Defined in:
lib/dav4rack_ext/helpers/properties.rb

Defined Under Namespace

Modules: MetaClassMethods Classes: MethodMissingRedirector

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(klass) ⇒ Object



16
17
18
19
20
# File 'lib/dav4rack_ext/helpers/properties.rb', line 16

def self.extended(klass)
  class << klass
    include MetaClassMethods
  end
end

Instance Method Details

#define_properties(namespace, &block) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/dav4rack_ext/helpers/properties.rb', line 38

def define_properties(namespace, &block)
  explicit = false
  obj = MethodMissingRedirector.new(:property, :explicit) do |method_name, name, &block|
    if method_name == :property
      define_property(namespace, name.to_s, explicit, &block)
    elsif method_name == :explicit
      explicit = true
      block.call
    else
      raise NoMethodError, method_name
    end
  end

  obj.instance_eval(&block)
end