json_wrapper 0.1.0 → 0.1.1

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: d43f0be083a577ad94ad7ccb8ac96134815bea10
4
- data.tar.gz: 921f96757d7bd313ec828de307cffc6bdf686a3f
3
+ metadata.gz: 28dd99f95fe890b74342619c48b11462ef23203f
4
+ data.tar.gz: 97689c5402df83cc1ca53f13faabbf9937761d94
5
5
  SHA512:
6
- metadata.gz: 991ad5d73f2822c632b9dacaf99a7438535b5a298cfa07a8244097a3a791ead8152446dbbf00cff97b2c7cf540debd4b0abb426b086b6852ac5c7b2633aa1653
7
- data.tar.gz: a033bdd139bc625476cd7198b8d43a1cabc0f990b4330150a87d6ad625322d9898d96d49a004e4fca9aa4a5b25b91a59a859d2d98629313d3512bb39585271f7
6
+ metadata.gz: 394045c245b02e1db78826a23d116e4dca53eed2a9771940eb500190eba783694bae727dc4c2cc8092817d6bc119d91bd541920ec70d0ad5da21ef514c37043e
7
+ data.tar.gz: b9d7923e0b587a96f6c9796eb2ac6df72eb9dec5c81c3a42e641adc7d6e8b5dea2cd68b3b12b06fa35bc52ca5f1c019c0ec3083b2f672aabd03784ad7df95acb
@@ -1,5 +1,5 @@
1
1
  #encoding: utf-8
2
2
 
3
3
  class JsonWrapper
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
data/lib/json_wrapper.rb CHANGED
@@ -1,7 +1,10 @@
1
1
  #encoding: utf-8
2
2
 
3
3
  class JsonWrapper
4
+ include Enumerable
5
+
4
6
  autoload :VERSION, 'json_wrapper/version'
7
+
5
8
  # Internal value
6
9
  # @return [Hash, Array, String, Number, Nil] internal value
7
10
  attr_reader :value
@@ -16,55 +19,55 @@ class JsonWrapper
16
19
  # If value is a Hash
17
20
  # @return [True, False] if value is a Hash
18
21
  def hash?
19
- @value.kind_of? Hash
22
+ value.kind_of? Hash
20
23
  end
21
24
 
22
25
  # If value is a Array
23
26
  # @return [True, False] if value is an Array
24
27
  def array?
25
- @value.kind_of? Array
28
+ value.kind_of? Array
26
29
  end
27
30
 
28
31
  # If value is String
29
32
  # @return [True,False] if value is a String
30
33
  def string?
31
- @value.kind_of? String
34
+ value.kind_of? String
32
35
  end
33
36
 
34
37
  # If value is a Number
35
38
  # @return [True,False] if value is an Number
36
39
  def number?
37
- @value.kind_of? Numeric
40
+ value.kind_of? Numeric
38
41
  end
39
42
 
40
43
  # If value is a Nil
41
44
  # @return [True, False] if value is a Nil
42
45
  def null?
43
- @value.nil?
46
+ value.nil?
44
47
  end
45
48
 
46
49
  # Get the value if is a Hash
47
50
  # @return [Hash, nil] value if it's a Hash
48
51
  def hash
49
- @value if hash?
52
+ value if hash?
50
53
  end
51
54
 
52
55
  # Get the value if is a Array
53
56
  # @return [Array, Nil] value if it's a Array
54
57
  def array
55
- @value if array?
58
+ value if array?
56
59
  end
57
60
 
58
61
  # Get the value if value is string
59
62
  # @return [String, Nil] value if it's a String
60
63
  def string
61
- @value if string?
64
+ value if string?
62
65
  end
63
66
 
64
67
  # Get the value if value is a number
65
68
  # @return [Fixnum, Float, Nil] value if it's a Numeric, typically Fixnum or Float
66
69
  def number
67
- @value if number?
70
+ value if number?
68
71
  end
69
72
 
70
73
  # Force convert to Hash
@@ -82,16 +85,16 @@ class JsonWrapper
82
85
  # Force convert to String
83
86
  # @return [String] String format of value, "" if not capable
84
87
  def string!
85
- return @value if string?
86
- return @value.to_s if number?
88
+ return value if string?
89
+ return value.to_s if number?
87
90
  ""
88
91
  end
89
92
 
90
93
  # Force convert to number
91
94
  # @return [Numeric] Number format of value, 0 if not capable
92
95
  def number!
93
- return @value if number?
94
- return @value.to_f if string?
96
+ return value if number?
97
+ return value.to_f if string?
95
98
  0
96
99
  end
97
100
 
@@ -111,9 +114,9 @@ class JsonWrapper
111
114
  # @param key [String, Symbol, Fixnum] key
112
115
  # @return [JsonWrapper] JsonWrapper of the value
113
116
  def get(key)
114
- return JsonWrapper.new(@value[key]) if array? and key.kind_of?(Fixnum)
115
- return JsonWrapper.new(@value[key]) if hash? and key.kind_of?(String)
116
- return JsonWrapper.new(@value[key.to_s]) if hash? and key.kind_of?(Symbol)
117
+ return JsonWrapper.new(value[key]) if array? and key.kind_of?(Fixnum)
118
+ return JsonWrapper.new(value[key]) if hash? and key.kind_of?(String)
119
+ return JsonWrapper.new(value[key.to_s]) if hash? and key.kind_of?(Symbol)
117
120
  JsonWrapper.new
118
121
  end
119
122
 
@@ -127,4 +130,18 @@ class JsonWrapper
127
130
  get args.first
128
131
  end
129
132
 
133
+ # Return #count if value is a String, Array or Hash
134
+ # @return [Number] count, 0 if not capable
135
+ def count
136
+ return self.value.count if array? or hash? or string?
137
+ 0
138
+ end
139
+
140
+ # each method for Enumerable
141
+ def each(&block)
142
+ array!.each do |v|
143
+ block.call(JsonWrapper.new(v))
144
+ end
145
+ end
146
+
130
147
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Guo