ipconverter 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3b01a9e80032c6c523fe70643f565243dfa4e29f
4
- data.tar.gz: 25c4af9335552cd0a58dc8bdbc1c8b50251057de
3
+ metadata.gz: cf2a5bcd16c2e1debc4e76243f377950e2e29886
4
+ data.tar.gz: e23960bd3f703c5a0e61eed15256ae7ac069cf79
5
5
  SHA512:
6
- metadata.gz: 1360cf3d1f26031a4148b60ced541a31dbbb2d9d4714bde838025a8ce55963aae5cbdb4c24f5d538b2f568b08b3c2a50641e646f1ee1381284bf74581167811a
7
- data.tar.gz: d6b6fe8f449d19aa9538b173b01d46d4fd30957b28418d608db74152a8300a748d0565514e35538073e9ebb3502f8fd67537f987c2cf7ad8773dbddd301b6587
6
+ metadata.gz: 68b2fb9ad042f6c2dbca75ef28eae042d2df7a4a34371637e94b6e71ceae060157a8a0c3706d44fcbced43db9bb2ca3efcda03d95716fdcee693b49371dc3f11
7
+ data.tar.gz: 58f602f002d910d26c07563a82c4d10a95b06cc2be2fc05f0fac13a1c23cfb4030f499321652ec8d2a09489c8465e0859cb1f6495b9070f7a1ebaae05d7df216
data/Rakefile CHANGED
@@ -1,13 +1,12 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
2
  require 'rake/testtask'
3
- require "rake/extensiontask"
3
+ require 'rake/extensiontask'
4
4
 
5
5
  Rake::TestTask.new do |t|
6
6
  t.libs << 'test'
7
7
  t.pattern = 'test/test_*.rb'
8
8
  end
9
9
 
10
- Rake::ExtensionTask.new "ipconverter" do |ext|
11
- ext.lib_dir = "lib/ipconverter"
10
+ Rake::ExtensionTask.new 'ipconverter' do |ext|
11
+ ext.lib_dir = 'lib/ipconverter'
12
12
  end
13
-
data/bench.rb CHANGED
@@ -10,8 +10,8 @@ def ip_to_i2(ip)
10
10
  octets = ip.split('.').map(&:to_i)
11
11
  octets[3] +
12
12
  octets[2] * 256 +
13
- octets[1] * 256*256 +
14
- octets[0] * 256*256*256
13
+ octets[1] * 256 * 256 +
14
+ octets[0] * 256 * 256 * 256
15
15
  end
16
16
 
17
17
  def ipaddr_to_i(ip)
@@ -29,13 +29,12 @@ ips = []
29
29
  end
30
30
  end
31
31
 
32
- puts "iterations: " + ips.length
32
+ puts 'iterations: ' + ips.length
33
33
 
34
34
  Benchmark.bmbm do |x|
35
35
  x.report('IPAddr#to_i') { ips.each { |ip| IPAddr.new(ip).to_i } }
36
36
  x.report('pack/unpack') { ips.each { |ip| ip_to_i(ip) } }
37
37
  x.report('split/multiply') { ips.each { |ip| ip_to_i2(ip) } }
38
- x.report('C split/multiply') { ips.each {|ip| IpConverter.str_to_int(ip) } }
39
- x.report('noop') { ips.each {|ip| ip } }
38
+ x.report('C split/multiply') { ips.each { |ip| IpConverter.str_to_int(ip) } }
39
+ x.report('noop') { ips.each { |ip| ip } }
40
40
  end
41
-
@@ -1,5 +1,4 @@
1
1
  require 'mkmf'
2
2
  extension_name = 'ipconverter'
3
- $CFLAGS << ' -I. '
4
3
  dir_config(extension_name)
5
4
  create_makefile(extension_name)
@@ -9,8 +9,20 @@ void Init_ipconverter() {
9
9
  rb_define_method(IpConverter, "str_to_int", method_str_to_int, 1);
10
10
  }
11
11
 
