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 =
"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
|
.client ⇒ Object
41
42
43
|
# File 'lib/serpcheap/rails.rb', line 41
def client
@client ||= build_client
end
|
.configuration ⇒ Object
14
15
16
|
# File 'lib/serpcheap/rails.rb', line 14
def configuration
@configuration ||= Configuration.new
end
|
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
|
.raw ⇒ Object
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
|