Class: Avm::EacRubyBase1::Sources::NamespaceReplacer
- Inherits:
-
Object
- Object
- Avm::EacRubyBase1::Sources::NamespaceReplacer
- Defined in:
- lib/avm/eac_ruby_base1/sources/namespace_replacer.rb
Instance Method Summary collapse
- #concat_regex(regexes) ⇒ Object
- #from_close ⇒ Object
- #from_open ⇒ Object
- #from_result ⇒ Object
- #to_close ⇒ Object
- #to_open ⇒ Object
- #to_result ⇒ Object
Instance Method Details
#concat_regex(regexes) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/avm/eac_ruby_base1/sources/namespace_replacer.rb', line 9 def concat_regex(regexes) r = regexes.first regexes[1..-1].each do |x| r = ::Regexp.new(r.source + x.source) end r end |
#from_close ⇒ Object
26 27 28 |
# File 'lib/avm/eac_ruby_base1/sources/namespace_replacer.rb', line 26 def from_close concat_regex(from.split('::').count.times.map { / *end *\n/m }) end |
#from_open ⇒ Object
21 22 23 24 |
# File 'lib/avm/eac_ruby_base1/sources/namespace_replacer.rb', line 21 def from_open concat_regex(from.split('::') .map { |v| / *(?:class|module) +#{::Regexp.quote(v)} *\n/m }) end |
#from_result ⇒ Object
17 18 19 |
# File 'lib/avm/eac_ruby_base1/sources/namespace_replacer.rb', line 17 def from_result /\n#{from_open.source}(.+)#{from_close.source}/m end |
#to_close ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/avm/eac_ruby_base1/sources/namespace_replacer.rb', line 42 def to_close parts = to.split('::') s = '' parts.each_with_index do |_part, index| tabc = (parts.count - 1 - index) tabc -= 1 if index.zero? s += (' ' * tabc) + "end\n" end s end |
#to_open ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/avm/eac_ruby_base1/sources/namespace_replacer.rb', line 34 def to_open s = '' to.split('::').each_with_index do |part, index| s += (' ' * index) + "module #{part}\n" end s end |
#to_result ⇒ Object
30 31 32 |
# File 'lib/avm/eac_ruby_base1/sources/namespace_replacer.rb', line 30 def to_result "\n\n#{to_open}\\1#{to_close}" end |