justiz 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 79087f670423816d367f2030964da9fb891ebe1f
4
- data.tar.gz: f312cfac2918d6821bf9dd0efafc953e3c2c4f1c
3
+ metadata.gz: 2326034c190b77e1aae66c1ac49d2fb8bcfcdecb
4
+ data.tar.gz: d32e3e91a788c9a4c0624ad4c2a93d4c98cf328e
5
5
  SHA512:
6
- metadata.gz: 47e19fb2ccae3d712dcb17970061050baf6b4725584c51575a1adfd8438bcffb62861a001d593fb2be1bbfb79221b774c385a06e02f41cc870f6cebd6823ec8b
7
- data.tar.gz: 502813f3a6b29869650375235d5c9f309e5740f3b8ec11c641f44631cda1c933700efaa14bc74986f7c4e6c37cfd222d707083276b110275a17e439e3683eaa1
6
+ metadata.gz: cb158bfc0410052e731b441fa01a3bb28fc8f3c640b645f47f0e4b103a8fc7ea389ca4d9da3e1e2a837429b26ec4b164861955417df0f50756220f24190c8fd7
7
+ data.tar.gz: 67782ac4abc05f9c4e6a85fe7b42a241dbf6ea7ff9d1990cc62a8e968aa3a3db08d1c25add8dce752fd45ebc7912e31bc20a0c22256b8e7a8d1d86d5f0cdcf9a
@@ -1,8 +1,20 @@
1
1
  require 'ostruct'
2
+ require 'digest'
2
3
 
3
4
  module Justiz
4
- class Contact < OpenStruct
5
- # std fields: court, location, post, phone, fax, justiz_id, url, email
5
+ class Contact
6
+ FIELDS = [:court, :location, :post, :phone, :fax, :justiz_id, :url, :email]
7
+ attr_accessor :attributes, *FIELDS
8
+
9
+ def initialize(attributes = {})
10
+ self.attributes = attributes
11
+ end
12
+
13
+ def attributes=(attributes)
14
+ attributes.each do |key, value|
15
+ send("#{key}=", value) if respond_to?("#{key}=")
16
+ end
17
+ end
6
18
 
7
19
  def id
8
20
  # too many duplicates
@@ -18,5 +30,13 @@ module Justiz
18
30
  def post_address
19
31
  Address.new(self[:post])
20
32
  end
33
+
34
+ def digest
35
+ sha256 = Digest::SHA2.new
36
+ FIELDS.each do |field|
37
+ sha256 << send(field)
38
+ end
39
+ Digest.hexencode(sha256.digest)
40
+ end
21
41
  end
22
42
  end
@@ -1,3 +1,3 @@
1
1
  module Justiz
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -2,4 +2,31 @@ require 'rspec'
2
2
  require 'justiz'
3
3
 
4
4
  describe Justiz::Contact do
5
+ let(:court) { {court: 'Staatsanwaltschaft Düsseldorf',
6
+ location: 'Fritz-Roeber-Straße 2, 40213 Düsseldorf',
7
+ post: 'P.O.Box 123, 40999 Düsseldorf - Post',
8
+ phone: '0211 6025 0',
9
+ fax: '0211 6025 2929',
10
+ justiz_id: 'R1100S',
11
+ url: 'http://www.sta-duesseldorf.nrw.de',
12
+ email: 'poststelle@sta-duesseldorf.nrw.de'} }
13
+
14
+ let(:contact) { Justiz::Contact.new(court) }
15
+
16
+ it "should assign elements" do
17
+ %w(court location post phone fax justiz_id url email).each do |field|
18
+ field = field.to_sym
19
+ expect(contact.send(field)).to eq(court[field])
20
+ end
21
+ end
22
+
23
+ it "should have an id" do
24
+ id = "#{court[:court]}#{court[:email]}"
25
+ expect(contact.id).to eq(id)
26
+ end
27
+
28
+ it "should have a digest" do
29
+ digest = "76ef09d0c7d0078015df7a948cf0352c00f6451dab354389b21895a50d89a4a8"
30
+ expect(contact.digest).to eq(digest)
31
+ end
5
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: justiz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
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-25 00:00:00.000000000 Z
11
+ date: 2013-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize