databox 0.1.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.pryrc +7 -0
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +4 -7
  6. data/README.md +40 -149
  7. data/databox.gemspec +7 -17
  8. data/example.rb +17 -0
  9. data/lib/databox.rb +8 -22
  10. data/lib/databox/client.rb +42 -61
  11. data/lib/databox/configuration.rb +3 -8
  12. data/lib/databox/version.rb +1 -1
  13. data/spec/databox/client_spec.rb +42 -85
  14. data/spec/databox_spec.rb +9 -0
  15. data/spec/spec_helper.rb +3 -32
  16. metadata +26 -160
  17. data/lib/databox/integration.rb +0 -127
  18. data/spec/databox/bar_chart_spec.rb +0 -23
  19. data/spec/databox/big_number_spec.rb +0 -29
  20. data/spec/databox/compare_spec.rb +0 -22
  21. data/spec/databox/funnel_spec.rb +0 -30
  22. data/spec/databox/integration_spec.rb +0 -11
  23. data/spec/databox/interval_spec.rb +0 -23
  24. data/spec/databox/line_chart_spec.rb +0 -23
  25. data/spec/databox/messages_spec.rb +0 -52
  26. data/spec/databox/pie_spec.rb +0 -25
  27. data/spec/databox/pipeline_spec.rb +0 -24
  28. data/spec/databox/progress_spec.rb +0 -20
  29. data/spec/requests/bar_chart_simple.txt +0 -14
  30. data/spec/requests/big_number_simple.txt +0 -14
  31. data/spec/requests/compare_simple.txt +0 -14
  32. data/spec/requests/funnel_simple.txt +0 -14
  33. data/spec/requests/interval_simple.txt +0 -14
  34. data/spec/requests/invalid_push.txt +0 -19
  35. data/spec/requests/line_chart_simple.txt +0 -14
  36. data/spec/requests/logs.txt +0 -14
  37. data/spec/requests/multiple_message.txt +0 -14
  38. data/spec/requests/pie_simple.txt +0 -14
  39. data/spec/requests/pipeline_simple.txt +0 -14
  40. data/spec/requests/progress_simple.txt +0 -14
  41. data/spec/requests/simple_message.txt +0 -14
  42. data/spec/requests/simple_push.txt +0 -14
  43. data/test_rvms.sh +0 -16
