diograph-store 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +7 -0
- data/lib/diograph-store.rb +2 -2
- data/lib/diograph.rb +23 -0
- data/lib/diograph_store/connection_store.rb +26 -0
- data/lib/diograph_store/diory_connection_store.rb +35 -0
- data/lib/diograph_store/diory_store.rb +31 -0
- data/lib/models/connection.rb +53 -0
- data/lib/models/diory.rb +97 -0
- data/lib/models/room.rb +22 -0
- metadata +9 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0054f8efab8c228ef92b4164c628bc28018d69a
|
4
|
+
data.tar.gz: 0a3059151fc239897f0ab3b1a5451810392c95a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2df9c3f2d38ee75ba3f9f58bdd2f4523a842f6262a462e5427772c151c8840fabb5da84dc1239f7e6cc843680c60dad930ab580bda03f6b61518f7dfaa377fe
|
7
|
+
data.tar.gz: d314b3f256b89fab55736547a35cbf0ac0e1137a062d2003ab6c0a0c5477c4d999b2d23bc4e1158b752e9bde7c7d4e1ebd05a17406f1545532a3fb1cfc297256
|
data/README.md
ADDED
data/lib/diograph-store.rb
CHANGED
data/lib/diograph.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
module DiographStore
|
2
|
+
class Diograph
|
3
|
+
def self.diograph_to_diory_api_attributes(diory_diograph)
|
4
|
+
{
|
5
|
+
"name" => diory_diograph['name'],
|
6
|
+
"diory-id" => diory_diograph['ID'],
|
7
|
+
"diory-type" => diory_diograph['type'],
|
8
|
+
"date" => diory_diograph['date'],
|
9
|
+
"address" => diory_diograph['address'],
|
10
|
+
"background" => diory_diograph['background'],
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.diograph_to_connection_api_attributes(from_diory_id, connection_diograph)
|
15
|
+
{
|
16
|
+
"connection-id" => connection_diograph['ID'],
|
17
|
+
"from-diory-diory-id" => from_diory_id,
|
18
|
+
"to-diory-diory-id" => connection_diograph['diory']['ID'],
|
19
|
+
"connection-type" => connection_diograph['connection-type']
|
20
|
+
}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pstore'
|
4
|
+
require 'models/connection'
|
5
|
+
|
6
|
+
class ConnectionStore
|
7
|
+
attr_reader :store
|
8
|
+
|
9
|
+
def initialize(object_store=nil)
|
10
|
+
@store = PStore.new('./tmp/connections.pstore')
|
11
|
+
@object_store = object_store
|
12
|
+
end
|
13
|
+
|
14
|
+
def get(connection_id)
|
15
|
+
connection_data = @store.transaction do
|
16
|
+
@store[connection_id]
|
17
|
+
end
|
18
|
+
DiographStore::Connection.new(connection_data, @object_store) unless connection_data.nil?
|
19
|
+
end
|
20
|
+
|
21
|
+
def save(connection_id:, connection_data:)
|
22
|
+
@store.transaction do
|
23
|
+
@store[connection_id] = connection_data
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pstore'
|
4
|
+
require 'diograph_store/connection_store'
|
5
|
+
|
6
|
+
# Stores only connection ids in PStore
|
7
|
+
# - returns Connection objects
|
8
|
+
class DioryConnectionStore
|
9
|
+
attr_reader :store
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
# Should this be 'diory_connection_ids'
|
13
|
+
@store = PStore.new('./tmp/diory_connections.pstore')
|
14
|
+
end
|
15
|
+
|
16
|
+
def get(diory_id)
|
17
|
+
diory_connection_ids = @store.transaction do
|
18
|
+
@store[diory_id] || []
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def save(diory_id:, connection_id:)
|
23
|
+
@store.transaction do
|
24
|
+
# Initialize array if diory doesn't yet have any connection_ids in the store
|
25
|
+
if @store[diory_id].nil?
|
26
|
+
@store[diory_id] = []
|
27
|
+
end
|
28
|
+
# Add to array if connection_id doesn't already exist there
|
29
|
+
# TODO: Test for trying to add same connection_id again
|
30
|
+
unless @store[diory_id].include? connection_id
|
31
|
+
@store[diory_id] << connection_id
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pstore'
|
4
|
+
require 'models/diory'
|
5
|
+
require 'diograph_store/diory_connection_store'
|
6
|
+
|
7
|
+
class DioryStore
|
8
|
+
attr_reader :store
|
9
|
+
|
10
|
+
def initialize(object_store=nil)
|
11
|
+
@store = PStore.new('./tmp/diories.pstore')
|
12
|
+
@object_store = object_store
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(diory_id)
|
16
|
+
diory_data = @store.transaction do
|
17
|
+
@store[diory_id]
|
18
|
+
end
|
19
|
+
|
20
|
+
return if diory_data.nil?
|
21
|
+
|
22
|
+
# diory_data['connections'] = DioryConnectionStore.new.get(diory_id)
|
23
|
+
DiographStore::Diory.new(diory_data, @object_store)
|
24
|
+
end
|
25
|
+
|
26
|
+
def save(diory_id:, diory_data:)
|
27
|
+
@store.transaction do
|
28
|
+
@store[diory_id] = diory_data
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'diograph_store/diory_store'
|
4
|
+
|
5
|
+
module DiographStore
|
6
|
+
class Connection
|
7
|
+
def initialize(connection_data = {}, object_store = DiographStore.new)
|
8
|
+
@data = connection_data
|
9
|
+
@object_store = object_store
|
10
|
+
end
|
11
|
+
|
12
|
+
def api_id
|
13
|
+
@data['id']
|
14
|
+
end
|
15
|
+
|
16
|
+
def id
|
17
|
+
connection_id
|
18
|
+
end
|
19
|
+
|
20
|
+
def from_diory
|
21
|
+
@object_store.get_diory(from_diory_diory_id)
|
22
|
+
end
|
23
|
+
|
24
|
+
def to_diory
|
25
|
+
@object_store.get_diory(to_diory_diory_id)
|
26
|
+
end
|
27
|
+
|
28
|
+
def from_diory_diory_id
|
29
|
+
@data['from-diory-diory-id']
|
30
|
+
end
|
31
|
+
|
32
|
+
def to_diory_diory_id
|
33
|
+
@data['to-diory-diory-id']
|
34
|
+
end
|
35
|
+
|
36
|
+
def connection_id
|
37
|
+
@data['connection-id']
|
38
|
+
end
|
39
|
+
|
40
|
+
def connection_type
|
41
|
+
@data['connection-type']
|
42
|
+
end
|
43
|
+
|
44
|
+
def to_diograph
|
45
|
+
{
|
46
|
+
# "roomID": room_id,
|
47
|
+
"ID" => connection_id,
|
48
|
+
"connection-type" => connection_type,
|
49
|
+
"diory" => { 'ID' => to_diory_diory_id } # to_diory.to_diograph
|
50
|
+
}
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/lib/models/diory.rb
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'diograph_store/diory_connection_store'
|
4
|
+
|
5
|
+
module DiographStore
|
6
|
+
class Diory
|
7
|
+
def initialize(diory_data = {}, store = DiographStore.new)
|
8
|
+
@data = diory_data
|
9
|
+
@store = store
|
10
|
+
end
|
11
|
+
|
12
|
+
def api_id
|
13
|
+
@data['id']
|
14
|
+
end
|
15
|
+
|
16
|
+
def id
|
17
|
+
diory_id
|
18
|
+
end
|
19
|
+
|
20
|
+
def connections(type: nil)
|
21
|
+
diory_connection_ids = DioryConnectionStore.new.get(diory_id)
|
22
|
+
|
23
|
+
connections = diory_connection_ids.map do |connection_id|
|
24
|
+
@store.get_connection(connection_id)
|
25
|
+
end
|
26
|
+
|
27
|
+
return connections if type.nil?
|
28
|
+
|
29
|
+
connections.select do |a|
|
30
|
+
a.connection_type == type
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def connected_diories(type: nil)
|
35
|
+
connections(type: type).map(&:to_diory)
|
36
|
+
end
|
37
|
+
|
38
|
+
def diory_id
|
39
|
+
@data['diory-id']
|
40
|
+
end
|
41
|
+
|
42
|
+
def diory_type
|
43
|
+
@data['diory-type']
|
44
|
+
end
|
45
|
+
|
46
|
+
def name
|
47
|
+
@data['name']
|
48
|
+
end
|
49
|
+
|
50
|
+
def background
|
51
|
+
@data['background']
|
52
|
+
end
|
53
|
+
|
54
|
+
def address
|
55
|
+
@data['address']
|
56
|
+
end
|
57
|
+
|
58
|
+
def date
|
59
|
+
@data['date']
|
60
|
+
end
|
61
|
+
|
62
|
+
def latitude
|
63
|
+
@data['latitude']
|
64
|
+
end
|
65
|
+
|
66
|
+
def longitude
|
67
|
+
@data['longitude']
|
68
|
+
end
|
69
|
+
|
70
|
+
def created
|
71
|
+
@data['created']
|
72
|
+
end
|
73
|
+
|
74
|
+
def modified
|
75
|
+
@data['modified']
|
76
|
+
end
|
77
|
+
|
78
|
+
def serialized_properties
|
79
|
+
@data['serialized-properties'] || {}
|
80
|
+
end
|
81
|
+
|
82
|
+
def to_diograph
|
83
|
+
{
|
84
|
+
"ID" => diory_id,
|
85
|
+
# "roomID": room_id,
|
86
|
+
"name" => name,
|
87
|
+
"type" => diory_type,
|
88
|
+
"created" => created,
|
89
|
+
"modified" => modified,
|
90
|
+
"date" => date,
|
91
|
+
"address" => address,
|
92
|
+
"background" => background,
|
93
|
+
"connections" => connections.map(&:to_diograph)
|
94
|
+
}
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
data/lib/models/room.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module DiographStore
|
3
|
+
class Room
|
4
|
+
def initialize(room_data = {}) # , object_store = DiographStore.new)
|
5
|
+
@data = room_data
|
6
|
+
# @object_store = object_store
|
7
|
+
end
|
8
|
+
|
9
|
+
def id
|
10
|
+
@data['room-id']
|
11
|
+
end
|
12
|
+
|
13
|
+
def name
|
14
|
+
@data['name']
|
15
|
+
end
|
16
|
+
|
17
|
+
# def diories
|
18
|
+
# object_store.get_diories(room_id: id)
|
19
|
+
# end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diograph-store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jouni Alanen
|
@@ -72,9 +72,17 @@ executables: []
|
|
72
72
|
extensions: []
|
73
73
|
extra_rdoc_files: []
|
74
74
|
files:
|
75
|
+
- README.md
|
75
76
|
- lib/diograph-store.rb
|
77
|
+
- lib/diograph.rb
|
78
|
+
- lib/diograph_store/connection_store.rb
|
76
79
|
- lib/diograph_store/diograph_api_request.rb
|
80
|
+
- lib/diograph_store/diory_connection_store.rb
|
81
|
+
- lib/diograph_store/diory_store.rb
|
77
82
|
- lib/diograph_store/store.rb
|
83
|
+
- lib/models/connection.rb
|
84
|
+
- lib/models/diory.rb
|
85
|
+
- lib/models/room.rb
|
78
86
|
homepage: http://dioryme.github.io
|
79
87
|
licenses: []
|
80
88
|
metadata: {}
|