Class: Jquard::Schemas::Schema

Inherits:
Object
  • Object
show all
Defined in:
lib/jquard/schemas/schema.rb

Instance Method Summary collapse

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_namesObject



15
16
17
# File 'lib/jquard/schemas/schema.rb', line 15

def field_names
  fields.map(&:name)
end

#fieldsObject



11
12
13
# File 'lib/jquard/schemas/schema.rb', line 11

def fields
  collect_fields(components)
end