Sha256: 61931510c7ccc32f422435029ac2d00074fdb459202e953a05f2106f357c7fa4
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
require File.dirname(__FILE__) + "/map_reduce" module CQL DSL_KEYWORDS = %w(features scenario_outlines scenarios all step_lines examples) module Dsl (CQL::QUERY_VALUES + CQL::DSL_KEYWORDS).each do |method_name| define_method(method_name) { |*args| return method_name if args.size == 0 {method_name=>args} } end alias :everything :all alias :complete :all def select *what @what = what end def from where @from = where @data end def tags *tags return "tags" if tags.size == 0 {'tags'=>tags} end def with filter if filter.has_key? 'tags' @data = CQL::MapReduce.filter_features(@data, 'tags'=>filter['tags']) elsif filter.has_key? 'name' @data = CQL::MapReduce.filter_features(@data, 'feature'=>filter['name']) end @data end class Query include Dsl attr_reader :data, :what def initialize features, &block @data = features @data = self.instance_eval(&block) @data= CQL::MapReduce.filter_sso(@data, 'what'=>@from[0, @from.size-1]) if @from != "features" result = Array.new(@data.size) result = result.map { |e| {} } @what.each do |w| CQL::MapReduce.send(w, @data).each_with_index { |e, i| result[i][w]=e } end @data = result.size == 1 ? result.first : result end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cql-0.0.2 | lib/dsl.rb |