module Slacker::RSpecExt

Public Instance Methods

csv(csv_file) click to toggle source

Loads a CSV file and returns a reference to it The file is relative to the data folder of the Slacker project

# File lib/slacker/rspec_ext.rb, line 32
def csv(csv_file)
  Slacker.get_csv(csv_file)
end
load_csv(csv_file_or_object, table_name, log_name = nil) click to toggle source

Load a CSV file directly into a table in the target database

# File lib/slacker/rspec_ext.rb, line 42
def load_csv(csv_file_or_object, table_name, log_name = nil)
  log_name ||= "load_csv '#{csv_file_or_object.kind_of?(CSV::Table) ? 'CSV Object' : csv_file_or_object }', 'table_name'"
  csv_object = case csv_file_or_object
  when String then Slacker.get_csv(csv_file_or_object)
  when CSV::Table then csv_file_or_object
  when Array then Slacker.hash_array_to_csv(csv_file_or_object)
  end

  Slacker.load_csv(example, csv_object, table_name, log_name)
end
match(golden_master) click to toggle source

Get a matcher which will compare the query results to a golden master

# File lib/slacker/rspec_ext.rb, line 26
def match(golden_master)
  QueryResultMatcher.new(Slacker.filter_golden_master(golden_master))
end
query(query_string, options = {}, log_name = nil) { |results| ... } click to toggle source

Execute a SQL query or the contents of a query template query file In case of a query file, it passes the options to the template

# File lib/slacker/rspec_ext.rb, line 10
def query(query_string, options = {}, log_name = nil)
  log_name ||= Slacker.construct_log_name('query', query_string, options)
  sql = Slacker.sql_from_query_string(query_string, options)
  @results = Slacker.query_script(example, sql, log_name)
  if block_given?
    yield @results
  end
  @results
end
sql() click to toggle source

Exposes a reference to the sql object, which represents the contents of the SQL folder

# File lib/slacker/rspec_ext.rb, line 21
def sql
  Slacker.sql(self)
end
touch_csv(csv_file_or_object, fields, field_generators = {}) click to toggle source

Generate CSV::Table objects with an arbitrary number of records populated with data based on a template CSV file

# File lib/slacker/rspec_ext.rb, line 37
def touch_csv(csv_file_or_object, fields, field_generators = {})
  Slacker.touch_csv(csv_file_or_object, fields, field_generators)
end
yes?(val) click to toggle source
# File lib/slacker/rspec_ext.rb, line 53
def yes?(val)
  val != nil && val.downcase == 'yes'
end