Module: IRFSDash
- Defined in:
- lib/irfsdash.rb,
lib/irfsdash/version.rb
Constant Summary collapse
- VERSION =
"0.1.5"
Class Method Summary collapse
-
.activity(opts = {}) ⇒ Object
Publish to the activity stream Minimum: :source, :content.
-
.amqp ⇒ Object
Returns an AMQP channel.
-
.amqp_host(host = '10.10.12.156') ⇒ Object
Set the AMQP host.
-
.decrement(*args) ⇒ Object
Decrement a counter in statsd.
-
.increment(*args) ⇒ Object
Increment a counter in statsd.
-
.project(opts = {}) ⇒ Object
Publish a project update Minimum: :source, :project, :happy.
-
.setup(opts = {}) ⇒ Object
Setup the library’s defaults.
- .statsd ⇒ Object
-
.statsd_host(host = '10.10.12.156') ⇒ Object
Set the Statsd hostname.
-
.ticker(opts = {}) ⇒ Object
Publish to the ticker Minimum: :source, :content, :ticker_type.
-
.timing(*args) ⇒ Object
Report a task time in statsd Arguments: Task name, time in milliseconds, optional sample rate.
-
.widget(opts = {}) ⇒ Object
Publish a widget Minimum: :source, (:content OR :url).
Class Method Details
.activity(opts = {}) ⇒ Object
Publish to the activity stream Minimum: :source, :content
33 34 35 36 37 38 39 |
# File 'lib/irfsdash.rb', line 33 def self.activity(opts={}) msg = opts.merge!(@defaults) raise ArgumentError, "No source specified" unless msg[:source] raise ArgumentError, "No content specified" unless msg[:content] raise ArgumentError, "No type specified" unless msg[:type] self.amqp.exchange("irfs-dashboard.activity", type: :fanout).publish(JSON.dump(msg)) end |
.amqp ⇒ Object
Returns an AMQP channel
15 16 17 18 19 20 |
# File 'lib/irfsdash.rb', line 15 def self.amqp return @b if @b @b = Bunny.new(host: self.amqp_host) @b.start return @b end |
.amqp_host(host = '10.10.12.156') ⇒ Object
Set the AMQP host
11 12 13 |
# File 'lib/irfsdash.rb', line 11 def self.amqp_host(host='10.10.12.156') @amqp_host ||= host end |
.decrement(*args) ⇒ Object
Decrement a counter in statsd. Arguments: Counter name to decrement, optional sample rate
73 74 75 |
# File 'lib/irfsdash.rb', line 73 def self.decrement(*args) self.statsd.decrement(*args) end |
.increment(*args) ⇒ Object
Increment a counter in statsd. Arguments: Counter name to increment, optional sample rate
68 69 70 |
# File 'lib/irfsdash.rb', line 68 def self.increment(*args) self.statsd.increment(*args) end |
.project(opts = {}) ⇒ Object
Publish a project update Minimum: :source, :project, :happy
42 43 44 45 46 47 48 |
# File 'lib/irfsdash.rb', line 42 def self.project(opts={}) msg = opts.merge!(@defaults) raise ArgumentError, "No source specified" unless msg[:source] raise ArgumentError, "No project specified" unless msg[:project] raise ArgumentError, "No happy specified" unless msg.keys.include? :happy self.amqp.exchange("irfs-dashboard.projects", type: :fanout).publish(JSON.dump(msg)) end |
.setup(opts = {}) ⇒ Object
Setup the library’s defaults
28 29 30 |
# File 'lib/irfsdash.rb', line 28 def self.setup(opts={}) @defaults = opts end |
.statsd ⇒ Object
21 22 23 24 25 26 |
# File 'lib/irfsdash.rb', line 21 def self.statsd return @statsd if @statsd @statsd = Statsd.new(self.statsd_host, 8125) @statsd.namespace('irfsdash') return @statsd end |
.statsd_host(host = '10.10.12.156') ⇒ Object
Set the Statsd hostname
7 8 9 |
# File 'lib/irfsdash.rb', line 7 def self.statsd_host(host='10.10.12.156') @statsd_host ||= host end |
.ticker(opts = {}) ⇒ Object
Publish to the ticker Minimum: :source, :content, :ticker_type
51 52 53 54 55 56 57 |
# File 'lib/irfsdash.rb', line 51 def self.ticker(opts={}) msg = opts.merge!(@defaults) raise ArgumentError, "No source specified" unless msg[:source] raise ArgumentError, "No content specified" unless msg[:content] raise ArgumentError, "No ticker type specified" unless msg[:ticker_type] self.amqp.exchange("irfs-dashboard.tickers", type: :fanout).publish(JSON.dump(msg)) end |
.timing(*args) ⇒ Object
Report a task time in statsd Arguments: Task name, time in milliseconds, optional sample rate
78 79 80 |
# File 'lib/irfsdash.rb', line 78 def self.timing(*args) self.statsd.timing(*args) end |
.widget(opts = {}) ⇒ Object
Publish a widget Minimum: :source, (:content OR :url)
60 61 62 63 64 65 |
# File 'lib/irfsdash.rb', line 60 def self.(opts={}) msg = opts.merge!(@defaults) raise ArgumentError, "No source specified" unless msg[:source] raise ArgumentError, "No content or URL specified" unless msg[:url] or msg[:content] self.amqp.exchange("irfs-dashboard.widgets", type: :fanout).publish(JSON.dump(msg)) end |