Module: ContentfulModel::ChainableQueries::ClassMethods

Defined in:
lib/contentful_model/chainable_queries.rb

Instance Method Summary collapse

Instance Method Details

#allObject

Raises:

  • (ArgumentError)


15
16
17
18
19
# File 'lib/contentful_model/chainable_queries.rb', line 15

def all
  get_query
  raise ArgumentError, "You need to set self.content_type in your model class" if @content_type_id.nil?
  self
end

#find(id) ⇒ Object



65
66
67
68
69
# File 'lib/contentful_model/chainable_queries.rb', line 65

def find(id)
  get_query
  @query << {'sys.id' => id}
  @query.execute.first
end

#find_by(*args) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/contentful_model/chainable_queries.rb', line 36

def find_by(*args)
  get_query
  args.each do |query|
    #query is a hash
    if query.values.first.is_a?(Array) #we need to do an 'in' query
      @query << {"fields.#{query.keys.first}[in]" => query.values.first.join(",")}
    else
      @query << {"fields.#{query.keys.first}" => query.values.first}
    end
  end
  self
end

#firstObject



21
22
23
24
25
# File 'lib/contentful_model/chainable_queries.rb', line 21

def first
  get_query
  @query << {'limit' => 1}
  @query.execute.first
end

#get_queryObject



11
12
13
# File 'lib/contentful_model/chainable_queries.rb', line 11

def get_query
  @query ||= ContentfulModel::Query.new(self)
end

#loadObject



61
62
63
# File 'lib/contentful_model/chainable_queries.rb', line 61

def load
  @query.execute
end

#offset(n) ⇒ Object Also known as: skip



27
28
29
30
31
32
# File 'lib/contentful_model/chainable_queries.rb', line 27

def offset(n)
  get_query
  puts @query.inspect
  @query << {'skip' => n}
  self
end

#search(parameters) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
# File 'lib/contentful_model/chainable_queries.rb', line 49

def search(parameters)
  get_query
  if parameters.is_a?(Hash)
    parameters.each do |field, search|
      @query << {"fields.#{field}[match]" => search}
    end
  elsif parameters.is_a?(String)
    @query << {"query" => parameters}
  end
  self
end