jason 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +7 -1
- data/jason.gemspec +1 -1
- data/lib/jason.rb +21 -1
- data/lib/jason/version.rb +1 -1
- data/test/test_jason.rb +9 -0
- metadata +3 -3
data/README.md
CHANGED
@@ -39,7 +39,13 @@ like to use regular interpolation, use the `<%== expr %>` delimiter instead.
|
|
39
39
|
Jason.render('<%= 'test' %>') # => '"test"'
|
40
40
|
Jason.render('"<%== 'test' %>"') # => '"test"'
|
41
41
|
|
42
|
-
|
42
|
+
You can configure the output format of the JSON:
|
43
|
+
|
44
|
+
Jason.output_format = :compact # This is the default.
|
45
|
+
Jason.output_format = :pretty
|
46
|
+
|
47
|
+
`:compact` will remove any unnecessary whitespace in the JSON while `:pretty`
|
48
|
+
will indent the result JSON so that it looks, well, pretty.
|
43
49
|
|
44
50
|
## Usage with Rails ##
|
45
51
|
|
data/jason.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = ['alex@kernul.com']
|
11
11
|
s.homepage = 'https://github.com/CapnKernul/jason'
|
12
12
|
s.summary = %q{Insanely simple JSON templates}
|
13
|
-
s.description = %q{Create JSON templates using
|
13
|
+
s.description = %q{Create JSON templates using Erubis}
|
14
14
|
|
15
15
|
s.rubyforge_project = 'jason'
|
16
16
|
|
data/lib/jason.rb
CHANGED
@@ -4,6 +4,20 @@ require 'strscan'
|
|
4
4
|
|
5
5
|
# Renders and compiles Jason templates.
|
6
6
|
module Jason
|
7
|
+
class << self
|
8
|
+
attr_writer :output_format
|
9
|
+
|
10
|
+
# The output format of the JSON.
|
11
|
+
#
|
12
|
+
# I suggest using `:pretty` for development and testing and `:compact` for
|
13
|
+
# production.
|
14
|
+
#
|
15
|
+
# @returns [:pretty, :compact]
|
16
|
+
def output_format
|
17
|
+
@output_format ||= :compact
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
7
21
|
# Render a template.
|
8
22
|
#
|
9
23
|
# @example
|
@@ -40,7 +54,13 @@ module Jason
|
|
40
54
|
#
|
41
55
|
# @param [String] buffer
|
42
56
|
def self.process(buffer)
|
43
|
-
JSON.load(remove_trailing_commas(buffer))
|
57
|
+
obj = JSON.load(remove_trailing_commas(buffer))
|
58
|
+
|
59
|
+
if output_format == :pretty
|
60
|
+
JSON.pretty_generate(obj)
|
61
|
+
else
|
62
|
+
JSON.generate(obj)
|
63
|
+
end
|
44
64
|
end
|
45
65
|
|
46
66
|
private
|
data/lib/jason/version.rb
CHANGED
data/test/test_jason.rb
CHANGED
@@ -76,4 +76,13 @@ EOF
|
|
76
76
|
|
77
77
|
assert_equal({ 'foo' => 'bar', 'baz' => ['quz', 'quuz'] }, JSON.load(Jason.process(template)))
|
78
78
|
end
|
79
|
+
|
80
|
+
test '.output_format' do
|
81
|
+
assert_equal :compact, Jason.output_format
|
82
|
+
assert_equal '{"foo":["bar"]}', Jason.process('{"foo":["bar"]}')
|
83
|
+
|
84
|
+
Jason.output_format = :pretty
|
85
|
+
assert_equal :pretty, Jason.output_format
|
86
|
+
assert_equal "{\n \"foo\": [\n \"bar\"\n ]\n}", Jason.process('{"foo":["bar"]}')
|
87
|
+
end
|
79
88
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: jason
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.4.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Alexander Kern
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-06-
|
13
|
+
date: 2011-06-06 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -112,7 +112,7 @@ dependencies:
|
|
112
112
|
version: "0"
|
113
113
|
type: :development
|
114
114
|
version_requirements: *id009
|
115
|
-
description: Create JSON templates using
|
115
|
+
description: Create JSON templates using Erubis
|
116
116
|
email:
|
117
117
|
- alex@kernul.com
|
118
118
|
executables: []
|