Sha256: aeb683a149c646b86c9e616cbfe8a85624c1e134672bb3ce1a74a95f5b8b2456
Contents?: true
Size: 596 Bytes
Versions: 2
Compression:
Stored size: 596 Bytes
Contents
class Sinclair::MethodDefinition attr_reader :name, :code, :block def initialize(name, code = nil, &block) @name = name @code = code @block = block end def build(clazz) if code.is_a?(String) build_code_method(clazz) else build_block_method(clazz) end end private def build_block_method(clazz) clazz.send(:define_method, name, block) end def build_code_method(clazz) clazz.module_eval(code_definition, __FILE__, __LINE__ + 1) end def code_definition <<-CODE def #{name} #{code} end CODE end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sinclair-1.1.0 | lib/sinclair/method_definition.rb |
sinclair-1.0.0 | lib/sinclair/method_definition.rb |