quack 0.0.3 → 0.0.4
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/LICENSE.txt +1 -1
- data/lib/quack/types/time.rb +6 -6
- data/lib/quack/version.rb +1 -1
- data/spec/quack/guesser_spec.rb +28 -1
- metadata +11 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ee4849d86659335653fbe4eb06e02d97654d47f
|
4
|
+
data.tar.gz: 67448125e2da4a406be4b3ed5c36fadc2bed47c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 994dbd358a991a928b954e344e7fceae325cea045000b646ae964f5462f40b1e55dcd412cab1203b250278563221a42b719a2e724cdb9c1a468e9287aac8966c
|
7
|
+
data.tar.gz: ec571bf7da63cc2e8a83f104ab1aaafccee4263e5749fecdf792f42f1bb0831400b569a4e010bb730d09ebb03cd40ad4e74bb7a827ccd3d772c73ac8ff857688
|
data/CHANGELOG.md
ADDED
data/LICENSE.txt
CHANGED
data/lib/quack/types/time.rb
CHANGED
@@ -4,13 +4,13 @@ require "quack/type"
|
|
4
4
|
module Quack
|
5
5
|
module Types
|
6
6
|
class Time < Quack::Type
|
7
|
-
YMD_FORMAT =
|
7
|
+
YMD_FORMAT = /\A
|
8
8
|
(?<year>\d{4})(-|\/)
|
9
9
|
(?<month>\d{2})(-|\/)
|
10
10
|
(?<day>\d{2})
|
11
|
-
/x
|
11
|
+
\z/x
|
12
12
|
|
13
|
-
ISO_8601 =
|
13
|
+
ISO_8601 = /\A
|
14
14
|
(?<year>\d{4})-
|
15
15
|
(?<month>\d{2})-
|
16
16
|
(?<day>\d{2})T
|
@@ -18,7 +18,7 @@ module Quack
|
|
18
18
|
(?<minute>\d{2}):
|
19
19
|
(?<second>\d{2})
|
20
20
|
(?<offset>Z|(\+|-)(\d{2}):(\d{2}))
|
21
|
-
/x
|
21
|
+
\z/x
|
22
22
|
|
23
23
|
UTC = "+00:00"
|
24
24
|
|
@@ -28,11 +28,11 @@ module Quack
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def iso_8601?(value)
|
31
|
-
!!(value.to_s =~ ISO_8601)
|
31
|
+
!!(value.to_s.strip =~ ISO_8601)
|
32
32
|
end
|
33
33
|
|
34
34
|
def ymd?(value)
|
35
|
-
!!(value.to_s =~ YMD_FORMAT)
|
35
|
+
!!(value.to_s.strip =~ YMD_FORMAT)
|
36
36
|
end
|
37
37
|
|
38
38
|
def matches?(value)
|
data/lib/quack/version.rb
CHANGED
data/spec/quack/guesser_spec.rb
CHANGED
@@ -4,7 +4,7 @@ describe Quack::Guesser do
|
|
4
4
|
describe "given a string integer" do
|
5
5
|
let(:value) { "123" }
|
6
6
|
let(:subject) { Quack::Guesser.new(value) }
|
7
|
-
|
7
|
+
|
8
8
|
it "should have Integer type" do
|
9
9
|
subject.guess.class.must_equal(Quack::Types::Integer)
|
10
10
|
end
|
@@ -82,6 +82,33 @@ describe Quack::Guesser do
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
+
describe "given a padded ISO 8061 UTC date" do
|
86
|
+
let(:value) { " 2014-03-22T03:00:00Z " }
|
87
|
+
let(:subject) { Quack::Guesser.new(value) }
|
88
|
+
|
89
|
+
it "should have Time type" do
|
90
|
+
subject.guess.class.must_equal(Quack::Types::Time)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe "given an embedded ISO 8061 UTC date" do
|
95
|
+
let(:value) { "something awesome will happen 2014-03-22T03:00:00Z or thereabouts" }
|
96
|
+
let(:subject) { Quack::Guesser.new(value) }
|
97
|
+
|
98
|
+
it "should have String type" do
|
99
|
+
subject.guess.class.must_equal(Quack::Types::String)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "given an embedded simple date" do
|
104
|
+
let(:value) { "something awesome will happen 2014-03-22 or thereabouts" }
|
105
|
+
let(:subject) { Quack::Guesser.new(value) }
|
106
|
+
|
107
|
+
it "should have String type" do
|
108
|
+
subject.guess.class.must_equal(Quack::Types::String)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
85
112
|
describe "given an ISO 8061 non-UTC date" do
|
86
113
|
let(:value) { "2014-03-22T03:00:00-07:00" }
|
87
114
|
let(:subject) { Quack::Guesser.new(value) }
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derrick Reimer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description: A simple type coercion library
|
@@ -45,7 +45,8 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- .gitignore
|
48
|
+
- ".gitignore"
|
49
|
+
- CHANGELOG.md
|
49
50
|
- Gemfile
|
50
51
|
- LICENSE.txt
|
51
52
|
- README.md
|
@@ -81,17 +82,17 @@ require_paths:
|
|
81
82
|
- lib
|
82
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
83
84
|
requirements:
|
84
|
-
- -
|
85
|
+
- - ">="
|
85
86
|
- !ruby/object:Gem::Version
|
86
87
|
version: '0'
|
87
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
89
|
requirements:
|
89
|
-
- -
|
90
|
+
- - ">="
|
90
91
|
- !ruby/object:Gem::Version
|
91
92
|
version: '0'
|
92
93
|
requirements: []
|
93
94
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.
|
95
|
+
rubygems_version: 2.5.1
|
95
96
|
signing_key:
|
96
97
|
specification_version: 4
|
97
98
|
summary: Quack is a simple type coercion library for scalar Ruby objects
|