Class: Cyby::Kintone::Record
- Inherits:
-
Object
- Object
- Cyby::Kintone::Record
show all
- Defined in:
- lib/cyby/kintone/record.rb
Instance Method Summary
collapse
Constructor Details
#initialize(app, raw = {}) ⇒ Record
Returns a new instance of Record.
4
5
6
7
8
|
# File 'lib/cyby/kintone/record.rb', line 4
def initialize(app, raw = {})
@app = app
@raw = raw
@changed = {}
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/cyby/kintone/record.rb', line 43
def method_missing(method_name, *args)
key = if @app.convert_to_camelized_field
method_name.to_s.camelize(:lower)
else
method_name.to_s
end
if key[-1] == "="
self.[]=(key[0..-2], args[0])
else
self.[](key)
end
end
|
Instance Method Details
#[](key) ⇒ Object
10
11
12
13
14
15
16
|
# File 'lib/cyby/kintone/record.rb', line 10
def [](key)
if @raw.key?(key)
convert(@raw[key])
else
fail "'#{key}' doesn't exist"
end
end
|
#[]=(key, value) ⇒ Object
18
19
20
21
22
23
24
|
# File 'lib/cyby/kintone/record.rb', line 18
def []=(key, value)
@raw[key] ||= {}
if @raw[key]["value"] != value
changed(key)
end
@raw[key]["value"] = value
end
|
#changed(field) ⇒ Object
26
27
28
29
30
31
32
33
|
# File 'lib/cyby/kintone/record.rb', line 26
def changed(field)
case field
when "$id", "$revision"
else
@changed[field] = true
end
end
|
#changed? ⇒ Boolean
35
36
37
|
# File 'lib/cyby/kintone/record.rb', line 35
def changed?
@changed.any?
end
|
#delete ⇒ Object
68
69
70
|
# File 'lib/cyby/kintone/record.rb', line 68
def delete
@app.delete(self)
end
|
#inspect ⇒ Object
56
57
58
59
60
61
62
|
# File 'lib/cyby/kintone/record.rb', line 56
def inspect
hash = {}
@raw.each do |key, value|
hash[key] = value["value"]
end
hash.inspect
end
|
#save ⇒ Object
64
65
66
|
# File 'lib/cyby/kintone/record.rb', line 64
def save
@app.save(self)
end
|
#to_json_for_save ⇒ Object
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/cyby/kintone/record.rb', line 72
def to_json_for_save
record = @raw.select do |key, value|
@changed[key]
end
if @raw["$id"]
{ id: @raw["$id"]["value"], record: record }
else
{ record: record }
end
end
|
#unchanged ⇒ Object
39
40
41
|
# File 'lib/cyby/kintone/record.rb', line 39
def unchanged
@changed = {}
end
|