check_names 0.2.0 → 0.3.0

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: 1d0cf11e9076de1fa47bd7958d036569900222f8ffbe9aefd86e4cee94fdaa2c
4
- data.tar.gz: 0d3450cd0d9825a3d99d7169df84a321203ed85a516587ac974b7bc361d59fa2
3
+ metadata.gz: 4cb09b3fed90bd9fa021f047530c0caa584f03b077c73a048dfd60fe6e059a97
4
+ data.tar.gz: d90ea5f678f36bd1e6144fba95cfcb9a5136dcd7f63b3ef31a60fbe8e89ab74b
5
5
  SHA512:
6
- metadata.gz: a57acda4efb147a008062b2660ff1473ae93b7a499d6cc425c386c9eae69177692193a52c3fa576ecb4d82c857c71b450436a7965debc3d30e5cc3398494b8a8
7
- data.tar.gz: 830e2e02569026fd527180a71f786d975d9ca7c258655955f59cc74f513a4e50a153a0523a92d83a444197f1771186488f9896e5325faa567ae1eab7a40f7e96
6
+ metadata.gz: 8b4baf708e2ef476305f901103ec360809a4ca79c299a81ed6b4d241c19649d6e0600ee8eba41820f506a9329cf1d230ab1a11cd16845748f0615e74bdb25918
7
+ data.tar.gz: 730e74250b8f7c7ddb87fcc42fb683edc60e80fb1b25001e6c399b9705d95643c5798e20daa2170772b4cb3117b590b9a4e58f248c6ef400aeebf52b491a123e
data/exe/check_names CHANGED
@@ -40,6 +40,8 @@ The following options are available:
40
40
 
41
41
  --help -h Print this help information
42
42
  --quiet -q Suppress messages about the status of the name check
43
+ --all -a Normally, check_names stops at the first use it finds.
44
+ With --all, it checks and reports every use
43
45
  HELP
44
46
  end
45
47
 
@@ -47,16 +49,34 @@ def main(args)
47
49
  args = args.map { |arg| arg.downcase }
48
50
  quiet = args.index { |arg| %w{-q --quiet}.include?(arg) }
49
51
  args.delete_at(quiet) if quiet
52
+ all = args.index { |arg| %w{-a --all}.include?(arg) }
53
+ args.delete_at(all) if all
50
54
  if args.size == 0 || %w{-h --help help}.include?(args.first)
51
55
  show_help
52
56
  exit
53
57
  end
58
+
59
+ if all
60
+ results = GemName.check_names_all(*args)
61
+ else
62
+ results = GemName.check_names(*args)
63
+ end
64
+
54
65
  rc = 0
55
- args.each do |arg|
56
- status = GemName.check(arg)
57
- puts "#{arg}: #{status[:message]}." unless quiet
58
- rc = status[:rc] if status[:rc] > rc
66
+
67
+ types = []
68
+ results.each.with_index(1) do |result, count|
69
+ types << result[:description] if result[:result]
70
+ rc = result[:check] if result[:check] > rc
71
+ if count >= results.size || results[count][:name] != result[:name]
72
+ unless quiet
73
+ types << "Unused" if types.size == 0
74
+ puts "#{result[:name]}: #{types.join(', ')}"
75
+ end
76
+ types = []
77
+ end
59
78
  end
79
+ rc = 1 if rc > 0 && (all || args.size > 1)
60
80
  exit(rc)
61
81
  end
62
82
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CheckNames
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
 
6
6
  def self.version
7
7
  VERSION
data/lib/check_names.rb CHANGED
@@ -51,26 +51,64 @@ module GemName
51
51
  Module.const_defined?(class_name)
52
52
  end
53
53
 
54
- def self.check(name)
55
- name = name.downcase
56
- if ruby_gem_exists?(name)
57
- return {rc: 1, message: "A Gem on RubyGems"}
58
- end
59
- if github_repository_exists?(name)
60
- return {rc: 2, message: "A personal Github repository"}
54
+ CHECK_METHODS = [
55
+ {method: nil, description: "Unused"}, # 0
56
+ {method: :ruby_gem_exists?, description: "RubyGem"}, # 1
57
+ {method: :github_repository_exists?, description: "Github repository"}, # 2
58
+ {method: :executable_exists?, description: "Executable"}, # 3
59
+ {method: :function_exists?, description: "Function"}, # 4
60
+ {method: :alias_exists?, description: "Alias"}, # 5
61
+ {method: :standard_class_exists?, description: "Class"} # 6
62
+ ]
63
+
64
+ def self.unused_result
65
+ {check: 0, description: CHECK_METHODS[0][:description], result: true}
66
+ end
67
+
68
+ def self.check_name_once(check, name)
69
+ method = CHECK_METHODS[check] && CHECK_METHODS[check][:method]
70
+ if method
71
+ result = {check: check, description: CHECK_METHODS[check][:description], result: send(method, name)}
72
+ else
73
+ result = unused_result.dup
61
74
  end
62
- if executable_exists?(name)
63
- return {rc: 3, message: "An executable"}
75
+ result[:name] = name
76
+ result
77
+ end
78
+
79
+ def self.check_name(name)
80
+ name = name.downcase
81
+ result = unused_result.dup
82
+ (1...(CHECK_METHODS.size)).each do |check|
83
+ res = check_name_once(check, name)
84
+ if res[:result]
85
+ result = res
86
+ break
87
+ end
64
88
  end
65
- if function_exists?(name)
66
- return {rc: 4, message: "A function"}
89
+ result[:name] = name
90
+ result
91
+ end
92
+
93
+ def self.check_name_all(name)
94
+ (1...(CHECK_METHODS.size)).map do |check|
95
+ check_name_once(check, name)
67
96
  end
68
- if alias_exists?(name)
69
- return {rc: 5, message: "An alias"}
97
+ end
98
+
99
+ def self.check_names(*names)
100
+ results = []
101
+ names.each do |name|
102
+ results << check_name(name)
70
103
  end
71
- if standard_class_exists?(name)
72
- return {rc: 6, message: "A Ruby class"}
104
+ results
105
+ end
106
+
107
+ def self.check_names_all(*names)
108
+ results = []
109
+ names.each do |name|
110
+ results += check_name_all(name)
73
111
  end
74
- {rc: 0, message: "Available"}
112
+ results
75
113
  end
76
114
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: check_names
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard LeBer