Module: Arcp::ModelPattern

Defined in:
lib/arcp/credential.rb

Constant Summary collapse

FLAGS =
File::FNM_PATHNAME | File::FNM_EXTGLOB

Class Method Summary collapse

Class Method Details

.glob?(pattern) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/arcp/credential.rb', line 61

def glob?(pattern)
  pattern.match?(/[*?\[\]{}]/)
end

.implied_by?(parent_patterns, child_pattern) ⇒ Boolean

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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