xdr 2.0.0 → 3.0.3

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.
Files changed (75) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +26 -7
  3. data/README.md +21 -19
  4. data/lib/xdr/array.rb +3 -3
  5. data/lib/xdr/bool.rb +7 -7
  6. data/lib/xdr/concerns/array_converter.rb +2 -2
  7. data/lib/xdr/concerns/converts_to_xdr.rb +40 -41
  8. data/lib/xdr/concerns/float_converter.rb +1 -1
  9. data/lib/xdr/concerns/integer_converter.rb +1 -1
  10. data/lib/xdr/concerns/reads_bytes.rb +10 -1
  11. data/lib/xdr/concerns/string_converter.rb +1 -1
  12. data/lib/xdr/double.rb +2 -3
  13. data/lib/xdr/dsl/enum.rb +8 -9
  14. data/lib/xdr/dsl/struct.rb +1 -2
  15. data/lib/xdr/dsl/union.rb +12 -12
  16. data/lib/xdr/dsl.rb +1 -1
  17. data/lib/xdr/enum.rb +6 -6
  18. data/lib/xdr/float.rb +2 -3
  19. data/lib/xdr/hyper.rb +2 -2
  20. data/lib/xdr/int.rb +2 -2
  21. data/lib/xdr/namespace.rb +7 -9
  22. data/lib/xdr/opaque.rb +5 -5
  23. data/lib/xdr/option.rb +5 -5
  24. data/lib/xdr/quadruple.rb +1 -1
  25. data/lib/xdr/rpc/record.rb +2 -2
  26. data/lib/xdr/rpc/record_reader.rb +7 -7
  27. data/lib/xdr/string.rb +4 -4
  28. data/lib/xdr/struct.rb +15 -16
  29. data/lib/xdr/struct_validator.rb +1 -1
  30. data/lib/xdr/union.rb +44 -36
  31. data/lib/xdr/union_validator.rb +1 -1
  32. data/lib/xdr/unsigned_hyper.rb +2 -2
  33. data/lib/xdr/unsigned_int.rb +2 -2
  34. data/lib/xdr/var_array.rb +4 -4
  35. data/lib/xdr/var_opaque.rb +3 -3
  36. data/lib/xdr/version.rb +1 -1
  37. data/lib/xdr/void.rb +1 -1
  38. data/lib/xdr.rb +16 -10
  39. metadata +37 -150
  40. data/.gitignore +0 -15
  41. data/.travis.yml +0 -9
  42. data/.yardopts +0 -7
  43. data/Gemfile +0 -4
  44. data/Guardfile +0 -5
  45. data/Rakefile +0 -9
  46. data/examples/enum.rb +0 -30
  47. data/examples/struct.rb +0 -24
  48. data/examples/union.rb +0 -29
  49. data/spec/lib/xdr/array_spec.rb +0 -73
  50. data/spec/lib/xdr/bool_spec.rb +0 -43
  51. data/spec/lib/xdr/concerns/converts_to_xdr_spec.rb +0 -88
  52. data/spec/lib/xdr/concerns/reads_bytes_spec.rb +0 -31
  53. data/spec/lib/xdr/double_spec.rb +0 -38
  54. data/spec/lib/xdr/dsl/enum_spec.rb +0 -44
  55. data/spec/lib/xdr/dsl/struct_spec.rb +0 -29
  56. data/spec/lib/xdr/dsl/union_spec.rb +0 -69
  57. data/spec/lib/xdr/enum_spec.rb +0 -70
  58. data/spec/lib/xdr/float_spec.rb +0 -37
  59. data/spec/lib/xdr/hyper_spec.rb +0 -40
  60. data/spec/lib/xdr/int_spec.rb +0 -40
  61. data/spec/lib/xdr/opaque_spec.rb +0 -36
  62. data/spec/lib/xdr/option_spec.rb +0 -36
  63. data/spec/lib/xdr/quadruple_spec.rb +0 -14
  64. data/spec/lib/xdr/rpc/record_reader_spec.rb +0 -27
  65. data/spec/lib/xdr/string_spec.rb +0 -41
  66. data/spec/lib/xdr/struct_spec.rb +0 -101
  67. data/spec/lib/xdr/union_spec.rb +0 -248
  68. data/spec/lib/xdr/unsigned_hyper_spec.rb +0 -36
  69. data/spec/lib/xdr/unsigned_int_spec.rb +0 -36
  70. data/spec/lib/xdr/var_array_spec.rb +0 -71
  71. data/spec/lib/xdr/var_opaque_spec.rb +0 -43
  72. data/spec/lib/xdr/void_spec.rb +0 -46
  73. data/spec/spec_helper.rb +0 -15
  74. data/spec/support/matchers/eq_bytes.rb +0 -6
  75. data/xdr.gemspec +0 -28
