Module: Opal::MagicComments
- Defined in:
- lib/opal/magic_comments.rb
Constant Summary collapse
- MAGIC_COMMENT_RE =
/\A# *(\w+) *: *(\S+.*?) *$/.freeze
- EMACS_MAGIC_COMMENT_RE =
/\A# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.freeze
Class Method Summary collapse
Class Method Details
.parse(sexp, comments) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/opal/magic_comments.rb', line 7 def self.parse(sexp, comments) flags = {} # We have an upper limit at the first line of code if sexp first_line = sexp.loc.line comments = comments.take(first_line) end comments.each do |comment| next if first_line && comment.loc.line >= first_line if (parts = comment.text.scan(MAGIC_COMMENT_RE)).any? || (parts = comment.text.scan(EMACS_MAGIC_COMMENT_RE)).any? parts.each do |key, value| flags[key.to_sym] = case value when 'true' then true when 'false' then false else value end end end end flags end |