Skip to content

Instantly share code, notes, and snippets.

@sumskyi
Created June 16, 2011 17:13
Show Gist options
  • Select an option

  • Save sumskyi/1029715 to your computer and use it in GitHub Desktop.

Select an option

Save sumskyi/1029715 to your computer and use it in GitHub Desktop.
tilt/yajl rails
json = {
:as_of => @search.until.in_time_zone.xmlschema
}
if @updates.max_distance
json[:next_offset] = @search.next_offset
json[:distance] = @updates.max_distance
end
json[:updates] = @updates.map do |el|
{
:text => el.text,
:image_url => el.image_url,
:lat => el.lat,
:lon => el.lon,
:distance => el.distance,
:url => el.url,
:has_thread => el.has_thread,
:created_at => el.created_at.in_time_zone.xmlschema,
:profile => {
:user_name => el.profile.user_name,
:user_handle => el.profile.user_handle,
:user_image => el.profile.user_image,
:description => el.profile.description,
:url => el.profile.url,
:friend => el.profile.friend,
:favorite => el.profile.favorite,
:profile_views => 0
},
:sources => el.sources.map do |source|
{
:update_id => source.update_id,
:uid => source.uid,
:user_name => source.user_name,
:user_handle => source.user_handle,
:user_image => source.user_image,
:description => source.description,
:url => source.url,
:friend => source.friend,
:favorite => source.favorite,
:provider => source.provider_key
}
end
}
end
require './lib/yajl_template_handler'
ActionView::Template.register_template_handler('yajl', YajlTemplateHandler )
module YajlTemplateHandler
def self.erb_handler
@@erb_handler ||= ActionView::Template.registered_template_handler(:erb)
end
def self.call(template)
compiled_source = erb_handler.call(template)
"Tilt::YajlTemplate.new{ #{compiled_source} }.render(self)"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment