ranger 1.0.0 → 1.1.0

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.
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