handle-system 0.0.7 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 76c65ae14325b6d728f70dcebf771e1fb751cf79
4
+ data.tar.gz: 21672e3d8709029e49c46f5e45b8d384acd08ca5
5
+ SHA512:
6
+ metadata.gz: b70973c2a12ce56edb3ccc497c6a96d3ea8636f7b6fc10e44c0a08a2b57a46c4830526b50f735faba62ae64273e99211fd1432ad1aa58182764e78b5d9a61a5f
7
+ data.tar.gz: cf546a453841f775eaae19b5ee5b8cac2cf3dc39fe139b344526f4a55a3750da4d82270c32e6a65a9987f270f6ad38dfdbe6082b88b0d1646ae445d3d3b69f41
data/README.md CHANGED
@@ -55,3 +55,7 @@ record = conn.resolve_handle('handle.prefix/new.handle')
55
55
  3. Commit your changes (`git commit -am 'Add some feature'`)
56
56
  4. Push to the branch (`git push origin my-new-feature`)
57
57
  5. Create new Pull Request
58
+
59
+ ## History
60
+
61
+ - v0.1.0 - First stable release
@@ -4,7 +4,7 @@ module Handle
4
4
  module Command
5
5
  class Batch
6
6
  def initialize(handle, index, auth)
7
- @batch_file = Tempfile.new('hdl')
7
+ @batch_file = Tempfile.new('hdl')
8
8
  auth_type = auth.length == 2 ? "PUBKEY" : "SECKEY"
9
9
  @batch_file.puts "AUTHENTICATE #{auth_type}:#{index}:#{handle}"
10
10
  @batch_file.puts auth.select { |p| not (p.nil? or p.empty?) }.join('|')
@@ -15,18 +15,17 @@ module Handle
15
15
  @batch_file.unlink
16
16
  end
17
17
 
18
+ # Raises an error if any part of the output is a "FAILURE" message
18
19
  def execute!
19
20
  @batch_file.close
20
21
  cmd = File.join(Handle::HOME, 'bin', 'hdl-genericbatch')
21
22
  output = `#{cmd} #{@batch_file.path} 2>/dev/null`
22
23
  results = output.lines.select { |line| line =~ /^=+>/ }
23
24
  results.each do |rs|
24
- (status, message) = rs.scan(/^=+>(.+)\[[0-9]+\]: (.+)/).flatten
25
- (action, handle, code, message) = message.split(/:\s*/,4)
26
- if status == 'FAILURE'
27
- exception = Handle::HandleError.new message
28
- exception.set_backtrace(caller[3..-1])
29
- raise exception
25
+ if message = ErrorParser.failure_message(rs)
26
+ raise Handle::HandleError.new(message).tap { |exception|
27
+ exception.set_backtrace(caller[3..-1])
28
+ }
30
29
  end
31
30
  end
32
31
  return true
@@ -1,2 +1,3 @@
1
+ require 'handle/error_parser'
1
2
  require 'handle/command/connection'
2
3
  require 'handle/command/persistence'
@@ -0,0 +1,13 @@
1
+ module Handle
2
+ # Parses raw messages from hdl-genericbatch and returns a useful message if
3
+ # the line is an error message.
4
+ module ErrorParser
5
+
6
+ def self.failure_message(line)
7
+ (status, raw_message) = line.scan(/^=+>(.+)\[[0-9]+\]: (.+)/).flatten
8
+ return unless status == 'FAILURE'
9
+ raw_message.split(/:\s*/).last
10
+ end
11
+
12
+ end
13
+ end
File without changes
@@ -58,4 +58,4 @@ module Handle
58
58
  "[#{str}]"
59
59
  end
60
60
  end
61
- end
61
+ end
data/lib/handle/record.rb CHANGED
@@ -68,6 +68,7 @@ module Handle
68
68
  end
69
69
 
70
70
  def ==(other)
71
+ self.class == other.class &&
71
72
  self.to_a == other.to_a
72
73
  end
73
74
 
@@ -1,3 +1,3 @@
1
1
  module Handle
