webtester 0.1.7 → 0.1.8
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 +4 -4
- data/lib/array.rb +5 -0
- data/lib/hash.rb +5 -0
- data/lib/json_object.rb +116 -0
- data/lib/string.rb +9 -0
- data/lib/webtester.rb +4 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d35049f469df39296436703b57f6c4d8878cce6
|
4
|
+
data.tar.gz: aed420a2d891b4d6d24a6abd9c0ff095a6f820f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f6bce1498f0d96af8fa0406d3cb5d65da38606a78f1c59647fbe77aadb93b65ea70a1cc376d2c2ddbd72e75cbc4320d102c4354c003b0e6374e4dc173fced10
|
7
|
+
data.tar.gz: ba4aea03283c4017c4473078fa018addfee0ffc883f4afbfa30816df10cac786761d8e9af695eb8881a4dd82b3a2c6856337642ede57b46781882afd767530b9
|
data/lib/array.rb
ADDED
data/lib/hash.rb
ADDED
data/lib/json_object.rb
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
module WT
|
2
|
+
class JSONObject
|
3
|
+
def self.parse(data)
|
4
|
+
if data.is_a?(Array) or data.is_a?(Hash)
|
5
|
+
return JSONObject.new(data)
|
6
|
+
else
|
7
|
+
return data
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def method_missing(name, *args)
|
12
|
+
raise "Invalid number of params. To create new attribute you show pass exactly one parameter." unless args.length == 1
|
13
|
+
|
14
|
+
self.instance_eval %{
|
15
|
+
def #{name}=(val)
|
16
|
+
@#{name} = JSONObject.parse(val)
|
17
|
+
end
|
18
|
+
|
19
|
+
def #{name}
|
20
|
+
@#{name}
|
21
|
+
end
|
22
|
+
}
|
23
|
+
|
24
|
+
self.method("#{name}=").call(args[0])
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_s
|
28
|
+
result = ""
|
29
|
+
|
30
|
+
if @__items__ and @__items__.length > 0 # Object is an Array
|
31
|
+
result = "["
|
32
|
+
@__items__.each do |item|
|
33
|
+
result += "#{item.to_s},"
|
34
|
+
end
|
35
|
+
result += "]"
|
36
|
+
else # Object is a HASH
|
37
|
+
result += "{"
|
38
|
+
self.instance_variables.each do |iv|
|
39
|
+
if iv.to_s != "@__items__"
|
40
|
+
v_name = iv.to_s
|
41
|
+
v_name['@'] = ''
|
42
|
+
v_value = self.method(v_name).call
|
43
|
+
|
44
|
+
non_quoted_condition = (v_value.is_a?(JSONObject) or
|
45
|
+
v_value.is_a?(Integer) or
|
46
|
+
v_value.is_a?(TrueClass) or
|
47
|
+
v_value.is_a?(FalseClass) or
|
48
|
+
v_value.is_a?(Float))
|
49
|
+
|
50
|
+
result += "\"#{v_name}\":"
|
51
|
+
result += "\"" unless non_quoted_condition
|
52
|
+
result += v_value.to_s
|
53
|
+
result += "\"" unless non_quoted_condition
|
54
|
+
result += ","
|
55
|
+
end
|
56
|
+
end
|
57
|
+
result += "}"
|
58
|
+
end
|
59
|
+
|
60
|
+
result
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def initialize(data = nil)
|
66
|
+
if data && data.is_a?(Array)
|
67
|
+
create_array_object(data)
|
68
|
+
elsif data && data.is_a?(Hash)
|
69
|
+
create_hash_object(data)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def create_array_object(data)
|
74
|
+
self.instance_eval do
|
75
|
+
def [](i,v)
|
76
|
+
@__items__[i] = JSONObject.parse(v)
|
77
|
+
end
|
78
|
+
|
79
|
+
def [](i)
|
80
|
+
@__items__[i]
|
81
|
+
end
|
82
|
+
|
83
|
+
def <<(item)
|
84
|
+
@__items__ << JSONObject.parse(item)
|
85
|
+
return self
|
86
|
+
end
|
87
|
+
|
88
|
+
def each(&block)
|
89
|
+
@__items__.each &block
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
@__items__ = []
|
94
|
+
|
95
|
+
data.each do |obj|
|
96
|
+
self << JSONObject.parse(obj)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def create_hash_object(data)
|
101
|
+
data.each do |k,v|
|
102
|
+
self.instance_eval %{
|
103
|
+
def #{k}=(value)
|
104
|
+
@#{k} = value
|
105
|
+
end
|
106
|
+
|
107
|
+
def #{k}
|
108
|
+
@#{k}
|
109
|
+
end
|
110
|
+
}
|
111
|
+
|
112
|
+
self.method("#{k}=").call(JSONObject.parse(v))
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
data/lib/string.rb
ADDED
data/lib/webtester.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webtester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Diego F. Nascimento
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: " A simple API to create HTTP Request tests. "
|
14
14
|
email: diego.fnascimento@gmail.com
|
@@ -16,12 +16,16 @@ executables: []
|
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
|
+
- lib/array.rb
|
19
20
|
- lib/assertion.rb
|
20
21
|
- lib/colorize.rb
|
21
22
|
- lib/cookie.rb
|
23
|
+
- lib/hash.rb
|
24
|
+
- lib/json_object.rb
|
22
25
|
- lib/log.rb
|
23
26
|
- lib/request.rb
|
24
27
|
- lib/result.rb
|
28
|
+
- lib/string.rb
|
25
29
|
- lib/test.rb
|
26
30
|
- lib/web_session.rb
|
27
31
|
- lib/webtester.rb
|