Sha256: 3af073aad7b642cc0f95bb678d0e0248dbe3f3f279b039d6a6605a3f96758d25

Contents?: true

Size: 1.5 KB

Versions: 6

Compression:

Stored size: 1.5 KB

Contents

require 'spec_helper'

shared_context 'a class with alias to a clazz' do |aliaz, clazz, *variables|
  it do
    expect(subject).to respond_to(aliaz)
  end

  it "has an alias #{aliaz} for #{clazz}" do
    expect(subject.public_send(aliaz, *variables)).to eq(clazz.new(*variables))
  end
end

shared_context 'a class with mapped dsl' do
  {
    addition:       Danica::Operator::Addition,
    sum:            Danica::Operator::Addition,
    multiplication: Danica::Operator::Multiplication,
    product:        Danica::Operator::Multiplication,
    division:       Danica::Operator::Division,
    power:          Danica::Operator::Power
  }.each do |aliaz, clazz|
    it_behaves_like 'a class with alias to a clazz', aliaz, clazz, 2, 3
  end
  {
    squared_root:  Danica::Operator::SquaredRoot,
    sqrt:          Danica::Operator::SquaredRoot,
    exponential:   Danica::Operator::Exponential,
    sin:           Danica::Operator::Sin,
    cos:           Danica::Operator::Cos,
    group:         Danica::Wrapper::Group,
    negative:      Danica::Wrapper::Negative,
    number:        Danica::Wrapper::Number,
    num:           Danica::Wrapper::Number,
    plus_minus:    Danica::Wrapper::PlusMinus,
    constant:      Danica::Wrapper::Constant
  }.each do |aliaz, clazz|
    it_behaves_like 'a class with alias to a clazz', aliaz, clazz, 9
  end
end

describe Danica::DSL do
  class Danica::DSL::Dummy
    include Danica::DSL
  end

  let(:subject) { described_class::Dummy.new }
  it_behaves_like 'a class with mapped dsl'
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
danica-2.6.1 spec/lib/danica/dsl_spec.rb
danica-2.6.0 spec/lib/danica/dsl_spec.rb
danica-2.5.1 spec/lib/danica/dsl_spec.rb
danica-2.5.0 spec/lib/danica/dsl_spec.rb
danica-2.4.4 spec/lib/danica/dsl_spec.rb
danica-2.4.3 spec/lib/danica/dsl_spec.rb