2
- VERSION = "0.0.7"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,9 +1,9 @@
1
- require File.expand_path('../../spec_helper',__FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  on_cruby do
4
4
  def parse_batch(command)
5
5
  (cmd, fname, redirect) = command.split(/\s+/,3)
6
- File.read(fname).split(/\n\n/).collect { |batch|
6
+ File.read(fname).split(/\n\n/).collect { |batch|
7
7
  (op, data) = batch.split(/\n/,2)
8
8
  { :op => op.strip, :data => data.strip }
9
9
  }
@@ -12,21 +12,21 @@ on_cruby do
12
12
  describe Handle::Command::Connection do
13
13
  describe "#initialize" do
14
14
  it "file-based private key" do
15
- Handle::Command::Connection.new('0.NA/FAKE.ADMIN', 300, 'privkey', 'keypass').batch { |b|
16
- b.should_receive(:`) do |command|
15
+ expect(Handle::Command::Connection.new('0.NA/FAKE.ADMIN', 300, 'privkey', 'keypass') { |b|
16
+ expect(b).to receive(:`) do |command|
17
17
  expect(parse_batch(command)[0]).to eq({ op: "AUTHENTICATE PUBKEY:300:0.NA/FAKE.ADMIN", data: "privkey|keypass" })
18
18
  ""
19
19
  end
20
- }.should be_true
20
+ }).to be_kind_of Handle::Command::Connection
21
21
  end
22
22
 
23
23
  it "shared secret" do
24
- Handle::Command::Connection.new('0.NA/FAKE.ADMIN', 301, 'seckey') { |b|
25
- b.should_receive(:`) do |command|
24
+ expect(Handle::Command::Connection.new('0.NA/FAKE.ADMIN', 301, 'seckey') { |b|
25
+ expect(b).to receive(:`) do |command|
26
26
  expect(parse_batch(command)[0]).to eq({ op: "AUTHENTICATE SECKEY:301:0.NA/FAKE.ADMIN", data: "seckey" })
27
27
  ""
28
28
  end
29
- }.should be_true
29
+ }).to be_kind_of Handle::Command::Connection
30
30
  end
31
31
  end
32
32
 
@@ -46,7 +46,7 @@ on_cruby do
46
46
  subject { Handle::Command::Connection.new('0.NA/FAKE.ADMIN', 300, 'privkey', 'keypass') }
47
47
 
48
48
  it "#resolve_handle" do
