Class: Jquard::Schemas::Schema
- Inherits:
-
Object
- Object
- Jquard::Schemas::Schema
- Defined in:
- lib/jquard/schemas/schema.rb
Instance Method Summary collapse
- #apply_default_fields(model) ⇒ Object
- #apply_defaults(record) ⇒ Object
- #components(list = nil) ⇒ Object
- #field_names ⇒ Object
- #fields ⇒ Object
Instance Method Details
#apply_default_fields(model) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/jquard/schemas/schema.rb', line 28 def apply_default_fields(model) return self if components.any? skipped = [ model.primary_key, "created_at", "updated_at" ] components(model.columns.reject { |column| skipped.include?(column.name) }.map { |column| default_field_for(model, column) }) end |
#apply_defaults(record) ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/jquard/schemas/schema.rb', line 19 def apply_defaults(record) fields.each do |field| next if field.default.nil? || !record[field.name].nil? record[field.name] = field.default end record end |
#components(list = nil) ⇒ Object
4 5 6 7 8 9 |
# File 'lib/jquard/schemas/schema.rb', line 4 def components(list = nil) return @components ||= [] if list.nil? @components = list self end |
#field_names ⇒ Object
15 16 17 |
# File 'lib/jquard/schemas/schema.rb', line 15 def field_names fields.map(&:name) end |
#fields ⇒ Object
11 12 13 |
# File 'lib/jquard/schemas/schema.rb', line 11 def fields collect_fields(components) end |