iparith 0.0.2

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
+ SHA256:
3
+ metadata.gz: 3761d3001222d5592a54018d056ea86729cfb8ceec3ca25db533ce21092123da
4
+ data.tar.gz: ed031810b77bbd2ba3dcd6296953971e5f6d048b38bc1453a1874c7bf39ef72a
5
+ SHA512:
6
+ metadata.gz: f71038b507ebdf2f4ea4fe6cd19adac1523098c1251b59c4e62020fd05b4aaf6075548078f1440385d093611ca976f4b48aed5824d3ba6faa7e50cb381b434ec
7
+ data.tar.gz: f28336e8721276954ee156e399eff790d14dda788255d57a227f18da4015ff274f009aac762ae4d791981aa05e18790c201d4c2fdff0446ec1a7efdcd133825b
data/iparith.gemspec ADDED
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = 'iparith'
3
+ spec.version = '0.0.2'
4
+ spec.authors = ['Forgot-His-Name']
5
+ spec.email = ['103605633+Forgot-His-Name@users.noreply.github.com']
6
+
7
+ spec.summary = 'Yet Another IP Calculator'
8
+ spec.description = 'IP manipulations, based on ipaddr gem'
9
+ spec.homepage = 'https://github.com/Forgot-His-Name/iparith'
10
+ spec.license = "BSD-3-Clause"
11
+
12
+ spec.files = ['iparith.gemspec', 'lib/iparith.rb', 'lib/iparith/parse.rb']
13
+ spec.require_paths = ['lib']
14
+
15
+ spec.add_runtime_dependency 'ipaddr', '~> 1.2'
16
+ end
@@ -0,0 +1,33 @@
1
+ module IPArith
2
+
3
+ def self.macstr_valid?(macstr)
4
+ return nil unless macstr.is_a? String
5
+
6
+ rg_raw = /\A([a-f0-9]{12})\z/
7
+ mdata = rg_raw.match(macstr)
8
+
9
+ mdata ? true : nil
10
+ end
11
+
12
+ def self.parse_macstr(mac_str)
13
+ return nil unless mac_str.is_a? String
14
+
15
+ cleaned_str = mac_str.downcase
16
+ cleaned_str.gsub!(/[-:.]/, '')
17
+ cleaned_str.gsub!('с', 'c') # replace russian c
18
+
19
+ rg_raw = /\A([a-f0-9]{12})\z/
20
+ mdata = rg_raw.match(cleaned_str)
21
+ return mdata[1] if mdata
22
+
23
+ nil
24
+ end
25
+
26
+ def self.ipstr_valid?(ipstr)
27
+ ::IPAddr.new ipstr
28
+ true
29
+ rescue ::IPAddr::InvalidAddressError, ::IPAddr::AddressFamilyError
30
+ nil
31
+ end
32
+
33
+ end
data/lib/iparith.rb ADDED
@@ -0,0 +1,14 @@
1
+ require 'ipaddr'
2
+ require_relative 'iparith/check'
3
+ require_relative 'iparith/parse'
4
+
5
+ module IPArith
6
+
7
+ def self.addr_to_int(str)
8
+ addr = ::IPAddr.new str
9
+ addr.to_i
10
+ rescue ::IPAddr::InvalidAddressError, ::IPAddr::AddressFamilyError
11
+ nil
12
+ end
13
+
14
+ end
metadata ADDED
@@ -0,0 +1,60 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: iparith
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Forgot-His-Name
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-07-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ipaddr
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.2'
27
+ description: IP manipulations, based on ipaddr gem
28
+ email:
29
+ - 103605633+Forgot-His-Name@users.noreply.github.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - iparith.gemspec
35
+ - lib/iparith.rb
36
+ - lib/iparith/parse.rb
37
+ homepage: https://github.com/Forgot-His-Name/iparith
38
+ licenses:
39
+ - BSD-3-Clause
40
+ metadata: {}
41
+ post_install_message:
42
+ rdoc_options: []
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ requirements: []
56
+ rubygems_version: 3.3.7
57
+ signing_key:
58
+ specification_version: 4
59
+ summary: Yet Another IP Calculator
60
+ test_files: []