Class: EnchantedQuill::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/enchanted_quill/parser.rb

Constant Summary collapse

CATEGORY_REGEX =
"(?:^|\\s|$)(\\{.*?\\})"
HASHTAG_REGEX =
"(?:^|\\s|$)#[\\p{L}0-9_]*"
MENTION_REGEX =
"(?:^|\\s|$|[.])@[\\p{L}0-9_]*"
URL_REGEX =
"(^|[\\s.:;?\\-\\]<\\(])" +
"((https?://|www\\.|pic\\.)[-\\w;/?:@&=+$\\|\\_.!~*\\|'()\\[\\]%#,☺]+[\\w/#](\\(\\))?)" +
"(?=$|[\\s',\\|\\(\\).:;?\\-\\[\\]>\\)])"
TYPE_WITH_REGEX =
{
  url:      URL_REGEX,
  hashtag:  HASHTAG_REGEX,
  mention:  MENTION_REGEX,
  category: CATEGORY_REGEX
}

Class Method Summary collapse

Class Method Details

.parse_elements_for(type, text, range) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/enchanted_quill/parser.rb', line 17

def self.parse_elements_for(type, text, range)
  regex = TYPE_WITH_REGEX[type]
  return [] unless regex

  regex = NSRegularExpression.alloc.initWithPattern(regex, options: NSRegularExpressionCaseInsensitive, error: nil)
  regex.matchesInString(text, options: 0, range: range)
end