Skip to content

Commit 525a6a2

Browse files
committed
Handle numeric version numbers #13
1 parent d73965f commit 525a6a2

File tree

3 files changed

+31
-0
lines changed

3 files changed

+31
-0
lines changed

Rakefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
11
require "bundler/gem_tasks"
2+
3+
require 'rake/testtask'
4+
Rake::TestTask.new do |t|
5+
t.pattern = 'test/**/*_test.rb'
6+
end

lib/qbxml/qbxml.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ def parse_schema(key, version)
8686
end
8787

8888
def select_schema(schema_key, version)
89+
# Try to handle it if a user gave us a numeric version. Assume 1 decimal.
90+
version = '%.1f' % version if version.is_a?(Numeric)
8991
raise "invalid schema '#{schema_key}', must be one of #{SCHEMAS.keys.inspect}" if !SCHEMAS.has_key?(schema_key)
9092
raise "invalid version '#{version}' for schema #{schema_key}, must be one of #{SCHEMAS[schema_key].keys.inspect}" if !SCHEMAS[schema_key].has_key?(version)
9193
return SCHEMAS[schema_key][version]

test/unit/version_test.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
require 'minitest/autorun'
2+
require 'qbxml'
3+
4+
class VersionTest < Minitest::Test
5+
6+
def test_string_version
7+
Qbxml.new(:qb, '7.0')
8+
end
9+
10+
def test_bad_version
11+
assert_raises RuntimeError do
12+
Qbxml.new(:qb, '3.14')
13+
end
14+
end
15+
16+
def test_float_version
17+
Qbxml.new(:qb, 7.0)
18+
end
19+
20+
def test_int_version
21+
Qbxml.new(:qb, 7)
22+
end
23+
24+
end

0 commit comments

Comments
 (0)