ip_in_range 1.0 → 1.05

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: f78cc554313b637067339aa2d806c605b6b7c585281fda8b8cdea2cc8362b7cc
4
- data.tar.gz: 69f993155150a984ff2adb49690d6e4da65bc5d550ce28c754a6a9142450da8c
3
+ metadata.gz: 353a2d86f7e263a1905e030d0c5e8006c1ee4d5bcbd140a23f74c3e8d02acecb
4
+ data.tar.gz: 1b4ef7718d85e4536515e763e7d858adaa4d083945dfe3df2b65a61729f0705d
5
5
  SHA512:
6
- metadata.gz: 6181974367f0bed559cd03efad8795f06476e610f847d72fa8b9896f70d70d2c7937d5b6010d3c3e343ea966281b9cbbe1aa8d8cf7e44f937ce0d444c8f8da11
7
- data.tar.gz: 5ec959d9ce03441472a4a9da6f67a61c8ecfdc6f3e7d452d88292fdf48a284b0f024c8e2f404bd5f906029de234b08f849af569b5e7949c6e7e6983b0d104055
6
+ metadata.gz: 21c1e2a1395bd9df2b520beda3a1420666ef7a3d612a887258221262da80b9e0c139f85c80a0e6849909709ca53e1649eaf99c432c7c60d16acf07d260ffc833
7
+ data.tar.gz: 4c30b698d81a4dc459d7366f3c46ef33a528fe74163e8baa0ca3f662eb479b48315f76da9f39f9e5d72a185624e9708f45deadd2bb5c1898befd0f194eb78034
data/README.md CHANGED
@@ -5,7 +5,7 @@ To test on address:
5
5
  > **ip_in_range first_in_range last_in_range ip_to_check**
6
6
 
7
7
  To verify Received-headers:
8
- > **ip_in_range < [email] first_in_range last_in_range
8
+ > **ip_in_range < [email] first_in_range last_in_range**
9
9
 
10
10
  or
11
11
  > **ip_in_range < [email] [range_list.txt]**
data/bin/ip_in_range CHANGED
@@ -100,7 +100,7 @@ elsif ARGV.length == 1
100
100
  isso = ip_range.in_range?(ip)
101
101
  msg = 'ip ' << ip << (isso ? ' is ' : ' is not ' ) << 'in range: ' << l
102
102
  if isso
103
- info("\n" + msg)
103
+ info("\nidentified IP: " + msg)
104
104
  else
105
105
  debug(msg)
106
106
  end
data/ip_in_range.gemspec CHANGED
@@ -14,4 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.executables = 'ip_in_range'
15
15
  s.license = 'Nonstandard'
16
16
  s.required_ruby_version = '>= 3.0'
17
+ s.requirements = 'mail'
18
+ s.add_runtime_dependency 'mail', '~> 2.8', '>= 2.8.1'
19
+
17
20
  end
data/lib/basic_logging.rb CHANGED
@@ -2,8 +2,7 @@
2
2
  #encoding: UTF-8
3
3
  =begin
