jazor 0.1.4 → 0.1.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/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/README.md +5 -0
- data/bin/jazor +7 -2
- data/lib/jazor.rb +15 -1
- data/spec/jazor_lib_spec.rb +1 -1
- data/spec/test.json +2 -0
- metadata +11 -11
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
data/bin/jazor
CHANGED
@@ -8,6 +8,7 @@ require "jazor"
|
|
8
8
|
|
9
9
|
options = {
|
10
10
|
:quirks_mode => false,
|
11
|
+
:colorize => false,
|
11
12
|
:test => false,
|
12
13
|
:rest_data => {},
|
13
14
|
:rest_headers => {},
|
@@ -28,6 +29,10 @@ OptionParser.new do |opts|
|
|
28
29
|
options[:rest_headers][key.strip] = value.strip
|
29
30
|
end
|
30
31
|
|
32
|
+
opts.on("-c", "--colorize", "Colorize output") do |opt|
|
33
|
+
options[:colorize] = true
|
34
|
+
end
|
35
|
+
|
31
36
|
opts.on("-t", "--test", "Enable expression testing") do |opt|
|
32
37
|
options[:test] = true
|
33
38
|
end
|
@@ -76,7 +81,7 @@ begin
|
|
76
81
|
Jazor::LOG.debug("Reading JSON from STDIN")
|
77
82
|
Jazor::parse(STDIN.read, parse_options)
|
78
83
|
elsif !ARGV[0].nil?
|
79
|
-
if ARGV[0] =~ URI::regexp
|
84
|
+
if ARGV[0] =~ /^#{URI::regexp}$/
|
80
85
|
Jazor::LOG.debug("Reading JSON from URI: #{ARGV[0]}")
|
81
86
|
Jazor::parse(Jazor::RestClient.send(options[:rest_request], ARGV.shift, options[:rest_headers], options[:rest_data]).body, parse_options)
|
82
87
|
elsif File.readable?(ARGV[0])
|
@@ -108,7 +113,7 @@ begin
|
|
108
113
|
end
|
109
114
|
else
|
110
115
|
if [Hash, Array].include?(result.class)
|
111
|
-
puts JSON.pretty_generate(result)
|
116
|
+
puts options[:colorize] ? Jazor::colorize(JSON.pretty_generate(result)) : JSON.pretty_generate(result)
|
112
117
|
elsif result.is_a?(String)
|
113
118
|
puts "\"#{result}\""
|
114
119
|
else
|
data/lib/jazor.rb
CHANGED
@@ -6,12 +6,13 @@ require "logger"
|
|
6
6
|
require "net/http"
|
7
7
|
require "net/https"
|
8
8
|
require "pp"
|
9
|
+
require "term/ansicolor"
|
9
10
|
require "uri"
|
10
11
|
|
11
12
|
module Jazor
|
12
13
|
|
13
14
|
NAME = "jazor"
|
14
|
-
VERSION = "0.1.
|
15
|
+
VERSION = "0.1.5"
|
15
16
|
AUTHOR = "Michael Paul Thomas Conigliaro"
|
16
17
|
AUTHOR_EMAIL = "mike [at] conigliaro [dot] org"
|
17
18
|
DESCRIPTION = "Jazor (JSON razor) is a simple command line JSON parsing tool."
|
@@ -34,6 +35,15 @@ module Jazor
|
|
34
35
|
result
|
35
36
|
end
|
36
37
|
|
38
|
+
def self.colorize(input)
|
39
|
+
input = input.gsub(/"(.*)":/, "\\1:".bold) # Key
|
40
|
+
input = input.gsub(/"(#{URI::regexp})"/i, "\\1".magenta.underline) # URL
|
41
|
+
input = input.gsub(/"(.*)"/, "\"\\1\"".green) # String
|
42
|
+
input = input.gsub(/(\s+[-+]?\d*\.?\d+)(,?)$/, "\\1".cyan + "\\2") # Numeric
|
43
|
+
input = input.gsub(/(\s+(true|false))(,?)$/, "\\1".blue + "\\3") # Boolean
|
44
|
+
input = input.gsub(/(\s+null)(,?)$/, "\\1".red + "\\2") # Null
|
45
|
+
end
|
46
|
+
|
37
47
|
class RestClient
|
38
48
|
def self.method_missing(method, uri, headers={}, data={})
|
39
49
|
uri_parsed = URI.parse(uri)
|
@@ -67,3 +77,7 @@ class Hash
|
|
67
77
|
end
|
68
78
|
end
|
69
79
|
end
|
80
|
+
|
81
|
+
class String
|
82
|
+
include Term::ANSIColor
|
83
|
+
end
|
data/spec/jazor_lib_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe "Jazor lib" do
|
|
5
5
|
@test_hash = JSON.parse(@test_file)
|
6
6
|
end
|
7
7
|
|
8
|
-
%w{String Integer Float TrueClass FalseClass Array}.each do |t|
|
8
|
+
%w{String Integer Float TrueClass FalseClass NilClass Array}.each do |t|
|
9
9
|
it "parses #{t} values in the root object" do
|
10
10
|
obj = Jazor::parse(@test_file)["test_#{t}"]
|
11
11
|
obj.should be_a Kernel.const_get(t)
|
data/spec/test.json
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152522020 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152522020
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152520240 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152520240
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &2152517740 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2152517740
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &2152531100 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2152531100
|
58
58
|
description: Jazor (JSON razor) is a simple command line JSON parsing tool.
|
59
59
|
email: mike [at] conigliaro [dot] org
|
60
60
|
executables:
|
@@ -86,7 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
86
86
|
version: '0'
|
87
87
|
segments:
|
88
88
|
- 0
|
89
|
-
hash:
|
89
|
+
hash: -2127171486780227476
|
90
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
91
|
none: false
|
92
92
|
requirements:
|