@@ -1,43 +0,0 @@
1
- require 'spec_helper'
2
-
3
-
4
- describe XDR::VarOpaque, "#read" do
5
- subject{ XDR::VarOpaque[2] }
6
-
7
- it "decodes values correctly" do
8
- expect(read("\x00\x00\x00\x00")).to eq("")
9
- expect(read("\x00\x00\x00\x01\x00\x00\x00\x00")).to eq("\x00")
10
- expect(read("\x00\x00\x00\x01\x01\x00\x00\x00")).to eq("\x01")
11
- expect(read("\x00\x00\x00\x02\x00\x01\x00\x00")).to eq("\x00\x01")
12
- end
13
-
14
- it "raises a ReadError when the encoded length is greater than the allowed max" do
15
- expect{ read "\x00\x00\x00\x03\x00\x00\x00\x00" }.to raise_error(XDR::ReadError)
16
- end
17
-
18
- def read(str)
19
- io = StringIO.new(str)
20
- subject.read(io)
21
- end
22
- end
23
-
24
- describe XDR::VarOpaque, "#write" do
25
- subject{ XDR::VarOpaque[2] }
26
-
27
- it "encodes values correctly" do
28
- expect(write("")).to eq("\x00\x00\x00\x00")
29
- expect(write("\x00")).to eq("\x00\x00\x00\x01\x00\x00\x00\x00")
30
- expect(write("\x01")).to eq("\x00\x00\x00\x01\x01\x00\x00\x00")
31
- expect(write("\x00\x01")).to eq("\x00\x00\x00\x02\x00\x01\x00\x00")
32
- end
33
-
34
- it "raises a WriteError when the provided string is too long" do
35
- expect{ write "123" }.to raise_error(XDR::WriteError)
36
- end
37
-
38
- def write(val)
39
- io = StringIO.new()
40
- subject.write(val, io)
41
- io.string
42
- end
43
- end
@@ -1,46 +0,0 @@
1
- require 'spec_helper'
2
-
3
-
4
- describe XDR::Void, ".read" do
5
-
6
- it "decodes values correctly" do
7
- expect(read("\x00\x00\x00\x00")).to eq(:void)
8
- expect(read("\x00\x00\x00\x01")).to eq(:void)
9
- expect(read("\xFF\xFF\xFF\xFF")).to eq(:void)
10
- expect(read("\x7F\xFF\xFF\xFF")).to eq(:void)
11
- expect(read("\x80\x00\x00\x00")).to eq(:void)
12
- end
13
-
14
- def read(str)
15
- io = StringIO.new(str)
16
- subject.read(io)
17
- end
18
- end
19
-
20
- describe XDR::Void, ".write" do
21
-
22
- it "decodes values correctly" do
23
- expect(write :void).to eq("")
24
- end
25
-
26
- def write(val)
27
- io = StringIO.new()
28
- subject.write(val, io)
29
- io.string
30
- end
31
- end
32
-
33
- describe XDR::Void, ".valid?" do
34
-
35
- it "accepts :void" do
36
- expect(subject.valid?(:void)).to eq(true)
37
- end
38
-
39
- it "rejects anything not :void" do
40
- expect(subject.valid?(nil)).to eq(false)
41
- expect(subject.valid?(0)).to eq(false)
42
- expect(subject.valid?("hello")).to eq(false)
43
- end
44
-
45
-
46
- end
data/spec/spec_helper.rb DELETED
@@ -1,15 +0,0 @@
1
- require 'bundler/setup'
2
- Bundler.setup
3
- require 'simplecov'
4
- SimpleCov.start
5
-
6
- require 'pry'
7
- require 'xdr'
8
-
9
- __dir__ = File.dirname(__FILE__)
10
-
11
- Dir["#{__dir__}/support/**/*.rb"].each { |f| require f }
12
-
13
- RSpec.configure do |config|
14
-
15
- end
@@ -1,6 +0,0 @@
1
-
2
- RSpec::Matchers.define :eq_bytes do |expected|
3
- match do |actual|
4
- expected.force_encoding("ASCII-8BIT") == actual.force_encoding("ASCII-8BIT")
5
- end
6
- end
data/xdr.gemspec DELETED
@@ -1,28 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'xdr/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "xdr"
8
- spec.version = XDR::VERSION
9
- spec.authors = ["Scott Fleckenstein"]
10
- spec.email = ["scott@stellar.org"]
11
- spec.summary = %q{XDR Helper Library}
12
- spec.homepage = "https://github.com/stellar/ruby-xdr"
13
- spec.license = "Apache 2.0"
14
- spec.required_ruby_version = '>= 2.2.0'
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
- spec.add_dependency "activesupport", ">= 4.2.7"
21
- spec.add_dependency "activemodel", ">= 4.2.7"
22
-
23
- spec.add_development_dependency "bundler", "~> 1.7"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec", "~> 3.1"
26
- spec.add_development_dependency "guard-rspec"
27
- spec.add_development_dependency "simplecov"
28
- end