saneitized 0.0.1 → 0.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: a9939590236fcff2034eff57303b477d658dcfdb
4
- data.tar.gz: 13a96f2ca58e3ec4ec5eaf73e2e3d15827a30aa8
3
+ metadata.gz: c94e5037a177dcba5a97198c0b29a9ebdf46013b
4
+ data.tar.gz: f140fd55b042f7255d908a42192ac21c8c4c5c22
5
5
  SHA512:
6
- metadata.gz: 1a71716d2d887422ba2643bd43ed6f5234ae2935ad5795bc82a9fef0d0ddaf92fc74a68dbbd197d30a35fe6a133d2ca70ec472360c74fbb421e45c1ef198e98d
7
- data.tar.gz: 3ab450bb028dad258384ff6aff5a189f9c0cb626c858f68511951853cf36a5de4c45ddab2be2a5f7e807c266b8b7590c80d62cc766a77c48f69bfdcae488c0ed
6
+ metadata.gz: a3347445524fa7cf0060ca9c915e9f23403dba14be1f42eb3bf1382b2342e1303126df8016c1ceb2c019e9846b9aefd873df3bbc0f8e9703c3da390245d664fb
7
+ data.tar.gz: 4ddd40e71917b2aeeb630534bfd2b7f78f2e357568f8e14923e2cc64424426f70caa418a9c293b8ad1643dd4bd21209267349fe7c634e2dd94d772f2a9ea010c
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in saneitized_hash.gemspec
4
4
  gemspec
