saneitized 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -2
- data/README.md +1 -0
- data/lib/saneitized/converter.rb +27 -12
- data/lib/saneitized/version.rb +1 -1
- data/saneitized.gemspec +1 -1
- data/spec/saneitized/array_spec.rb +3 -3
- data/spec/saneitized/converter_spec.rb +19 -13
- data/spec/saneitized/hash_spec.rb +9 -9
- data/spec/spec_helper.rb +0 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2bc38bc070f2a0476dadc2416ef30c8d6485fce
|
4
|
+
data.tar.gz: eacec70fdcdfe47a810a227c1021fbca70893c4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1b2413ea4aea85bd134a487f06a33c557649f21282f620318947e1c7b9235251eb2151d6a9ff8ca5e7c150e1ad46c1259bf4a1e963c2872db0e174c8c01fd23
|
7
|
+
data.tar.gz: 00ae7b55e0b4802082a55c58d7b69182c924acfc77c617353fe4ff9b5a967625550ee581cf44e200decb2c55906a9a82a2466632fac906dc0a0e08d6003ce0b9
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -33,6 +33,7 @@ It tries to convert strings in the following order, trying the next thing if it
|
|
33
33
|
the new value if it succeeds
|
34
34
|
|
35
35
|
Boolean: Saneitized.convert('true') #=> true ('false' works the same way)
|
36
|
+
nil: Saneitized.convert('null') #=> nil (also converts 'nil' and 'NULL')
|
36
37
|
Integer: Saneitized.convert('42') #=> 42
|
37
38
|
Float: Saneitized.convert('22.2') #=> 22.2
|
38
39
|
JSON: Saneitized.convert("{\"hello\":\"goodbye\"}") #=> {"hello"=>"goodbye"}
|
data/lib/saneitized/converter.rb
CHANGED
@@ -6,13 +6,17 @@ module Saneitized
|
|
6
6
|
return Saneitized::Hash.new(unknown) if unknown.is_a? ::Hash
|
7
7
|
return Saneitized::Array.new(unknown) if unknown.is_a? ::Array
|
8
8
|
return unknown unless unknown.is_a? String #Only attempt to convert string
|
9
|
-
return true if unknown == 'true'
|
10
|
-
return false if unknown == 'false'
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
%w(true false nil integer float json time).each do |type|
|
11
|
+
value = Converter.send(type + '?', unknown)
|
12
|
+
next if value == :nope
|
13
|
+
return (type == 'json') ? convert(value) : value
|
14
|
+
end
|
15
|
+
|
16
|
+
#if value = Converter.integer?(unknown) then return value end
|
17
|
+
#if value = Converter.float?(unknown) then return value end
|
18
|
+
#if (value = Converter.json?(unknown)) != :nope then return convert(value) end
|
19
|
+
#if value = Converter.time?(unknown) then return value end
|
16
20
|
|
17
21
|
unknown
|
18
22
|
end
|
@@ -20,28 +24,39 @@ module Saneitized
|
|
20
24
|
module Converter
|
21
25
|
extend self
|
22
26
|
|
27
|
+
def true?(unknown)
|
28
|
+
(unknown == 'true') ? true : :nope
|
29
|
+
end
|
30
|
+
|
31
|
+
def false?(unknown)
|
32
|
+
(unknown == 'false') ? false : :nope
|
33
|
+
end
|
34
|
+
|
35
|
+
def nil?(unknown)
|
36
|
+
(%w(nil null NULL).include? unknown) ? nil : :nope
|
37
|
+
end
|
38
|
+
|
23
39
|
def json?(unknown)
|
24
40
|
JSON.parse(unknown)
|
25
41
|
rescue JSON::ParserError, TypeError
|
26
|
-
|
42
|
+
:nope
|
27
43
|
end
|
28
44
|
|
29
45
|
def integer?(unknown)
|
30
46
|
Integer(unknown)
|
31
47
|
rescue ArgumentError, TypeError
|
32
|
-
|
48
|
+
:nope
|
33
49
|
end
|
34
50
|
|
35
51
|
def float?(unknown)
|
36
52
|
Float(unknown)
|
37
53
|
rescue ArgumentError, TypeError
|
38
|
-
|
54
|
+
:nope
|
39
55
|
end
|
40
56
|
|
41
57
|
def time?(unknown)
|
42
|
-
Chronic.parse(unknown)
|
43
|
-
|
44
|
-
false
|
58
|
+
value = Chronic.parse(unknown)
|
59
|
+
value.nil? ? :nope : value
|
45
60
|
end
|
46
61
|
end
|
47
62
|
|
data/lib/saneitized/version.rb
CHANGED
data/saneitized.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_dependency 'chronic', '~> 0.10.2'
|
22
22
|
|
23
23
|
spec.add_development_dependency 'bundler', '~>1.5'
|
24
|
-
spec.add_development_dependency 'rspec', '~>
|
24
|
+
spec.add_development_dependency 'rspec', '~>3.0'
|
25
25
|
spec.add_development_dependency 'rake', '~>10.1'
|
26
26
|
spec.add_development_dependency 'simplecov', '~>0.8'
|
27
27
|
spec.add_development_dependency 'coveralls', '~>0.7'
|
@@ -4,7 +4,7 @@ describe Saneitized::Array do
|
|
4
4
|
|
5
5
|
describe '#new' do
|
6
6
|
it 'should convert array of numbers' do
|
7
|
-
Saneitized::Array.new(['1','2','3']).
|
7
|
+
expect(Saneitized::Array.new(['1','2','3'])).to eql [1,2,3]
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -12,7 +12,7 @@ describe Saneitized::Array do
|
|
12
12
|
it 'should convert object at index' do
|
13
13
|
a = Saneitized::Array.new
|
14
14
|
a[0] = 'true'
|
15
|
-
a[0].
|
15
|
+
expect(a[0]).to eql true
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -20,7 +20,7 @@ describe Saneitized::Array do
|
|
20
20
|
it 'should converted added object' do
|
21
21
|
a = Saneitized::Array.new
|
22
22
|
a << '11'
|
23
|
-
a.
|
23
|
+
expect(a).to eql [11]
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -5,59 +5,65 @@ describe Saneitized do
|
|
5
5
|
it 'should convert hash' do
|
6
6
|
unsullied = {:kick_ass => 'true', :cities_sacked => '3'}
|
7
7
|
sanitized = {:kick_ass => true, :cities_sacked => 3}
|
8
|
-
Saneitized.convert(unsullied).
|
8
|
+
expect(Saneitized.convert(unsullied)).to eql sanitized
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'should convert array' do
|
12
12
|
insane = ['1', '3', '2014-05-29 19:19:44 -0400']
|
13
13
|
sane = [1, 3, Time.new(2014,5,29,19,19,44,'-04:00')]
|
14
|
-
Saneitized.convert(insane).
|
14
|
+
expect(Saneitized.convert(insane)).to eql sane
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'should convert json' do
|
18
18
|
insane = {'all' => '34.2', 'base' => ['are', 'true', '10'] }.to_json
|
19
19
|
sane = {'all' => 34.2, 'base' => ['are', true, 10]}
|
20
|
-
Saneitized.convert(insane).
|
20
|
+
expect(Saneitized.convert(insane)).to eql sane
|
21
|
+
end
|
22
|
+
|
23
|
+
%w(nil null NULL).each do | nnil |
|
24
|
+
it "should change #{nnil} to nil" do
|
25
|
+
expect(Saneitized.convert(nnil)).to be nil
|
26
|
+
end
|
21
27
|
end
|
22
28
|
|
23
29
|
it "should change 'true' to true" do
|
24
|
-
Saneitized.convert('true').
|
30
|
+
expect(Saneitized.convert('true')).to be true
|
25
31
|
end
|
26
32
|
|
27
33
|
it "should change 'false' to false" do
|
28
|
-
Saneitized.convert('false').
|
34
|
+
expect(Saneitized.convert('false')).to be false
|
29
35
|
end
|
30
36
|
|
31
37
|
it "should change '12.34' to 12.34" do
|
32
|
-
Saneitized.convert('12.34').
|
38
|
+
expect(Saneitized.convert('12.34')).to eql 12.34
|
33
39
|
end
|
34
40
|
|
35
41
|
it 'should not change 0.5 to 0.0' do
|
36
|
-
Saneitized.convert(0.5).
|
42
|
+
expect(Saneitized.convert(0.5)).to eql 0.5
|
37
43
|
end
|
38
44
|
|
39
45
|
it 'should change integer string to integer' do
|
40
|
-
Saneitized.convert('12').kind_of?(Fixnum).
|
46
|
+
expect(Saneitized.convert('12').kind_of?(Fixnum)).to eql true
|
41
47
|
end
|
42
48
|
|
43
49
|
it "should changer '12' to 12" do
|
44
|
-
Saneitized.convert('12').
|
50
|
+
expect(Saneitized.convert('12')).to be 12
|
45
51
|
end
|
46
52
|
|
47
53
|
it 'should do nothing to strings' do
|
48
|
-
Saneitized.convert('blah').
|
54
|
+
expect(Saneitized.convert('blah')).to eql 'blah'
|
49
55
|
end
|
50
56
|
|
51
57
|
it 'should do nothing to nil' do
|
52
|
-
Saneitized.convert(nil).
|
58
|
+
expect(Saneitized.convert(nil)).to be nil
|
53
59
|
end
|
54
60
|
|
55
61
|
it 'should convert datetime string' do
|
56
|
-
Saneitized.convert("2001-02-03 10:11:12 -0400").
|
62
|
+
expect(Saneitized.convert("2001-02-03 10:11:12 -0400")).to eql Time.new(2001,2,3,10,11,12,'-04:00')
|
57
63
|
end
|
58
64
|
|
59
65
|
it 'should leave marketplaces alone' do
|
60
|
-
Saneitized.convert('marketplaces').
|
66
|
+
expect(Saneitized.convert('marketplaces')).to eq 'marketplaces'
|
61
67
|
end
|
62
68
|
end
|
63
69
|
end
|
@@ -4,35 +4,35 @@ describe Saneitized::Hash do
|
|
4
4
|
|
5
5
|
describe '#new' do
|
6
6
|
it "should change 'true' to true" do
|
7
|
-
Saneitized::Hash.new({:true => 'true'})[:true].
|
7
|
+
expect(Saneitized::Hash.new({:true => 'true'})[:true]).to eql true
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should change 'false' to false" do
|
11
|
-
Saneitized::Hash.new({:false => 'false'})[:false].
|
11
|
+
expect(Saneitized::Hash.new({:false => 'false'})[:false]).to eql false
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should change '12.34' to 12.34" do
|
15
|
-
Saneitized::Hash.new({value: '12.34'})[:value].
|
15
|
+
expect(Saneitized::Hash.new({value: '12.34'})[:value]).to eql 12.34
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'should not change 0.5 to 0.0' do
|
19
|
-
Saneitized::Hash.new({value: 0.5})[:value].
|
19
|
+
expect(Saneitized::Hash.new({value: 0.5})[:value]).to eql 0.5
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'should change integer string to integer' do
|
23
|
-
Saneitized::Hash.new({int: '12'})[:int].kind_of?(Fixnum).
|
23
|
+
expect(Saneitized::Hash.new({int: '12'})[:int].kind_of?(Fixnum)).to be true
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should changer '12' to 12" do
|
27
|
-
Saneitized::Hash.new({int: '12'})[:int].
|
27
|
+
expect(Saneitized::Hash.new({int: '12'})[:int]).to be 12
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'should do nothing to strings' do
|
31
|
-
Saneitized::Hash.new({string: 'blah'})[:string].
|
31
|
+
expect(Saneitized::Hash.new({string: 'blah'})[:string]).to eql 'blah'
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'should do nothing to nil' do
|
35
|
-
Saneitized::Hash.new({nill: nil})[:nill].
|
35
|
+
expect(Saneitized::Hash.new({nill: nil})[:nill]).to be nil
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -40,7 +40,7 @@ describe Saneitized::Hash do
|
|
40
40
|
it 'should sanitized assigned keys' do
|
41
41
|
hash = Saneitized::Hash.new
|
42
42
|
hash['key']= '10'
|
43
|
-
hash['key'].
|
43
|
+
expect(hash['key']).to eql 10
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
data/spec/spec_helper.rb
CHANGED
@@ -12,7 +12,6 @@ require 'pry'
|
|
12
12
|
#
|
13
13
|
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
14
14
|
RSpec.configure do |config|
|
15
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
16
15
|
config.run_all_when_everything_filtered = true
|
17
16
|
config.filter_run :focus
|
18
17
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: saneitized
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Guest
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chronic
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '3.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '3.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|