Sha256: 061cabedbf842ef827058f2d4041da4bb1248e0b73287c614fce57c6186e90dc

Contents?: true

Size: 1.49 KB

Versions: 3

Compression:

Stored size: 1.49 KB

Contents

shared_context :resolution, resolution: true do
  module ResolutionHelpers
    def initialize(attrs = {}, &blk)
      self.underlay = attrs.delete(:owner)
      super(attrs, &blk)
    end
  end

  class X < Ironfan::Dsl
    include ResolutionHelpers
    magic :name, Symbol
    magic :dat, Integer
  end

  class MSym < Ironfan::Dsl
    include ResolutionHelpers
    magic :name, Symbol, :resolver => :merge_resolve, key_method: :name
  end

  class MX < X
    collection :mxs, X, :resolver => :merge_resolve, key_method: :name
  end

  class DX < X
    collection :dxs, X, :resolver => :deep_resolve, key_method: :name
  end

  class DMX < MX
    collection :dmxs, MX, :resolver => :deep_resolve, key_method: :name
  end

  class DDX < DX
    collection :ddxs, DX, :resolver => :deep_resolve, key_method: :name
  end

  class MDX < DX
    collection :mdxs, DX, :resolver => :merge_resolve, key_method: :name
  end

  class MMX < MX
    collection :mmxs, MX, :resolver => :merge_resolve, key_method: :name
  end

  class DDMX < DMX
    collection :ddmxs, DMX, :resolver => :deep_resolve, key_method: :name
  end

  class DMMX < MMX
    collection :dmmxs, MMX, :resolver => :deep_resolve, key_method: :name
  end

  class MMMX < MMX
    collection :mmmxs, MMX, :resolver => :merge_resolve, key_method: :name
  end

  class DMDX < MDX
    collection :dmdxs, MDX, :resolver => :deep_resolve, key_method: :name
  end

  class DMMMX < MMMX
    collection :dmmmxs, MMMX, :resolver => :deep_resolve, key_method: :name
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ironfan-6.1.9 spec/support/resolution.rb
ironfan-6.1.7 spec/support/resolution.rb
ironfan-6.1.6 spec/support/resolution.rb