jbuilder 2.2.2 → 2.2.3
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/CHANGELOG.md +5 -0
- data/jbuilder.gemspec +1 -1
- data/lib/jbuilder.rb +4 -5
- data/lib/jbuilder/jbuilder_template.rb +2 -4
- data/lib/jbuilder/railtie.rb +14 -5
- data/test/jbuilder_template_test.rb +2 -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: 2d59129031b5d4863366f26212729fe78079237e
|
4
|
+
data.tar.gz: 9d77187b141e1f62c7393c3c721ad4fc54759026
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bab7d7b62fcd543458780a892a94752a5fe1f2f34d163cefd9a0b69cea277ce00b602b2854ad5f6175b164e42400c68bf746000b5a39928c3aae63ea25ab306
|
7
|
+
data.tar.gz: ea31d042bb585dbbfdaac96feb13ee78cc7b66d169bef2802e9d2dbad168f8021c38bcf4a02d5793b36ad6ebc1dff6e6668da5a84a61c6e33e0ab848408fd647
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
2.2.3
|
4
|
+
-----
|
5
|
+
* [Move template handler registration into railtie](https://github.com/rails/jbuilder/commit/c8acc5cea6da2a79b7b345adc301cb5ff2517647)
|
6
|
+
* [Do not capture the block where it is possible](https://github.com/rails/jbuilder/commit/973b382c3924cb59fc0e4e25266b18e74d41d646)
|
7
|
+
|
3
8
|
2.2.2
|
4
9
|
-----
|
5
10
|
* [Fix `Jbuilder#merge!` inside block](https://github.com/rails/jbuilder/commit/a7b328552eb0d36315f75bff813bea7eecf8c1d7)
|
data/jbuilder.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'jbuilder'
|
3
|
-
s.version = '2.2.
|
3
|
+
s.version = '2.2.3'
|
4
4
|
s.authors = ['David Heinemeier Hansson', 'Pavel Pravosud']
|
5
5
|
s.email = ['david@37signals.com', 'pavel@pravosud.com']
|
6
6
|
s.summary = 'Create JSON structures via a Builder-style DSL'
|
data/lib/jbuilder.rb
CHANGED
@@ -7,13 +7,13 @@ class Jbuilder
|
|
7
7
|
@@key_formatter = KeyFormatter.new
|
8
8
|
@@ignore_nil = false
|
9
9
|
|
10
|
-
def initialize(options = {}
|
10
|
+
def initialize(options = {})
|
11
11
|
@attributes = {}
|
12
12
|
|
13
13
|
@key_formatter = options.fetch(:key_formatter){ @@key_formatter.clone }
|
14
14
|
@ignore_nil = options.fetch(:ignore_nil, @@ignore_nil)
|
15
15
|
|
16
|
-
yield self if
|
16
|
+
yield self if ::Kernel.block_given?
|
17
17
|
end
|
18
18
|
|
19
19
|
# Yields a builder and automatically turns the result into a JSON string
|
@@ -252,7 +252,7 @@ class Jbuilder
|
|
252
252
|
attributes.each{ |key| _set_value key, object.public_send(key) }
|
253
253
|
end
|
254
254
|
|
255
|
-
def _merge_block(key
|
255
|
+
def _merge_block(key)
|
256
256
|
current_value = _blank? ? BLANK : @attributes.fetch(_key(key), BLANK)
|
257
257
|
raise NullError.build(key) if current_value.nil?
|
258
258
|
new_value = _scope{ yield self }
|
@@ -314,6 +314,5 @@ class Jbuilder
|
|
314
314
|
end
|
315
315
|
end
|
316
316
|
|
317
|
-
require 'jbuilder/jbuilder_template' if defined?(ActionView::Template)
|
318
317
|
require 'jbuilder/dependency_tracker'
|
319
|
-
require 'jbuilder/railtie' if defined?(Rails
|
318
|
+
require 'jbuilder/railtie' if defined?(Rails)
|
@@ -30,7 +30,7 @@ class JbuilderTemplate < Jbuilder
|
|
30
30
|
_render_partial_with_options options
|
31
31
|
end
|
32
32
|
|
33
|
-
def array!(collection = [], *attributes
|
33
|
+
def array!(collection = [], *attributes)
|
34
34
|
options = attributes.extract_options!
|
35
35
|
|
36
36
|
if options.key?(:partial)
|
@@ -48,7 +48,7 @@ class JbuilderTemplate < Jbuilder
|
|
48
48
|
# json.cache! ['v1', @person], expires_in: 10.minutes do
|
49
49
|
# json.extract! @person, :name, :age
|
50
50
|
# end
|
51
|
-
def cache!(key=nil, options={}
|
51
|
+
def cache!(key=nil, options={})
|
52
52
|
if @context.controller.perform_caching
|
53
53
|
value = ::Rails.cache.fetch(_cache_key(key, options), options) do
|
54
54
|
_scope { yield self }
|
@@ -137,5 +137,3 @@ class JbuilderHandler
|
|
137
137
|
json.target! unless (__already_defined && __already_defined != "method")}
|
138
138
|
end
|
139
139
|
end
|
140
|
-
|
141
|
-
ActionView::Template.register_template_handler :jbuilder, JbuilderHandler
|
data/lib/jbuilder/railtie.rb
CHANGED
@@ -1,11 +1,20 @@
|
|
1
1
|
require 'rails/railtie'
|
2
|
+
require 'jbuilder/jbuilder_template'
|
2
3
|
|
3
4
|
class Jbuilder
|
4
5
|
class Railtie < ::Rails::Railtie
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
initializer :jbuilder do |app|
|
7
|
+
ActiveSupport.on_load :action_view do
|
8
|
+
ActionView::Template.register_template_handler :jbuilder, JbuilderHandler
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
if Rails::VERSION::MAJOR == 4
|
13
|
+
generators do |app|
|
14
|
+
Rails::Generators.configure! app.config.generators
|
15
|
+
Rails::Generators.hidden_namespaces.uniq!
|
16
|
+
require 'generators/rails/scaffold_controller_generator'
|
17
|
+
end
|
9
18
|
end
|
10
19
|
end
|
11
|
-
end
|
20
|
+
end
|
@@ -5,7 +5,6 @@ require 'action_view/testing/resolvers'
|
|
5
5
|
require 'active_support/cache'
|
6
6
|
require 'jbuilder/jbuilder_template'
|
7
7
|
|
8
|
-
|
9
8
|
BLOG_POST_PARTIAL = <<-JBUILDER
|
10
9
|
json.extract! blog_post, :id, :body
|
11
10
|
json.author do
|
@@ -25,6 +24,8 @@ blog_authors = [ 'David Heinemeier Hansson', 'Pavel Pravosud' ].cycle
|
|
25
24
|
BLOG_POST_COLLECTION = 10.times.map{ |i| BlogPost.new(i+1, "post body #{i+1}", blog_authors.next) }
|
26
25
|
COLLECTION_COLLECTION = 5.times.map{ |i| Collection.new(i+1, "collection #{i+1}") }
|
27
26
|
|
27
|
+
ActionView::Template.register_template_handler :jbuilder, JbuilderHandler
|
28
|
+
|
28
29
|
module Rails
|
29
30
|
def self.cache
|
30
31
|
@cache ||= ActiveSupport::Cache::MemoryStore.new
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jbuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-10-
|
12
|
+
date: 2014-10-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
105
|
version: '0'
|
106
106
|
requirements: []
|
107
107
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
108
|
+
rubygems_version: 2.2.2
|
109
109
|
signing_key:
|
110
110
|
specification_version: 4
|
111
111
|
summary: Create JSON structures via a Builder-style DSL
|