granola 0.13.0 → 1.0.0
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/README.md +12 -1
- data/lib/granola/rendering.rb +1 -44
- data/lib/granola/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae11f60f7f98dcce1d3267fefc60a449442efeb3
|
4
|
+
data.tar.gz: 3a28d97cca22f6b52a049c33475b2b66d0d62453
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac11eb33406283d7eff4230605334d1575a41fbabfe0be3a70ea9de4fed6fe14dc3639e29153ded07c1bc84c512b06e5313826e9332baad568268da27bc459e2
|
7
|
+
data.tar.gz: 73bb6a0c6eba2098343e51d76dabea0623de3864431fa971f9a546790e255efd7f11b3cfbf709d58fca13c8900d4024645763bdcfaab9c6513d1ac41bda01774
|
data/README.md
CHANGED
@@ -78,7 +78,12 @@ end
|
|
78
78
|
|
79
79
|
[Cuba]: http://cuba.is
|
80
80
|
|
81
|
-
##
|
81
|
+
## Rails Support
|
82
|
+
|
83
|
+
The companion [Granola::Rails](https://github.com/foca/granola-rails) gem takes
|
84
|
+
care of support for Rails.
|
85
|
+
|
86
|
+
## HTTP Caching
|
82
87
|
|
83
88
|
`Granola::Serializer` gives you two methods that you can implement in your
|
84
89
|
serializers: `last_modified` and `cache_key`.
|
@@ -122,6 +127,12 @@ appropriate `If-Modified-Since` or `If-None-Match` headers.
|
|
122
127
|
|
123
128
|
[cg]: http://www.rubydoc.info/github/rack/rack/Rack/ConditionalGet
|
124
129
|
|
130
|
+
## Caching of serialized bodies
|
131
|
+
|
132
|
+
If you are generating responses that are particularly expensive to serialize,
|
133
|
+
you can use the [Granola::Cache](https://github.com/foca/granola-cache) gem to
|
134
|
+
store their representations once generated in an external cache.
|
135
|
+
|
125
136
|
## Different Formats
|
126
137
|
|
127
138
|
Although Granola out of the box only ships with JSON serialization support, it's
|
data/lib/granola/rendering.rb
CHANGED
@@ -59,7 +59,7 @@ module Granola
|
|
59
59
|
RENDERERS.keys
|
60
60
|
end
|
61
61
|
|
62
|
-
# Internal: Map of renderers available to
|
62
|
+
# Internal: Map of renderers available to all serializers.
|
63
63
|
RENDERERS = {}
|
64
64
|
|
65
65
|
# Renderer objects just wrap the callable used to render an object and keep a
|
@@ -106,47 +106,4 @@ module Granola
|
|
106
106
|
end
|
107
107
|
|
108
108
|
render :json, via: JSON.method(:generate), content_type: "application/json"
|
109
|
-
|
110
|
-
# Deprecated: The old way of registering a JSON renderer. This will be gone in
|
111
|
-
# 1.0.
|
112
|
-
#
|
113
|
-
# callable - A callable. See the format in `Granola.render`
|
114
|
-
#
|
115
|
-
# Returns nothing.
|
116
|
-
def self.json=(callable)
|
117
|
-
warn "Granola.json= has been deprecated. Use Granola.render now."
|
118
|
-
render(:json, via: callable, content_type: "application/json")
|
119
|
-
end
|
120
|
-
|
121
|
-
class Serializer
|
122
|
-
# Deprecated: Use Granola.renderer and a Renderer's render method directly.
|
123
|
-
# This method will be removed in 1.0.
|
124
|
-
#
|
125
|
-
# type - A Symbol with the expected rendering format.
|
126
|
-
# **options - An options Hash or set of keyword arguments that will be
|
127
|
-
# passed to the renderer.
|
128
|
-
#
|
129
|
-
# Raises KeyError if there's no Renderer registered for the given `type`.
|
130
|
-
# Returns a String (in the encoding approrpriate to the rendering format.)
|
131
|
-
def render(type = :json, **options, &block)
|
132
|
-
warn "Granola::Serializer#render has been deprecated. Use Granola.renderer(type).render."
|
133
|
-
Granola.renderer(type).render(self, **options, &block)
|
134
|
-
rescue NoSuchRendererError => err
|
135
|
-
fail KeyError, err.message
|
136
|
-
end
|
137
|
-
|
138
|
-
# Deprecated: Use Granola.renderer and the Renderer's content_type method
|
139
|
-
# directly. This method will be removed in 1.0.
|
140
|
-
#
|
141
|
-
# type - A Symbol describing the expected rendering format.
|
142
|
-
#
|
143
|
-
# Raises KeyError if there's no Renderer registered for the given `type`.
|
144
|
-
# Returns a String.
|
145
|
-
def mime_type(type = :json)
|
146
|
-
warn "Granola::Serializer#mime_type has been deprecated. Use Granola.renderer(type).content_type."
|
147
|
-
Granola.renderer(type).content_type
|
148
|
-
rescue NoSuchRendererError => err
|
149
|
-
fail KeyError, err.message
|
150
|
-
end
|
151
|
-
end
|
152
109
|
end
|
data/lib/granola/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: granola
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicolas Sanguinetti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cutest
|