12
- // Converts a passed ruby string into an integer
13
- // returns integer or nil (if ip is invalid)
12
+ /*
13
+ * call-seq:
14
+ * IpConverter.str_to_int(ip_addr_string) -> Fixnum
15
+ *
16
+ * Converts the passed IP address String into a Fixnum.
17
+ *
18
+ * Raises ArgumentError if ip address is not valid. Leading and trailing
19
+ * whitespace is ignored.
20
+ *
21
+ * Example:
22
+ * IpConverter.str_to_int("192.168.2.1")
23
+ * => 3232236033
24
+ *
25
+ */
14
26
  VALUE method_str_to_int(VALUE _module_, VALUE ip_string) {
15
27
 
16
28
  // C string version of the ip_string
data/ipconverter.gemspec CHANGED
@@ -6,23 +6,24 @@ $LOAD_PATH.unshift(ext) unless $LOAD_PATH.include?(ext)
6
6
  require 'ipconverter/version'
7
7
 
8
8
  Gem::Specification.new do |spec|
9
- spec.name = "ipconverter"
9
+ spec.name = 'ipconverter'
10
10
  spec.version = IpConverter::VERSION
11
- spec.authors = ["Joshua Scott"]
12
- spec.email = ["joshua.scott@gmail.com"]
13
- spec.summary = %q{Utilities for working with IP addresses}
14
- spec.description = %q{Fast C extension for converting IP addresses from string to integer}
15
- spec.homepage = "http://github.com/joshuawscott/ipconverter"
16
- spec.license = "MIT"
11
+ spec.authors = ['Joshua Scott']
12
+ spec.email = ['joshua.scott@gmail.com']
13
+ spec.summary = 'Utilities for working with IP addresses'
14
+ spec.description = %q(Fast C extension for converting IP addresses from
15
+ string to integer)
16
+ spec.homepage = 'http://github.com/joshuawscott/ipconverter'
17
+ spec.license = 'MIT'
17
18
 
18
19
  spec.files = `git ls-files -z`.split("\x0")
19
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
21
  spec.extensions = ['ext/ipconverter/extconf.rb']
21
22
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
- spec.require_paths = ["lib", "ext"]
23
+ spec.require_paths = %w(lib ext)
23
24
 
24
- spec.add_development_dependency "bundler", "~> 1.6"
25
- spec.add_development_dependency "rake", "~> 10"
26
- spec.add_development_dependency "minitest", "~> 5"
27
- spec.add_development_dependency 'rake-compiler', "~> 0.9"
25
+ spec.add_development_dependency 'bundler', '~> 1.6'
26
+ spec.add_development_dependency 'rake', '~> 10'
27
+ spec.add_development_dependency 'minitest', '~> 5'
28
+ spec.add_development_dependency 'rake-compiler', '~> 0.9'
28
29
  end
data/lib/ipconverter.rb CHANGED
@@ -1,6 +1,11 @@
1
- require "ipconverter/version"
2
- require "ipconverter/ipconverter"
1
+ require 'ipconverter/version'
2
+ require 'ipconverter/ipconverter'
3
3
 
4
+ # Contains the methods for doing IP Address conversions
5
+ #
6
+ # Example:
7
+ # IpConverter.str_to_int('192.168.2.1') # 3232236033
8
+ #
4
9
  module IpConverter
5
10
  module_function :str_to_int
6
11
  end
@@ -1,3 +1,3 @@
1
1
  module IpConverter
2
- VERSION = "0.1.0"
2
+ VERSION = '0.1.1'
3
3
  end
@@ -6,34 +6,34 @@ class TestIpConverter < MiniTest::Test
6
6
  end
7
7
 
8
8
  def test_smallest_ip
9
- int = IpConverter.str_to_int "0.0.0.0"
9
+ int = IpConverter.str_to_int '0.0.0.0'
10
10
  assert_equal int, 0
11
11
  end
12
12
 
13
13
  def test_largest_ip
14
- int = IpConverter.str_to_int "255.255.255.255"
14
+ int = IpConverter.str_to_int '255.255.255.255'
15
15
  # maximum 32-bit integer
16
16
  assert_equal int, 256 * 256 * 256 * 256 - 1
17
17
  end
18
18
 
19
19
  def test_handles_spaces
20
- int = IpConverter.str_to_int " 35.49.102.66 "
21
- assert_equal int, IpConverter.str_to_int("35.49.102.66")
20
+ int = IpConverter.str_to_int ' 35.49.102.66 '
21
+ assert_equal int, IpConverter.str_to_int('35.49.102.66')
22
22
  end
23
+
23
24
  def test_no_overflow
24
- assert_raises(ArgumentError) { IpConverter.str_to_int "12.12.0.256" }
25
+ assert_raises(ArgumentError) { IpConverter.str_to_int '12.12.0.256' }
25
26
  end
26
27
 
27
28
  def test_short_ip
28
- assert_raises(ArgumentError) { IpConverter.str_to_int "12.34.56" }
29
+ assert_raises(ArgumentError) { IpConverter.str_to_int '12.34.56' }
29
30
  end
30
31
 
31
32
  def test_long_ip
32
- assert_raises(ArgumentError) { IpConverter.str_to_int "12.34.56.78.90" }
33
+ assert_raises(ArgumentError) { IpConverter.str_to_int '12.34.56.78.90' }
33
34
  end
34
35
 
35
36
  def test_junk
36
- assert_raises(ArgumentError) { IpConverter.str_to_int "junk" }
37
+ assert_raises(ArgumentError) { IpConverter.str_to_int 'junk' }
37
38
  end
38
-
39
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ipconverter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Scott
@@ -66,7 +66,9 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.9'
69
- description: Fast C extension for converting IP addresses from string to integer
69
+ description: |-
70
+ Fast C extension for converting IP addresses from
71
+ string to integer
70
72
  email:
71
73
  - joshua.scott@gmail.com
72
74
  executables: []