# records in the stream.
def each_record
@in = Stream::open(@options, mode="r", @input) unless @in.is_a? IO
+ return if @in.nil?
record = {}
def options_check_allowed(cast)
if cast[:allowed] and @options.has_key? cast[:long]
allowed_hash = {}
- cast[:allowed].split(',').each { |a| allowed_hash[a] = 1 }
+ cast[:allowed].split(',').each { |a| allowed_hash[a.to_s] = 1 }
- raise ArgumentError, "Argument '#{@options[cast[:long]]}' to --#{cast[:long]} not allowed" unless allowed_hash.has_key? @options[cast[:long]]
+ raise ArgumentError, "Argument '#{@options[cast[:long]]}' to --#{cast[:long]} not allowed" unless allowed_hash.has_key? @options[cast[:long]].to_s
end
end
def options_check_disallowed(cast)
if cast[:disallowed] and @options.has_key? cast[:long]
cast[:disallowed].split(',').each do |val|
- raise ArgumentError, "Argument '#{@options[cast[:long]]}' to --#{cast[:long]} is disallowed" if val == @options[cast[:long]]
+ raise ArgumentError, "Argument '#{@options[cast[:long]]}' to --#{cast[:long]} is disallowed" if val.to_s == @options[cast[:long]].to_s
end
end
end
# Opens a reads stream to a list of files.
def self.read(files)
+ return if files.nil? #TODO case/when
self.zipped?(files) ? self.zread(files) : self.nread(files)
end
#!/usr/bin/env ruby
# $:.unshift File.join(File.dirname(__FILE__),'..','lib')
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
require 'test/unit'
require 'mocha'
require 'biopieces'
end
test "Biopieces#parse with legal allowed cast values don't raise" do
- ["foo,bar",nil].each do |allowed|
+ ["foo,bar,0",nil].each do |allowed|
argv = []
casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>allowed, :disallowed=>nil}]
assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
end
test "Biopieces#parse with legal disallowed cast values don't raise" do
- ["foo,bar",nil].each do |disallowed|
+ ["foo,bar,0",nil].each do |disallowed|
argv = []
casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>disallowed}]
assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }