utilise 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 19376166d11759a4e6b764ca3a51b9a35cdaf4e7
4
- data.tar.gz: 7128e03df364cfabdad5b57947db0082b8fb46ba
3
+ metadata.gz: 145f9d52668c217f3df8bebb864e790f133f256d
4
+ data.tar.gz: 4dc0b61dee4aefd9b8fa6b94e0e55133ba0a5579
5
5
  SHA512:
6
- metadata.gz: 2e956e4b08d625ff52ac07861319a3719b2eafd13c3e820eef3e0c70947c87fe9326d959800c1b4d38f3242baa19a0492aca06f1169bddd552876c948c2414fc
7
- data.tar.gz: 428fdea3772309f7eee6242f8f269edfefcaaa2abb160b8ffd22b720438220b18f53f746cbcbb679ffb0edcfa0cb22e2a562d6312a21cc518e29145a43deb4b3
6
+ metadata.gz: 25eedc6220d366c0ce79051a70f9e32cceb501abed91ffab9d05238b253a578904365e8c70c5a9a691d9458068917affd8155e3427ce3b02ecc72d9bb9b24112
7
+ data.tar.gz: bacbd6cfb4e0c54c9e7146625e07adc0ef9510c8006e078346ae5641fcac21cd0c597ad079e45f0a9d303bfbd3e075a8f0ac09e4414e96b31c4eace47ef50a9b
data/README.md CHANGED
@@ -8,10 +8,16 @@ Utilise
8
8
  [![Gem Version](https://badge.fury.io/rb/utilise.png)](http://badge.fury.io/rb/utilise)
9
9
 
10
10
  Extends classes to include the to_bool method
11
- Currently Extends:
11
+
12
+ Currently extends:
12
13
  * Fixnum
13
14
  * String
14
15
  * Symbol
16
+ * Hash
17
+ * Array
18
+ * Object
19
+
20
+ Hashes and Arrays will have all values iterated.
15
21
 
16
22
  ```ruby
17
23
  gem install utilise
@@ -30,6 +36,12 @@ require 'utilise'
30
36
 
31
37
  :t.to_bool
32
38
  => true
39
+
40
+ {'key' => 1}.to_bool
41
+ => {'key' => true}
42
+
43
+ [1].to_bool
44
+ => [true]
33
45
  ```
34
46
 
35
47
  ```ruby
@@ -41,4 +53,29 @@ require 'utilise'
41
53
 
42
54
  :f.to_bool
43
55
  => false
56
+
57
+ {'key' => 0}.to_bool
58
+ => {'key' => false}
59
+
60
+ [0].to_bool
61
+ => [false]
62
+ ```
63
+
64
+ ```
65
+ Time.unique
66
+ => "80347765"
44
67
  ```
68
+
69
+ ```
70
+ true.is_bool?
71
+ => true
72
+
73
+ false.is_bool?
74
+ => true
75
+
76
+ 1.is_bool?
77
+ => false
78
+
79
+ "true".is_bool?
80
+ => false
81
+ ```
data/lib/utilise/bool.rb CHANGED
@@ -1,12 +1,55 @@
1
1
  module Utilise
2
- module Bool
3
- def to_bool
4
- case self.to_s
5
- when /true/i, /yes/i, /t/i, /1/i
6
- true
7
- when /false/i, /no/i, /f/i, /0/i
8
- false
9
- end
10
- end
11
- end
2
+ module Bool
3
+
4
+ # Returns bool based on object passed
5
+ #
6
+ # @param object [Object] the object
7
+ # @return [Object] returns object boolean
8
+ def to_bool object = self
9
+ case object
10
+ when String, Fixnum, Symbol
11
+ bool_it object
12
+ when Hash
13
+ bool_hash object
14
+ when Array
15
+ bool_array object
16
+ end
17
+ end
18
+
19
+ # Iterates through hash and updates each key
20
+ # value to a boolean if it matches rules
21
+ #
22
+ # @param hash [Hash] the hash
23
+ def bool_hash hash
24
+ hash.each do |k,v|
25
+ val = to_bool(hash[k])
26
+ hash[k] = val unless val.nil?
27
+ end
28
+ end
29
+
30
+ # Iterates through array and updates each
31
+ # element to a boolean if it matches rules
32
+ #
33
+ # @param array [Array] the array
34
+ def bool_array array
35
+ array.each_index do |i|
36
+ val = to_bool(array[i])
37
+ array[i] = val unless val.nil?
38
+ end
39
+ end
40
+
41
+ # Returns boolean value if object matches rules
42
+ #
43
+ # @param array [Array] the array
44
+ # @returns [Boolean] true/false returned
45
+ def bool_it object
46
+ case object.to_s
47
+ when /true/i, /yes/i, /t/i, /1/i
48
+ true
49
+ when /false/i, /no/i, /f/i, /0/i
50
+ false
51
+ end
52
+ end
53
+
54
+ end
12
55
  end
@@ -0,0 +1,7 @@
1
+ module Utilise
2
+ module Matchers
3
+ def is_bool?
4
+ self.is_a?(TrueClass) || self.is_a?(FalseClass)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Utilise
2
+ module Time
3
+ def unique
4
+ self.now.strftime("%s%3N")[-8..-1]
5
+ end
6
+ end
7
+ end
@@ -1,4 +1,4 @@
1
1
  module Utilise
2
- VERSION = "0.1.0".freeze
3
- DATE = "2013-10-12".freeze
2
+ VERSION = "0.2.0".freeze
3
+ DATE = "2013-12-02".freeze
4
4
  end
data/lib/utilise.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require 'utilise/bool.rb'
2
+ require 'utilise/matchers.rb'
3
+ require 'utilise/time.rb'
2
4
  require 'utilise/version.rb'
3
5
 
4
6
  class String
@@ -11,4 +13,20 @@ end
11
13
 
12
14
  class Symbol
13
15
  include Utilise::Bool
16
+ end
17
+
18
+ class Object
19
+ include Utilise::Matchers
20
+ end
21
+
22
+ class Time
23
+ extend Utilise::Time
24
+ end
25
+
26
+ class Hash
27
+ include Utilise::Bool
28
+ end
29
+
30
+ class Array
31
+ include Utilise::Bool
14
32
  end
@@ -0,0 +1,73 @@
1
+ require 'helper'
2
+
3
+ describe Array do
4
+ describe "#to_bool" do
5
+ it "returns array with true when key value is 1" do
6
+ expect([1].to_bool).to eql([true])
7
+ end
8
+
9
+ it "returns array with false when key value is 0" do
10
+ expect([0].to_bool).to eql([false])
11
+ end
12
+
13
+ it "returns original array when key value is not 0 or 1" do
14
+ expect([2].to_bool).to eql([2])
15
+ end
16
+
17
+ it "returns array with true when key value is 'yes'" do
18
+ expect(['yes'].to_bool).to eql([true])
19
+ end
20
+
21
+ it "returns array with false when key value is 'no'" do
22
+ expect(['no'].to_bool).to eql([false])
23
+ end
24
+
25
+ it "returns array with true when key value is 'true'" do
26
+ expect(['true'].to_bool).to eql([true])
27
+ end
28
+
29
+ it "returns array with false when key value is 'false'" do
30
+ expect(['false'].to_bool).to eql([false])
31
+ end
32
+
33
+ it "returns original array when key value is not 'yes', 'no', 'true' or 'false'" do
34
+ expect(['value'].to_bool).to eql(['value'])
35
+ end
36
+
37
+ it "returns array with true when key value is :t" do
38
+ expect([:t].to_bool).to eql([true])
39
+ end
40
+
41
+ it "returns array with false when key value is :f" do
42
+ expect([:f].to_bool).to eql([false])
43
+ end
44
+
45
+ it "returns array with true when key value is :t" do
46
+ expect([:yes].to_bool).to eql([true])
47
+ end
48
+
49
+ it "returns array with false when key value is :f" do
50
+ expect([:f].to_bool).to eql([false])
51
+ end
52
+
53
+ it "returns array with true when key value is :true" do
54
+ expect([:true].to_bool).to eql([true])
55
+ end
56
+
57
+ it "returns array with false when key value is :false" do
58
+ expect([:false].to_bool).to eql([false])
59
+ end
60
+
61
+ it "returns original array when key value is not :t or :n" do
62
+ expect([:symbol].to_bool).to eql([:symbol])
63
+ end
64
+
65
+ it "returns array with multiple correct values" do
66
+ expect([1,0,'yes','false',:t,:f,:true,:false].to_bool).to eql([true,false,true,false,true,false,true,false])
67
+ end
68
+
69
+ it "returns multi level array with correct values" do
70
+ expect([[1,[0]]].to_bool).to eql([[true,[false]]])
71
+ end
72
+ end
73
+ end
data/spec/hash_spec.rb ADDED
@@ -0,0 +1,73 @@
1
+ require 'helper'
2
+
3
+ describe Hash do
4
+ describe "#to_bool" do
5
+ it "returns hash with true when key value is 1" do
6
+ expect({'key' => 1}.to_bool).to eql({'key' => true})
7
+ end
8
+
9
+ it "returns hash with false when key value is 0" do
10
+ expect({'key' => 0}.to_bool).to eql({'key' => false})
11
+ end
12
+
13
+ it "returns original hash when key value is not 0 or 1" do
14
+ expect({'key' => 2}.to_bool).to eql({'key' => 2})
15
+ end
16
+
17
+ it "returns hash with true when key value is 'yes'" do
18
+ expect({'key' => 'yes'}.to_bool).to eql({'key' => true})
19
+ end
20
+
21
+ it "returns hash with false when key value is 'no'" do
22
+ expect({'key' => 'no'}.to_bool).to eql({'key' => false})
23
+ end
24
+
25
+ it "returns hash with true when key value is 'true'" do
26
+ expect({'key' => 'true'}.to_bool).to eql({'key' => true})
27
+ end
28
+
29
+ it "returns hash with false when key value is 'false'" do
30
+ expect({'key' => 'false'}.to_bool).to eql({'key' => false})
31
+ end
32
+
33
+ it "returns original hash when key value is not 'yes', 'no', 'true or 'false'" do
34
+ expect({'key' => 'value'}.to_bool).to eql({'key' => 'value'})
35
+ end
36
+
37
+ it "returns hash with true when key value is :t" do
38
+ expect({'key' => :t}.to_bool).to eql({'key' => true})
39
+ end
40
+
41
+ it "returns hash with false when key value is :f" do
42
+ expect({'key' => :f}.to_bool).to eql({'key' => false})
43
+ end
44
+
45
+ it "returns hash with true when key value is :t" do
46
+ expect({'key' => :yes}.to_bool).to eql({'key' => true})
47
+ end
48
+
49
+ it "returns hash with false when key value is :f" do
50
+ expect({'key' => :no}.to_bool).to eql({'key' => false})
51
+ end
52
+
53
+ it "returns hash with true when key value is :true" do
54
+ expect({'key' => :true}.to_bool).to eql({'key' => true})
55
+ end
56
+
57
+ it "returns hash with false when key value is :false" do
58
+ expect({'key' => :false}.to_bool).to eql({'key' => false})
59
+ end
60
+
61
+ it "returns original hash when key value is not :t or :n" do
62
+ expect({'key' => :symbol}.to_bool).to eql({'key' => :symbol})
63
+ end
64
+
65
+ it "returns correct hash with multiple values" do
66
+ expect({'key0'=> 1, 'key1'=>0, 'key2'=>'yes', 'key3'=>'false', 'key4'=>:t, 'key4'=>:f, 'key5'=>:true, 'key6' =>:false}.to_bool).to eql({'key0'=> true, 'key1'=>false, 'key2'=>true, 'key3'=>false, 'key4'=>true, 'key4'=>false, 'key5'=>true, 'key6' =>false})
67
+ end
68
+
69
+ it "returns correct multi-level hash with multiple values" do
70
+ expect({'key0' => {'key1' => 1}, 'key2' => {'key3' => 0}}.to_bool).to eql({'key0' => {'key1' => true}, 'key2' => {'key3' => false}})
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,27 @@
1
+ require 'helper'
2
+
3
+ describe TrueClass do
4
+ describe "#is_bool?" do
5
+ it "returns true when matching" do
6
+ expect(true.is_bool?).to be true
7
+ end
8
+ end
9
+ end
10
+
11
+ describe FalseClass do
12
+ describe "#is_bool?" do
13
+ it "returns true when matching" do
14
+ expect(false.is_bool?).to be true
15
+ end
16
+ end
17
+ end
18
+
19
+ describe Object do
20
+ describe "#is_bool?" do
21
+ it "returns false when not matching" do
22
+ expect("true".is_bool?).to be false
23
+ expect(0.is_bool?).to be false
24
+ expect(:false.is_bool?).to be false
25
+ end
26
+ end
27
+ end
data/spec/time_spec.rb ADDED
@@ -0,0 +1,17 @@
1
+ require 'helper'
2
+
3
+ describe Time do
4
+ describe "#unique" do
5
+ it "returns a string" do
6
+ expect(Time.unique.class).to be String
7
+ end
8
+
9
+ it "returns a string number" do
10
+ expect(Time.unique.to_i.class).to be Fixnum
11
+ end
12
+
13
+ it "returns a number from time to 3 decimal places" do
14
+ expect(Time.unique).to eq Time.now.strftime("%s%3N")[-8..-1]
15
+ end
16
+ end
17
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: utilise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Slaughter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-12 00:00:00.000000000 Z
11
+ date: 2013-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -75,12 +75,18 @@ files:
75
75
  - README.md
76
76
  - License.md
77
77
  - lib/utilise/bool.rb
78
+ - lib/utilise/matchers.rb
79
+ - lib/utilise/time.rb
78
80
  - lib/utilise/version.rb
79
81
  - lib/utilise.rb
82
+ - spec/array_spec.rb
80
83
  - spec/fixnum_spec.rb
84
+ - spec/hash_spec.rb
81
85
  - spec/helper.rb
86
+ - spec/object_spec.rb
82
87
  - spec/string_spec.rb
83
88
  - spec/symbol_spec.rb
89
+ - spec/time_spec.rb
84
90
  homepage: http://benslaughter.github.io/utilise/
85
91
  licenses:
86
92
  - MIT
@@ -106,8 +112,12 @@ signing_key:
106
112
  specification_version: 4
107
113
  summary: Utilises a few extra tools
108
114
  test_files:
115
+ - spec/array_spec.rb
109
116
  - spec/fixnum_spec.rb
117
+ - spec/hash_spec.rb
110
118
  - spec/helper.rb
119
+ - spec/object_spec.rb
111
120
  - spec/string_spec.rb
112
121
  - spec/symbol_spec.rb
122
+ - spec/time_spec.rb
113
123
  has_rdoc: