Module: Jazor

Defined in:
lib/jazor.rb

Defined Under Namespace

Classes: RestClient

Constant Summary collapse

NAME =
"jazor"
VERSION =
"0.1.6"
AUTHOR =
"Michael Paul Thomas Conigliaro"
AUTHOR_EMAIL =
"mike [at] conigliaro [dot] org"
DESCRIPTION =
"Jazor (JSON razor) is a simple command line JSON parsing tool."
URL =
"http://github.com/mconigliaro/jazor"
LOG =
Logger.new(STDOUT)
HAS_ORDERED_HASH =
(RUBY_VERSION.split(".").map(&:to_i) <=> [1, 9, 1]) >= 0

Class Method Summary collapse

Class Method Details

.colorize(input) ⇒ Object



38
39
40
41
42
43
44
45
# File 'lib/jazor.rb', line 38

def self.colorize(input)
  input = input.gsub(/"(.*)":/, "\\1:".bold) # Key
  input = input.gsub(/"(#{URI::regexp})"/i, "\\1".magenta.underline) # URL
  input = input.gsub(/"(.*)"/, "\"\\1\"".green) # String
  input = input.gsub(/(\s+[-+]?\d*\.?\d+)(,?)$/, "\\1".cyan + "\\2") # Numeric
  input = input.gsub(/(\s+(true|false))(,?)$/, "\\1".blue + "\\3") # Boolean
  input = input.gsub(/(\s+null)(,?)$/, "\\1".red + "\\2") # Null
end

.evaluate(obj, expression) ⇒ Object



32
33
34
35
36
# File 'lib/jazor.rb', line 32

def self.evaluate(obj, expression)
  result = expression.nil? ? obj : obj.instance_eval(expression)
  Jazor::LOG.debug("Expression (#{expression}) returns a #{result.class}")
  result
end

.parse(input = nil, options = {}) ⇒ Object



26
27
28
29
30
# File 'lib/jazor.rb', line 26

def self.parse(input=nil, options={})
  obj = JSON.parse(input, options)
  Jazor::LOG.debug("Parsed JSON as a #{obj.class}")
  obj
end