Class: GrowiModelFactory Abstract

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/growi/client/model/growi_model.rb

Overview

This class is abstract.

include singleton class

Growi model factory class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGrowiModelFactory

Constractor



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/growi/client/model/growi_model.rb', line 17

def initialize
  @makers = {}
  @makers.default = Proc.new { |param|
    next nil if param == nil
    case param
    when Array, String, Integer then
      ret = param
    when FalseClass then
      ret = false
    when TrueClass then
      ret = true
    end
    next ret
  }
end

Instance Attribute Details

#makersObject (readonly)

Model maker list

Returns:

  • (Object)

    the current value of makers



12
13
14
# File 'lib/growi/client/model/growi_model.rb', line 12

def makers
  @makers
end

Instance Method Details

#maker(model_name) ⇒ Proc

Get model maker

Parameters:

  • model_name (String)

    Model name

Returns:

  • (Proc)

    Model maker



47
48
49
# File 'lib/growi/client/model/growi_model.rb', line 47

def maker(model_name)
  return @makers[model_name&.to_sym]
end

#register(makers = {}) ⇒ Object

Register model maker

Parameters:

  • Model (Hash)

    factory list



35
36
37
38
39
40
41
42
# File 'lib/growi/client/model/growi_model.rb', line 35

def register(makers = {})
  makers.each do |model_name, model_make_proc|
    unless model_make_proc.is_a?(Proc)
      raise ArgumentError.new('Maker is required sub class of Class.')
    end
  end
  @makers.merge!(makers)
end