Class: JavaClass::Dsl::JavaNameFactory::TemporaryJavaNamePart
- Defined in:
- lib/javaclass/dsl/java_name_factory.rb
Overview
Private temporary result to continue collecting qualified name parts.
- Author
-
Peter Kofler
Instance Method Summary collapse
- #__unused_method_missing__ ⇒ Object
-
#initialize(history, &fail) ⇒ TemporaryJavaNamePart
constructor
Create a part with history package name so far that started in context instance.
- #method_missing(method_id, *args) ⇒ Object
Constructor Details
#initialize(history, &fail) ⇒ TemporaryJavaNamePart
Create a part with history package name so far that started in context instance.
50 51 52 53 |
# File 'lib/javaclass/dsl/java_name_factory.rb', line 50 def initialize(history, &fail) @history = history @context = fail end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_id, *args) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/javaclass/dsl/java_name_factory.rb', line 57 def method_missing(method_id, *args) str = method_id.id2name if JavaLanguage::RESERVED_WORDS.include?(str) @context.call elsif str =~ /^#{JavaLanguage::TYPE_REGEX}$/ # starts with an uppercase letter, this is a class JavaQualifiedName.new("#{@history}#{JavaLanguage::SEPARATOR}#{str}", &@context) elsif str == '*' # special syntax, ending with *, this is a package JavaPackageName.new("#{@history}") elsif str =~ JavaLanguage::PACKAGE_REGEX # starts with a lowercase letter, this is a package TemporaryJavaNamePart.new("#{@history}#{JavaLanguage::SEPARATOR}#{str}", &@context) else @context.call end end |
Instance Method Details
#__unused_method_missing__ ⇒ Object
55 |
# File 'lib/javaclass/dsl/java_name_factory.rb', line 55 alias :__unused_method_missing__ :method_missing |