Module: SerpCheap::Rails

Defined in:
lib/serpcheap/rails.rb,
lib/serpcheap/rails/railtie.rb,
lib/serpcheap/rails/version.rb,
lib/serpcheap/rails/search_job.rb,
lib/serpcheap/rails/cached_client.rb,
lib/serpcheap/rails/configuration.rb

Overview

Rails integration: a Railtie wires config + Rails.cache; SerpCheap::Rails exposes a cached search/scrape/rank facade and a raw client escape hatch.

Defined Under Namespace

Classes: CachedClient, Configuration, Railtie, SearchJob

Constant Summary collapse

VERSION =

x-release-please-version

"0.1.0"

Class Method Summary collapse

Class Method Details

.apply_options(options) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/serpcheap/rails.rb', line 24

def apply_options(options)
  c = configuration
  c.api_key = options[:api_key] unless options[:api_key].nil?
  c.base_url = options[:base_url] unless options[:base_url].nil?
  c.timeout_ms = options[:timeout_ms] unless options[:timeout_ms].nil?
  c.max_retries = options[:max_retries] unless options[:max_retries].nil?
  c.cache_store = options[:cache_store] unless options[:cache_store].nil?
  c.cache_enabled = options[:cache_enabled] unless options[:cache_enabled].nil?
  c.cache_ttl = options[:cache_ttl] unless options[:cache_ttl].nil?
  reset_client!
  c
end

.clientObject



41
42
43
# File 'lib/serpcheap/rails.rb', line 41

def client
  @client ||= build_client
end

.configurationObject



14
15
16
# File 'lib/serpcheap/rails.rb', line 14

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



18
19
20
21
22
# File 'lib/serpcheap/rails.rb', line 18

def configure
  yield(configuration) if block_given?
  reset_client!
  configuration
end

.rank(url, query, **opts) ⇒ Object



57
58
59
# File 'lib/serpcheap/rails.rb', line 57

def rank(url, query, **opts)
  client.rank(url, query, **opts)
end

.rawObject



45
46
47
# File 'lib/serpcheap/rails.rb', line 45

def raw
  client.raw
end

.reset_client!Object



37
38
39
# File 'lib/serpcheap/rails.rb', line 37

def reset_client!
  @client = nil
end

.scrape(url, **opts) ⇒ Object



53
54
55
# File 'lib/serpcheap/rails.rb', line 53

def scrape(url, **opts)
  client.scrape(url, **opts)
end

.search(query, **opts) ⇒ Object



49
50
51
# File 'lib/serpcheap/rails.rb', line 49

def search(query, **opts)
  client.search(query, **opts)
end