lib-bootp 0.1.2 → 0.2.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
  SHA256:
3
- metadata.gz: f99fc9ef58f4eb63580e7f59e79e7d4ee0d5f47aa6282befe7c78626d978f89a
4
- data.tar.gz: 9052c9fd8eb06e1cda0f4e6b0ca235f397153bdfe2576c9f5ea53df44c12512a
3
+ metadata.gz: f9a19cfd41f846c12bac6c05b8ca0fcf39c16f0939844a5f860ab5dd7cb55beb
4
+ data.tar.gz: a001116b28853de679bbbc0aa22218f60c8b7b703b07c1b5c6ba37da9e8e822e
5
5
  SHA512:
6
- metadata.gz: 17bfade84d51f4c303c998ec0ce1e8414cf861847d124e48ce2236f3f2c136c410977baa35e50d9dfd4a9877e90de34c65aa4023a7d591b31efda84d32b1e1ae
7
- data.tar.gz: 9b9f18e7687f8e67796f98ab5f3808574b6a657778ee9afcff5b502d15a02a1430cf6660b5604d2c0cb55fc711f4f0fea2738389db93dab559f6025f8fa0f870
6
+ metadata.gz: cad5b30ff7bb65f4ce2421cb94f8074bd1ec0e2ebab504a91af17bc71199c7d44d1f9b7cbb0ac8fcc0f172a2b85c57ec222ef59e035c5f0d8786f52a720dcf6d
7
+ data.tar.gz: 0c9ee138004cefda84236a63c9943bf6102cc6d9740fe9a8167853209363a0d8fa96d7d263a1d118c6c8bdce11e2983e9caff8fe03b3bcfb380b7aa6775015a6
@@ -0,0 +1,39 @@
1
+ name: Ruby Gem
2
+ on:
3
+ push:
4
+ branches:
5
+ - master
6
+
7
+ jobs:
8
+ create-tag:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v3
12
+
13
+ - name: Create Git tag
14
+ run: |
15
+ VERSION=$(ruby -e "require 'rubygems'; spec = Gem::Specification.load(Dir.glob('*.gemspec').first); puts spec.version")
16
+ git tag v$VERSION
17
+ git push origin v$VERSION
18
+
19
+ build-and-publish:
20
+ runs-on: ubuntu-latest
21
+ permissions:
22
+ contents: read
23
+ packages: write
24
+ steps:
25
+ - uses: actions/checkout@v3
26
+
27
+ - name: Set up Ruby
28
+ uses: ruby/setup-ruby@v1
29
+
30
+ - name: Publish to RubyGems
31
+ run: |
32
+ mkdir -p $HOME/.gem
33
+ touch $HOME/.gem/credentials
34
+ chmod 0600 $HOME/.gem/credentials
35
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
36
+ gem build *.gemspec
37
+ gem push *.gem
38
+ env:
39
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
@@ -0,0 +1,20 @@
1
+ name: Run Tests
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+
9
+ steps:
10
+ - name: Checkout code
11
+ uses: actions/checkout@v3
12
+
13
+ - name: Set up Ruby
14
+ uses: ruby/setup-ruby@v1
15
+
16
+ - name: Install dependencies
17
+ run: bundle install
18
+
19
+ - name: Run tests
20
+ run: bundle exec rspec
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ lib-bootp
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ truffleruby-22.3.1
@@ -15,7 +15,6 @@ module Lib
15
15
 
16
16
  def_delegators :@hlen, :to_s, :to_i
17
17
 
18
-
19
18
  def initialize(hlen=6)
20
19
  @hlen = hlen.to_i
21
20
  end
@@ -53,6 +53,17 @@ module Lib
53
53
  end
54
54
  end
55
55
 
56
+ def to_json(*params)
57
+ self.to_h.to_json
58
+ end
59
+
60
+ def to_h
61
+ {
62
+ code: @htype.to_s,
63
+ name: self.to_s
64
+ }
65
+ end
66
+
56
67
  def <=>(other)
57
68
  case other
58
69
  when String
@@ -3,6 +3,7 @@
3
3
  # Copyright 14.03.2016 by Piotr Wojcieszonek
4
4
 
5
5
  require 'forwardable'
6
+ require 'json'
6
7
  #require 'comparable'
7
8
 
8
9
  module Lib
@@ -28,6 +29,17 @@ module Lib
28
29
  end
29
30
  end
30
31
 
32
+ def to_json(*params)
33
+ self.to_h.to_json
34
+ end
35
+
36
+ def to_h
37
+ {
38
+ code: @op.to_s,
39
+ name: self.to_s
40
+ }
41
+ end
42
+
31
43
  def <=>(other)
32
44
  return self.to_i <=> other if other.is_a?(Integer)
33
45
  self.to_s <=> other.to_s.upcase
@@ -1,5 +1,5 @@
1
1
  module Lib
2
2
  module BOOTP
3
- VERSION = '0.1.2'
3
+ VERSION = '0.2.1'
4
4
  end
5
5
  end
data/lib/lib/bootp.rb CHANGED
@@ -14,7 +14,7 @@ require 'lib/bootp/packet/ip_address'
14
14
  require 'lib/bootp/packet/server_host_name'
15
15
  require 'lib/bootp/packet/boot_file'
16
16
  require 'lib/bootp/packet/client_hardware_address'
17
-
17
+ require 'json'
18
18
 
