ruby_version 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 28fc2d64593515f00bd1b28cc8a90bdaa5b20115
4
+ data.tar.gz: e6d65f11d0a70c1dc7fedbf09b148ee4d228167d
5
+ SHA512:
6
+ metadata.gz: d1b5b65fb773ce9fca50972e0d489d50ac2616db9c4f51f8df138970ed20ca857b1effa9405c5ba748ca1676653182b9ea81a799db981c0334b96d69515da5bd
7
+ data.tar.gz: c738f8e7936167f27f19185ef95e4cbc40411d35d3c6d0cf4190c4914f9b5b7e34579a5593a55e51ba19d317e8778dad381c6a13cfdfc85e25d4f0a64d2c18a2
@@ -0,0 +1,2 @@
1
+ Gemfile.lock
2
+ pkg
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour --format documentation
@@ -0,0 +1,15 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - ruby-head
5
+ - 2.1.0
6
+ - 2.0.0
7
+ - 1.9.3
8
+ - 1.9.2
9
+ - 1.8.7
10
+ - 1.8.6
11
+ - ree
12
+ - jruby-20mode
13
+ - jruby-19mode
14
+ - jruby-18mode
15
+ - rbx
@@ -0,0 +1,5 @@
1
+ === 1.0.0 / 2014-01-14
2
+
3
+ * Add RubyVersion.revision
4
+ * Moved from zucker 13.1 gem into its own gem
5
+
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ platform :rbx do
6
+ gem 'rubysl-date'
7
+ gem 'rubysl-singleton'
8
+ end
9
+
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2014 Jan Lelis
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,39 @@
1
+ = RubyVersion {<img src="https://travis-ci.org/janlelis/ruby_version.png" />}[https://travis-ci.org/janlelis/ruby_version]
2
+
3
+ Provides a +RubyVersion+ to simplify checking for the right Ruby version in your programs.
4
+
5
+ == Setup
6
+
7
+ On your command-line:
8
+
9
+ $ gem install ruby_version
10
+
11
+ In Ruby:
12
+
13
+ require 'ruby_version'
14
+
15
+ == Usage
16
+
17
+ # return RUBY_VERSION
18
+ RubyVersion
19
+ # check for the main version with a Float
20
+ RubyVersion.is? 1.8
21
+ # use strings for exacter checking
22
+ RubyVersion.is.above '1.8.7'
23
+ RubyVersion.is.at_least '1.8.7' # or exactly, below, at_most
24
+ # you can use the common comparison operators
25
+ RubyVersion >= '1.8.7'
26
+ RubyVersion.between? '1.8.6', '1.8.7'
27
+ # relase date checks
28
+ RubyVersion.is.older_than Date.today
29
+ RubyVersion.is.newer_than '2009-08-19'
30
+ # accessors
31
+ RubyVersion.major # e.g. => 1
32
+ RubyVersion.minor # e.g. => 8
33
+ RubyVersion.tiny # e.g. => 7
34
+ RubyVersion.patchlevel # e.g. => 249
35
+ RubyVersion.description # e.g. => "ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]"
36
+
37
+ == J-_-L
38
+
39
+ Copyright (c) 2010-2014 Jan Lelis. MIT License. Originated from the zucker gem.
@@ -0,0 +1,36 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+
5
+ begin
6
+ require 'bundler'
7
+ rescue LoadError => e
8
+ warn e.message
9
+ warn "Run `gem install bundler` to install Bundler."
10
+ exit -1
11
+ end
12
+
13
+ begin
14
+ Bundler.setup(:development)
15
+ rescue Bundler::BundlerError => e
16
+ warn e.message
17
+ warn "Run `bundle install` to install missing gems."
18
+ exit e.status_code
19
+ end
20
+
21
+ require 'rake'
22
+
23
+ require 'rubygems/tasks'
24
+ Gem::Tasks.new
25
+
26
+ require 'rdoc/task'
27
+ RDoc::Task.new do |rdoc|
28
+ rdoc.title = "ruby_version"
29
+ end
30
+ task :doc => :rdoc
31
+
32
+ require 'rspec/core/rake_task'
33
+ RSpec::Core::RakeTask.new
34
+
35
+ task :test => :spec
36
+ task :default => :spec
@@ -0,0 +1,118 @@
1
+ require 'date'
2
+ require 'time'
3
+
4
+ module RubyVersion
5
+ class << self
6
+ def to_s
7
+ RUBY_VERSION
8
+ end
9
+ alias inspect to_s
10
+
11
+ # comparable
12
+ def <=>(other)
13
+ value = case other
14
+ when Integer
15
+ RUBY_VERSION.to_i
16
+ when Float
17
+ RUBY_VERSION.to_f
18
+ when String
19
+ RUBY_VERSION
20
+ when Date, Time
21
+ other.class.parse(RUBY_RELEASE_DATE)
22
+ else
23
+ other = other.to_s
24
+ RUBY_VERSION
25
+ end
26
+ value <=> other
27
+ end
28
+ include Comparable
29
+
30
+ # chaining for dsl-like language
31
+ def is?(other = nil)
32
+ if other
33
+ RubyVersion == other
34
+ else
35
+ RubyVersion
36
+ end
37
+ end
38
+ alias is is?
39
+
40
+ # aliases
41
+ alias below <
42
+ alias below? <
43
+ alias at_most <=
44
+ alias at_most? <=
45
+ alias above >
46
+ alias above? >
47
+ alias at_least >=
48
+ alias at_least? >=
49
+ alias exactly ==
50
+ alias exactly? ==
51
+ def not(other)
52
+ self != other
53
+ end
54
+ alias not? not
55
+ alias between between?
56
+
57
+ # compare dates
58
+ def newer_than(other)
59
+ if other.is_a? Date or other.is_a? Time
60
+ RubyVersion > other
61
+ else
62
+ RUBY_RELEASE_DATE > other.to_s
63
+ end
64
+ end
65
+ alias newer_than? newer_than
66
+
67
+ def older_than(other)
68
+ if other.is_a? Date or other.is_a? Time
69
+ RubyVersion < other
70
+ else
71
+ RUBY_RELEASE_DATE < other.to_s
72
+ end
73
+ end
74
+ alias older_than? older_than
75
+
76
+ def released_today
77
+ RubyVersion.date == Date.today
78
+ end
79
+ alias released_today? released_today
80
+
81
+ # accessors
82
+
83
+ def major
84
+ RUBY_VERSION.to_i
85
+ end
86
+ alias main major
87
+
88
+ def minor
89
+ RUBY_VERSION.split('.')[1].to_i
90
+ end
91
+ alias mini minor
92
+
93
+ def tiny
94
+ RUBY_VERSION.split('.')[2].to_i
95
+ end
96
+
97
+ alias teeny tiny
98
+
99
+ def patchlevel
100
+ RUBY_PATCHLEVEL
101
+ end
102
+
103
+ def platform
104
+ RUBY_PLATFORM
105
+ end
106
+
107
+ def release_date
108
+ Date.parse RUBY_RELEASE_DATE
109
+ end
110
+ alias date release_date
111
+
112
+ def description
113
+ RUBY_DESCRIPTION
114
+ end
115
+ end
116
+ end
117
+
118
+ # J-_-L
@@ -0,0 +1,3 @@
1
+ module RubyVersion
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require File.expand_path('../lib/ruby_version/version', __FILE__)
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "ruby_version"
7
+ gem.version = RubyVersion::VERSION
8
+ gem.summary = 'Adds the RubyVersion pseudo-constant.'
9
+ gem.description = 'Provides a RubyVersion class to simplify checking for the right Ruby version in your programs.'
10
+ gem.license = "MIT"
11
+ gem.authors = ["Jan Lelis"]
12
+ gem.email = "mail@janlelis.de"
13
+ gem.homepage = "https://github.com/janlelis/ruby_version"
14
+
15
+ gem.files = Dir['{**/}{.*,*}'].select { |path| File.file?(path) }
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ['lib']
19
+
20
+ gem.add_development_dependency 'bundler', '~> 1.0'
21
+ gem.add_development_dependency 'rake', '~> 10.0'
22
+ gem.add_development_dependency 'rdoc', '~> 3.0'
23
+ gem.add_development_dependency 'rspec', '~> 2.4'
24
+ gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
25
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'RubyVersion' do
4
+ before :all do
5
+ @remember_version = RUBY_VERSION
6
+ capture_stderr{ RUBY_VERSION = '1.8.7' }
7
+ end
8
+
9
+ it 'should display RUBY_VERSION if called directly (to_s)' do
10
+ RubyVersion.to_s.should == '1.8.7'
11
+ end
12
+
13
+ context 'with "is" method, with parameter' do
14
+ it 'should check for main version (1.8 or 1.9) when Float paramater is given' do
15
+ RubyVersion.is?( 1.8 ).should == true
16
+ RubyVersion.is?( 1.9 ).should == false
17
+ end
18
+
19
+ it 'should check with string comparison if parameter is not Float' do
20
+ RubyVersion.is?( '1.8' ).should == false
21
+ end
22
+ end
23
+
24
+ context 'with "is" method, without parameter, but method chaining' do
25
+ it 'should return a string for usage with comparison operators' do
26
+ (RubyVersion.is > '1.8.7').should == false
27
+ (RubyVersion <= '1.8.7').should == true
28
+ (RubyVersion.is.between? '1.8.6', '1.8.7').should == true
29
+ end
30
+
31
+ it 'should create some handy compare aliases' do
32
+ RubyVersion.is.above( '1.8.7' ).should == false
33
+ RubyVersion.is.at_least( '1.8.7' ).should == true
34
+ RubyVersion.is.exactly( '1.8.7' ).should == true
35
+ end
36
+
37
+ it 'also allows to check for the release dates' do
38
+ RubyVersion.is.older_than( Date.today ).should == true
39
+ RubyVersion.is.newer_than( '2000-01-01' ).should == true
40
+ end
41
+ end
42
+
43
+ it 'should define some accessors' do
44
+ RubyVersion.major.should == 1
45
+ RubyVersion.minor.should == 8
46
+ RubyVersion.tiny.should == 7
47
+ RubyVersion.patchlevel.should == RUBY_PATCHLEVEL
48
+ RubyVersion.description.should == RUBY_DESCRIPTION
49
+ end
50
+
51
+ after :all do
52
+ capture_stderr{ RUBY_VERSION = @remember_version }
53
+ end
54
+ end
@@ -0,0 +1,20 @@
1
+ require 'ruby_version'
2
+
3
+ require 'rspec'
4
+ require 'stringio'
5
+
6
+ def capture_stdout
7
+ capture = StringIO.new
8
+ restore, $stdout = $stdout, capture
9
+ yield
10
+ $stdout = restore
11
+ capture.string
12
+ end
13
+
14
+ def capture_stderr
15
+ capture = StringIO.new
16
+ restore, $stderr = $stderr, capture
17
+ yield
18
+ $stderr = restore
19
+ capture.string
20
+ end
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jan Lelis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-01-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rdoc
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '2.4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '2.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubygems-tasks
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '0.2'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '0.2'
83
+ description: Provides a RubyVersion class to simplify checking for the right Ruby
84
+ version in your programs.
85
+ email: mail@janlelis.de
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - .gitignore
91
+ - .rspec
92
+ - .travis.yml
93
+ - ChangeLog.rdoc
94
+ - Gemfile
95
+ - Gemfile.lock
96
+ - LICENSE.txt
97
+ - README.rdoc
98
+ - Rakefile
99
+ - lib/ruby_version.rb
100
+ - lib/ruby_version/version.rb
101
+ - ruby_version.gemspec
102
+ - spec/ruby_version_spec.rb
103
+ - spec/spec_helper.rb
104
+ homepage: https://github.com/janlelis/ruby_version
105
+ licenses:
106
+ - MIT
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubyforge_project:
124
+ rubygems_version: 2.2.1
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: Adds the RubyVersion pseudo-constant.
128
+ test_files:
129
+ - spec/ruby_version_spec.rb
130
+ - spec/spec_helper.rb