cyby 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -0
- data/lib/cyby/kintone/app.rb +12 -7
- data/lib/cyby/kintone/record.rb +21 -11
- data/lib/cyby/kintone/relation.rb +14 -7
- data/lib/cyby/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c8d7908636d29a6236ca003328acb4f1ec0a3c4
|
4
|
+
data.tar.gz: d78b0aa956b2714c6ed245a2338e159b6d498dea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ed719e660c7ab0af392b57b981a7f52f805f3ad1edd8e7c188279ac60bc919f675897dd102d39b8e6996584dc1623d4a653aa849e362bddf75874dfe1a56569
|
7
|
+
data.tar.gz: 44b66ab37fbe39a822814cc4ec23693c17bb028bbe77ff7dc456fbb6edd107448ae299e141202f764ae949757efb2fc3418b032d91cf46a7cabbd72fe8db72ac
|
data/README.md
CHANGED
data/lib/cyby/kintone/app.rb
CHANGED
@@ -32,15 +32,20 @@ module Cyby
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def save(record)
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
if record.changed?
|
36
|
+
json = record.to_json_for_save
|
37
|
+
if json[:id]
|
38
|
+
resp = @api.put("/record.json", json)
|
39
|
+
else
|
40
|
+
resp = @api.post("/record.json", json)
|
41
|
+
record["$id"] = resp["id"]
|
42
|
+
end
|
43
|
+
record["$revision"] = resp["revision"]
|
44
|
+
record.unchanged
|
45
|
+
true
|
38
46
|
else
|
39
|
-
|
40
|
-
record["$id"] = resp["id"]
|
47
|
+
false
|
41
48
|
end
|
42
|
-
record["$revision"] = resp["revision"]
|
43
|
-
true
|
44
49
|
end
|
45
50
|
|
46
51
|
def delete(record)
|
data/lib/cyby/kintone/record.rb
CHANGED
@@ -4,6 +4,7 @@ module Cyby
|
|
4
4
|
def initialize(app, raw = {})
|
5
5
|
@app = app
|
6
6
|
@raw = raw
|
7
|
+
@changed = {}
|
7
8
|
end
|
8
9
|
|
9
10
|
def [](key)
|
@@ -16,15 +17,29 @@ module Cyby
|
|
16
17
|
|
17
18
|
def []=(key, value)
|
18
19
|
@raw[key] ||= {}
|
19
|
-
|
20
|
-
|
21
|
-
@raw[key]["type"] = "__ID__"
|
22
|
-
when "$revision"
|
23
|
-
@raw[key]["type"] = "__REVISION__"
|
20
|
+
if @raw[key]["value"] != value
|
21
|
+
changed(key)
|
24
22
|
end
|
25
23
|
@raw[key]["value"] = value
|
26
24
|
end
|
27
25
|
|
26
|
+
def changed(field)
|
27
|
+
case field
|
28
|
+
when "$id", "$revision"
|
29
|
+
# Do nothing
|
30
|
+
else
|
31
|
+
@changed[field] = true
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def changed?
|
36
|
+
@changed.any?
|
37
|
+
end
|
38
|
+
|
39
|
+
def unchanged
|
40
|
+
@changed = {}
|
41
|
+
end
|
42
|
+
|
28
43
|
def method_missing(method_name, *args)
|
29
44
|
key = method_name.to_s
|
30
45
|
if key[-1] == "="
|
@@ -52,12 +67,7 @@ module Cyby
|
|
52
67
|
|
53
68
|
def to_json_for_save
|
54
69
|
record = @raw.select do |key, value|
|
55
|
-
|
56
|
-
when "CREATOR", "CREATED_TIME", "MODIFIER", "UPDATED_TIME", "STATUS", "STATUS_ASSIGNEE", "RECORD_NUMBER", "__REVISION__", "__ID__"
|
57
|
-
false
|
58
|
-
else
|
59
|
-
true
|
60
|
-
end
|
70
|
+
@changed[key]
|
61
71
|
end
|
62
72
|
if @raw["$id"]
|
63
73
|
{ id: @raw["$id"]["value"], record: record }
|
@@ -1,14 +1,16 @@
|
|
1
1
|
module Cyby
|
2
2
|
module Kintone
|
3
3
|
class Relation
|
4
|
+
attr_reader :condition, :order_by, :fields
|
4
5
|
include Enumerable
|
5
6
|
|
6
7
|
alias_method :all, :to_a
|
7
8
|
|
8
9
|
def initialize(app)
|
9
10
|
@app = app
|
10
|
-
@
|
11
|
+
@condition = Query::Where.new
|
11
12
|
@order_by = []
|
13
|
+
@fields = nil
|
12
14
|
end
|
13
15
|
|
14
16
|
def each
|
@@ -22,16 +24,21 @@ module Cyby
|
|
22
24
|
end
|
23
25
|
|
24
26
|
def where(cond, *params)
|
25
|
-
|
27
|
+
case cond
|
28
|
+
when String
|
29
|
+
@condition = Query::Where.new(cond, *params)
|
30
|
+
else
|
31
|
+
@condition = cond.condition
|
32
|
+
end
|
26
33
|
self
|
27
34
|
end
|
28
35
|
|
29
36
|
def and(cond, *params)
|
30
37
|
case cond
|
31
38
|
when String
|
32
|
-
@
|
39
|
+
@condition = Query::WhereAnd.new(@condition, Query::Where.new(cond, *params))
|
33
40
|
else
|
34
|
-
@
|
41
|
+
@condition = Query::WhereAnd.new(@condition, cond.condition)
|
35
42
|
end
|
36
43
|
self
|
37
44
|
end
|
@@ -39,9 +46,9 @@ module Cyby
|
|
39
46
|
def or(cond, *params)
|
40
47
|
case cond
|
41
48
|
when String
|
42
|
-
@
|
49
|
+
@condition = Query::WhereOr.new(@condition, Query::Where.new(cond, *params))
|
43
50
|
else
|
44
|
-
@
|
51
|
+
@condition = Query::WhereOr.new(@condition, cond.condition)
|
45
52
|
end
|
46
53
|
self
|
47
54
|
end
|
@@ -62,7 +69,7 @@ module Cyby
|
|
62
69
|
end
|
63
70
|
|
64
71
|
def to_query
|
65
|
-
query = @
|
72
|
+
query = @condition.to_query
|
66
73
|
if @order_by.any?
|
67
74
|
query += " order by #{@order_by.join(',')}"
|
68
75
|
end
|
data/lib/cyby/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cyby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hiroyuki Sato
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|