module TheGrid::Builder::Json

Public Instance Methods

build(context, params) click to toggle source
# File lib/the_grid/builder/json.rb, line 6
def build(context, params)
  api, options = compose(params[:for], params[:with]), params[:with]
  json = {:max_page => api.options[:max_page], :items => context.assemble(api.relation)}
  if options[:with_meta]
    json[:meta] = context.options.except(:delegate, :search_over)
    json[:columns] = columns_as_array(context.visible_columns)
  end
  stringify json
end

Private Instance Methods

columns_as_array(columns) click to toggle source
# File lib/the_grid/builder/json.rb, line 22
def columns_as_array(columns)
  columns.map do |name, options|
    options[:columns] = columns_as_array(options[:columns]) if options[:columns].is_a? Hash
    options.merge :name => name
  end
end
stringify(json_hash) click to toggle source
# File lib/the_grid/builder/json.rb, line 18
def stringify(json_hash)
  self.prettify_json ? JSON.pretty_generate(json_hash) : json_hash.to_json
end