syncevolution 0.1.10 → 0.1.11
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/bin/se-config +64 -0
- data/lib/syncevolution/version.rb +1 -1
- metadata +1 -3
- data/syncevolution.gv +0 -33
- data/tt +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8ba8b2482af3f9161f37a7dd87c8fe5600ad84a
|
4
|
+
data.tar.gz: dd6ac85f48af67136ec2dba2cd40fbcb7440e171
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 597eec647f136ff13666a9372305b2c58dea80823ff90ef1b157f0f1aa46c595b9bb3595aaa5ba1b3c65813cb5a210e5e14256c07d0e1055676617e6ccf932a7
|
7
|
+
data.tar.gz: 3a8725ff311d26b9d04966a561bbc6d8475bb727ae2754d46227a7c09b4b3a24e36bd32ab9a0a3509bf5b9e49fd8074d89bef111bf79da41557905eb82aa0315
|
data/bin/se-config
CHANGED
@@ -19,6 +19,68 @@ module SyncEvolution
|
|
19
19
|
return _inspect(s)
|
20
20
|
end
|
21
21
|
|
22
|
+
def to_gml
|
23
|
+
gml = "graph [\n"
|
24
|
+
gml << " label #{'syncevolution'.inspect}\n"
|
25
|
+
gml << " directed 1\n"
|
26
|
+
|
27
|
+
nodes = {}
|
28
|
+
gml_id = lambda{|node| nodes[id(node)] ||= nodes.size }
|
29
|
+
|
30
|
+
|
31
|
+
@doc.xpath("//context/*[name()='store' or name()='sync']").each{|node|
|
32
|
+
gml << " node [\n"
|
33
|
+
gml << " id #{gml_id.call(node)}\n"
|
34
|
+
gml << " label #{node['name'].inspect}\n"
|
35
|
+
gml << " graphics [\n"
|
36
|
+
gml << " type #{(node.name == 'sync' ? 'hexagon' : 'rectangle').inspect}\n"
|
37
|
+
gml << " w 124.0\n"
|
38
|
+
gml << " ]\n"
|
39
|
+
gml << " gid #{gml_id.call(node.parent)}\n"
|
40
|
+
gml << " ]\n"
|
41
|
+
}
|
42
|
+
|
43
|
+
@doc.xpath('//context').each{|context|
|
44
|
+
gml << " node [\n"
|
45
|
+
gml << " id #{gml_id.call(context)}\n"
|
46
|
+
gml << " label #{context['name'].inspect}\n"
|
47
|
+
gml << " isGroup 1\n"
|
48
|
+
gml << " ]\n"
|
49
|
+
}
|
50
|
+
|
51
|
+
syncs = 0
|
52
|
+
|
53
|
+
@doc.xpath('//sync/store').each{|store|
|
54
|
+
sync = store.parent
|
55
|
+
|
56
|
+
if sync['syncURL'] =~ /^local:\/\/@(.+)/
|
57
|
+
targetcontext = $1.downcase
|
58
|
+
else
|
59
|
+
next
|
60
|
+
end
|
61
|
+
|
62
|
+
syncs += 1
|
63
|
+
|
64
|
+
targetsync = @doc.at("//context[@name=#{_inspect(targetcontext)}]/sync[@name='target-config']")
|
65
|
+
targetstore = @doc.at("//context[@name=#{_inspect(targetcontext)}]/store[@name=#{_inspect(store['uri'])}]")
|
66
|
+
sourcestore = @doc.at("//context[@name=#{_inspect(store.parent.parent['name'])}]/store[@name=#{_inspect(store['name'])}]")
|
67
|
+
|
68
|
+
dir = case store['sync']
|
69
|
+
when 'two-way' then 'both'
|
70
|
+
else throw store['sync'].inspect
|
71
|
+
end
|
72
|
+
|
73
|
+
dashed = " graphics [ style \"dashed\" ]\n"
|
74
|
+
gml << " edge [\n source #{gml_id.call(sourcestore)}\n#{dashed} target #{gml_id.call(store.parent)}\n label #{syncs.to_s.inspect}\n ]\n"
|
75
|
+
gml << " edge [\n source #{gml_id.call(store.parent)}\n#{dashed} target #{gml_id.call(targetsync)}\n label #{syncs.to_s.inspect}\n ]\n"
|
76
|
+
gml << " edge [\n source #{gml_id.call(targetsync)}\n#{dashed} target #{gml_id.call(targetstore)}\n label #{syncs.to_s.inspect}\n ]\n"
|
77
|
+
}
|
78
|
+
|
79
|
+
gml << "]\n"
|
80
|
+
|
81
|
+
gml
|
82
|
+
end
|
83
|
+
|
22
84
|
def to_gv
|
23
85
|
gv = "digraph syncevolution {\n"
|
24
86
|
|
@@ -344,6 +406,7 @@ OPTS = Trollop::options do
|
|
344
406
|
opt :shell, "Output shell code"
|
345
407
|
opt :clear, "Clear entire config"
|
346
408
|
opt :graphviz, "Output graphviz code"
|
409
|
+
opt :gml, "Output GML graph"
|
347
410
|
opt :indent, "Indent shell code"
|
348
411
|
opt :verify, "Verify configuration"
|
349
412
|
end
|
@@ -355,3 +418,4 @@ SE.verify
|
|
355
418
|
puts SE.to_xml if OPTS[:xml]
|
356
419
|
puts SE.to_shell(OPTS[:indent]) if OPTS[:shell]
|
357
420
|
puts SE.to_gv if OPTS[:graphviz]
|
421
|
+
puts SE.to_gml if OPTS[:gml]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: syncevolution
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emiliano Heyns
|
@@ -97,9 +97,7 @@ files:
|
|
97
97
|
- lib/syncevolution/version.rb
|
98
98
|
- publish.sh
|
99
99
|
- syncevolution.gemspec
|
100
|
-
- syncevolution.gv
|
101
100
|
- test/syncevolution.rb
|
102
|
-
- tt
|
103
101
|
homepage: ''
|
104
102
|
licenses:
|
105
103
|
- MIT
|
data/syncevolution.gv
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
digraph syncevolution {
|
2
|
-
subgraph cluster_local {
|
3
|
-
label = "local";
|
4
|
-
local_contacts [ shape = folder, label = "contacts"];
|
5
|
-
local_calendar [ shape = folder, label = "calendar"];
|
6
|
-
local_google [ shape = component, label = "google"];
|
7
|
-
local_exchange [ shape = component, label = "exchange"];
|
8
|
-
}
|
9
|
-
subgraph cluster_google {
|
10
|
-
label = "google";
|
11
|
-
google_contacts [ shape = folder, label = "contacts"];
|
12
|
-
google_calendar [ shape = folder, label = "calendar"];
|
13
|
-
google_targetconfig [ shape = component, label = "target-config"];
|
14
|
-
}
|
15
|
-
subgraph cluster_exchange {
|
16
|
-
label = "exchange";
|
17
|
-
exchange_contacts [ shape = folder, label = "contacts"];
|
18
|
-
exchange_calendar [ shape = folder, label = "calendar"];
|
19
|
-
exchange_targetconfig [ shape = component, label = "target-config"];
|
20
|
-
}
|
21
|
-
local_contacts -> local_google [label="1", dir=both, style=dashed];
|
22
|
-
local_google -> google_targetconfig [label="1", dir=both, style=dashed];
|
23
|
-
google_targetconfig -> google_contacts [label="1", dir=both, style=dashed];
|
24
|
-
local_calendar -> local_google [label="2", dir=both, style=dashed];
|
25
|
-
local_google -> google_targetconfig [label="2", dir=both, style=dashed];
|
26
|
-
google_targetconfig -> google_calendar [label="2", dir=both, style=dashed];
|
27
|
-
local_contacts -> local_exchange [label="3", dir=both, style=dashed];
|
28
|
-
local_exchange -> exchange_targetconfig [label="3", dir=both, style=dashed];
|
29
|
-
exchange_targetconfig -> exchange_contacts [label="3", dir=both, style=dashed];
|
30
|
-
local_calendar -> local_exchange [label="4", dir=both, style=dashed];
|
31
|
-
local_exchange -> exchange_targetconfig [label="4", dir=both, style=dashed];
|
32
|
-
exchange_targetconfig -> exchange_calendar [label="4", dir=both, style=dashed];
|
33
|
-
}
|