Module: ActiveForm::Model
- Defined in:
- lib/rails/model/loader.rb
Defined Under Namespace
Classes: AutoDefinition, Definition
Class Method Summary
collapse
Class Method Details
.build(*args, &block) ⇒ Object
64
65
66
67
68
69
70
|
# File 'lib/rails/model/loader.rb', line 64
def self.build(*args, &block)
instance = args.shift
return nil unless instance.kind_of?(ActiveRecord::Base)
definition_name = "#{instance.class.name.underscore}"
args.unshift("#{definition_name}_form") if args.empty? || args.first.kind_of?(Hash)
AutoDefinition.new.build(definition_name, instance, *args, &block)
end
|
.build!(*args, &block) ⇒ Object
72
73
74
75
76
|
# File 'lib/rails/model/loader.rb', line 72
def self.build!(*args, &block)
form = build(*args, &block)
form.submit_element
form
end
|
.load(*args, &block) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/rails/model/loader.rb', line 35
def self.load(*args, &block)
custom_type = args.first.kind_of?(Symbol) ? args.shift : nil
instance = args.shift
definition_name = "#{instance.class.name.underscore}"
definitions = case instance
when ActiveRecord::Base then
if instance.new_record?
["create_#{definition_name}", definition_name]
else
["update_#{definition_name}", definition_name]
end
else
return nil
end
args.unshift("#{definition_name}_form") if args.empty? || args.first.kind_of?(Hash)
definitions.unshift("#{custom_type}_#{definition_name}") unless custom_type.nil?
if name = definitions.detect { |name| ActiveForm::get(name) }
Definition.new.build(name, instance, *args, &block)
else
AutoDefinition.new.build(definition_name, instance, *args, &block)
end
end
|
.load!(*args, &block) ⇒ Object
58
59
60
61
62
|
# File 'lib/rails/model/loader.rb', line 58
def self.load!(*args, &block)
form = load(*args, &block)
form.submit_element
form
end
|