Sha256: fe7d6717b258c81445e8e847379f198ab01b58494f83e6b6bcdba2839ccf61b0

Contents?: true

Size: 1.78 KB

Versions: 13

Compression:

Stored size: 1.78 KB

Contents

require File.dirname(__FILE__) + '/../spec_helper'
require File.dirname(__FILE__) + '/../../../lib/poolparty/helpers/optioner'

describe "Option Parser" do
  describe "options" do
    before(:each) do
      @op = PoolParty::Optioner.new([], {:abstract => true})
      @op.parse_options
    end
    it "should set the options as an Hash" do
      @op.options.class.should == Hash
    end
    it "should have the verbose option set to false by default" do
      @op.verbose.should == false
    end
    it "should call a method called on it that is not defined on the options if they exist" do
      @op.dsl_options.should_receive(:[]).with(:verbose).at_least(1).and_return true
      @op.verbose
    end
    it "should exit after displaying the help message" do
      hide_output do
        lambda {
          @o = PoolParty::Optioner.new(["-h"], {:parse_options => false})
          @o.should_receive(:process_options).once
          @o.parse_options
        }
      end
    end
  end
  
  describe "parse_args" do
    before(:each) do
      @op = PoolParty::Optioner.new(%w( -v -i 1 five six -x), {:abstract => true, :parse_options => false})
    end
    it "should have an array of default boolean args" do
      @op.boolean_args.sort.should == ['--debug', '-V', '-h', '-t', '-v']
    end
    it "should split ARGV into flagged and unflagged arg arrays" do
      @op.unflagged_args.sort.sort.should ==  ["five", "six"]
      @op.flagged_args.should == ["-v", "-i", "1", "-x"]
    end
  end
  
  it "should be able to take a block and set some options on the block" do
    PoolParty::Optioner.new(["-w"], {:abstract => false, :load_pools => false}) do |opts, optioner|
      opts.on('-w', '--wee')    { optioner.wee "wee" }
      opts.on('-t t', '--teatime tea')    { optioner.tea "time" }
    end.wee.should == "wee"
  end
end

Version data entries

13 entries across 13 versions & 3 rubygems

Version Path
auser-poolparty-1.1.1 spec/poolparty/helpers/optioner_spec.rb
auser-poolparty-1.1.3 spec/poolparty/helpers/optioner_spec.rb
auser-poolparty-1.1.4 spec/poolparty/helpers/optioner_spec.rb
auser-poolparty-1.1.5 spec/poolparty/helpers/optioner_spec.rb
auser-poolparty-1.1.6 spec/poolparty/helpers/optioner_spec.rb
auser-poolparty-1.1.7 spec/poolparty/helpers/optioner_spec.rb
auser-poolparty-1.2.0 spec/poolparty/helpers/optioner_spec.rb
auser-poolparty-1.2.1 spec/poolparty/helpers/optioner_spec.rb
auser-poolparty-1.2.2 spec/poolparty/helpers/optioner_spec.rb
fairchild-poolparty-1.1.3 spec/poolparty/helpers/optioner_spec.rb
fairchild-poolparty-1.1.4 spec/poolparty/helpers/optioner_spec.rb
fairchild-poolparty-1.1.5 spec/poolparty/helpers/optioner_spec.rb
poolparty-1.2.2 spec/poolparty/helpers/optioner_spec.rb