ruby-version 0.3.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ script: "rake test --trace"
2
+ rvm:
3
+ - 1.9.3
4
+ - 1.9.2
5
+ - jruby-18mode
6
+ - jruby-19mode
7
+ - rbx-18mode
8
+ - rbx-19mode
9
+ - ruby-head
10
+ - jruby-head
11
+ - 1.8.7
12
+ - ree
13
+ jdk:
14
+ - openjdk7
15
+ - oraclejdk7
16
+ - openjdk6
data/Gemfile CHANGED
@@ -5,7 +5,9 @@ source "http://rubygems.org"
5
5
  # Add dependencies to develop your gem here.
6
6
  # Include everything needed to run rake, tests, features, etc.
7
7
  group :development do
8
- gem "bundler", ">= 1.0.0"
9
- gem "jeweler", ">= 1.5.2"
10
- gem "riot", ">= 0.12.3"
8
+ gem "bundler"
9
+ gem "jeweler"
10
+ gem "rake"
11
+ gem "rspec"
12
+ gem "simplecov"
11
13
  end
data/Gemfile.lock CHANGED
@@ -1,20 +1,37 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ diff-lcs (1.1.3)
4
5
  git (1.2.5)
5
- jeweler (1.6.4)
6
+ jeweler (1.8.4)
6
7
  bundler (~> 1.0)
7
8
  git (>= 1.2.5)
8
9
  rake
9
- rake (0.9.2)
10
- riot (0.12.5)
11
- rr
12
- rr (1.0.4)
10
+ rdoc
11
+ json (1.7.5)
12
+ multi_json (1.3.6)
13
+ rake (0.9.2.2)
14
+ rdoc (3.12)
15
+ json (~> 1.4)
16
+ rspec (2.11.0)
17
+ rspec-core (~> 2.11.0)
18
+ rspec-expectations (~> 2.11.0)
19
+ rspec-mocks (~> 2.11.0)
20
+ rspec-core (2.11.1)
21
+ rspec-expectations (2.11.3)
22
+ diff-lcs (~> 1.1.3)
23
+ rspec-mocks (2.11.3)
24
+ simplecov (0.6.4)
25
+ multi_json (~> 1.0)
26
+ simplecov-html (~> 0.5.3)
27
+ simplecov-html (0.5.3)
13
28
 
14
29
  PLATFORMS
15
30
  ruby
16
31
 
17
32
  DEPENDENCIES
18
- bundler (>= 1.0.0)
19
- jeweler (>= 1.5.2)
20
- riot (>= 0.12.3)
33
+ bundler
34
+ jeweler
35
+ rake
36
+ rspec
37
+ simplecov
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011 Martin Kozák (martinkozak@martinkozak.net)
1
+ Copyright (c) 2011-2012 Martin Kozák (martinkozak@martinkozak.net)
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,13 +1,24 @@
1
1
  Ruby Version
2
2
  ============
3
3
 
4
- **ruby-version** wraps the `RUBY_VERSION` constant and allows version
5
- number matching. Usage is simple:
4
+ **ruby-version** wraps the `RUBY_VERSION` and `RUBY_ENGINE` constant and
5
+ allows the elegant Ruby version number matching on all major Ruby platforms.
6
+ Usage is simple:
6
7
 
7
8
  require "ruby-version"
8
9
 
9
10
  Ruby::Version > "1.8.7"
10
11
  # will return true for 1.9.2 and false for 1.8.3
