grifter 0.0.4 → 0.0.5
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.
- data/VERSION +1 -1
- data/grifter.gemspec +2 -2
- data/lib/grifter.rb +17 -6
- data/lib/grifter/json_helpers.rb +0 -2
- data/spec/json_helpers_spec.rb +24 -0
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
data/grifter.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "grifter"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Robert Schultheis"]
|
12
|
-
s.date = "2013-05-
|
12
|
+
s.date = "2013-05-14"
|
13
13
|
s.description = "convention based approach to interfacing with an HTTP JSON API."
|
14
14
|
s.email = "rob@knewton.com"
|
15
15
|
s.executables = ["grift"]
|
data/lib/grifter.rb
CHANGED
@@ -49,12 +49,11 @@ class Grifter
|
|
49
49
|
|
50
50
|
def load_grifter_file filename
|
51
51
|
Log.debug "Loading extension file '#{filename}'"
|
52
|
-
anon_mod = Module.new
|
53
52
|
#by evaling in a anonymous module, we protect this class's namespace
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
53
|
+
anon_mod = Module.new
|
54
|
+
with_local_load_path File.dirname(filename) do
|
55
|
+
anon_mod.class_eval(IO.read(filename), filename, 1)
|
56
|
+
end
|
58
57
|
self.extend anon_mod
|
59
58
|
end
|
60
59
|
|
@@ -63,7 +62,9 @@ class Grifter
|
|
63
62
|
raise "No such file '#{filename}'" unless File.exist? filename
|
64
63
|
#by running in a anonymous class, we protect this class's namespace
|
65
64
|
anon_class = BlankSlate.new(self)
|
66
|
-
|
65
|
+
with_local_load_path File.dirname(filename) do
|
66
|
+
anon_class.instance_eval(IO.read(filename), filename, 1)
|
67
|
+
end
|
67
68
|
end
|
68
69
|
|
69
70
|
#calls all methods that end with grifter_authenticate
|
@@ -74,4 +75,14 @@ class Grifter
|
|
74
75
|
self.send(m)
|
75
76
|
end
|
76
77
|
end
|
78
|
+
|
79
|
+
private
|
80
|
+
def with_local_load_path load_path, &block
|
81
|
+
$: << load_path
|
82
|
+
rtn = yield block
|
83
|
+
#delete only the first occurrence, in case something else if changing load path too
|
84
|
+
idx = $:.index(load_path)
|
85
|
+
$:.delete_at(idx) if idx
|
86
|
+
rtn
|
87
|
+
end
|
77
88
|
end
|
data/lib/grifter/json_helpers.rb
CHANGED
@@ -18,7 +18,6 @@ class Grifter
|
|
18
18
|
rescue Exception
|
19
19
|
obj.to_s
|
20
20
|
end
|
21
|
-
#module_function :jsonify
|
22
21
|
|
23
22
|
#attempts to parse json strings into native ruby objects
|
24
23
|
def objectify json_string
|
@@ -32,7 +31,6 @@ class Grifter
|
|
32
31
|
Log.debug "Unable to parse non-json object: #{e.to_s}"
|
33
32
|
json_string
|
34
33
|
end
|
35
|
-
#module_function :objectify
|
36
34
|
|
37
35
|
end
|
38
36
|
end
|
data/spec/json_helpers_spec.rb
CHANGED
@@ -50,4 +50,28 @@ describe Grifter::JsonHelpers do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
end
|
53
|
+
|
54
|
+
describe :objectify do
|
55
|
+
it "should turn a json map string into a Hash" do
|
56
|
+
hsh = {'str' => 'abc', 'int' => 123, 'dec' => 12.34, 'bool' => true}
|
57
|
+
json = JSON.generate hsh
|
58
|
+
json_helper.objectify(json).should eql hsh
|
59
|
+
end
|
60
|
+
|
61
|
+
it "turn a json array string into an Array" do
|
62
|
+
arr = [1, 2.34, 'three', true]
|
63
|
+
json = JSON.generate arr
|
64
|
+
json_helper.objectify(json).should =~ arr
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should return a non-string object as itself" do
|
68
|
+
obj = 12.34
|
69
|
+
json_helper.objectify(obj).should eql obj
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should return a non-json string as itself" do
|
73
|
+
str = 'abc;123'
|
74
|
+
json_helper.objectify(str).should eql str
|
75
|
+
end
|
76
|
+
end
|
53
77
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grifter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -143,7 +143,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
143
|
version: '0'
|
144
144
|
segments:
|
145
145
|
- 0
|
146
|
-
hash:
|
146
|
+
hash: -4169256621702839743
|
147
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
148
|
none: false
|
149
149
|
requirements:
|