19
19
  module Lib
20
20
  module BOOTP
@@ -168,6 +168,30 @@ module Lib
168
168
  self.new(op:op, htype:htype, hlen:hlen, hops:hops, xid:xid, secs:secs, flags:flags, ciaddr:ciaddr, yiaddr:yiaddr, siaddr:siaddr, giaddr:giaddr, chaddr:chaddr, sname:sname, file:file)
169
169
  end
170
170
 
171
+ def to_json
172
+ to_h.to_json
173
+ end
174
+
175
+ def self.from_json(json)
176
+ json = JSON.parse json
177
+ Lib::BOOTP::Packet.new(
178
+ op: json['op']['code'].to_i,
179
+ htype: json['htype']['code'].to_i,
180
+ hlen: json['hlen'].to_i,
181
+ hops: json['hops'].to_i,
182
+ xid: json['xid'].to_i,
183
+ secs: json['secs'].to_i,
184
+ flags: json['flags'].to_i,
185
+ ciaddr: json['ciaddr'],
186
+ yiaddr: json['yiaddr'],
187
+ siaddr: json['siaddr'],
188
+ giaddr: json['giaddr'],
189
+ chaddr: json['chaddr'],
190
+ sname: json['sname'],
191
+ file: json['file']
192
+ )
193
+ end
194
+
171
195
  end
172
196
  end
173
197
  end
data/lib-bootp.gemspec CHANGED
@@ -20,11 +20,11 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.16"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec", "~> 3.0"
23
+ spec.add_development_dependency "bundler"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "rspec"
26
26
 
27
27
  spec.add_dependency 'net-address', '~> 0.1'
28
28
 
29
- spec.required_ruby_version = '>= 2.2.0'
29
+ spec.required_ruby_version = '>= 3.0.0'
30
30
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lib-bootp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Wojcieszonek
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-07 00:00:00.000000000 Z
11
+ date: 2023-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '0'
20
20
  type: :development
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: '1.16'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: net-address
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -73,9 +73,12 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - ".github/workflows/gem-push.yml"
77
+ - ".github/workflows/run-test.yml"
76
78
  - ".gitignore"
77
79
  - ".rspec"
78
- - ".travis.yml"
80
+ - ".ruby-gemset"
81
+ - ".ruby-version"
79
82
  - CODE_OF_CONDUCT.md
80
83
  - Gemfile
81
84
  - LICENSE.txt
@@ -101,7 +104,7 @@ homepage: https://github.com/pwojcieszonek/lib-bootp
101
104
  licenses:
102
105
  - MIT
103
106
  metadata: {}
104
- post_install_message:
107
+ post_install_message:
105
108
  rdoc_options: []
106
109
  require_paths:
107
110
  - lib
@@ -109,16 +112,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
112
  requirements:
110
113
  - - ">="
111
114
  - !ruby/object:Gem::Version
112
- version: 2.2.0
115
+ version: 3.0.0
113
116
  required_rubygems_version: !ruby/object:Gem::Requirement
114
117
  requirements:
115
118
  - - ">="
116
119
  - !ruby/object:Gem::Version
117
120
  version: '0'
118
121
  requirements: []
119
- rubyforge_project:
120
- rubygems_version: 2.7.5
121
- signing_key:
122
+ rubygems_version: 3.2.32
123
+ signing_key:
122
124
  specification_version: 4
123
125
  summary: BOOTP protocol library
124
126
  test_files: []
data/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.3.3
5
- before_install: gem install bundler -v 1.16.0
6
- deploy:
7
- provider: rubygems
8
- api_key:
9
- secure: PmmHPxfXZEJ4Tr0clcWhO6+r70CNeOVg44V3bBuIp9OGC6scyaqnwrzn1SMloI8r7Hi6g2OB58Q4XgiC5omU7EjArdt1gP0lI1CcXZcU5dyHn+egYsmr0gyW//yWU36xD10/mtmJo920Waei0Le6R0x22TMAO0i3V+2S2vnT99fuMxSaL3pYoMehLssdqhrFVa6Yy6/HW/9+2T9N7EaF4yFqxttVLnoDHxp8xOwWMD32x4mn3+xjuTyVH6X2XJf6NGXU+zZ+6STuyXEkOVhP+x69pbQzsosSlx0R8viX5UcNZxcucbB4t4Zu6Da9Irfba7272mghqxhwZuEZ6x5NsjG7UEV6bnGPpBC5UcqFrSctqAlwNT71t6QiYYS7LTwGHzVOdC6hV/l5FmAKWlh/ijtaip5XTtC0muA+gO6nKupw2vSXYuVqQmbu/Bm5X9CyJusz3efCBEdf9aUO4gZJlNuYxYN+yAetAK0zh1IvSqZo1z+7aVECRwDxxzIhJXMhtjNPHTNPXBf+qO01BHgSNVWq/eU9PZB+AkH3RudnXcKRVi9fNAXyy3fiOzjc5xCWFYs4Q5eeR3Sp/CtqLjeNgCSL1PROrS3Oy9kJ+iK+8oSouHtBuAvU1YEV5iVEA6LzoOYhTdFlBYRWyJfDls2+xo2a6Hq06B+P4+6ZJXHqApk=
10
- gemspec: lib-bootp.gemspec
11
- gem: lib-bootp
12
- on:
13
- tags: true
14
- repo: pwojcieszonek/lib-bootp