Sha256: d3989462faec77b14b85c0f1dc902dbdc7f2a9dbcc430609e911655f770901fa

Contents?: true

Size: 427 Bytes

Versions: 9

Compression:

Stored size: 427 Bytes

Contents

module Ree::RSpecLinkDSL
  def link(obj_name, as: nil, from:)
    obj = Ree.container.compile(from, obj_name)

    if obj.nil?
      raise Ree::Error.new("object :#{obj_name} was not found for package :#{from}")
    end
    
    as ||= obj_name

    define_method as do |*args, **kwargs, &proc|
      if obj.object?
        obj.klass.new
      else
        obj.klass.new.call(*args, **kwargs, &proc)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ree-1.0.8 lib/ree/rspec_link_dsl.rb
ree-1.0.7 lib/ree/rspec_link_dsl.rb
ree-1.0.6 lib/ree/rspec_link_dsl.rb
ree-1.0.5 lib/ree/rspec_link_dsl.rb
ree-1.0.4 lib/ree/rspec_link_dsl.rb
ree-1.0.3 lib/ree/rspec_link_dsl.rb
ree-1.0.2 lib/ree/rspec_link_dsl.rb
ree-1.0.1 lib/ree/rspec_link_dsl.rb
ree-1.0.0 lib/ree/rspec_link_dsl.rb