Module: JSONdb::Fields

Included in:
Table
Defined in:
lib/jsondb/fields.rb

Instance Method Summary collapse

Instance Method Details

#add_main_fieldsObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/jsondb/fields.rb', line 34

def add_main_fields
  if JSONdb.fields[@name]["id"].nil?
    JSONdb.fields[@name]["id"] = create_field('id')
    JSONdb.fields[@name]["id"].type         = "Fixnum"
    JSONdb.fields[@name]["id"].nullable     = false
    JSONdb.fields[@name]["id"].default      = 0
  end
  if JSONdb.fields[@name]["created_at"].nil?
    JSONdb.fields[@name]["created_at"] = create_field('created_at')
    JSONdb.fields[@name]["created_at"].type        = "Fixnum"
    JSONdb.fields[@name]["created_at"].nullable    = false
    JSONdb.fields[@name]["created_at"].default     = 0
  end
  if JSONdb.fields[@name]["updated_at"].nil?
    JSONdb.fields[@name]["updated_at"] = create_field('updated_at')
    JSONdb.fields[@name]["updated_at"].type        = "Fixnum"
    JSONdb.fields[@name]["updated_at"].nullable    = false
    JSONdb.fields[@name]["updated_at"].default     = 0
  end
end

#create_field(name) ⇒ Object



13
14
15
16
# File 'lib/jsondb/fields.rb', line 13

def create_field(name)
  @persisted = false
  JSONdb.fields[@name][name] = Field.new(name)
end

#drop_field(name) ⇒ Object



18
19
20
21
22
# File 'lib/jsondb/fields.rb', line 18

def drop_field(name)
  @persisted = false
  JSONdb.fields[@name][name] = nil
  JSONdb.fields[@name].delete(name)
end

#field(name) ⇒ Object



9
10
11
# File 'lib/jsondb/fields.rb', line 9

def field(name)
  JSONdb.fields[@name][name]
end

#fieldsObject



5
6
7
# File 'lib/jsondb/fields.rb', line 5

def fields
  JSONdb.fields[@name].keys
end

#fields_to_hashObject



24
25
26
27
28
29
30
31
32
# File 'lib/jsondb/fields.rb', line 24

def fields_to_hash
  to_hash = Hash.new
  JSONdb.fields[@name].each do |key, values|
    to_hash.merge!({
      key => values.to_hash
    })
  end
  return to_hash
end