ranger 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/lib/ranger.rb +14 -1
- data/lib/ranger/version.rb +1 -1
- data/ranger.gemspec +2 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b699902c9e098061f0ac396a25ef5ad58e84edbd
|
4
|
+
data.tar.gz: a8b54ae39eb56abd1fac7da08ccc1d35d4343ec1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 190653dec66f77f170f24977e96753472c1d8cbb70eca9a228ae2a20122fa4017199beb1586d68993ffbb34939ba59aeb524ea376b598a10f11558b88f3bb870
|
7
|
+
data.tar.gz: 3c64494bf804e2e3a0ab35f68305ee5fccbb47851897c16394a411bcfcee592e5b392b9437e95b38891182c33e64ca53b8c1d76d29c0f178ee85ca1d0d7363b4
|
data/README.md
CHANGED
@@ -16,11 +16,15 @@ Or install it yourself as:
|
|
16
16
|
|
17
17
|
## Usage
|
18
18
|
|
19
|
+
As of 1.1.0 works for string form integer __and__ date ranges
|
20
|
+
|
19
21
|
```ruby
|
20
22
|
"1..3".to_range
|
21
23
|
#=> 1..3 # a range object
|
22
24
|
"1...3".to_range #
|
23
25
|
#=> 1...3
|
26
|
+
"01-01-2015..02-02-2015".to_range
|
27
|
+
#=> Thu, 01 Jan 2015 00:00:00 +0000..Mon, 02 Feb 2015 23:59:59 +0000
|
24
28
|
```
|
25
29
|
|
26
30
|
### TODO
|
data/lib/ranger.rb
CHANGED
@@ -1,13 +1,20 @@
|
|
1
1
|
require "ranger/version"
|
2
|
+
require 'active_support/all'
|
2
3
|
|
3
4
|
class String
|
4
5
|
def to_range
|
5
|
-
if self.match(/\A\d
|
6
|
+
if self.match(/\A\d+\.{2,3}\d+\z/)
|
6
7
|
if self.include?("...")
|
7
8
|
return rangeify("...")
|
8
9
|
else
|
9
10
|
return rangeify("..")
|
10
11
|
end
|
12
|
+
elsif self.match(DATE_MATCH_REGEX)
|
13
|
+
if self.include?("...")
|
14
|
+
return d_rangeify("...")
|
15
|
+
else
|
16
|
+
return d_rangeify("..")
|
17
|
+
end
|
11
18
|
else
|
12
19
|
raise ArgumentError, "Given string does not match /\A\d+...?\d+\z/"
|
13
20
|
end
|
@@ -18,4 +25,10 @@ class String
|
|
18
25
|
two_range_integers = self.split(type)
|
19
26
|
return eval(%Q|#{two_range_integers[0]}#{type}#{two_range_integers[1]}|)
|
20
27
|
end
|
28
|
+
def d_rangeify type
|
29
|
+
two_range_dates = self.split(type)
|
30
|
+
return two_range_dates[0].to_datetime.beginning_of_day..two_range_dates[1].to_datetime.end_of_day
|
31
|
+
end
|
32
|
+
DATE_REGEX = /\d{1,2}-\d{1,2}-\d{4}/
|
33
|
+
DATE_MATCH_REGEX = /\A#{DATE_REGEX}\.{2,3}#{DATE_REGEX}\z/
|
21
34
|
end
|
data/lib/ranger/version.rb
CHANGED
data/ranger.gemspec
CHANGED
@@ -17,6 +17,8 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
+
spec.add_dependency 'activesupport'
|
21
|
+
|
20
22
|
spec.add_development_dependency "bundler", "~> 1.8"
|
21
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
22
24
|
spec.add_development_dependency "rspec"
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ranger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Epigene
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|