Class: Linguistics::LanguageProxyClass
Overview
Template class – is cloned and
Class Attribute Summary collapse
-
.langmod ⇒ Object
Returns the value of attribute langmod.
Instance Method Summary collapse
-
#initialize(receiver) ⇒ LanguageProxyClass
constructor
Create a new LanguageProxy for the given
receiver
. -
#inspect ⇒ Object
Returns a human-readable representation of the languageProxy for debugging, logging, etc.
-
#method_missing(sym, *args) ⇒ Object
Autoload linguistic methods defined in the module this object’s class uses for inflection.
-
#respond_to?(sym) ⇒ Boolean
Overloaded to take into account the proxy method.
Constructor Details
#initialize(receiver) ⇒ LanguageProxyClass
Create a new LanguageProxy for the given receiver
.
65 66 67 |
# File 'lib/linguistics.rb', line 65 def initialize( receiver ) @receiver = receiver end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args) ⇒ Object
Autoload linguistic methods defined in the module this object’s class uses for inflection.
82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/linguistics.rb', line 82 def method_missing( sym, *args ) return super unless self.class.langmod.respond_to?( sym ) self.class.module_eval %{ def #{sym}( *args, &block ) self.class.langmod.#{sym}( @receiver, *args, &block ) end }, "{Autoloaded: " + __FILE__ + "}", __LINE__ self.method( sym ).call( *args ) end |
Class Attribute Details
.langmod ⇒ Object
Returns the value of attribute langmod.
60 61 62 |
# File 'lib/linguistics.rb', line 60 def langmod @langmod end |
Instance Method Details
#inspect ⇒ Object
Returns a human-readable representation of the languageProxy for debugging, logging, etc.
97 98 99 100 101 102 103 |
# File 'lib/linguistics.rb', line 97 def inspect "<%s languageProxy for %s object %s>" % [ self.class.langmod.language, @receiver.class.name, @receiver.inspect, ] end |
#respond_to?(sym) ⇒ Boolean
Overloaded to take into account the proxy method.
75 76 77 |
# File 'lib/linguistics.rb', line 75 def respond_to?( sym ) self.class.langmod.respond_to?( sym ) || super end |