| QUOTED_GEM_NAME |
= |
/(?:(?<gq>["'])(?<name>#{GEM_NAME})\k<gq>|%q<(?<name>#{GEM_NAME})>)/ |
| VERSION |
= |
/[0-9]+(?:\.[a-zA-Z0-9]+)*/ |
| REQUIREMENT |
= |
/[ \t]*(?:#{MATCHER}[ \t]*)?#{VERSION}[ \t]*/ |
| REQUIREMENT_LIST |
= |
/(?<qr1>["'])(?<req1>#{REQUIREMENT})\k<qr1>(?:[ \t]*,[ \t]*(?<qr2>["'])(?<req2>#{REQUIREMENT})\k<qr2>)?/ |
| REQUIREMENTS |
= |
/(?:#{REQUIREMENT_LIST}|\[[ \t]*#{REQUIREMENT_LIST}[ \t]*\])/ |
| KEY |
= |
/(?::\w+|:?"\w+"|:?'\w+')/ |
| SYMBOL |
= |
/(?::\w+|:"[^"#]+"|:'[^']+')/ |
| ELEMENT |
= |
/(?:#{SYMBOL}|#{STRING})/ |
| ARRAY |
= |
/\[(?:#{ELEMENT}(?:[ \t]*,[ \t]*#{ELEMENT})*)?\]/ |
| VALUE |
= |
/(?:#{BOOLEAN}|#{NIL}|#{ELEMENT}|#{ARRAY}|)/ |
| PAIR |
= |
/(?:(#{KEY})[ \t]*=>[ \t]*(#{VALUE})|(\w+):[ \t]+(#{VALUE}))/ |
| OPTIONS |
= |
/#{PAIR}(?:[ \t]*,[ \t]*#{PAIR})*/ |
| GEM_CALL |
= |
/^[ \t]*gem\(?[ \t]*#{QUOTED_GEM_NAME}(?:[ \t]*,[ \t]*#{REQUIREMENT_LIST})?(?:[ \t]*,[ \t]*(?<opts>#{OPTIONS}))?[ \t]*\)?[ \t]*#{COMMENT}$/ |
| SYMBOLS |
= |
/#{SYMBOL}([ \t]*,[ \t]*#{SYMBOL})*/ |
| GROUP_CALL |
= |
/^(?<i1>[ \t]*)group\(?[ \t]*(?<grps>#{SYMBOLS})[ \t]*\)?[ \t]+do[ \t]*?\n(?<blk>.*?)\n^\k<i1>end[ \t]*$/m |
| GIT_CALL |
= |
/^(?<i1>[ \t]*)git[ \(][^\n]*?do[ \t]*?\n(?<blk>.*?)\n^\k<i1>end[ \t]*$/m |
| PATH_CALL |
= |
/^(?<i1>[ \t]*)path[ \(][^\n]*?do[ \t]*?\n(?<blk>.*?)\n^\k<i1>end[ \t]*$/m |
| GEMSPEC_CALL |
= |
/^[ \t]*gemspec(?:\(?[ \t]*(?<opts>#{OPTIONS}))?[ \t]*\)?[ \t]*$/ |
| ADD_DEPENDENCY_CALL |
= |
/^[ \t]*\w+\.add(?<type>_runtime|_development)?_dependency\(?[ \t]*#{QUOTED_GEM_NAME}(?:[ \t]*,[ \t]*#{REQUIREMENTS})?[ \t]*\)?[ \t]*#{COMMENT}$/ |