pjson-rb 0.0.1

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.
File without changes
@@ -0,0 +1,14 @@
1
+ task :default => :test
2
+
3
+ GEMSPEC = eval(File.read('pjson.gemspec'))
4
+
5
+ require 'rubygems/package_task'
6
+ Gem::PackageTask.new(GEMSPEC) do |pkg|
7
+ end
8
+
9
+ require 'rake/testtask'
10
+ Rake::TestTask.new 'test' do |t|
11
+ t.test_files = FileList['test/test_*.rb']
12
+ t.ruby_opts = ['-rubygems']
13
+ end
14
+ task :test
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pjson'
3
+
4
+ begin
5
+ puts PJson.new(STDIN.gets)
6
+ rescue Object => e
7
+ puts "#{e.message}\n#{e.backtrace}"
8
+ end
@@ -0,0 +1,16 @@
1
+ require 'pygments'
2
+ require 'json/pure'
3
+
4
+ class PJson
5
+ include Pygments
6
+
7
+ attr_accessor :json
8
+
9
+ def initialize(json)
10
+ @json = JSON.pretty_generate(JSON.load(json))
11
+ end
12
+
13
+ def to_s
14
+ Lexer.find_by_name('JSON').highlight(@json, { formatter: 'terminal' })
15
+ end
16
+ end
@@ -0,0 +1,31 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'pjson-rb'
3
+ s.version = '0.0.1'
4
+ s.date = '2012-09-18'
5
+
6
+ s.description = "pipe to pretty print json utility"
7
+ s.summary =
8
+ "Pipe json in the terminal and make it pretty."
9
+
10
+ s.authors = ["Mark Sands"]
11
+ s.email = "marksands07@gmail.com"
12
+
13
+ s.files = %w[
14
+ README.md
15
+ Rakefile
16
+ pjson.gemspec
17
+ bin/pjson
18
+ lib/pjson.rb
19
+ test/test_pjson.rb
20
+ ]
21
+
22
+ s.default_executable = 'pjson'
23
+ s.executables = ['pjson']
24
+
25
+ s.test_files = s.files.select {|path| path =~ /^test\/.*_test.rb/}
26
+ s.add_dependency 'pygments.rb', '~> 0.2.13'
27
+
28
+ s.has_rdoc = false
29
+ s.homepage = "http://github.com/marksands/pjson-rb/"
30
+ s.require_paths = %w[lib]
31
+ end
@@ -0,0 +1,28 @@
1
+ require 'test/unit'
2
+ require 'pjson'
3
+
4
+ PRETTY_JSON = "{\e[39;49;00m\n \e[39;49;00m\e[34;01m\"json\"\e[39;49;00m:\e[39;49;00m \e[39;49;00m\e[33m\"obj\"\e[39;49;00m\n}\e[39;49;00m\n"
5
+
6
+ class PJsonPrettyPrintTest < Test::Unit::TestCase
7
+ def test_pjson_initialize_formatted
8
+ assert_equal "{\n \"json\": \"obj\"\n}", PJson.new("{\"json\":\"obj\"}").instance_variable_get(:@json)
9
+ end
10
+
11
+ def test_pjson_to_s
12
+ assert_equal PRETTY_JSON, PJson.new("{\"json\":\"obj\"}").to_s
13
+ end
14
+ end
15
+
16
+ ENV['PATH'] = [File.expand_path('bin'), ENV['PATH']].join(':')
17
+
18
+ class PJsonCommandTest < Test::Unit::TestCase
19
+ def test_piping_json
20
+ IO.popen("pjson", 'w+') do |io|
21
+ io.puts "{\"json\":\"obj\"}"
22
+ io.flush
23
+ assert_equal PRETTY_JSON, io.read
24
+ io.close_write
25
+ io.close
26
+ end
27
+ end
28
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pjson-rb
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Mark Sands
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2012-09-18 00:00:00 -07:00
14
+ default_executable: pjson
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: pygments.rb
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 0.2.13
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ description: pipe to pretty print json utility
28
+ email: marksands07@gmail.com
29
+ executables:
30
+ - pjson
31
+ extensions: []
32
+
33
+ extra_rdoc_files: []
34
+
35
+ files:
36
+ - README.md
37
+ - Rakefile
38
+ - pjson.gemspec
39
+ - bin/pjson
40
+ - lib/pjson.rb
41
+ - test/test_pjson.rb
42
+ has_rdoc: true
43
+ homepage: http://github.com/marksands/pjson-rb/
44
+ licenses: []
45
+
46
+ post_install_message:
47
+ rdoc_options: []
48
+
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: "0"
63
+ requirements: []
64
+
65
+ rubyforge_project:
66
+ rubygems_version: 1.5.2
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: Pipe json in the terminal and make it pretty.
70
+ test_files: []
71
+