class GoonModelGen::Golang::Modifier
Constants
- PATTERN
Attributes
prefix[R]
target[R]
target_name[R]
Public Class Methods
new(prefix, target)
click to toggle source
# File lib/goon_model_gen/golang/modifier.rb, line 10 def initialize(prefix, target) @prefix = prefix case target when Type @target = target @target_name = target.name else @target = nil @target_name = target.to_s end end
parse(s) { |shift| ... }
click to toggle source
@param s [String] @return [Proc]
# File lib/goon_model_gen/golang/modifier.rb, line 47 def parse(s) parts = parse_expression(s) t = yield(parts.shift) return nil unless t parts.each do |part| t = new(part, t) end t end
parse_expression(s)
click to toggle source
@param s [String] @return [Array<String>]
# File lib/goon_model_gen/golang/modifier.rb, line 59 def parse_expression(s) m = s.match(PATTERN) m.nil? ? [s] : parse_expression(s.sub(PATTERN, '')) + [m[0]] end
Public Instance Methods
name()
click to toggle source
# File lib/goon_model_gen/golang/modifier.rb, line 26 def name prefix + target.name end
package()
click to toggle source
# File lib/goon_model_gen/golang/modifier.rb, line 22 def package target.package end
qualified_name(pkg2alias = nil)
click to toggle source
@param pkg2alias [Hash<String,String>] @return [string]
# File lib/goon_model_gen/golang/modifier.rb, line 32 def qualified_name(pkg2alias = nil) prefix + target.qualified_name(pkg2alias) end
resolve(pkgs)
click to toggle source
@param pkgs [Packages]
# File lib/goon_model_gen/golang/modifier.rb, line 37 def resolve(pkgs) return if target @target = pkgs.type_for(target_name) || raise("#{target_name.inspect} not found") end