From d6a56329ebd00d65943a72900ba4a02e62eb9a93 Mon Sep 17 00:00:00 2001 From: Martin Naumann Date: Mon, 16 Sep 2013 23:19:17 +0200 Subject: [PATCH 1/6] Updating httparty --- Gemfile.lock | 1 - 1 file changed, 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1d5d0ad..76cd75c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,7 +27,6 @@ PLATFORMS DEPENDENCIES fakeweb (~> 1.3.0) geckoboard-push! - httparty (~> 0.8.1) mocha (~> 0.10.0) rake rdoc From 4011e0b4576469b88e961e89f6eff34eb2ddce70 Mon Sep 17 00:00:00 2001 From: Martin Naumann Date: Mon, 16 Sep 2013 23:19:33 +0200 Subject: [PATCH 2/6] Adding basic highcharts support --- lib/geckoboard/push.rb | 8 ++++++++ test/geckoboard/push_test.rb | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/lib/geckoboard/push.rb b/lib/geckoboard/push.rb index d2b5600..e6184f3 100644 --- a/lib/geckoboard/push.rb +++ b/lib/geckoboard/push.rb @@ -93,5 +93,13 @@ def funnel(items, reverse = false, hide_percentage = false) opts[:percentage] = "hide" if hide_percentage self.push(opts) end + + # Values should be an array of hashes of the format {name: "some label", [10.0, 3, 8, ...]} + # Colour, x_axis and y_axis are optional settings + def highchart(values, colour = nil, x_axis = nil, y_axis = nil) + self.push({"highchart" => { + chart: {renderTo: 'container'}, credits: {enabled: false}, series: values + }}) + end end end diff --git a/test/geckoboard/push_test.rb b/test/geckoboard/push_test.rb index e68ce56..b372924 100644 --- a/test/geckoboard/push_test.rb +++ b/test/geckoboard/push_test.rb @@ -65,6 +65,13 @@ def test_funnel assert_equal true, @push.funnel([{:label => "Test1", :value => 5}, {:label => "Test2", :value => 10}], true, true) end + def test_highcharts + + expect_http_request({"api_key" => "12345", "data" => {"highchart" => { "chart" => {renderTo: 'container'}, credits: {enabled: false}, series: [{name: 'ABC', data: [1,2,3]}, {name: 'DEF', data: [4,5,6]}]}}}.to_json) + assert_equal true, @push.highchart([{name: 'ABC', data: [1,2,3]}, {name: 'DEF', data: [4,5,6]}]) + end + + def expect_http_request(json) response = Net::HTTPOK.new("1.1", 200, "OK") response.instance_variable_set(:@body, '{"success":true}') From bd87367ea88fa39956aa4da34ece0bf9e51af305 Mon Sep 17 00:00:00 2001 From: Martin Naumann Date: Mon, 16 Sep 2013 23:35:04 +0200 Subject: [PATCH 3/6] Adding options support for highcharts --- lib/geckoboard/push.rb | 6 +++--- test/geckoboard/push_test.rb | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/geckoboard/push.rb b/lib/geckoboard/push.rb index e6184f3..087bf3b 100644 --- a/lib/geckoboard/push.rb +++ b/lib/geckoboard/push.rb @@ -95,11 +95,11 @@ def funnel(items, reverse = false, hide_percentage = false) end # Values should be an array of hashes of the format {name: "some label", [10.0, 3, 8, ...]} - # Colour, x_axis and y_axis are optional settings - def highchart(values, colour = nil, x_axis = nil, y_axis = nil) + # Options are an optional hash with all the available highchart options + def highchart(values, options) self.push({"highchart" => { chart: {renderTo: 'container'}, credits: {enabled: false}, series: values - }}) + }.merge(options)}) end end end diff --git a/test/geckoboard/push_test.rb b/test/geckoboard/push_test.rb index b372924..a2c200d 100644 --- a/test/geckoboard/push_test.rb +++ b/test/geckoboard/push_test.rb @@ -67,8 +67,8 @@ def test_funnel def test_highcharts - expect_http_request({"api_key" => "12345", "data" => {"highchart" => { "chart" => {renderTo: 'container'}, credits: {enabled: false}, series: [{name: 'ABC', data: [1,2,3]}, {name: 'DEF', data: [4,5,6]}]}}}.to_json) - assert_equal true, @push.highchart([{name: 'ABC', data: [1,2,3]}, {name: 'DEF', data: [4,5,6]}]) + expect_http_request({"api_key" => "12345", "data" => {"highchart" => { "chart" => {renderTo: 'container'}, credits: {enabled: false}, series: [{name: 'ABC', data: [1,2,3]}, {name: 'DEF', data: [4,5,6]}], yAxis: { title: {text: "LABEL"} }}}}.to_json) + assert_equal true, @push.highchart([{name: 'ABC', data: [1,2,3]}, {name: 'DEF', data: [4,5,6]}], {yAxis: {title: {text: "LABEL"}} }) end From 4157a55e17fd8949c072305ecd54e871914f7811 Mon Sep 17 00:00:00 2001 From: Martin Naumann Date: Mon, 16 Sep 2013 23:39:57 +0200 Subject: [PATCH 4/6] Bumped the version number. --- geckoboard-push.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geckoboard-push.gemspec b/geckoboard-push.gemspec index 5d4efc9..5d44e27 100644 --- a/geckoboard-push.gemspec +++ b/geckoboard-push.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |s| s.name = %q{geckoboard-push} - s.version = "0.1.0" + s.version = "0.1.1" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Elliott Draper"] From c1c9295648dbdc82b580a1bd1af38166d380eb98 Mon Sep 17 00:00:00 2001 From: martin-naumann Date: Tue, 17 Sep 2013 00:25:20 +0200 Subject: [PATCH 5/6] Update README.rdoc --- README.rdoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.rdoc b/README.rdoc index 5b74bef..524f0e0 100644 --- a/README.rdoc +++ b/README.rdoc @@ -17,6 +17,7 @@ Exposes a Geckoboard::Push class allowing updates for the following widget types * pie chart * geckometer * funnel chart +* highcharts == SYNOPSIS: @@ -45,6 +46,7 @@ It's best to add it to the Gemfile for your app, but if needed you can install t == CONTRIBUTORS: Elliott Draper +Martin Naumann == LICENSE: From 40557d48ec28f6956fabe9622f39156a8cda6173 Mon Sep 17 00:00:00 2001 From: Martin Naumann Date: Mon, 9 Dec 2013 12:10:01 +0100 Subject: [PATCH 6/6] Updating the required httparty version. Conflicts: geckoboard-push.gemspec --- geckoboard-push.gemspec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/geckoboard-push.gemspec b/geckoboard-push.gemspec index 5d44e27..066886a 100644 --- a/geckoboard-push.gemspec +++ b/geckoboard-push.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |s| s.name = %q{geckoboard-push} - s.version = "0.1.1" + s.version = "0.1.2" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Elliott Draper"] @@ -21,16 +21,16 @@ Gem::Specification.new do |s| s.specification_version = 3 if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - s.add_runtime_dependency(%q, ["~> 0.8.1"]) + s.add_runtime_dependency(%q, ["~> 0.11.0"]) s.add_development_dependency(%q, ["~> 1.3.0"]) s.add_development_dependency(%q, ["~> 0.10.0"]) else - s.add_dependency(%q, ["~> 0.8.1"]) + s.add_dependency(%q, ["~> 0.11.0"]) s.add_dependency(%q, ["~> 1.3.0"]) s.add_dependency(%q, ["~> 0.10.0"]) end else - s.add_dependency(%q, ["~> 0.8.1"]) + s.add_dependency(%q, ["~> 0.11.0"]) s.add_dependency(%q, ["~> 1.3.0"]) s.add_dependency(%q, ["~> 0.10.0"]) end