Module: Arcp::ModelPattern
- Defined in:
- lib/arcp/credential.rb
Constant Summary collapse
- FLAGS =
File::FNM_PATHNAME | File::FNM_EXTGLOB
Class Method Summary collapse
- .glob?(pattern) ⇒ Boolean
- .implied_by?(parent_patterns, child_pattern) ⇒ Boolean
- .literal_match?(parent_pattern, child_pattern) ⇒ Boolean
- .match?(patterns, model_id) ⇒ Boolean
Class Method Details
.glob?(pattern) ⇒ Boolean
61 62 63 |
# File 'lib/arcp/credential.rb', line 61 def glob?(pattern) pattern.match?(/[*?\[\]{}]/) end |
.implied_by?(parent_patterns, child_pattern) ⇒ Boolean
51 52 53 54 55 |
# File 'lib/arcp/credential.rb', line 51 def implied_by?(parent_patterns, child_pattern) Array(parent_patterns).any? do |parent| child_pattern == parent || literal_match?(parent, child_pattern) end end |
.literal_match?(parent_pattern, child_pattern) ⇒ Boolean
57 58 59 |
# File 'lib/arcp/credential.rb', line 57 def literal_match?(parent_pattern, child_pattern) !glob?(child_pattern) && match?([parent_pattern], child_pattern) end |
.match?(patterns, model_id) ⇒ Boolean
47 48 49 |
# File 'lib/arcp/credential.rb', line 47 def match?(patterns, model_id) Array(patterns).any? { |pattern| File.fnmatch?(pattern, model_id, FLAGS) } end |