jazor 0.1.2 → 0.1.3
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/CHANGELOG.rdoc +6 -0
- data/LICENSE +1 -1
- data/README.rdoc +9 -6
- data/Rakefile +6 -6
- data/bin/jazor +1 -1
- data/lib/jazor.rb +8 -3
- metadata +8 -12
- data/test/test.json +0 -32
- data/test/test_jazor.rb +0 -57
- data/test/test_jazor_bin.rb +0 -59
- data/test/test_rest_client.rb +0 -19
data/CHANGELOG.rdoc
CHANGED
data/LICENSE
CHANGED
data/README.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Jazor
|
2
2
|
|
3
|
-
Jazor (JSON
|
3
|
+
Jazor (JSON razor) is a simple command line JSON parsing tool.
|
4
4
|
|
5
5
|
== Installation
|
6
6
|
|
@@ -54,18 +54,21 @@ scripts.
|
|
54
54
|
$ jazor '{ "foo": "abc", "bar": [1, 2, 3] }' 'bar.inject { |memo,obj| memo + obj }'
|
55
55
|
6
|
56
56
|
|
57
|
-
$ jazor '[1, 2, 3, 4, 5]' 'select
|
57
|
+
$ jazor '[1, 2, 3, 4, 5]' 'select(&:even?)'
|
58
58
|
[2, 4]
|
59
59
|
|
60
|
-
$ jazor '[1, 2, 3, 4, 5]' 'select
|
60
|
+
$ jazor '[1, 2, 3, 4, 5]' 'select(&:odd?)'
|
61
61
|
[1, 3, 5]
|
62
62
|
|
63
|
-
$ jazor '["a", "b", "c"]' self
|
64
|
-
|
63
|
+
$ jazor '["a", "b", "c", "d", "e"]' 'self[1..3]'
|
64
|
+
["b", "c", "d"]
|
65
|
+
|
66
|
+
$ jazor '[1, 2, 3, 4, 5]' "'odds=%s; evens=%s' % [select(&:odd?).join(','), select(&:even?).join(',')]"
|
67
|
+
odds=1,3,5; evens=2,4
|
65
68
|
|
66
69
|
== Authors
|
67
70
|
|
68
|
-
* Michael
|
71
|
+
* Michael Paul Thomas Conigliaro <mike [at] conigliaro [dot] org>
|
69
72
|
|
70
73
|
== Contributers
|
71
74
|
|
data/Rakefile
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
|
1
|
+
require 'rspec/core/rake_task'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
end
|
7
|
-
end
|
3
|
+
RSpec::Core::RakeTask.new(:spec)
|
4
|
+
|
5
|
+
task :default => :spec
|
8
6
|
|
7
|
+
desc 'Build the gem'
|
9
8
|
task :build do
|
10
9
|
system "gem build *.gemspec"
|
11
10
|
end
|
12
11
|
|
12
|
+
desc 'Push the gem'
|
13
13
|
task :push do
|
14
14
|
system "gem push *.gem"
|
15
15
|
end
|
data/bin/jazor
CHANGED
data/lib/jazor.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'logger'
|
2
2
|
require 'net/http'
|
3
|
+
require 'net/https'
|
3
4
|
require 'pp'
|
4
5
|
require 'uri'
|
5
6
|
|
@@ -10,10 +11,10 @@ require 'json'
|
|
10
11
|
module Jazor
|
11
12
|
|
12
13
|
NAME = 'jazor'
|
13
|
-
VERSION = '0.1.
|
14
|
-
AUTHOR = 'Michael
|
14
|
+
VERSION = '0.1.3'
|
15
|
+
AUTHOR = 'Michael Paul Thomas Conigliaro'
|
15
16
|
AUTHOR_EMAIL = 'mike [at] conigliaro [dot] org'
|
16
|
-
DESCRIPTION = 'Jazor (JSON
|
17
|
+
DESCRIPTION = 'Jazor (JSON razor) is a simple command line JSON parsing tool.'
|
17
18
|
URL = 'http://github.com/mconigliaro/jazor'
|
18
19
|
|
19
20
|
LOG = Logger.new(STDOUT)
|
@@ -38,6 +39,10 @@ module Jazor
|
|
38
39
|
def self.method_missing(method, uri, headers={}, data={})
|
39
40
|
uri_parsed = URI.parse(uri)
|
40
41
|
http = Net::HTTP.new(uri_parsed.host, port=uri_parsed.port)
|
42
|
+
if uri_parsed.scheme == 'https'
|
43
|
+
http.use_ssl = true
|
44
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
45
|
+
end
|
41
46
|
request_uri = uri_parsed.query ? "#{uri_parsed.path}?#{uri_parsed.query}" : uri_parsed.path
|
42
47
|
request = Net::HTTP.const_get(method.to_s.capitalize).new(request_uri)
|
43
48
|
headers.each { |k,v| request.add_field(k, v) }
|
metadata
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jazor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
- Michael
|
8
|
+
- Michael Paul Thomas Conigliaro
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-12-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &2151885000 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,8 +21,8 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
-
description: Jazor (JSON
|
24
|
+
version_requirements: *2151885000
|
25
|
+
description: Jazor (JSON razor) is a simple command line JSON parsing tool.
|
26
26
|
email: mike [at] conigliaro [dot] org
|
27
27
|
executables:
|
28
28
|
- jazor
|
@@ -35,10 +35,6 @@ files:
|
|
35
35
|
- README.rdoc
|
36
36
|
- bin/jazor
|
37
37
|
- lib/jazor.rb
|
38
|
-
- test/test.json
|
39
|
-
- test/test_jazor.rb
|
40
|
-
- test/test_jazor_bin.rb
|
41
|
-
- test/test_rest_client.rb
|
42
38
|
homepage: http://github.com/mconigliaro/jazor
|
43
39
|
licenses: []
|
44
40
|
post_install_message:
|
@@ -59,8 +55,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
59
55
|
version: '0'
|
60
56
|
requirements: []
|
61
57
|
rubyforge_project: jazor
|
62
|
-
rubygems_version: 1.8.
|
58
|
+
rubygems_version: 1.8.10
|
63
59
|
signing_key:
|
64
60
|
specification_version: 3
|
65
|
-
summary: Jazor (JSON
|
61
|
+
summary: Jazor (JSON razor) is a simple command line JSON parsing tool.
|
66
62
|
test_files: []
|
data/test/test.json
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"value0": "test",
|
3
|
-
"value1": 123,
|
4
|
-
"value2": 0.123,
|
5
|
-
"array_of_values" : [1, 2, 3],
|
6
|
-
"array_of_arrays" : [
|
7
|
-
[1, 2, 3],
|
8
|
-
[1, 2, 3],
|
9
|
-
[1, 2, 3]
|
10
|
-
],
|
11
|
-
"array_of_objects": [
|
12
|
-
{"object0":1},
|
13
|
-
{"object1":2},
|
14
|
-
{"object2":3}
|
15
|
-
],
|
16
|
-
"nested_object": {
|
17
|
-
"value0": "test",
|
18
|
-
"value1": 123,
|
19
|
-
"value2": 0.123,
|
20
|
-
"array_of_values" : [1, 2, 3],
|
21
|
-
"array_of_arrays" : [
|
22
|
-
[1, 2, 3],
|
23
|
-
[1, 2, 3],
|
24
|
-
[1, 2, 3]
|
25
|
-
],
|
26
|
-
"array_of_objects": [
|
27
|
-
{"object0":0},
|
28
|
-
{"object1":1},
|
29
|
-
{"object2":2}
|
30
|
-
]
|
31
|
-
}
|
32
|
-
}
|
data/test/test_jazor.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
|
3
|
-
class TestExecute < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
require 'jazor'
|
7
|
-
|
8
|
-
@init_json = IO.read(File.expand_path(File.join(File.dirname(__FILE__), 'test.json')))
|
9
|
-
@init_hash = JSON.parse(@init_json)
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_root_object
|
13
|
-
assert Jazor::parse(@init_json).is_a?(Hash)
|
14
|
-
assert Jazor::parse(@init_json) == @init_hash
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_values
|
18
|
-
assert Jazor::parse(@init_json).value0.is_a?(String)
|
19
|
-
assert Jazor::parse(@init_json).value1.is_a?(Integer)
|
20
|
-
assert Jazor::parse(@init_json).value2.is_a?(Float)
|
21
|
-
(0..2).each do |i|
|
22
|
-
assert Jazor::parse(@init_json).send("value#{i}") == @init_hash["value#{i}"]
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_array_of_values
|
27
|
-
assert Jazor::parse(@init_json).array_of_values.is_a?(Array)
|
28
|
-
assert Jazor::parse(@init_json).array_of_values == @init_hash['array_of_values']
|
29
|
-
(0...Jazor::parse(@init_json).array_of_values.length).each do |i|
|
30
|
-
assert Jazor::parse(@init_json).array_of_values[i].is_a?(Integer)
|
31
|
-
assert Jazor::parse(@init_json).array_of_values[i] == @init_hash["array_of_values"][i]
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_array_of_arrays
|
36
|
-
assert Jazor::parse(@init_json).array_of_arrays.is_a?(Array)
|
37
|
-
(0...Jazor::parse(@init_json).array_of_arrays.length).each do |i|
|
38
|
-
assert Jazor::parse(@init_json).array_of_arrays[i].is_a?(Array)
|
39
|
-
assert Jazor::parse(@init_json).array_of_arrays[i] == @init_hash['array_of_arrays'][i]
|
40
|
-
(0...Jazor::parse(@init_json).array_of_arrays[i].length).each do |j|
|
41
|
-
assert Jazor::parse(@init_json).array_of_arrays[i][j].is_a?(Integer)
|
42
|
-
assert Jazor::parse(@init_json).array_of_arrays[i][j] == @init_hash['array_of_arrays'][i][j]
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_array_of_objects
|
48
|
-
assert Jazor::parse(@init_json).array_of_objects.is_a?(Array)
|
49
|
-
(0...Jazor::parse(@init_json).array_of_objects.length).each do |i|
|
50
|
-
assert Jazor::parse(@init_json).array_of_objects[i].is_a?(Hash)
|
51
|
-
assert Jazor::parse(@init_json).array_of_objects[i] == @init_hash['array_of_objects'][i]
|
52
|
-
assert Jazor::parse(@init_json).array_of_objects[i].send("object#{i}").is_a?(Integer)
|
53
|
-
assert Jazor::parse(@init_json).array_of_objects[i].send("object#{i}") == @init_hash['array_of_objects'][i]["object#{i}"]
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
data/test/test_jazor_bin.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
|
3
|
-
class TestExecute < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
require 'jazor'
|
7
|
-
|
8
|
-
@init_url = 'http://github.com/api/v2/json/commits/list/mconigliaro/jazor/master'
|
9
|
-
@init_file = File.expand_path(File.join(File.dirname(__FILE__), 'test.json'))
|
10
|
-
@init_string = IO.read(@init_file)
|
11
|
-
@jazor_bin = File.expand_path(File.join(File.dirname(__FILE__), '..', 'bin', 'jazor'))
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_without_paramaters
|
15
|
-
assert `#{@jazor_bin}` =~ /Usage:/
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_json_from_stdin
|
19
|
-
assert JSON.parse(`cat #{@init_file} | #{@jazor_bin}`).is_a?(Hash)
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_json_from_url
|
23
|
-
assert JSON.parse(`#{@jazor_bin} '#{@init_url}'`).is_a?(Hash)
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_json_from_file
|
27
|
-
assert JSON.parse(`#{@jazor_bin} #{@init_file}`).is_a?(Hash)
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_json_from_argv
|
31
|
-
assert JSON.parse(`#{@jazor_bin} '#{@init_string}'`).is_a?(Hash)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_json_from_file_with_expression
|
35
|
-
assert eval(`#{@jazor_bin} #{@init_file} value1`).is_a?(Integer)
|
36
|
-
assert JSON.parse(`#{@jazor_bin} #{@init_file} nested_object`).is_a?(Hash)
|
37
|
-
assert JSON.parse(`#{@jazor_bin} #{@init_file} nested_object.array_of_values`).is_a?(Array)
|
38
|
-
assert eval(`#{@jazor_bin} #{@init_file} dontexist`).nil?
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_json_from_file_with_tests
|
42
|
-
assert `#{@jazor_bin} -t #{@init_file} 'value1==123'` =~ /passed/
|
43
|
-
assert `#{@jazor_bin} -t #{@init_file} 'value1==1234'` =~ /failed/
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_sorting
|
47
|
-
if Jazor::HAS_ORDERED_HASH
|
48
|
-
{
|
49
|
-
'[3, 2, 1]' => [1, 2, 3],
|
50
|
-
'["foo", "bar", 1]' => [1, 'bar', 'foo'],
|
51
|
-
'{"foo":1, "bar":2}' => {'bar' => 2, 'foo' => 1},
|
52
|
-
'{"1":1, "bar":2}' => {'1' => 1, 'bar' => 2}
|
53
|
-
}.each do |k,v|
|
54
|
-
assert JSON.parse(`#{@jazor_bin} -s '#{k}'`) == v
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
data/test/test_rest_client.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
|
3
|
-
class TestExecute < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def test_get
|
6
|
-
require 'jazor'
|
7
|
-
|
8
|
-
response = Jazor::RestClient.get('http://ajax.googleapis.com/ajax/services/search/web')
|
9
|
-
assert response.code == '200'
|
10
|
-
assert response.body =~ /"responseStatus": 400/
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_get_with_query_string
|
14
|
-
response = Jazor::RestClient.get('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=jazor')
|
15
|
-
assert response.code == '200'
|
16
|
-
assert response.body =~ /"responseStatus": 200/
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|