12
+
13
+ Or for the ruby engine name:
14
+
15
+ Ruby::Engine::NAME
16
+ # will return "ruby" typically (works on 1.8 too of sure)
17
+
18
+ Ruby::Engine == "ruby" # or something else
19
+ # will return appropriate boolean
20
+
21
+ [![Build Status](https://secure.travis-ci.org/martinkozak/ruby-version.png)](http://travis-ci.org/martinkozak/ruby-version)
11
22
 
12
23
  Contributing
13
24
  ------------
@@ -22,7 +33,7 @@ Contributing
22
33
  Copyright
23
34
  ---------
24
35
 
25
- Copyright © 2011 [Martin Kozák][10]. See `LICENSE.txt` for
36
+ Copyright © 2011-2012 [Martin Kozák][10]. See `LICENSE.txt` for
26
37
  further details.
27
38
 
28
39
  [9]: http://github.com/martinkozak/ruby-version/issues
data/Rakefile CHANGED
@@ -10,6 +10,8 @@ rescue Bundler::BundlerError => e
10
10
  exit e.status_code
11
11
  end
12
12
 
13
+ ### Jeweler
14
+
13
15
  require 'rake'
14
16
  require 'jeweler'
15
17
 
@@ -18,7 +20,7 @@ Jeweler::Tasks.new do |gem|
18
20
  gem.name = "ruby-version"
19
21
  gem.homepage = "http://github.com/martinkozak/ruby-version"
20
22
  gem.license = "MIT"
21
- gem.summary = 'Wraps the RUBY_VERSION constant and allows version number matching.'
23
+ gem.summary = 'Wraps the RUBY_VERSION and RUBY_ENGINE constants and allows the elegant Ruby version number matching on all major Ruby platforms.'
22
24
  gem.email = "martinkozak@martinkozak.net"
23
25
  gem.authors = ["Martin Kozák"]
24
26
  # Include your dependencies below. Runtime dependencies are required when using your gem,
@@ -26,4 +28,13 @@ Jeweler::Tasks.new do |gem|
26
28
  # gem.add_runtime_dependency 'jabber4r', '> 0.1'
27
29
  # gem.add_development_dependency 'rspec', '> 1.2.3'
28
30
  end
29
- Jeweler::RubygemsDotOrgTasks.new
31
+ Jeweler::RubygemsDotOrgTasks.new
32
+
33
+ ### RSpec
34
+
35
+ require 'rspec/core/rake_task'
36
+
37
+ RSpec::Core::RakeTask.new(:test) do |t|
38
+ t.pattern = 'tests.rb'
39
+ t.rspec_opts = '--format d -c'
40
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.4.2
data/lib/ruby-version.rb CHANGED
@@ -1,11 +1,41 @@
1
1
  # encoding: utf-8
2
- # (c) 2011 Martin Kozák (martinkozak@martinkozak.net)
2
+ # (c) 2011-2012 Martin Kozák (martinkozak@martinkozak.net)
3
3
 
4
4
  ##
5
5
  # Outer wrapper for the {Ruby::Version} module.
6
6
  #
7
7
 
8
8
  module Ruby
9
+
10
+ ##
11
+ # Wraps the +RUBY_ENGINE+ constant. In fact, handles returning the
12
+ # correct value on Ruby 1.8 in the main.
13
+ #
14
+
15
+ module Engine
16
+
17
+ ##
18
+ # Contains the Ruby engine identification in frozen string.
19
+ #
20
+
21
+ begin
22
+ NAME = RUBY_ENGINE.dup.freeze
23
+ rescue NameError
24
+ NAME = "ruby".freeze
25
+ end
26
+
27
+ ##
28
+ # Equality operator.
29
+ #
30
+ # @param [String, Symbol] value engine identifier
31
+ # @return [Boolean] +true+ if yes, +false otherwise
32
+ #
33
+
34
+ def self.==(value)
35
+ return self::NAME == value.to_s
36
+ end
37
+
38
+ end
9
39
 
10
40
  ##
11
41
  # Wraps the +RUBY_VERSION+ constant and provides some handling
data/ruby-version.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ruby-version"
8
- s.version = "0.3.1"
8
+ s.version = "0.4.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Martin Koz\u{e1}k"]
12
- s.date = "2011-10-13"
12
+ s.date = "2012-10-06"
13
13
  s.email = "martinkozak@martinkozak.net"
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
17
17
  ]
