Class: DataMapper::Adapters::FqlAdapter

Inherits:
AbstractAdapter
  • Object
show all
Defined in:
lib/dm-fql-adapter/adapter.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, options = {}) ⇒ FqlAdapter

Returns a new instance of FqlAdapter.



5
6
7
8
# File 'lib/dm-fql-adapter/adapter.rb', line 5

def initialize(name, options={})
  super
  self.resource_naming_convention = DataMapper::NamingConventions::Resource::Underscored
end

Instance Method Details

#compile(query) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/dm-fql-adapter/adapter.rb', line 14

def compile(query)
  Select[query.fields.map(&:name)].from[query.model.storage_name(name).to_sym].where do
    query.conditions.each do |condition|
      case condition
      when Query::Conditions::EqualToComparison then equal condition.subject.name, condition.value
      end
    end
  end.to_sql
end

#read(query) ⇒ Object



24
25
26
27
# File 'lib/dm-fql-adapter/adapter.rb', line 24

def read(query)
  DataMapper.logger.debug(statement = compile(query))
  session.fql(statement)
end

#sessionObject



10
11
12
# File 'lib/dm-fql-adapter/adapter.rb', line 10

def session
  @session ||= options[:session] || MiniFB::OAuthSession.new(options[:access_token], options[:locale] || 'en_US')
end