49
- subject.should_receive(:`) { |command|
49
+ expect(subject).to receive(:`) { |command|
50
50
  expect(command).to match(/hdl-qresolver #{fake_handle}/)
51
51
  "Got Response:\n#{record.to_s}"
52
52
  }
@@ -54,7 +54,7 @@ on_cruby do
54
54
  end
55
55
 
56
56
  it "#resolve_handle (not found)" do
57
- subject.should_receive(:`) { |command|
57
+ expect(subject).to receive(:`) { |command|
58
58
  expect(command).to match(/hdl-qresolver #{bad_handle}/)
59
59
  "Got Error:\nError(100): HANDLE NOT FOUND"
60
60
  }
@@ -62,7 +62,7 @@ on_cruby do
62
62
  end
63
63
 
64
64
  it "#resolve_handle (other error)" do
65
- subject.should_receive(:`) { |command|
65
+ expect(subject).to receive(:`) { |command|
66
66
  expect(command).to match(/hdl-qresolver #{bad_handle}/)
67
67
  "Got Error:\nError(3): SERVER TOO BUSY"
68
68
  }
@@ -76,18 +76,18 @@ on_cruby do
76
76
  end
77
77
 
78
78
  it "#create_handle" do
79
- Handle::Command::Batch.any_instance.should_receive(:`) do |command|
79
+ expect_any_instance_of(Handle::Command::Batch).to receive(:`) do |_, command|
80
80
  ops = parse_batch(command)
81
81
  expect(ops.length).to eq(2)
82
82
  expect(ops[1][:op]).to eq("CREATE #{new_handle}")
83
83
  expect(ops[1][:data]).to eq("2 URL 86400 1110 UTF8 http://www.example.edu/fake-handle\n6 EMAIL 86400 1110 UTF8 handle@example.edu\n100 HS_ADMIN 86400 1110 ADMIN 300:111111111111:0.NA/FAKE.ADMIN")
84
84
  "==>SUCCESS[7]: create:#{new_handle}"
85
85
  end
86
- expect(subject.create_handle(new_handle, record)).to be_true
86
+ expect(subject.create_handle(new_handle, record)).to be true
87
87
  end
88
88
 
89
89
  it "#create_handle (handle already exists)" do
90
- Handle::Command::Batch.any_instance.should_receive(:`) do |command|
90
+ expect_any_instance_of(Handle::Command::Batch).to receive(:`) do |_, command|
91
91
  ops = parse_batch(command)
92
92
  expect(ops.length).to eq(2)
93
93
  expect(ops[1][:op]).to eq("CREATE #{new_handle}")
@@ -98,48 +98,48 @@ on_cruby do
98
98
  end
99
99
 
100
100
  it "#add_handle_values" do
101
- Handle::Command::Batch.any_instance.should_receive(:`) do |command|
101
+ expect_any_instance_of(Handle::Command::Batch).to receive(:`) do |_, command|
102
102
  ops = parse_batch(command)
103
103
  expect(ops.length).to eq(2)
104
104
  expect(ops[1][:op]).to eq("ADD #{new_handle}")
105
105
  expect(ops[1][:data]).to eq("2 URL 86400 1110 UTF8 http://www.example.edu/fake-handle\n6 EMAIL 86400 1110 UTF8 handle@example.edu\n100 HS_ADMIN 86400 1110 ADMIN 300:111111111111:0.NA/FAKE.ADMIN")
106
106
  "==>SUCCESS[7]: add values:#{new_handle}"
107
107
  end
108
- expect(subject.add_handle_values(new_handle, record)).to be_true
108
+ expect(subject.add_handle_values(new_handle, record)).to be true
109
109
  end
110
110
 
111
111
  it "#update_handle_values" do
112
- Handle::Command::Batch.any_instance.should_receive(:`) do |command|
112
+ expect_any_instance_of(Handle::Command::Batch).to receive(:`) do |_, command|
113
113
  ops = parse_batch(command)
114
114
  expect(ops.length).to eq(2)
115
115
  expect(ops[1][:op]).to eq("MODIFY #{new_handle}")
116
116
  expect(ops[1][:data]).to eq("2 URL 86400 1110 UTF8 http://www.example.edu/fake-handle\n6 EMAIL 86400 1110 UTF8 handle@example.edu\n100 HS_ADMIN 86400 1110 ADMIN 300:111111111111:0.NA/FAKE.ADMIN")
117
117
  "==>SUCCESS[7]: modify values:#{new_handle}"
118
118
  end
119
- expect(subject.update_handle_values(new_handle, record)).to be_true
119
+ expect(subject.update_handle_values(new_handle, record)).to be true
120
120
  end
121
121
 
122
122
  it "#delete_handle_values" do
123
- Handle::Command::Batch.any_instance.should_receive(:`) do |command|
123
+ expect_any_instance_of(Handle::Command::Batch).to receive(:`) do |_, command|
124
124
  ops = parse_batch(command)
125
125
  expect(ops.length).to eq(2)
126
126
  expect(ops[1][:op]).to eq("REMOVE 2,6,100:#{new_handle}")
127
127
  expect(ops[1][:data]).to be_empty
128
128
  "==>SUCCESS[4]: delete values:#{new_handle}"
129
129
  end
130
- expect(subject.delete_handle_values(new_handle, record)).to be_true
130
+ expect(subject.delete_handle_values(new_handle, record)).to be true
131
131
  end
132
132
 
133
133
  it "#delete_handle" do
134
- Handle::Command::Batch.any_instance.should_receive(:`) do |command|
134
+ expect_any_instance_of(Handle::Command::Batch).to receive(:`) do |_, command|
135
135
  ops = parse_batch(command)
136
136
  expect(ops.length).to eq(2)
137
137
  expect(ops[1][:op]).to eq("DELETE #{new_handle}")
138
138
  expect(ops[1][:data]).to be_empty
139
139
  "==>SUCCESS[7]: delete:#{new_handle}"
140
140
  end
141
- expect(subject.delete_handle(new_handle)).to be_true
141
+ expect(subject.delete_handle(new_handle)).to be true
142
142
  end
143
143
  end
144
144
  end
145
- end
145
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../spec_helper',__FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  on_cruby do
4
4
  describe Handle::Command::Persistence do
@@ -17,14 +17,14 @@ on_cruby do
17
17
  it "#reload" do
18
18
  current = subject.to_s
19
19
  subject.handle = fake_handle
20
- connection.should_receive(:resolve_handle).with(fake_handle) { Handle::Record.from_data(subject.to_s) }
20
+ expect(connection).to receive(:resolve_handle).with(fake_handle) { Handle::Record.from_data(subject.to_s) }
21
21
  subject.reload
22
22
  expect(subject.to_s).to eq(current)
23
23
  end
24
24
 
25
25
  it "#destroy" do
26
26
  subject.handle = fake_handle
27
- connection.should_receive(:delete_handle).with(fake_handle)
27
+ expect(connection).to receive(:delete_handle).with(fake_handle)
28
28
  subject.destroy
29
29
  end
30
30
 
@@ -34,27 +34,27 @@ on_cruby do
34
34
  end
35
35
 
36
36
  it "nil handle, param" do
37
- connection.should_receive(:create_handle).with(fake_handle, subject) { true }
38
- expect(subject.save(fake_handle)).to be_true
37
+ expect(connection).to receive(:create_handle).with(fake_handle, subject) { true }
38
+ expect(subject.save(fake_handle)).to be_kind_of Handle::Record
39
39
  end
40
40
 
41
41
  it "existing handle, no existing record" do
42
42
  subject.handle = fake_handle
43
43
  current = subject.to_s
44
- connection.should_receive(:resolve_handle).with(fake_handle) { raise Handle::NotFound.new('Handle not found') }
45
- connection.should_receive(:create_handle) { |handle, record| expect(record).to eq(subject) }
44
+ expect(connection).to receive(:resolve_handle).with(fake_handle) { raise Handle::NotFound.new('Handle not found') }
45
+ expect(connection).to receive(:create_handle) { |handle, record| expect(record).to eq(subject) }
46
46
  subject.save
47
47
  end
48
48
 
49
49
  it "change existing record" do
50
50
  subject.handle = fake_handle
51
51
  current = subject.to_s
52
- connection.should_receive(:resolve_handle).with(fake_handle) { Handle::Record.from_data(current) }
52
+ expect(connection).to receive(:resolve_handle).with(fake_handle) { Handle::Record.from_data(current) }
53
53
  subject.delete(subject.find_by_index(6))
54
54
  subject.add(:URN, 'info:example:fake-handle')
55
- connection.should_receive(:delete_handle_values) { |handle, record| expect(record.length).to eq(1) }
56
- connection.should_receive(:add_handle_values) { |handle, record| expect(record.length).to eq(1) }
57
- connection.should_receive(:update_handle_values) { |handle, record| expect(record.length).to eq(2) }
55
+ expect(connection).to receive(:delete_handle_values) { |handle, record| expect(record.length).to eq(1) }
56
+ expect(connection).to receive(:add_handle_values) { |handle, record| expect(record.length).to eq(1) }
57
+ expect(connection).to receive(:update_handle_values) { |handle, record| expect(record.length).to eq(2) }
58
58
  subject.save
59
59
  end
60
60
  end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Handle::ErrorParser', unless: jruby? do
4
+ subject { Handle::ErrorParser.failure_message(raw_line) }
5
+
6
+ context "A failure with 3 parts" do
7
+ let(:raw_line) { '==>FAILURE[7]: create:10427.TEST/000001: No authentication info provided' }
8
+
9
+ it { is_expected.to eq 'No authentication info provided' }
10
+ end
11
+
12
+ context "A failure with 4 parts" do
13
+ let(:raw_line) { "==>FAILURE[7]: create:10427.TEST/000001: Error(101): HANDLE ALREADY EXISTS" }
14
+
15
+ it { is_expected.to eq 'HANDLE ALREADY EXISTS' }
16
+ end
17
+ end
@@ -91,28 +91,28 @@ on_jruby do
91
91
 
92
92
  it "#create_handle" do
93
93
  server.should_receive(:createHandle).with(new_handle, anything()) { true }
94
- expect(subject.create_handle(new_handle, record)).to be_true
94
+ expect(subject.create_handle(new_handle, record)).to be true
95
95
  end
96
96
 
97
97
  it "#add_handle_values" do
98
98
  server.should_receive(:addHandleValues).with(new_handle, anything()) { true }
99
- expect(subject.add_handle_values(new_handle, record)).to be_true
99
+ expect(subject.add_handle_values(new_handle, record)).to be true
100
100
  end
101
101
 
102
102
  it "#update_handle_values" do
103
103
  server.should_receive(:updateHandleValues).with(new_handle, anything()) { true }
104
- expect(subject.update_handle_values(new_handle, record)).to be_true
104
+ expect(subject.update_handle_values(new_handle, record)).to be true
105
105
  end
106
106
 
107
107
  it "#delete_handle_values" do
108
108
  server.should_receive(:deleteHandleValues).with(new_handle, anything()) { true }
109
- expect(subject.delete_handle_values(new_handle, record)).to be_true
109
+ expect(subject.delete_handle_values(new_handle, record)).to be true
110
110
  end
111
111
 
112
112
  it "#delete_handle" do
113
113
  server.should_receive(:deleteHandle).with(new_handle) { true }
114
- expect(subject.delete_handle(new_handle)).to be_true
114
+ expect(subject.delete_handle(new_handle)).to be true
115
115
  end
116
116
  end
117
117
  end
118
- end
118
+ end
@@ -39,7 +39,7 @@ on_jruby do
39
39
 
40
40
  it "nil handle, param" do
41
41
  connection.should_receive(:create_handle).with(fake_handle, subject) { true }
42
- expect(subject.save(fake_handle)).to be_true
42
+ expect(subject.save(fake_handle)).to be_truthy
43
43
  end
44
44
 
45
45
  it "existing handle, no existing record" do
@@ -5,19 +5,25 @@ describe Handle::Permissions do
5
5
 
6
6
  it "initialize" do
7
7
  expect(subject.bitmask).to eq(0b110)
8
- expect(subject).not_to be_foo
9
- expect(subject).to be_bar
10
- expect(subject).to be_baz
11
- expect(subject).not_to be_quux
8
+ expect(subject.read(:foo)).to be false
9
+ expect(subject.read(:bar)).to be true
10
+ expect(subject.read(:baz)).to be true
11
+ expect(subject.read(:quux)).to be false
12
12
  end
13
13
 
14
14
  it "modify" do
15
15
  subject.foo = true
16
16
  subject.bar = false
17
- expect(subject).to be_foo
18
- expect(subject).not_to be_bar
19
- expect(subject).to be_baz
20
- expect(subject).not_to be_quux
17
+ expect(subject.read(:foo)).to be true
18
+ expect(subject.read(:bar)).to be false
19
+ expect(subject.read(:baz)).to be true
20
+ expect(subject.read(:quux)).to be false
21
+ end
22
+
23
+ describe "#method_missing" do
24
+ it "handles accessors" do
25
+ expect(subject.foo?).to be false
26
+ end
21
27
  end
22
28
 
23
29
  it "#to_bool" do
data/spec/spec_helper.rb CHANGED
@@ -17,4 +17,4 @@ end
17
17
 
18
18
  def on_cruby &block
19
19
  yield unless jruby?
20
- end
20
+ end
metadata CHANGED
@@ -1,64 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: handle-system
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Michael Klein
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-03 00:00:00.000000000 Z
11
+ date: 2015-06-09 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '1.3'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.3'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '0'
47
+ version: '3.2'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
- version: '0'
54
+ version: '3.2'
62
55
  description: Ruby classes for interfacing with Handle System servers
63
56
  email:
64
57
  - mbklein@gmail.com
@@ -68,18 +61,34 @@ extra_rdoc_files:
68
61
  - LICENSE.txt
69
62
  - README.md
70
63
  files:
64
+ - Gemfile
65
+ - LICENSE.txt
66
+ - README.md
67
+ - Rakefile
68
+ - lib/handle.rb
69
+ - lib/handle/command.rb
71
70
  - lib/handle/command/connection.rb
72
71
  - lib/handle/command/persistence.rb
73
- - lib/handle/command.rb
74
- - lib/handle/field/admin.rb
72
+ - lib/handle/error_parser.rb
75
73
  - lib/handle/field.rb
74
+ - lib/handle/field/admin.rb
75
+ - lib/handle/field/vlist.rb
76
+ - lib/handle/java.rb
76
77
  - lib/handle/java/connection.rb
77
78
  - lib/handle/java/persistence.rb
78
- - lib/handle/java.rb
79
79
  - lib/handle/permissions.rb
80
80
  - lib/handle/record.rb
81
81
  - lib/handle/version.rb
82
- - lib/handle.rb
82
+ - spec/admin_spec.rb
83
+ - spec/command/connection_spec.rb
84
+ - spec/command/persistence_spec.rb
85
+ - spec/error_parser_spec.rb
86
+ - spec/field_spec.rb
87
+ - spec/java/connection_spec.rb
88
+ - spec/java/persistence_spec.rb
89
+ - spec/permissions_spec.rb
90
+ - spec/record_spec.rb
91
+ - spec/spec_helper.rb
83
92
  - vendor/handle/bin/hdl-genericbatch
84
93
  - vendor/handle/bin/hdl-qresolver
85
94
  - vendor/handle/lib/admintool.jar
@@ -94,54 +103,35 @@ files:
94
103
  - vendor/handle/lib/je-3.3.98.jar
95
104
  - vendor/handle/lib/jython-2.2.1.jar
96
105
  - vendor/handle/lib/oldadmintool.jar
97
- - Gemfile
98
- - Rakefile
99
- - LICENSE.txt
100
- - README.md
101
- - spec/admin_spec.rb
102
- - spec/command/connection_spec.rb
103
- - spec/command/persistence_spec.rb
104
- - spec/field_spec.rb
105
- - spec/java/connection_spec.rb
106
- - spec/java/persistence_spec.rb
107
- - spec/permissions_spec.rb
108
- - spec/record_spec.rb
109
- - spec/spec_helper.rb
110
106
  homepage: http://github.com/mbklein/handle
111
107
  licenses:
112
108
  - Apache 2
109
+ metadata: {}
113
110
  post_install_message:
114
111
  rdoc_options: []
115
112
  require_paths:
116
113
  - lib
117
114
  required_ruby_version: !ruby/object:Gem::Requirement
118
- none: false
119
115
  requirements:
120
- - - ! '>='
116
+ - - ">="
121
117
  - !ruby/object:Gem::Version
122
118
  version: '0'
123
- segments:
124
- - 0
125
- hash: 2540496964754808645
126
119
  required_rubygems_version: !ruby/object:Gem::Requirement
127
- none: false
128
120
  requirements:
129
- - - ! '>='
121
+ - - ">="
130
122
  - !ruby/object:Gem::Version
131
123
  version: '0'
132
- segments:
133
- - 0
134
- hash: 2540496964754808645
135
124
  requirements: []
136
125
  rubyforge_project:
137
- rubygems_version: 1.8.23
126
+ rubygems_version: 2.2.2
138
127
  signing_key:
139
- specification_version: 3
128
+ specification_version: 4
140
129
  summary: Ruby classes for interfacing with Handle System servers
141
130
  test_files:
142
131
  - spec/admin_spec.rb
143
132
  - spec/command/connection_spec.rb
144
133
  - spec/command/persistence_spec.rb
134
+ - spec/error_parser_spec.rb
145
135
  - spec/field_spec.rb
146
136
  - spec/java/connection_spec.rb
147
137
  - spec/java/persistence_spec.rb