to_jbuilder 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/to_jbuilder/emitter.rb +16 -12
- data/lib/to_jbuilder/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce7616e8edda34f464c51c17657556493d58ecb2
|
4
|
+
data.tar.gz: 46d50ed8ae4ec0876d0d099246e83468a51602c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 690ae50f4c3fd36b0c24867e1a0c879f003c9113ea7a4fe7e31b9d64b269c5999b184b3ac9900d0269f90fb312ecdb46e756b10580eac4b571850bf525f4ff9f
|
7
|
+
data.tar.gz: ceaacc4d03008d66279230e3f9880d38f5098076ffe1c97c53069256b31b5e513266d0a21eaa6d25e0b438dbe929bb23f18fed9025dec7b66c03fd54872fc065
|
data/lib/to_jbuilder/emitter.rb
CHANGED
@@ -43,13 +43,15 @@ module ToJbuilder
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
class Nesting < Struct.new(:name, :type)
|
46
|
+
class Nesting < Struct.new(:name, :type, :sequence_processed)
|
47
|
+
def sequence_processed?
|
48
|
+
!! sequence_processed
|
49
|
+
end
|
47
50
|
end
|
48
51
|
|
49
52
|
def initialize(io, resource_name)
|
50
53
|
@io, @resource_name = io, resource_name
|
51
54
|
|
52
|
-
@sequence_processed = false
|
53
55
|
@jbuilder_array = nil
|
54
56
|
@jbuilder_lines = []
|
55
57
|
@nesting = [Nesting.new(@resource_name, :root)]
|
@@ -78,11 +80,11 @@ module ToJbuilder
|
|
78
80
|
when ARRAY_START
|
79
81
|
flush!
|
80
82
|
|
81
|
-
@
|
82
|
-
|
83
|
+
unless @nesting.last.sequence_processed?
|
84
|
+
@io.write "\n" if @trace[-3] != ARRAY_END && @trace[-3] != HASH_START
|
85
|
+
@io.write @jbuilder_array.to_jbuilder
|
86
|
+
end
|
83
87
|
when PAIR_KEY
|
84
|
-
return if @sequence_processed
|
85
|
-
|
86
88
|
line = @jbuilder_lines.pop
|
87
89
|
flush!
|
88
90
|
line.line_break = true if @trace[-2] != HASH_START
|
@@ -95,7 +97,7 @@ module ToJbuilder
|
|
95
97
|
|
96
98
|
def end_mapping
|
97
99
|
flush!
|
98
|
-
@sequence_processed = true if within_array? && !@sequence_processed
|
100
|
+
@nesting.last.sequence_processed = true if within_array? && !@nesting.last.sequence_processed?
|
99
101
|
|
100
102
|
if @nesting.size > 1 && !within_array?
|
101
103
|
@nesting.pop
|
@@ -116,26 +118,28 @@ module ToJbuilder
|
|
116
118
|
@jbuilder_array = JbuilderArray.new(nil, @nesting.last.name)
|
117
119
|
end
|
118
120
|
|
119
|
-
@nesting.push Nesting.new((@jbuilder_array.line || @jbuilder_array).key.singularize, ARRAY_START)
|
121
|
+
@nesting.push Nesting.new((@jbuilder_array.line || @jbuilder_array).key.singularize, ARRAY_START, @nesting.last.sequence_processed)
|
120
122
|
@trace << ARRAY_START
|
121
123
|
end
|
122
124
|
|
123
125
|
def end_sequence
|
124
126
|
case @trace.last
|
127
|
+
when ARRAY_START
|
128
|
+
@nesting.pop
|
129
|
+
@jbuilder_lines << @jbuilder_array.line unless @nesting.last.sequence_processed?
|
125
130
|
when PAIR_VALUE
|
126
131
|
@nesting.pop
|
127
132
|
@jbuilder_lines << @jbuilder_array.line
|
128
133
|
when HASH_END
|
129
134
|
@nesting.pop
|
130
|
-
@io.write "#{indent}end\n"
|
135
|
+
@io.write "#{indent}end\n" unless @nesting.last.sequence_processed?
|
131
136
|
end
|
132
137
|
|
133
|
-
@sequence_processed = false
|
134
138
|
@trace << ARRAY_END
|
135
139
|
end
|
136
140
|
|
137
141
|
def scalar(value, anchor, tag, plain, quoted, style)
|
138
|
-
return if @sequence_processed
|
142
|
+
return if @nesting.last.sequence_processed?
|
139
143
|
|
140
144
|
case @trace.last
|
141
145
|
when DOCUMENT_START, HASH_START, HASH_END, ARRAY_END, PAIR_VALUE
|
@@ -145,7 +149,7 @@ module ToJbuilder
|
|
145
149
|
@jbuilder_lines << JbuilderLine.new(@nesting.last.name, value, nil, prefix, indent, line_break)
|
146
150
|
@trace << PAIR_KEY
|
147
151
|
when ARRAY_START
|
148
|
-
@sequence_processed = true
|
152
|
+
@nesting.last.sequence_processed = true
|
149
153
|
|
150
154
|
@trace << PAIR_VALUE
|
151
155
|
when PAIR_KEY
|
data/lib/to_jbuilder/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: to_jbuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuki Nishijima
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
98
|
version: '0'
|
99
99
|
requirements: []
|
100
100
|
rubyforge_project:
|
101
|
-
rubygems_version: 2.4.
|
101
|
+
rubygems_version: 2.4.7
|
102
102
|
signing_key:
|
103
103
|
specification_version: 4
|
104
104
|
summary: Convert JSON to jbuilder templates
|