Module: OnboardOnRails::Concerns::UrlMatchable
- Extended by:
- ActiveSupport::Concern
- Included in:
- Tour
- Defined in:
- app/models/onboard_on_rails/concerns/url_matchable.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.pattern_matches?(url, pattern) ⇒ Boolean
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/models/onboard_on_rails/concerns/url_matchable.rb', line 13 def self.pattern_matches?(url, pattern) return true if pattern.blank? if pattern.include?("\\") Regexp.new("\\A#{pattern}\\z").match?(url) else escaped = Regexp.escape(pattern) escaped = escaped.gsub("\\*\\*", "DOUBLE_STAR") escaped = escaped.gsub("\\*", "[^/]*") escaped = escaped.gsub("DOUBLE_STAR", ".*") Regexp.new("\\A#{escaped}\\z").match?(url) end end |
Instance Method Details
#matches_url?(url) ⇒ Boolean
6 7 8 9 10 11 |
# File 'app/models/onboard_on_rails/concerns/url_matchable.rb', line 6 def matches_url?(url) patterns = url_pattern.is_a?(Array) ? url_pattern : [url_pattern] return true if patterns.empty? patterns.any? { |pattern| url_matches_pattern?(url, pattern.to_s) } end |