Sha256: 4a778b70e3e2019a8c2f4b8df4d07ff0aae4d10a01b079e09871a258e9c1167a

Contents?: true

Size: 927 Bytes

Versions: 2

Compression:

Stored size: 927 Bytes

Contents

require 'rubygems'
require 'bundler/setup'

require 'combustion'

Combustion.initialize! :all

require 'rspec/rails'
require 'pry'

RSpec.configure do |config|
  config.use_transactional_fixtures = true
end

def javascriptize(ruby_obj)
  ruby_obj.each_with_object({}) do |(key, val), obj|
    obj[key] = JSON.dump(val)
  end
end

def rubize(response)
  convert_scoped_records(optionize(JSON.parse(response.body)))
end

def optionize(obj)
  case obj
  when Array
    obj.map(&:to_options)
  else
    obj.to_options
  end
end

def convert_scoped_records(obj)
  return obj unless obj.is_a?(Hash)
  result = obj

  converted = obj[:scoped_records].map do |record|
    record.except('created_at', 'updated_at')
  end

  result[:scoped_records] = converted
  result
end

def gather(attribute, response)
  rubize(response).map { |record| record[attribute] }
end

def all_records
  User.select(:id, :name, :city).map(&:attributes)
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
databound-0.1.1 spec/spec_helper.rb
databound-0.1.0 spec/spec_helper.rb