leftronic 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README +22 -0
- data/Rakefile +2 -0
- data/leftronic.gemspec +24 -0
- data/lib/leftronic.rb +65 -0
- data/lib/leftronic/version.rb +3 -0
- metadata +84 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
A simple interface for the Leftronics dashboard
|
2
|
+
Leftronics is a dashboard-as-a-service. It supports five custom data update types:
|
3
|
+
|
4
|
+
leaderboard(name, entries)
|
5
|
+
list(name, entries)
|
6
|
+
map(name, latitude, longitude)
|
7
|
+
number(name, number)
|
8
|
+
text(name, title, text)
|
9
|
+
|
10
|
+
Example usage:
|
11
|
+
|
12
|
+
require 'leftronic'
|
13
|
+
dashboard = Leftronic.new("my-leftronic-api-key")
|
14
|
+
dashboard.leaderboard("top_deployed", [{"engine" => 200}, {"mockr" => 15}, {"fatfreecrm" => 59}])
|
15
|
+
dashboard.list("recently_deployed", ["locomotive-cms", "locomotive-cms", "redmine"])
|
16
|
+
dashboard.map("currently_signed_in", -81.98, 11.70)
|
17
|
+
dashboard.number("app_count", 5000)
|
18
|
+
dashboard.text("MongoDB Server up")
|
19
|
+
|
20
|
+
License:
|
21
|
+
|
22
|
+
MIT
|
data/Rakefile
ADDED
data/leftronic.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "leftronic/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "leftronic"
|
7
|
+
s.version = Leftronic::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Sean Grove"]
|
10
|
+
s.email = ["sean@bushi.do"]
|
11
|
+
s.homepage = "http://leftronic.com"
|
12
|
+
s.summary = %q{Idiomatic ruby gem to use Leftronic}
|
13
|
+
s.description = %q{Leftronic is an amazing dashboard-as-a-service company, but I wanted to work with them in ruby, so I wrote this.}
|
14
|
+
|
15
|
+
s.add_dependency "rest-client", ">=1.6.1"
|
16
|
+
s.add_dependency "json", ">=1.4.6"
|
17
|
+
|
18
|
+
s.rubyforge_project = "leftronic"
|
19
|
+
|
20
|
+
s.files = `git ls-files`.split("\n")
|
21
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
23
|
+
s.require_paths = ["lib"]
|
24
|
+
end
|
data/lib/leftronic.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'rest-client'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class Leftronic
|
5
|
+
attr_accessor :url, :api_key
|
6
|
+
|
7
|
+
def push(name, data_point)
|
8
|
+
payload =
|
9
|
+
{"accessKey" => @api_key,
|
10
|
+
"streamName" => name,
|
11
|
+
"point" => data_point
|
12
|
+
}
|
13
|
+
|
14
|
+
return RestClient.post(@url, payload.to_json)
|
15
|
+
end #:nodoc:
|
16
|
+
|
17
|
+
|
18
|
+
def initialize(api_key, url = "https://beta.leftronic.com/customSend/")
|
19
|
+
@api_key = api_key
|
20
|
+
@url = url
|
21
|
+
end
|
22
|
+
|
23
|
+
# Push a number datapoint
|
24
|
+
def number(name, number)
|
25
|
+
push(name, number)
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
# Push a map datapoint
|
30
|
+
def map(name, latitude, longitude)
|
31
|
+
push(name, {"latitude" => latitude, "longitude" => longitude})
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
# Push a text update
|
36
|
+
def text(name, title, text)
|
37
|
+
push(name, {"title" => title, "msg" => text})
|
38
|
+
end
|
39
|
+
|
40
|
+
# Push a new leaderboard
|
41
|
+
# Entries is a hash of the form {:key_name_1 => :value, :key_name_2 => :value}
|
42
|
+
def leaderboard(name, entries)
|
43
|
+
values = []
|
44
|
+
|
45
|
+
entries.each do |hash|
|
46
|
+
hash.each_pair do |key, value|
|
47
|
+
values << {"name" => key, "value" => value}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
puts ({"leaderboard" => values}.inspect)
|
52
|
+
push(name, {"leaderboard" => values})
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
# Push a list
|
57
|
+
# Entries is simply an array
|
58
|
+
def list(name, entries)
|
59
|
+
values = entries.collect do |item|
|
60
|
+
{"listItem" => item}
|
61
|
+
end
|
62
|
+
|
63
|
+
push(name, {"list" => values})
|
64
|
+
end
|
65
|
+
end
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: leftronic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Sean Grove
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-06-08 00:00:00 -07:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: rest-client
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 1.6.1
|
25
|
+
type: :runtime
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 1.4.6
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id002
|
38
|
+
description: Leftronic is an amazing dashboard-as-a-service company, but I wanted to work with them in ruby, so I wrote this.
|
39
|
+
email:
|
40
|
+
- sean@bushi.do
|
41
|
+
executables: []
|
42
|
+
|
43
|
+
extensions: []
|
44
|
+
|
45
|
+
extra_rdoc_files: []
|
46
|
+
|
47
|
+
files:
|
48
|
+
- .gitignore
|
49
|
+
- Gemfile
|
50
|
+
- README
|
51
|
+
- Rakefile
|
52
|
+
- leftronic.gemspec
|
53
|
+
- lib/leftronic.rb
|
54
|
+
- lib/leftronic/version.rb
|
55
|
+
has_rdoc: true
|
56
|
+
homepage: http://leftronic.com
|
57
|
+
licenses: []
|
58
|
+
|
59
|
+
post_install_message:
|
60
|
+
rdoc_options: []
|
61
|
+
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: "0"
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: "0"
|
76
|
+
requirements: []
|
77
|
+
|
78
|
+
rubyforge_project: leftronic
|
79
|
+
rubygems_version: 1.6.2
|
80
|
+
signing_key:
|
81
|
+
specification_version: 3
|
82
|
+
summary: Idiomatic ruby gem to use Leftronic
|
83
|
+
test_files: []
|
84
|
+
|