handle-system 0.0.7 → 0.1.0

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 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