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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e2631ffe9579b778449ea270b2f8ca12c368762
4
- data.tar.gz: 2dc106dd8e55b4e576cedc3dc29bea74e0ab3c03
3
+ metadata.gz: b699902c9e098061f0ac396a25ef5ad58e84edbd
4
+ data.tar.gz: a8b54ae39eb56abd1fac7da08ccc1d35d4343ec1
5
5
  SHA512:
6
- metadata.gz: 6631b942ae16557bdda9c5a40fd05ff9896dc6ddc89681c519d98132aef927bf28e4476ec79ba3a68889dd3dab6f7576ce5c95b81f21f35ced51e141fece1a20
7
- data.tar.gz: 45ebce976dbe8ebe2aca18244dcb0f8f87700c866be0f7a3a5b398ee956d49162115b021456569865c816323f4d222f4a652daa751f220503d5d26ad8fe2aa81
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
@@ -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+...?\d+\z/)
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
@@ -1,3 +1,3 @@
1
1
  module Ranger
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -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.0.0
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-29 00:00:00.000000000 Z
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