5
+
6
+ group :development, :test do
7
+ gem 'pry', '~> 0.9.12'
8
+ gem 'pry-nav', '~> 0.2.3'
9
+ end
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Code Climate](https://codeclimate.com/github/bguest/saneitized.png)](https://codeclimate.com/github/bguest/saneitized) [![Build Status](https://travis-ci.org/bguest/saneitized.png?branch=master)](https://travis-ci.org/bguest/saneitized) [![Coverage Status](https://coveralls.io/repos/bguest/saneitized/badge.png)](https://coveralls.io/r/bguest/saneitized)
1
+ [![Code Climate](https://codeclimate.com/github/bguest/saneitized.png)](https://codeclimate.com/github/bguest/saneitized) [![Build Status](https://travis-ci.org/bguest/saneitized.png?branch=master)](https://travis-ci.org/bguest/saneitized) [![Coverage Status](https://coveralls.io/repos/bguest/saneitized/badge.png)](https://coveralls.io/r/bguest/saneitized) [![Gem Version](https://badge.fury.io/rb/saneitized.png)](http://badge.fury.io/rb/saneitized) [![Dependency Status](https://gemnasium.com/bguest/saneitized.png)](https://gemnasium.com/bguest/saneitized)
2
2
 
3
3
  # Saneitized
4
4
 
@@ -30,9 +30,9 @@ Or install it yourself as:
30
30
 
31
31
  Use it like so
32
32
 
33
- sane_hash = Saneitize::Hash.new({:false => 'false',
34
- :number => '10',
35
- :float => '42.4'})
33
+ sane_hash = Saneitized::Hash.new({:false => 'false',
34
+ :number => '10',
35
+ :float => '42.4'})
36
36
 
37
37
  sane_hash[:false] #=> false
38
38
  sane_hash[:number] #=> 10
@@ -1,2 +1,3 @@
1
1
  require 'saneitized/version'
2
- require 'saneitized/hash'
2
+ require 'saneitized/converter'
3
+ require 'saneitized/hash'
@@ -0,0 +1,29 @@
1
+ module Saneitized
2
+ def self.convert(unknown)
3
+ return Saneitized::Hash.new(unknown) if unknown.is_a? ::Hash
4
+ return unknown unless unknown.is_a? String #Only attempt to convert string
5
+ return true if unknown == 'true'
6
+ return false if unknown == 'false'
7
+
8
+ if value = Converter.integer?(unknown) then return value end
9
+ if value = Converter.float?(unknown) then return value end
10
+
11
+ unknown
12
+ end
13
+
14
+ module Converter
15
+ extend self
16
+ def integer?(unknown)
17
+ Integer(unknown)
18
+ rescue ArgumentError, TypeError
19
+ false
20
+ end
21
+
22
+ def float?(unknown)
23
+ Float(unknown)
24
+ rescue ArgumentError, TypeError
25
+ false
26
+ end
27
+ end
28
+
29
+ end
@@ -5,38 +5,9 @@ module Saneitized
5
5
  def initialize(hash)
6
6
  super(hash)
7
7
  hash.each do |key, value|
8
- next unless value.is_a? String # Only attempt to convert strings
9
- next if convert_to_true(key, value) # True
10
- next if convert_to_false(key, value) # False
11
- next if convert_to_integer(key,value) # Integer
12
- next if convert_to_float(key, value) # Float
8
+ hash[key] = Saneitized.convert(value)
13
9
  end
14
10
  end
15
11
 
16
- private
17
-
18
- def convert_to_true(key, value)
19
- (value == 'true' ? self[key] = true : false)
20
- end
21
-
22
- def convert_to_false(key, value)
23
- (value == 'false' ? (self[key] = false; true) : false)
24
- end
25
-
26
- def convert_to_integer(key, value)
27
- self[key] = Integer(value)
28
- true
29
- rescue ArgumentError, TypeError
30
- false
31
- end
32
-
33
- def convert_to_float(key, value)
34
- self[key] = Float(value)
35
- true
36
- rescue ArgumentError, TypeError
37
- false
38
- end
39
-
40
12
  end
41
-
42
13
  end
@@ -1,3 +1,3 @@
1
1
  module Saneitized
2
- VERSION = '0.0.1'
2
+ VERSION = '0.1.0'
3
3
  end
@@ -24,3 +24,4 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'simplecov', '~>0.8'
25
25
  spec.add_development_dependency 'coveralls', '~>0.7'
26
26
  end
27
+
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ describe Saneitized do
4
+ describe '#convert' do
5
+ it 'should convert hash' do
6
+ unsullied = {:kick_ass => 'true', :cities_sacked => '3'}
7
+ sanitized = {:kick_ass => true, :cities_sacked => 3}
8
+ Saneitized.convert(unsullied).should == sanitized
9
+ end
10
+
11
+ it "should change 'true' to true" do
12
+ Saneitized.convert('true').should == true
13
+ end
14
+
15
+ it "should change 'false' to false" do
16
+ Saneitized.convert('false').should == false
17
+ end
18
+
19
+ it "should change '12.34' to 12.34" do
20
+ Saneitized.convert('12.34').should == 12.34
21
+ end
22
+
23
+ it 'should not change 0.5 to 0.0' do
24
+ Saneitized.convert(0.5).should == 0.5
25
+ end
26
+
27
+ it 'should change integer string to integer' do
28
+ Saneitized.convert('12').kind_of?(Fixnum).should be_true
29
+ end
30
+
31
+ it "should changer '12' to 12" do
32
+ Saneitized.convert('12').should == 12
33
+ end
34
+
35
+ it 'should do nothing to strings' do
36
+ Saneitized.convert('blah').should == 'blah'
37
+ end
38
+
39
+ it 'should do nothing to nil' do
40
+ Saneitized.convert(nil).should be_nil
41
+ end
42
+ end
43
+ end
@@ -8,6 +8,7 @@ Coveralls.wear!
8
8
  #require 'bundler/setup'
9
9
 
10
10
  require 'saneitized'
11
+ require 'pry'
11
12
  #
12
13
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
13
14
  RSpec.configure do |config|
@@ -25,4 +26,4 @@ end
25
26
  # This file was generated by the `rspec --init` command. Conventionally, all
26
27
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
27
28
  # Require this file using `require "spec_helper"` to ensure that it is only
28
- # loaded once.
29
+ # loaded once.
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: 0.0.1
4
+ version: 0.1.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-01-24 00:00:00.000000000 Z
11
+ date: 2014-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -96,9 +96,11 @@ files:
96
96
  - README.md
97
97
  - Rakefile
98
98
  - lib/saneitized.rb
99
+ - lib/saneitized/converter.rb
99
100
  - lib/saneitized/hash.rb
100
101
  - lib/saneitized/version.rb
101
102
  - saneitized.gemspec
103
+ - spec/saneitized/converter_spec.rb
102
104
  - spec/saneitized/hash_spec.rb
103
105
  - spec/spec_helper.rb
104
106
  homepage: https://github.com/bguest/saneitized
@@ -126,5 +128,6 @@ signing_key:
126
128
  specification_version: 4
127
129
  summary: Sanely converts string values to their ruby equivalent
128
130
  test_files:
131
+ - spec/saneitized/converter_spec.rb
129
132
  - spec/saneitized/hash_spec.rb
130
133
  - spec/spec_helper.rb