@@ -1,127 +0,0 @@
1
- class Databox::Integration < Databox::Client
2
-
3
- attr_accessor :name, :list, :set_item, :date
4
-
5
- def initialize name, options={date: nil, id: nil}
6
- super()
7
- @name = name
8
-
9
- @date = options[:date] unless options[:date].nil?
10
- @token = options[:id] unless options[:id].nil?
11
-
12
- @list = []
13
- @set_item = nil
14
- end
15
-
16
- def save
17
- if push(to_data).success?
18
- @list = []
19
- @set_item = nil
20
- true
21
- else
22
- false
23
- end
24
- end
25
-
26
- end
27
-
28
- class Databox::Messages < Databox::Integration
29
-
30
- def add message, icon
31
- @list.push [message, icon]
32
- end
33
-
34
- def to_data
35
- [
36
- { key: "#{name}", value: list.map(&:first) },
37
- { key: "#{name}@icons", value: list.map{|e| e[1] } },
38
- ]
39
- end
40
-
41
- end
42
-
43
- #TODO: Add support for icons
44
- #TODO: Add support for changes
45
- class Databox::Pipeline < Databox::Integration
46
-
47
- def add message, value
48
- @list.push [message, value]
49
- end
50
-
51
- def to_data
52
- [
53
- { key: "#{name}@labels", value: list.map(&:first) },
54
- { key: "#{name}@values", value: list.map{|e| e[1] } },
55
- ]
56
- end
57
-
58
- end
59
-
60
-
61
-
62
-
63
- #TODO: Add support for icons
64
- #TODO: Add support for changes
65
- class Databox::Funnel < Databox::Pipeline; end;
66
- class Databox::Pie < Databox:: Pipeline; end;
67
-
68
-
69
-
70
- class Databox::Progress < Databox::Integration
71
-
72
- def add *args
73
- raise "Progress does not support add!"
74
- end
75
-
76
- def set message, max, value
77
- @set_item = [message, max, value]
78
- end
79
-
80
- def to_data
81
- [
82
- { key: "#{name}@label", value: @set_item.first },
83
- { key: "#{name}@max_value", value: @set_item[1] },
84
- { key: "#{name}", value: @set_item.last },
85
- ]
86
- end
87
-
88
- end
89
-
90
-
91
-
92
- class Databox::BigNumber < Databox::Integration
93
- def set number, date=nil
94
- date ||= @date
95
- @set_item = [number, date]
96
- end
97
-
98
- def to_data
99
- out = {key: name, value: @set_item.first}
100
- out.merge!({date: @set_item[1]}) unless @set_item[1].nil?
101
- out
102
- end
103
- end
104
-
105
-
106
-
107
- class Databox::LineChart < Databox::Integration
108
-
109
- def add value, date=nil
110
- date ||= @date
111
- @list.push [value, date]
112
- end
113
-
114
- def to_data
115
- @list.map do |i|
116
- out = {key: name, value: i.first}
117
- out.merge!({date: i[1]}) unless i[1].nil?
118
- out
119
- end
120
- end
121
- end
122
-
123
- class Databox::BarChart < Databox::LineChart; end;
124
-
125
- class Databox::Compare < Databox::LineChart; end;
126
-
127
- class Databox::Interval < Databox::LineChart; end;
@@ -1,23 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::BarChart do
4
-
5
- let(:chart){ Databox::BarChart.new "my_bar" }
6
-
7
- context "simple" do
8
- before {
9
- stub_request(:post, /push/)
10
- .to_return { request_from "bar_chart_simple" }
11
- }
12
-
13
- before do
14
- chart.add 2000, "2014-01-29"
15
- chart.add 1600, "2014-02-01"
16
- chart.add 999, "2014-02-03"
17
- end
18
-
19
- it { expect(chart.save).to be_true }
20
-
21
- end
22
-
23
- end
@@ -1,29 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::BigNumber do
4
-
5
- let(:number){ Databox::BigNumber.new "just_number" }
6
-
7
- context "simple" do
8
- before {
9
- stub_request(:post, /push/)
10
- .to_return { request_from "big_number_simple" }
11
- }
12
-
13
- before { number.set 5000, "2014-02-03T00:00:00" }
14
- it { expect(number.to_data[:date]).not_to be_nil }
15
- it { expect(number.save).to be_true }
16
- end
17
-
18
- context "without date" do
19
- before { number.set 5000 }
20
- it { expect(number.to_data[:date]).to be_nil }
21
- end
22
-
23
- context "with constructor" do
24
- let(:number_2){ Databox::BigNumber.new "just_number", date: "2014-01-26T00:00:00" }
25
- before{ number_2.set 60000 }
26
- it { expect(number_2.to_data[:date]).not_to be_nil }
27
- end
28
-
29
- end
@@ -1,22 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::Compare do
4
-
5
- let(:compare){ Databox::Compare.new "my_compare" }
6
-
7
- context "simple" do
8
- before {
9
- stub_request(:post, /push/)
10
- .to_return { request_from "compare_simple" }
11
- }
12
-
13
- before do
14
- compare.add 2000, "2014-01-25"
15
- compare.add 1600, "2014-01-26"
16
- end
17
-
18
- it { expect(compare.save).to be_true }
19
-
20
- end
21
-
22
- end
@@ -1,30 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::Funnel do
4
-
5
- before do
6
- Databox.configure do |c|
7
- c.token = "218oxlmk3ikkogo0"
8
- c.key = "3s70rekrhcmcgkccssckc448kgw04ssk"
9
- end
10
- end
11
-
12
- let(:funnel){ Databox::Funnel.new "little_funnel" }
13
-
14
- context "simple" do
15
- before {
16
- stub_request(:post, /push/)
17
- .to_return { request_from "funnel_simple" }
18
- }
19
-
20
- before do
21
- funnel.add "Requests sent", 2000
22
- funnel.add "New Accounts", 1600
23
- funnel.add "Viewed results", 999
24
- end
25
-
26
- it { expect(funnel.save).to be_true }
27
-
28
- end
29
-
30
- end
@@ -1,11 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::Integration do
4
-
5
- context "token" do
6
- subject { Databox::Integration.new(nil, id: "some fake token") }
7
- it { expect(subject.token).to eq "some fake token" }
8
- it { expect(Databox::Integration.new(nil).token).not_to be_nil }
9
- end
10
-
11
- end
@@ -1,23 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::Interval do
4
-
5
- let(:interval){ Databox::Interval.new "my_interval" }
6
-
7
- context "simple" do
8
- before {
9
- stub_request(:post, /push/)
10
- .to_return { request_from "interval_simple" }
11
- }
12
-
13
- before do
14
- interval.add 2000, "2014-01-25"
15
- interval.add 1600, "2014-01-26"
16
- interval.add 2200, "2014-01-27"
17
- end
18
-
19
- it { expect(interval.save).to be_true }
20
-
21
- end
22
-
23
- end
@@ -1,23 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::LineChart do
4
-
5
- let(:chart){ Databox::LineChart.new "my_line" }
6
-
7
- context "simple" do
8
- before {
9
- stub_request(:post, /push/)
10
- .to_return { request_from "line_chart_simple" }
11
- }
12
-
13
- before do
14
- chart.add 2000, "2014-01-29"
15
- chart.add 1600, "2014-02-01"
16
- chart.add 999, "2014-02-03"
17
- end
18
-
19
- it { expect(chart.save).to be_true }
20
-
21
- end
22
-
23
- end
@@ -1,52 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::Messages do
4
-
5
- let(:messages){ Databox::Messages.new("just_messages") }
6
-
7
- context "add messages" do
8
- it { expect(messages.name).to eq "just_messages" }
9
-
10
- it {
11
- expect { messages.add("Just message", "Number") }
12
- .to change { messages.list.size }.from(0).to(1)
13
- }
14
-
15
-
16
- context "save" do
17
- context "simple" do
18
- before {
19
- stub_request(:post, /push/)
20
- .to_return { request_from "simple_message" }
21
- }
22
-
23
- before { messages.add("I was here", "USD") }
24
-
25
- it {
26
- expect { messages.save }
27
- .to change { messages.list.size }.to(0)
28
- }
29
- end
30
-
31
- context "multiple" do
32
- before {
33
- stub_request(:post, /push/)
34
- .to_return { request_from "multiple_message" }
35
- }
36
-
37
- before do
38
- messages.add("I was here", "Number")
39
- messages.add("This is test", "EUR")
40
- end
41
-
42
- it {
43
- expect { messages.save }
44
- .to change { messages.list.size }.to(0)
45
- }
46
- end
47
-
48
- end
49
-
50
- end
51
-
52
- end
@@ -1,25 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::Pie do
4
-
5
- let(:pie){ Databox::Pie.new "my_pie" }
6
-
7
- context "simple" do
8
- before {
9
- stub_request(:post, /push/)
10
- .to_return { request_from "pie_simple" }
11
- }
12
-
13
- before do
14
- pie.add "A", 3_014
15
- pie.add "B", 29_496
16
- pie.add "C", 9_121
17
- pie.add "D", 20_390
18
- pie.add "E", 7_423
19
- end
20
-
21
- it { expect(pie.save).to be_true }
22
-
23
- end
24
-
25
- end
@@ -1,24 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::Pipeline do
4
-
5
- let(:pipeline){ Databox::Pipeline.new "pipe_visits" }
6
-
7
- context "simple" do
8
- before {
9
- stub_request(:post, /push/)
10
- .to_return { request_from "multiple_message" }
11
- }
12
-
13
- before do
14
- pipeline.add "Step I.", 2000
15
- pipeline.add "Step II.", 1600
16
- pipeline.add "Step III.", 999
17
- pipeline.add "Step IV.", 100
18
- end
19
-
20
- it { expect(pipeline.save).to be_true }
21
-
22
- end
23
-
24
- end
@@ -1,20 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Databox::Progress do
4
-
5
- let(:progress){ Databox::Progress.new "my_progress" }
6
-
7
- context "simple" do
8
- before {
9
- stub_request(:post, /push/)
10
- .to_return { request_from "progress_simple" }
11
- }
12
-
13
- before do
14
- progress.set "33% done", 100, 33
15
- end
16
-
17
- it { expect(progress.save).to be_true }
18
- end
19
-
20
- end
@@ -1,14 +0,0 @@
1
- HTTP/1.1 200 OK
2
- Server: nginx/1.4.4
3
- Date: Mon, 03 Feb 2014 16:38:19 GMT
4
- Content-Type: application/json
5
- Transfer-Encoding: chunked
6
- Connection: keep-alive
7
- Vary: Accept-Encoding
8
- X-Powered-By: PHP/5.4.23
9
- Set-Cookie: zep_uid=kir9md6qrahslhdk382jnce183; path=/
10
- Expires: Thu, 19 Nov 1981 08:52:00 GMT
11
- Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
12
- Pragma: no-cache
13
-
14
- {"response":{"type":"success","message":"Items stored: 3"}}