4
4
  /***************************************************************************
5
- * ©2013-2023, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
- * *
5
+ * 2023-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
7
6
  * This program is free software; you can redistribute it and/or modify *
8
7
  * it under the terms of the WTFPL 2.0 or later, see *
9
8
  * http://www.wtfpl.net/about/ *
@@ -19,10 +18,6 @@
19
18
  # Simplified logging.
20
19
  # See example code at the bottom of this file.
21
20
  # Execute this file to see the output.
22
- #
23
-
24
- #require 'time'
25
-
26
21
  module BasicLogging
27
22
 
28
23
  DEBUG = 0
@@ -53,14 +48,19 @@ module BasicLogging
53
48
 
54
49
  # set the log level
55
50
  def set_level(lv)
56
- if lv.respond_to?(:to_str)
51
+ if lv.respond_to?(:to_str) && Levels.keys.include?(lv.strip.to_sym)
57
52
  lv = Levels[lv.to_sym]
53
+ elsif lv.respond_to?(:to_sym) && Levels.keys.include?(lv)
54
+ lv = Levels[lv]
58
55
  end
56
+
59
57
  if(!lv || (lv.respond_to?(:to_int) && lv >= DEBUG && lv <= FATAL) )
60
58
  @@log_level = lv
61
59
  else
62
- STDERR.puts __FILE__.dup << ": ERROR : invalid log level \"" << lv.to_s << "\""
63
- STDERR.puts "Keepinng old log level " << Levels.keys.detect {| k| Levels[k] == @@log_level}.to_s
60
+ msg = __FILE__.dup << ": ERROR : invalid log level \"" << lv.to_s << "\""
61
+ msg << "\n" << "Keepinng old log level " << Levels.keys.detect {| k| Levels[k] == @@log_level}.to_s
62
+ STDERR.puts msg
63
+ puts msg
64
64
  end
65
65
  end
66
66
 
@@ -70,6 +70,8 @@ module BasicLogging
70
70
  @@target = tg
71
71
  elsif(!File::exist?(tg) || ( File.file?(tg) && File.writable?(tg) ) )
72
72
  @@target = File.open(tg, 'w+')
73
+ elsif !tg || tg.respond_to?(:to_str) && tg.strip.empty?
74
+ @@target = nil
73
75
  else
74
76
  STDERR.puts __FILE__.dup << ': ERROR : target ' << tg << ' cannot be set'
75
77
  STDERR.puts "Keeping old target " << @@target.inspect
@@ -93,21 +95,52 @@ module BasicLogging
93
95
  end
94
96
  end
95
97
 
98
+ def target
99
+ @@target.path if @@target
100
+ end
101
+
102
+ def level
103
+ @@log_level.to_s if @@log_level
104
+ end
105
+
106
+ # Clear the log (-file)
107
+ def clear_log
108
+ if @@target && @@target.respond_to?(:truncate)
109
+ lock_target{ @@target.truncate(0) }
110
+ end
111
+ end
112
+
96
113
  alias :debug :log
97
114
  alias :info :log
98
115
  alias :warn :log
99
116
  alias :error :log
100
117
  alias :fatal :log
101
118
 
102
- attr_reader :target, :log_level
103
119
 
104
120
  private
105
121
 
122
+ def lock_target(&block)
123
+ begin
124
+ if @@target.respond_to?(:flock)
125
+ @@target.flock(File::LOCK_EX)
126
+ block.call
127
+ @@target.flock(File::LOCK_UN)
128
+ elsif @@target.respond_to?(:to_io)
129
+ block.call
130
+ end
131
+ rescue => ex
132
+ STDERR.puts __FILE__.dup << ": ERROR : cannot lock target (" << ex.message << ")"
133
+ end
134
+ end
135
+
106
136
  # 1 format_log for all loggers.
107
137
  def format_log(message, mlevel)
108
- # indicate if a registered class or the registered object of a class is calling.
109
- name = self.class == Class ? self.name.dup << ' [class]' : self.class.name
110
- @@target.puts '' << name << ' ' << mlevel.to_s << ' ' << Time.now.strftime("%H:%M:%S:%6N") << ': ' << message
138
+ if @@target
139
+ clname = self.class.name
140
+ # indicate if a registered class or the registered object of a class is calling.
141
+ name = self.class == Class ? self.name.dup << ' [class]' : (clname != 'Object' ? clname : 'Top-Level')
142
+ lock_target{@@target.puts '' << name << ' ' << mlevel.to_s << ' ' << Time.now.strftime("%H:%M:%S:%6N") << ': ' << message.gsub("\n", "\n |")}
143
+ end
111
144
  end
112
145
  end
113
146
  #---------test: execute file----------
data/lib/file_checking.rb CHANGED
@@ -14,7 +14,7 @@
14
14
  ***************************************************************************/
15
15
  =end
16
16
 
17
- require 'filemagic'
17
+ # require 'filemagic'
18
18
 
19
19
  =begin
20
20
  A module to facilitate frequently occuring checks on
