Sha256: 5df1b0e43e8dc16286931d72aa23cfdd446307e7333172f195afa19a991441bd

Contents?: true

Size: 1.28 KB

Versions: 48

Compression:

Stored size: 1.28 KB

Contents

require 'helper'

class FilterWithDispatcherMixin
  include Temple::Mixins::Dispatcher

  def on_test(arg)
    [:on_test, arg]
  end

  def on_test_check(arg)
    [:on_check, arg]
  end

  def on_second_test(arg)
    [:on_second_test, arg]
  end

  def on_seventh_level_level_level_level_level_test(arg)
    [:on_seventh_test, arg]
  end
end

class FilterWithDispatcherMixinAndOn < FilterWithDispatcherMixin
  def on(*args)
    [:on_zero, *args]
  end
end

describe Temple::Mixins::Dispatcher do
  before do
    @filter = FilterWithDispatcherMixin.new
  end

  it 'should return unhandled expressions' do
    @filter.call([:unhandled]).should.equal [:unhandled]
  end

  it 'should dispatch first level' do
    @filter.call([:test, 42]).should.equal [:on_test, 42]
  end

  it 'should dispatch second level' do
    @filter.call([:second, :test, 42]).should.equal [:on_second_test, 42]
  end

  it 'should dispatch second level if prefixed' do
    @filter.call([:test, :check, 42]).should.equal [:on_check, 42]
  end

  it 'should dispatch seventh level' do
    @filter.call([:seventh, :level, :level, :level, :level, :level, :test, 42]).should == [:on_seventh_test, 42]
  end

  it 'should dispatch zero level' do
    FilterWithDispatcherMixinAndOn.new.call([:foo,42]).should == [:on_zero, :foo, 42]
  end
end

Version data entries

48 entries across 48 versions & 2 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.7.4 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.7.3 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.7.2 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.7.1 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.7.0 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.9 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.8 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.7 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.6 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.5 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.4 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.3 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.2 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.1 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.6.0 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.5.17 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.5.16 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.5.15 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb
classiccms-0.5.14 vendor/bundle/gems/temple-0.4.0/test/mixins/test_dispatcher.rb