to_jbuilder 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8fea4b1d3823b9fbf79d2089bcbeec4a26b282bd
4
- data.tar.gz: 76c6f2cab9f79c056cf8252f2c5abba914f451b6
3
+ metadata.gz: ce7616e8edda34f464c51c17657556493d58ecb2
4
+ data.tar.gz: 46d50ed8ae4ec0876d0d099246e83468a51602c8
5
5
  SHA512:
6
- metadata.gz: b476579a67244808eb995e706398825d0f2ade2bb10c033afefc6bbadc1a361f07c7f70d609b7ba2f78a8705366e4e914edc808a86de1c9812599eaa68dcf6fd
7
- data.tar.gz: c334307a7ceeb1c672225be66194d0447f2118a63111e02998c1c7712d7b45372d7919bf6f304d7e449e6e117f98d55b2d994f1223b2bb660dc8d0123f63b8ca
6
+ metadata.gz: 690ae50f4c3fd36b0c24867e1a0c879f003c9113ea7a4fe7e31b9d64b269c5999b184b3ac9900d0269f90fb312ecdb46e756b10580eac4b571850bf525f4ff9f
7
+ data.tar.gz: ceaacc4d03008d66279230e3f9880d38f5098076ffe1c97c53069256b31b5e513266d0a21eaa6d25e0b438dbe929bb23f18fed9025dec7b66c03fd54872fc065
@@ -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
- @io.write "\n" if @trace[-3] != ARRAY_END
82
- @io.write @jbuilder_array.to_jbuilder
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
@@ -1,3 +1,3 @@
1
1
  module ToJbuilder
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
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.0
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-04-26 00:00:00.000000000 Z
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.6
101
+ rubygems_version: 2.4.7
102
102
  signing_key:
103
103
  specification_version: 4
104
104
  summary: Convert JSON to jbuilder templates