Module: Xqsr3::HashUtilities::KeyMatching
- Defined in:
- lib/xqsr3/hash_utilities/key_matching.rb
Overview
include-able module that provides ::has_match?, #has_match?, ::match, and #match methods
Class Method Summary collapse
-
.do_has_match_(h, re, **options) ⇒ Object
:nodoc:.
-
.do_match_(h, re, **options) ⇒ Object
:nodoc:.
-
.has_match?(h, re, **options) ⇒ Boolean
Returns true if the hash
hcontains a key object that matches the givenre, according to the given options. -
.match(h, re, **options) ⇒ Object
Retrieves the value object corresponding to the first key object that matches the given
re, in the hashh, according to the given options.
Instance Method Summary collapse
-
#has_match?(h, re, **options) ⇒ Boolean
Returns true if the hash
hcontains a key object that matches the givenre, according to the given options. -
#match(h, re, **options) ⇒ Object
Retrieves the value object corresponding to the first key object that matches the given
re, in the hashh, according to the given options.
Class Method Details
.do_has_match_(h, re, **options) ⇒ Object
:nodoc:
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
# File 'lib/xqsr3/hash_utilities/key_matching.rb', line 102 def self.do_has_match_ h, re, ** # :nodoc: ::Xqsr3::Quality::ParameterChecking.check_parameter h, 'h', responds_to: [ :[], :has_key?, :each ] return true if h.has_key? re case re when ::Regexp h.each do |k, v| case k when ::Regexp next else return true if k.to_s =~ re end end else h.each do |k, v| case k when ::Regexp return true if re.to_s =~ k else next end end end false end |
.do_match_(h, re, **options) ⇒ Object
:nodoc:
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/xqsr3/hash_utilities/key_matching.rb', line 64 def self.do_match_ h, re, ** # :nodoc: ::Xqsr3::Quality::ParameterChecking.check_parameter h, 'h', responds_to: [ :[], :has_key?, :each ] return h[re] if h.has_key? re case re when ::Regexp h.each do |k, v| case k when ::Regexp next else return v if k.to_s =~ re end end else h.each do |k, v| case k when ::Regexp return v if re.to_s =~ k else next end end end nil end |
.has_match?(h, re, **options) ⇒ Boolean
Returns true if the hash h contains a key object that matches the given re, according to the given options
151 152 153 154 |
# File 'lib/xqsr3/hash_utilities/key_matching.rb', line 151 def self.has_match? h, re, ** Xqsr3::HashUtilities::KeyMatching.do_has_match_ h, re, ** end |
.match(h, re, **options) ⇒ Object
Retrieves the value object corresponding to the first key object that matches the given re, in the hash h, according to the given options.
144 145 146 147 |
# File 'lib/xqsr3/hash_utilities/key_matching.rb', line 144 def self.match h, re, ** Xqsr3::HashUtilities::KeyMatching.do_match_ h, re, ** end |
Instance Method Details
#has_match?(h, re, **options) ⇒ Boolean
Returns true if the hash h contains a key object that matches the given re, according to the given options
166 167 168 169 |
# File 'lib/xqsr3/hash_utilities/key_matching.rb', line 166 def has_match? h, re, ** Xqsr3::HashUtilities::KeyMatching.do_has_match_ h, re, ** end |
#match(h, re, **options) ⇒ Object
Retrieves the value object corresponding to the first key object that matches the given re, in the hash h, according to the given options.
159 160 161 162 |
# File 'lib/xqsr3/hash_utilities/key_matching.rb', line 159 def match h, re, ** Xqsr3::HashUtilities::KeyMatching.do_match_ h, re, ** end |