@@ -86,7 +86,7 @@ module File_Checking
86
86
  end
87
87
  return nil
88
88
  end
89
-
89
+ =begin
90
90
  def self.magic_check(file, magic)
91
91
  fm = FileMagic.fm
92
92
  fd = fm.fd(File.new(file) ).split(';')[0]
@@ -95,7 +95,7 @@ module File_Checking
95
95
  end
96
96
  return nil
97
97
  end
98
-
98
+ =end
99
99
  end # module
100
100
 
101
101
  =begin
@@ -107,7 +107,6 @@ msg = file_check('some_file.txt', [:exist?, :readable?, 'writable'])
107
107
  # msg = file_check('some_file.txt', [:exist, :readable, 'writable?'])
108
108
 
109
109
  msg ||= magic_check('some_file.txt', [:type?], 'OpenDocument Text'
110
- msg ||= mime_check('some_file.txt', [:mime?], 'application/vnd.oasis.opendocument.text'
111
110
  puts msg if msg
112
111
  =end
113
112
  # E O F
data/lib/ip_range.rb CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  require_relative 'basic_logging'
20
20
  class IPRange
21
- extend BasicLogging
21
+ include BasicLogging
22
22
 
23
23
  private
24
24
 
@@ -54,7 +54,8 @@ class IPRange
54
54
  #last IP
55
55
  @last = ip_to_number args[1]
56
56
  if @last && @first && ( @last < @first )
57
- error('ERROR! Last IP is smaller than first. Aborting!')
57
+ error('ERROR! Last IP is smaller than the first (' << @first.to_s << ' - ' << @last.to_s << ')')
58
+ error('Aborting!')
58
59
  exit false
59
60
  end
60
61
  @vrange = args[0,2]
@@ -66,6 +67,8 @@ end
66
67
  ######### TEST #############
67
68
  if __FILE__ == $0
68
69
  rg = IPRange.new(['192.168.2.33', '192.168.255.150'])
70
+ #### ERROR :
71
+ # rg = IPRange.new(['23.122.9.11', '23.122.8.11'])
69
72
  puts rg.first
70
73
  puts rg.last
71
74
  puts rg.in_range? '192.168.1.35'
data/lib/version.rb CHANGED
@@ -13,8 +13,8 @@
13
13
  ***************************************************************************/
14
14
  =end
15
15
 
16
- VERSION = 1.0
17
- SUMMARY="New Logging module, new license, Readme for rubygems.org"
16
+ VERSION = 1.05
17
+ SUMMARY="list of dependencies corrected in the gemfile"
18
18
  AUTHORS=["Michael Uplawski@uplawski.eu"]
19
19
  EMAIL="michael.uplawski@uplawski.eu"
20
20
  AUTHORS_MAIL=["<michael.uplawski@uplawski.eu>"]
metadata CHANGED
@@ -1,15 +1,34 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ip_in_range
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: '1.05'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Uplawski@uplawski.eu
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-01-08 00:00:00.000000000 Z
12
- dependencies: []
10
+ date: 2025-02-19 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: mail
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.8'
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: 2.8.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '2.8'
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 2.8.1
13
32
  description: Verify that an IP is in a range
14
33
  email: "<michael.uplawski@uplawski.eu>"
15
34
  executables:
@@ -30,7 +49,6 @@ homepage: ''
30
49
  licenses:
31
50
  - Nonstandard
32
51
  metadata: {}
33
- post_install_message:
34
52
  rdoc_options: []
35
53
  require_paths:
36
54
  - lib
@@ -44,9 +62,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
44
62
  - - ">="
45
63
  - !ruby/object:Gem::Version
46
64
  version: '0'
47
- requirements: []
48
- rubygems_version: 3.4.20
49
- signing_key:
65
+ requirements:
66
+ - mail
67
+ rubygems_version: 3.6.3
50
68
  specification_version: 4
51
- summary: New Logging module, new license, Readme for rubygems.org
69
+ summary: list of dependencies corrected in the gemfile
52
70
  test_files: []