18
18
  s.files = [
19
19
  ".document",
20
+ ".travis.yml",
20
21
  "Gemfile",
21
22
  "Gemfile.lock",
22
23
  "LICENSE.txt",
@@ -25,30 +26,36 @@ Gem::Specification.new do |s|
25
26
  "VERSION",
26
27
  "lib/ruby-version.rb",
27
28
  "ruby-version.gemspec",
28
- "test"
29
+ "tests.rb"
29
30
  ]
30
31
  s.homepage = "http://github.com/martinkozak/ruby-version"
31
32
  s.licenses = ["MIT"]
32
33
  s.require_paths = ["lib"]
33
- s.rubygems_version = "1.8.11"
34
- s.summary = "Wraps the RUBY_VERSION constant and allows version number matching."
34
+ s.rubygems_version = "1.8.24"
35
+ s.summary = "Wraps the RUBY_VERSION and RUBY_ENGINE constants and allows the elegant Ruby version number matching on all major Ruby platforms."
35
36
 
36
37
  if s.respond_to? :specification_version then
37
38
  s.specification_version = 3
38
39
 
39
40
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
40
- s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
41
- s.add_development_dependency(%q<jeweler>, [">= 1.5.2"])
42
- s.add_development_dependency(%q<riot>, [">= 0.12.3"])
41
+ s.add_development_dependency(%q<bundler>, [">= 0"])
42
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
43
+ s.add_development_dependency(%q<rake>, [">= 0"])
44
+ s.add_development_dependency(%q<rspec>, [">= 0"])
45
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
43
46
  else
44
- s.add_dependency(%q<bundler>, [">= 1.0.0"])
45
- s.add_dependency(%q<jeweler>, [">= 1.5.2"])
46
- s.add_dependency(%q<riot>, [">= 0.12.3"])
47
+ s.add_dependency(%q<bundler>, [">= 0"])
48
+ s.add_dependency(%q<jeweler>, [">= 0"])
49
+ s.add_dependency(%q<rake>, [">= 0"])
50
+ s.add_dependency(%q<rspec>, [">= 0"])
51
+ s.add_dependency(%q<simplecov>, [">= 0"])
47
52
  end
48
53
  else
49
- s.add_dependency(%q<bundler>, [">= 1.0.0"])
50
- s.add_dependency(%q<jeweler>, [">= 1.5.2"])
51
- s.add_dependency(%q<riot>, [">= 0.12.3"])
54
+ s.add_dependency(%q<bundler>, [">= 0"])
55
+ s.add_dependency(%q<jeweler>, [">= 0"])
56
+ s.add_dependency(%q<rake>, [">= 0"])
57
+ s.add_dependency(%q<rspec>, [">= 0"])
58
+ s.add_dependency(%q<simplecov>, [">= 0"])
52
59
  end
53
60
  end
54
61
 
