class MonsterQueries::Builder
Attributes
paginate[W]
scope[W]
Public Class Methods
new(name)
click to toggle source
# File lib/monster_queries/builder.rb, line 11 def initialize name @paginate = false @scope = [name] end
with_scope(args)
click to toggle source
# File lib/monster_queries/builder.rb, line 3 def self.with_scope args q = self.new nil q.scope = args q end
Public Instance Methods
method_missing(name, args=nil)
click to toggle source
# File lib/monster_queries/builder.rb, line 16 def method_missing name, args=nil @scope << name file_exists? ? file_contents(args) : self end
paginate()
click to toggle source
# File lib/monster_queries/builder.rb, line 32 def paginate @paginate = true self end
to_s(args={})
click to toggle source
# File lib/monster_queries/builder.rb, line 21 def to_s args={} if file_exists? ::Rails.logger.tagged('MONSTER QUERY') do ::Rails.logger.info {"Rendered #{@scope.join('.')}"} end file_contents args else raise "Query doesn't exist: #{@scope.join('.')}" end end
Private Instance Methods
file_contents(variables)
click to toggle source
# File lib/monster_queries/builder.rb, line 43 def file_contents variables template = MonsterQueries::Query.template @scope result = template.call variables result end
file_exists?()
click to toggle source
# File lib/monster_queries/builder.rb, line 39 def file_exists? MonsterQueries::Query.exists? @scope end