class Shirtsio::DSL::QueryBuilder
Public Class Methods
new(dsl, prefixes_with_index = []) { |self| ... }
click to toggle source
# File lib/shirtsio/dsl.rb, line 65 def initialize(dsl, prefixes_with_index = [], &block) @dsl = dsl @prefixes_with_index = [] @prefixes_with_index << prefixes_with_index @prefixes_with_index.flatten! @params = {} yield self end
Public Instance Methods
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
# File lib/shirtsio/dsl.rb, line 74 def method_missing(method, *args, &block) index = extract_index(method.to_sym) return super unless index params = {} if index.kind_of?(Symbol) if args[0].kind_of?(Array) args[0].each_with_index do |v,i| params[method] = { i => v } end elsif args[0].kind_of?(File) params[method] = Faraday::UploadIO.new(args[0].path, Shirtsio::Utils.mime_type(args[0].path)) else params[method] = args[0] end elsif index.kind_of?(Array) params[method] = QueryBuilder.new(index, @prefixes_with_index, &block).to_hash end params.map do |k,v| if @prefixes_with_index.include?(k) @params[k] = {} if @params[k].nil? @params[k].merge!({ @params[k].size => v }) else @params.merge!({ k => v }) end end end
to_hash()
click to toggle source
# File lib/shirtsio/dsl.rb, line 101 def to_hash @params end
Private Instance Methods
extract_index(method)
click to toggle source
# File lib/shirtsio/dsl.rb, line 106 def extract_index(method) return method if @dsl.include?(method) @dsl.each do |i| if i.kind_of?(Hash) && !i[method].nil? return i[method] end end nil end