data/tests.rb ADDED
@@ -0,0 +1,133 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+ # (c) 2011 Martin Kozák (martinkozak@martinkozak.net)
4
+
5
+ $:.push("./lib")
6
+
7
+ require "rubygems"
8
+ require "rspec"
9
+
10
+ require "simplecov"
11
+ SimpleCov.start
12
+
13
+ require "ruby-version"
14
+
15
+ ###
16
+
17
+ LOWER = :"1.1.3"
18
+ CURRENT = RUBY_VERSION.to_sym
19
+ HIGHER = :"4.0.1"
20
+
21
+ ###
22
+
23
+ describe Ruby::Engine do
24
+ specify "NAME shoud be something reasonable" do
25
+ not ['ruby', 'jruby', 'rbx'].include? Ruby::Engine::NAME
26
+ end
27
+ it "shoud be comparable" do
28
+ Ruby::Engine == "foo"
29
+ true
30
+ end
31
+ end
32
+
33
+ describe Ruby::Version, "-- algebraic comparsion operators" do
34
+
35
+ context "against higher version" do
36
+ it "should be lower" do
37
+ Ruby::Version < HIGHER
38
+ end
39
+ it "should be lower or equal" do
40
+ Ruby::Version <= HIGHER
41
+ end
42
+ it "shouldn't be equal" do
43
+ not Ruby::Version == HIGHER
44
+ end
45
+ it "should be higher or equal" do
46
+ Ruby::Version >= HIGHER
47
+ end
48
+ it "should be higher" do
49
+ Ruby::Version > HIGHER
50
+ end
51
+ end
52
+
53
+ context "against current version" do
54
+ it "shouldn't be lower" do
55
+ not Ruby::Version < CURRENT
56
+ end
57
+ it "should be lower or equal" do
58
+ Ruby::Version <= CURRENT
59
+ end
60
+ it "should be equal" do
61
+ Ruby::Version == CURRENT
62
+ end
63
+ it "should be higher or equal" do
64
+ Ruby::Version >= CURRENT
65
+ end
66
+ it "shouldn't be higher" do
67
+ not Ruby::Version > HIGHER
68
+ end
69
+ end
70
+
71
+ context "against lower version" do
72
+ it "should be lower" do
73
+ Ruby::Version < LOWER
74
+ end
75
+ it "should be lower or equal" do
76
+ Ruby::Version <= LOWER
77
+ end
78
+ it "shouldn't be equal" do
79
+ not Ruby::Version == LOWER
80
+ end
81
+ it "shouldn't be higher or equal" do
82
+ not Ruby::Version >= LOWER
83
+ end
84
+ it "shouldn't be higher" do
85
+ not Ruby::Version > LOWER
86
+ end
87
+
88
+ end
89
+ end
90
+
91
+ describe Ruby::Version, "-- fuzzy operators" do
92
+
93
+ context "against higher version" do
94
+ specify "#<=> should return -1" do
95
+ (Ruby::Version <=> HIGHER) == -1
96
+ end
97
+ specify "#compare should return -1" do
98
+ Ruby::Version::compare(HIGHER) == -1
99
+ end
100
+ end
101
+
102
+ context "against current version" do
103
+ specify "#<=> should return 0" do
104
+ (Ruby::Version <=> CURRENT) == 0
105
+ end
106
+ specify "#compare should return 0" do
107
+ Ruby::Version::compare(CURRENT) == 0
108
+ end
109
+ end
110
+
111
+ context "against lower version" do
112
+ specify "#<=> should return 1" do
113
+ (Ruby::Version <=> LOWER) == 1
114
+ end
115
+ specify "#compare should return 1" do
116
+ Ruby::Version::compare(LOWER) == -1
117
+ end
118
+ end
119
+ end
120
+
121
+ describe Ruby::Version do
122
+
123
+ specify "TOKENS constant content the same as broking result" do
124
+ Ruby::Version::TOKENS == Ruby::Version::broke(RUBY_VERSION)
125
+ end
126
+ specify "VERSION constant should be equal to RUBY_VERSION" do
127
+ Ruby::Version::VERSION == RUBY_VERSION
128
+ end
129
+ specify "broking components should equal to version string components" do
130
+ Ruby::Version::broke("1.2.3") == [1, 2, 3]
131
+ end
132
+
133
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-version
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,41 +9,88 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-13 00:00:00.000000000 Z
12
+ date: 2012-10-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &13809960 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.0
21
+ version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *13809960
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: jeweler
27
- requirement: &13809320 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
28
65
  none: false
29
66
  requirements:
30
67
  - - ! '>='
31
68
  - !ruby/object:Gem::Version
32
- version: 1.5.2
69
+ version: '0'
33
70
  type: :development
34
71
  prerelease: false
35
- version_requirements: *13809320
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
36
78
  - !ruby/object:Gem::Dependency
37
- name: riot
38
- requirement: &13808760 !ruby/object:Gem::Requirement
79
+ name: simplecov
80
+ requirement: !ruby/object:Gem::Requirement
39
81
  none: false
