Module: Pageflow::RenderJsonHelper
- Included in:
- ConfigHelper, EntriesHelper, PageTypesHelper
- Defined in:
- app/helpers/pageflow/render_json_helper.rb
Constant Summary collapse
- ESCAPED_CHARS =
{ "\u2028" => '\u2028', "\u2029" => '\u2029' }
- ESCAPED_CHARS_REGEX =
/[\u2028\u2029]/u
Instance Method Summary collapse
- #render_html_partial(*args) ⇒ Object
- #render_json_partial(*args) ⇒ Object
-
#render_json_seed(records, options = {}) ⇒ Object
Renders ‘image_files/_image_file.json.jbuilder` when given a collection of `ImageFile` records.
- #render_with_format(format, &block) ⇒ Object
- #sanitize_json(json) ⇒ Object
Instance Method Details
#render_html_partial(*args) ⇒ Object
35 36 37 38 39 |
# File 'app/helpers/pageflow/render_json_helper.rb', line 35 def render_html_partial(*args) render_with_format(:html) do render(*args) end end |
#render_json_partial(*args) ⇒ Object
16 17 18 19 20 21 22 |
# File 'app/helpers/pageflow/render_json_helper.rb', line 16 def render_json_partial(*args) render_with_format(:json) do JbuilderTemplate.encode(self) do |json| json.partial!(*args) end.html_safe end end |
#render_json_seed(records, options = {}) ⇒ Object
Renders ‘image_files/_image_file.json.jbuilder` when given a collection of `ImageFile` records.
5 6 7 8 9 10 11 12 13 14 |
# File 'app/helpers/pageflow/render_json_helper.rb', line 5 def render_json_seed(records, = {}) if records.respond_to?(:to_model) name = records.to_model.class.model_name.to_s.split('::').last.underscore.downcase render_json_partial(['pageflow/editor', name.pluralize, name.singularize] * '/', name.singularize.to_sym => records) else return '[]'.html_safe if records.empty? name = records.first.to_model.class.model_name.to_s.split('::').last.underscore.downcase render_json_partial(['pageflow/editor', name.pluralize, name.singularize] * '/', :collection => records, :as => name.singularize.to_sym) end end |
#render_with_format(format, &block) ⇒ Object
41 42 43 44 45 46 47 |
# File 'app/helpers/pageflow/render_json_helper.rb', line 41 def render_with_format(format, &block) old_formats = formats self.formats = [format] # hack so partials resolve with json not html format yield ensure self.formats = old_formats end |
#sanitize_json(json) ⇒ Object
31 32 33 |
# File 'app/helpers/pageflow/render_json_helper.rb', line 31 def sanitize_json(json) json.gsub(ESCAPED_CHARS_REGEX, ESCAPED_CHARS) end |