Sha256: 441ef44189ada893418fd3d1cebe752f4607e6372db3d0cd8d01ea100913801f
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true class Sinclair # @api private # @author darthjee # # Class responsible for building methods class MethodBuilder autoload :Base, 'sinclair/method_builder/base' autoload :StringMethodBuilder, 'sinclair/method_builder/string_method_builder' autoload :BlockMethodBuilder, 'sinclair/method_builder/block_method_builder' autoload :CallMethodBuilder, 'sinclair/method_builder/call_method_builder' CLASS_METHOD = :class INSTANCE_METHOD = :instance # @param klass [Class] class to receive the method def initialize(klass) @klass = klass end # Builds methods # # @param definitions [MethodDefinitions] all methods # definitions to be built # @param type [Symbol] type of method to be built # # @return [MethodDefinitions] def build_methods(definitions, type) definitions.each do |definition| build_from_definition(definition, type) end end private attr_reader :klass # @method klass # @private # @api private # # class to receive the method # # @return [Class] # @private # # Build one method from definition # # @param definition [MethodDefinition] the method definition # @param type [Symbol] type of method to be built # # @return (see Base#build) def build_from_definition(definition, type) if definition.string? StringMethodBuilder.new(klass, definition, type: type).build elsif definition.block? BlockMethodBuilder.new(klass, definition, type: type).build else CallMethodBuilder.new(klass, definition, type: type).build end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sinclair-1.10.0 | lib/sinclair/method_builder.rb |