40
82
  requirements:
41
83
  - - ! '>='
42
84
  - !ruby/object:Gem::Version
43
- version: 0.12.3
85
+ version: '0'
44
86
  type: :development
45
87
  prerelease: false
46
- version_requirements: *13808760
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
47
94
  description:
48
95
  email: martinkozak@martinkozak.net
49
96
  executables: []
@@ -53,6 +100,7 @@ extra_rdoc_files:
53
100
  - README.md
54
101
  files:
55
102
  - .document
103
+ - .travis.yml
56
104
  - Gemfile
57
105
  - Gemfile.lock
58
106
  - LICENSE.txt
@@ -61,7 +109,7 @@ files:
61
109
  - VERSION
62
110
  - lib/ruby-version.rb
63
111
  - ruby-version.gemspec
64
- - test
112
+ - tests.rb
65
113
  homepage: http://github.com/martinkozak/ruby-version
66
114
  licenses:
67
115
  - MIT
@@ -77,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
77
125
  version: '0'
78
126
  segments:
79
127
  - 0
80
- hash: -1698263661555787734
128
+ hash: 1902862411478104695
81
129
  required_rubygems_version: !ruby/object:Gem::Requirement
82
130
  none: false
83
131
  requirements:
@@ -86,8 +134,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
134
  version: '0'
87
135
  requirements: []
88
136
  rubyforge_project:
89
- rubygems_version: 1.8.11
137
+ rubygems_version: 1.8.24
90
138
  signing_key:
91
139
  specification_version: 3
92
- summary: Wraps the RUBY_VERSION constant and allows version number matching.
140
+ summary: Wraps the RUBY_VERSION and RUBY_ENGINE constants and allows the elegant Ruby
141
+ version number matching on all major Ruby platforms.
93
142
  test_files: []
data/test DELETED
@@ -1,44 +0,0 @@
1
- #!/usr/bin/ruby
2
- # encoding: utf-8
3
- # (c) 2011 Martin Kozák (martinkozak@martinkozak.net)
4
-
5
- $:.push("./lib")
6
- require "ruby-version"
7
- require "riot"
8
-
9
- DOWN = :"1.8.7"
10
- CURRENT = :"1.9.2"
11
- UP = :"2.0.1"
12
-
13
- context "Ruby::Version" do
14
- asserts("#<") do
15
- Ruby::Version < UP and not Ruby::Version < DOWN and not Ruby::Version < CURRENT
16
- end
17
- asserts("#<=") do
18
- Ruby::Version <= UP and not Ruby::Version <= DOWN and Ruby::Version <= CURRENT
19
- end
20
- asserts("#==") do
21
- not Ruby::Version == UP and not Ruby::Version == DOWN and Ruby::Version == CURRENT
22
- end
23
- asserts("#>") do
24
- not Ruby::Version > UP and Ruby::Version > DOWN and not Ruby::Version > CURRENT
25
- end
26
- asserts("#>=") do
27
- not Ruby::Version >= UP and Ruby::Version >= DOWN and Ruby::Version >= CURRENT
28
- end
29
- asserts("#<=>") do
30
- (Ruby::Version <=> UP) == -1 and (Ruby::Version <=> DOWN) == 1 and (Ruby::Version <=> CURRENT) == 0
31
- end
32
- asserts("#TOKENS") do
33
- Ruby::Version::TOKENS == Ruby::Version::broke(RUBY_VERSION)
34
- end
35
- asserts("#VERSION") do
36
- Ruby::Version::VERSION == RUBY_VERSION
37
- end
38
- asserts("#broke") do
39
- Ruby::Version::broke("1.2.3") == [1, 2, 3]
40
- end
41
- asserts("#compare") do
42
- Ruby::Version::compare(DOWN) == 1 and Ruby::Version::compare(CURRENT) == 0 and Ruby::Version::compare(UP) == -1
43
- end
44
- end