Module: Smoke
- Included in:
- Object
- Defined in:
- lib/smoke.rb,
lib/smoke/cache.rb,
lib/smoke/origin.rb,
lib/smoke/request.rb,
lib/smoke/source/yql.rb,
lib/smoke/source/data.rb,
lib/smoke/source/feed.rb,
lib/smoke/source/join.rb
Defined Under Namespace
Modules: Source Classes: Cache, Origin, Request
Constant Summary collapse
- @@active_sources =
{}
- @@config =
{ :enable_logging => true, :user_agent => "Ruby/#{RUBY_VERSION}/Smoke", :cache => { :enabled => false, :store => :memory, :options => {}, :expiry => 1800 } }
Class Method Summary collapse
-
.[](source) ⇒ Object
Access registered smoke source instances.
-
.activate(name, source) ⇒ Object
Activates new instances of sources Source instances are stored within the @@active_sources class variable for later use.
-
.active_sources ⇒ Object
Returns all activated smoke sources.
-
.config ⇒ Object
Access configuration options.
-
.configure {|@@config| ... } ⇒ Object
Set any configurable options.
- .data(name, &block) ⇒ Object
- .feed(name, &block) ⇒ Object
-
.join(*names, &block) ⇒ Object
Join multiple sources together into a single feed Usage: Smoke.join(:delicious, :twitter, :flickr) do name :stream path :photos, :photo end.
-
.log ⇒ Object
Log for info, debug, error and warn with:.
-
.rename(candidates) ⇒ Object
Rename a source.
- .yql(name, &block) ⇒ Object
Class Method Details
.[](source) ⇒ Object
Access registered smoke source instances
Define your source:
Smoke.yql(:ruby) do ....
Then access it:
Smoke[:ruby]
=> #<Smoke::Source::YQL::0x18428d4...
30 31 32 |
# File 'lib/smoke.rb', line 30 def [](source) active_sources[source] end |
.activate(name, source) ⇒ Object
Activates new instances of sources Source instances are stored within the @@active_sources class variable for later use
37 38 39 40 41 42 |
# File 'lib/smoke.rb', line 37 def activate(name, source) if active_sources.has_key?(name) Smoke.log.warn "Smoke source activation: Source with idential name already initialized" end active_sources.update({ name => source }) end |
.active_sources ⇒ Object
Returns all activated smoke sources
45 46 47 |
# File 'lib/smoke.rb', line 45 def active_sources @@active_sources end |
.config ⇒ Object
Access configuration options
Smoke.config[:option_name]
=> true
82 83 84 |
# File 'lib/smoke.rb', line 82 def config @@config end |
.configure {|@@config| ... } ⇒ Object
Set any configurable options
Smoke.configure do |c|
c[:user_agent] = "Some other site"
end
74 75 76 |
# File 'lib/smoke.rb', line 74 def configure(&block) yield @@config end |
.data(name, &block) ⇒ Object
87 |
# File 'lib/smoke.rb', line 87 def data(name, &block); Smoke::Source::Data.new(name, &block); end |
.feed(name, &block) ⇒ Object
88 |
# File 'lib/smoke.rb', line 88 def feed(name, &block); Smoke::Source::Feed.new(name, &block); end |
.join(*names, &block) ⇒ Object
Join multiple sources together into a single feed Usage:
Smoke.join(:delicious, :twitter, :flickr) do
name :stream
path :photos, :photo
end
96 |
# File 'lib/smoke.rb', line 96 def join(*names, &block); Smoke::Source::Join.new(names, &block); end |
.log ⇒ Object
64 65 66 |
# File 'lib/smoke.rb', line 64 def log @@log ||= Logger.new(config[:enable_logging] ? $stdout : "/dev/null") end |
.rename(candidates) ⇒ Object
Rename a source
50 51 52 53 54 55 56 |
# File 'lib/smoke.rb', line 50 def rename(candidates) candidates.each do |o, n| active_sources[o].name = n.to_s active_sources.rename(o => n) return active_sources[n] end end |