Module: Slick::Registry

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



4
5
6
# File 'lib/slick/registry.rb', line 4

def name
  @name
end

Instance Method Details

#create(name, *args, &block) ⇒ Object



35
36
37
# File 'lib/slick/registry.rb', line 35

def create(name, *args, &block)
    self.for(name).new(*args, &block)
end

#for(name, options = {}) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/slick/registry.rb', line 22

def for(name, options = {})
    name = name.to_s
    registered_classes[name] || begin
        klass = Class.new(self)
        if options.paramify.register_if_not_exists == 'true'
            klass.register(name, options)
        else
            klass.instance_eval{ @name = name }
        end
        klass
    end
end

#register(name, *args, &block) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/slick/registry.rb', line 14

def register(name, *args, &block)
    raise "Class has already been registered" if registered?
    name = name.to_s
    instance_eval{ @name = name }
    registered_classes[name] = self
    self
end

#registered?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/slick/registry.rb', line 6

def registered?
    registered_classes.values.include? self
end

#registered_classesObject



10
11
12
# File 'lib/slick/registry.rb', line 10

def registered_classes
    @registered_classes ||= superclass.respond_to?(:registered_classes) ? superclass.registered_classes : {}
end