Class: Creators::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/creators/creator.rb

Defined Under Namespace

Classes: ErrorInParams

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw_params = {}, model = nil) ⇒ Base

Returns a new instance of Base.



40
41
42
43
44
# File 'lib/creators/creator.rb', line 40

def initialize(raw_params = {}, model = nil)
  @params = raw_params
  @model  = model
  @errors = {}
end

Class Method Details

.inherited(child_class) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/creators/creator.rb', line 27

def self.inherited(child_class)
  child_class.class_eval do
    class_name = child_class.to_s.gsub('Creator', '')
    define_method :klass do
      class_name.constantize
    end

    define_method class_name.underscore do
      model
    end
  end
end

Instance Method Details

#error(field, text) ⇒ Object

Raises:



67
68
69
70
# File 'lib/creators/creator.rb', line 67

def error(field, text)
  @errors[field] = text
  raise ErrorInParams.new("#{field}: #{text}")
end

#errorsObject



61
62
63
64
65
# File 'lib/creators/creator.rb', line 61

def errors
  e = @errors
  return e.merge(@model.errors()) if @model.present? and @model.errors().present?
  e
end

#modelObject



57
58
59
# File 'lib/creators/creator.rb', line 57

def model
  @model
end

#saveObject



46
47
48
49
50
51
52
53
54
55
# File 'lib/creators/creator.rb', line 46

def save
  build
  before_save
  return false unless @model.save
  after_save
  true
rescue ErrorInParams => e
  Log.error(e)
  false
end