saneitized 1.1.1 → 1.2.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: 5d06c3288205ec366ffb099b4b1eef0ca7f84536
4
- data.tar.gz: 61c1bf281121da5af7f2bf7a8cd8015fb947eeee
3
+ metadata.gz: d2bc38bc070f2a0476dadc2416ef30c8d6485fce
4
+ data.tar.gz: eacec70fdcdfe47a810a227c1021fbca70893c4f
5
5
  SHA512:
6
- metadata.gz: 7053a36f0eac4e2605359870a3992266875fcc8cd585cbfe8ac82465f10ef73d1ade5d5be654d33185f01abec5ead944b035ea7467c67335f0e9b5ef65ceab05
7
- data.tar.gz: 439e5e13f787845305b76f8367298672d744a961923bafe03e60a1903e8f4c68ea618e7ccce11a42e7399999478a2c103aa9b62e45bd9a66f50453109ad2cc3e
6
+ metadata.gz: a1b2413ea4aea85bd134a487f06a33c557649f21282f620318947e1c7b9235251eb2151d6a9ff8ca5e7c150e1ad46c1259bf4a1e963c2872db0e174c8c01fd23
7
+ data.tar.gz: 00ae7b55e0b4802082a55c58d7b69182c924acfc77c617353fe4ff9b5a967625550ee581cf44e200decb2c55906a9a82a2466632fac906dc0a0e08d6003ce0b9
data/.travis.yml CHANGED
@@ -2,5 +2,6 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
4
  - 2.0.0
5
- - 2.1.2
6
- #- jruby-19mode
5
+ - 2.1.3
6
+ - rbx-2
7
+ - jruby-19mode
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"}
@@ -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
- if value = Converter.integer?(unknown) then return value end
13
- if value = Converter.float?(unknown) then return value end
14
- if value = Converter.json?(unknown) then return convert(value) end
15
- if value = Converter.time?(unknown) then return value end
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
- false
42
+ :nope
27
43
  end
28
44
 
29
45
  def integer?(unknown)
30
46
  Integer(unknown)
31
47
  rescue ArgumentError, TypeError
32
- false
48
+ :nope
33
49
  end
34
50
 
35
51
  def float?(unknown)
36
52
  Float(unknown)
37
53
  rescue ArgumentError, TypeError
38
- false
54
+ :nope
39
55
  end
40
56
 
41
57
  def time?(unknown)
42
- Chronic.parse(unknown)
43
- rescue ArgumentError, TypeError
44
- false
58
+ value = Chronic.parse(unknown)
59
+ value.nil? ? :nope : value
45
60
  end
46
61
  end
47
62
 
@@ -1,3 +1,3 @@
1
1
  module Saneitized
2
- VERSION = '1.1.1'
2
+ VERSION = '1.2.0'
3
3
  end
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', '~>2.14'
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']).should == [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].should == true
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.should == [11]
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).should == sanitized
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).should == sane
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).should == sane
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').should == 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').should == 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').should == 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).should == 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).should be true
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').should == 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').should == '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).should be_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").should == Time.new(2001,2,3,10,11,12,'-04:00')
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').should == '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].should == 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].should == 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].should == 12.34
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].should == 0.5
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).should be true
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].should == 12
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].should == 'blah'
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].should be_nil
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'].should == 10
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.1.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-02 00:00:00.000000000 Z
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: '2.14'
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: '2.14'
54
+ version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement