justiz_sync 0.2.1 → 0.2.2
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/justiz_sync.gemspec +1 -1
- data/lib/justiz_sync/cli.rb +16 -11
- data/lib/justiz_sync/opencrx_court.rb +21 -3
- data/lib/justiz_sync/stream.rb +26 -0
- data/lib/justiz_sync/version.rb +1 -1
- data/lib/justiz_sync.rb +1 -0
- data/spec/cli_spec.rb +1 -1
- data/spec/opencrx_court_spec.rb +23 -39
- data/spec/spec_helper.rb +6 -0
- data/spec/stream_spec.rb +34 -0
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91ddc84cf4f63d03b44b185ccb85ef0867c0cdff
|
4
|
+
data.tar.gz: 6f6c67c180778487e22e1f7fc9c27c3f73952d3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fde1adc301c76978f2d286ad06e360ab9267fb7bbfe0008b2c61f122dbb45b98ed2477f29a7df4aad65f635309b67091398a07a7f5611c6db8121c17b0498933
|
7
|
+
data.tar.gz: 9d7a3be8790ea5c3ed00d31032ce5f819e7709181c549a900b32137c24630da41450346525bbef3818c866820c08d3779218d776b1cc4ff0fbe2bd5d89ca438e
|
data/justiz_sync.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "justiz", "~> 0.1
|
21
|
+
spec.add_dependency "justiz", "~> 0.2.1"
|
22
22
|
spec.add_dependency "opencrx", "~> 0.2.0"
|
23
23
|
spec.add_dependency "thor"
|
24
24
|
|
data/lib/justiz_sync/cli.rb
CHANGED
@@ -11,16 +11,12 @@ module JustizSync
|
|
11
11
|
desc 'sync', 'sync all records from justiz to opencrx'
|
12
12
|
def sync
|
13
13
|
transfer = Transfer.new(options)
|
14
|
-
|
15
|
-
transfer.sync_state(state)
|
16
|
-
else
|
17
|
-
transfer.sync
|
18
|
-
end
|
14
|
+
transfer.sync
|
19
15
|
end
|
20
16
|
end
|
21
17
|
|
22
18
|
class Transfer
|
23
|
-
attr_reader :options
|
19
|
+
attr_reader :options, :stream
|
24
20
|
def initialize(options)
|
25
21
|
@options = options
|
26
22
|
STDOUT.sync = true
|
@@ -28,24 +24,33 @@ module JustizSync
|
|
28
24
|
end
|
29
25
|
|
30
26
|
def sync
|
27
|
+
@stream = Stream.new
|
28
|
+
delete_unused = false
|
29
|
+
if (state = options['state'])
|
30
|
+
sync_state(state)
|
31
|
+
else
|
32
|
+
sync_all
|
33
|
+
delete_unused = true
|
34
|
+
end
|
35
|
+
stream.close(delete_unused)
|
36
|
+
end
|
37
|
+
|
38
|
+
def sync_all
|
31
39
|
states = scraper.states
|
32
|
-
total = 0
|
33
40
|
states.keys.each do |state|
|
34
|
-
|
41
|
+
sync_state(state)
|
35
42
|
end
|
36
|
-
puts "Total #{total} synchronized"
|
37
43
|
end
|
38
44
|
|
39
45
|
def sync_state(state)
|
40
46
|
courts = scraper.contacts_for(state)
|
41
47
|
puts "Syncing #{state} #{courts.length} courts"
|
42
48
|
sync_courts(courts)
|
43
|
-
courts.length
|
44
49
|
end
|
45
50
|
|
46
51
|
def sync_courts(courts)
|
47
52
|
courts.each_with_index do |court, index|
|
48
|
-
|
53
|
+
stream.sync(court)
|
49
54
|
puts if verbose && index && (index % 20 == 0)
|
50
55
|
putc('.') if verbose
|
51
56
|
end
|
@@ -1,14 +1,12 @@
|
|
1
1
|
require 'opencrx'
|
2
2
|
|
3
3
|
module JustizSync
|
4
|
-
|
5
4
|
class OpencrxCourt
|
6
5
|
TAG = 'justiz'
|
7
6
|
|
8
7
|
attr_reader :court
|
9
8
|
|
10
9
|
class << self
|
11
|
-
|
12
10
|
def sync(justiz_court)
|
13
11
|
OpencrxCourt.new(justiz_court).sync
|
14
12
|
end
|
@@ -19,7 +17,27 @@ module JustizSync
|
|
19
17
|
end
|
20
18
|
|
21
19
|
def find_tagged
|
22
|
-
|
20
|
+
tagged = []
|
21
|
+
position = 0
|
22
|
+
size = 500
|
23
|
+
begin
|
24
|
+
result_set = Opencrx::Model::LegalEntity.query(size: size, position: position,
|
25
|
+
query: "thereExistsUserString2().equalTo(\"#{TAG}\")")
|
26
|
+
position += result_set.length
|
27
|
+
tagged += result_set
|
28
|
+
end while result_set && result_set.more?
|
29
|
+
tagged
|
30
|
+
end
|
31
|
+
|
32
|
+
def all_ids
|
33
|
+
find_tagged.map { |crx| crx.userString1 }
|
34
|
+
end
|
35
|
+
|
36
|
+
def destroy(ids)
|
37
|
+
ids.each do |id|
|
38
|
+
crx = find(id)
|
39
|
+
crx.destroy if crx
|
40
|
+
end
|
23
41
|
end
|
24
42
|
|
25
43
|
# court.id is stored in openCRX userString1
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module JustizSync
|
2
|
+
class Stream
|
3
|
+
def initialize
|
4
|
+
@ids= []
|
5
|
+
@total_items = 0
|
6
|
+
@new_items = 0
|
7
|
+
end
|
8
|
+
|
9
|
+
def sync(court)
|
10
|
+
@ids << court.id
|
11
|
+
@total_items += 1
|
12
|
+
@new_items += OpencrxCourt.new(court).sync
|
13
|
+
end
|
14
|
+
|
15
|
+
def close(delete_unused = false)
|
16
|
+
all_ids = OpencrxCourt.all_ids
|
17
|
+
unused = all_ids - @ids
|
18
|
+
puts "#{@total_items} processed"
|
19
|
+
puts "#{@new_items} new entrie(s)"
|
20
|
+
if delete_unused
|
21
|
+
OpencrxCourt.destroy(unused)
|
22
|
+
puts "#{unused.length} deleted entrie(s)"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/justiz_sync/version.rb
CHANGED
data/lib/justiz_sync.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
data/spec/opencrx_court_spec.rb
CHANGED
@@ -1,20 +1,21 @@
|
|
1
1
|
require_relative "spec_helper"
|
2
2
|
|
3
3
|
describe JustizSync::OpencrxCourt do
|
4
|
+
let(:court) { Justiz::Contact.new(court: 'TEST Staatsanwaltschaft Düsseldorf',
|
5
|
+
location: 'Fritz-Roeber-Straße 2, 40213 Düsseldorf',
|
6
|
+
post: 'P.O.Box 123, 40999 Düsseldorf - Post',
|
7
|
+
phone: '0211 6025 0',
|
8
|
+
fax: '0211 6025 2929',
|
9
|
+
justiz_id: 'R1100S',
|
10
|
+
url: 'http://www.sta-duesseldorf.nrw.de',
|
11
|
+
email: 'poststelle@sta-duesseldorf.nrw.de') }
|
12
|
+
|
13
|
+
|
4
14
|
before do
|
5
15
|
Opencrx::connect("http://localhost:8080", "guest", "guest")
|
6
16
|
end
|
7
17
|
|
8
18
|
context "sync" do
|
9
|
-
let(:court) { Justiz::Contact.new(court: 'TEST Staatsanwaltschaft Düsseldorf',
|
10
|
-
location: 'Fritz-Roeber-Straße 2, 40213 Düsseldorf',
|
11
|
-
post: 'P.O.Box 123, 40999 Düsseldorf - Post',
|
12
|
-
phone: '0211 6025 0',
|
13
|
-
fax: '0211 6025 2929',
|
14
|
-
justiz_id: 'R1100S',
|
15
|
-
url: 'http://www.sta-duesseldorf.nrw.de',
|
16
|
-
email: 'poststelle@sta-duesseldorf.nrw.de') }
|
17
|
-
|
18
19
|
before do
|
19
20
|
delete_courts(court.id)
|
20
21
|
end
|
@@ -43,12 +44,6 @@ describe JustizSync::OpencrxCourt do
|
|
43
44
|
expect(find_attribute(addresses, :emailAddress)).to eq([court.email])
|
44
45
|
end
|
45
46
|
|
46
|
-
def delete_courts(id)
|
47
|
-
while (crx = JustizSync::OpencrxCourt.find(id))
|
48
|
-
crx.destroy
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
47
|
it "should create and find court" do
|
53
48
|
expect(JustizSync::OpencrxCourt.sync(court)).to eq(1)
|
54
49
|
crx = JustizSync::OpencrxCourt.find(court.id)
|
@@ -56,18 +51,19 @@ describe JustizSync::OpencrxCourt do
|
|
56
51
|
delete_courts(court.id)
|
57
52
|
end
|
58
53
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
54
|
+
# id is now digest, so any changes creates a new id
|
55
|
+
#it "should update court" do
|
56
|
+
# JustizSync::OpencrxCourt.sync(court)
|
57
|
+
#
|
58
|
+
# updated_court = court.dup
|
59
|
+
# updated_court.url += ' Update'
|
60
|
+
#
|
61
|
+
# expect(JustizSync::OpencrxCourt.sync(updated_court)).to eq(1)
|
62
|
+
# crx = JustizSync::OpencrxCourt.find(court.id)
|
63
|
+
# match_court(updated_court, crx)
|
64
|
+
# crx.destroy
|
65
|
+
# expect(JustizSync::OpencrxCourt.find(court.id)).to_not be
|
66
|
+
#end
|
71
67
|
|
72
68
|
it "should not update unchanged court" do
|
73
69
|
JustizSync::OpencrxCourt.sync(court)
|
@@ -78,16 +74,4 @@ describe JustizSync::OpencrxCourt do
|
|
78
74
|
crx.destroy
|
79
75
|
end
|
80
76
|
end
|
81
|
-
|
82
|
-
context "tagged" do
|
83
|
-
xit "deletes tagged entries" do
|
84
|
-
total = 0
|
85
|
-
begin
|
86
|
-
result_set = JustizSync::OpencrxCourt.find_tagged
|
87
|
-
result_set.each(&:destroy)
|
88
|
-
total += result_set.length
|
89
|
-
end while result_set && result_set.more?
|
90
|
-
puts "#{total} destroyed"
|
91
|
-
end
|
92
|
-
end
|
93
77
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/stream_spec.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative "spec_helper"
|
2
|
+
|
3
|
+
describe JustizSync::OpencrxCourt do
|
4
|
+
let(:court1) { Justiz::Contact.new(court: 'TEST 1') }
|
5
|
+
let(:court2) { Justiz::Contact.new(court: 'TEST 2') }
|
6
|
+
|
7
|
+
before do
|
8
|
+
Opencrx::connect("http://localhost:8080", "guest", "guest")
|
9
|
+
end
|
10
|
+
|
11
|
+
before do
|
12
|
+
ids = JustizSync::OpencrxCourt.all_ids
|
13
|
+
JustizSync::OpencrxCourt.destroy(ids)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "streams" do
|
17
|
+
JustizSync::OpencrxCourt.sync(court1)
|
18
|
+
stream = JustizSync::Stream.new
|
19
|
+
stream.sync(court2)
|
20
|
+
stream.close(true)
|
21
|
+
crx = JustizSync::OpencrxCourt.find(court1.id)
|
22
|
+
expect(crx).to_not be
|
23
|
+
crx = JustizSync::OpencrxCourt.find(court2.id)
|
24
|
+
expect(crx.name).to eq(court2.court)
|
25
|
+
crx.destroy
|
26
|
+
end
|
27
|
+
|
28
|
+
it "deletes all entries" do
|
29
|
+
stream = JustizSync::Stream.new
|
30
|
+
stream.close
|
31
|
+
result_set = JustizSync::OpencrxCourt.find_tagged
|
32
|
+
expect(result_set.length).to eq(0)
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: justiz_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Park
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: justiz
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.1
|
19
|
+
version: 0.2.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.1
|
26
|
+
version: 0.2.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: opencrx
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,10 +127,12 @@ files:
|
|
127
127
|
- lib/justiz_sync.rb
|
128
128
|
- lib/justiz_sync/cli.rb
|
129
129
|
- lib/justiz_sync/opencrx_court.rb
|
130
|
+
- lib/justiz_sync/stream.rb
|
130
131
|
- lib/justiz_sync/version.rb
|
131
132
|
- spec/cli_spec.rb
|
132
133
|
- spec/opencrx_court_spec.rb
|
133
134
|
- spec/spec_helper.rb
|
135
|
+
- spec/stream_spec.rb
|
134
136
|
homepage: https://github.com/mike-park/justiz_sync
|
135
137
|
licenses:
|
136
138
|
- MIT
|
@@ -159,3 +161,4 @@ test_files:
|
|
159
161
|
- spec/cli_spec.rb
|
160
162
|
- spec/opencrx_court_spec.rb
|
161
163
|
- spec/spec_helper.rb
|
164
|
+
- spec/stream_spec.rb
|