analytica 0.0.16 → 0.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/analytica.rb +4 -2
  2. data/lib/visualization.rb +58 -72
  3. metadata +3 -3
data/lib/analytica.rb CHANGED
@@ -4,7 +4,7 @@ require File.join(File.dirname(__FILE__), 'computation')
4
4
  require File.join(File.dirname(__FILE__), 'visualization')
5
5
 
6
6
  module Analytica
7
- VERSION = '0.0.16'
7
+ VERSION = '0.0.17'
8
8
 
9
9
  include Strict
10
10
 
@@ -58,10 +58,12 @@ module Analytica
58
58
  include Analytica::Visualization::Common
59
59
  include Analytica::Visualization::DataSystem
60
60
 
61
+ attr_accessor :labels
62
+
61
63
  def initialize(datasets=[])
62
64
  enforce!(:dataset_array, datasets)
63
65
 
64
- @labels = []
66
+ @labels = {}
65
67
  @labels_set = false
66
68
 
67
69
  super datasets
data/lib/visualization.rb CHANGED
@@ -3,40 +3,8 @@ require 'typestrict'
3
3
 
4
4
  module Analytica
5
5
  module Visualization
6
- module Common
7
- def set_title(params)
8
- enforce_map!({
9
- :title => :string,
10
- :title_size => :natural_number,
11
- :title_color => :hex_color}, params)
12
-
13
- @title = params
14
- @title_set = true
15
- end
16
-
17
- def common_options
18
- options = {}
19
-
20
- if @labels_set
21
- label = {
22
- :axis_with_labels => ['x', 'y'],
23
- :axis_labels => [@labels[:axis][:data], ["#{0}", "#{(datamax*0.5).to_i}", "#{datamax.to_i}"]]
24
- }
25
-
26
- options.merge!(label)
27
- end
28
-
29
- if @title_set
30
- options.merge!(@title)
31
- end
32
-
33
- options
34
- end
35
- end
36
-
37
- module DataSet
38
- include Strict
39
6
 
7
+ module Common
40
8
  def set_labels(data, params={})
41
9
  enforce_map_defaults!({
42
10
  :type => :axis,
@@ -66,6 +34,16 @@ module Analytica
66
34
  @labels[params[:type]][:data] = data
67
35
  end
68
36
 
37
+ def set_title(params)
38
+ enforce_map!({
39
+ :title => :string,
40
+ :title_size => :natural_number,
41
+ :title_color => :hex_color}, params)
42
+
43
+ @title = params
44
+ @title_set = true
45
+ end
46
+
69
47
  def bar_settings(bar_settings)
70
48
  enforce_map_optional!({
71
49
  :width => :natural_number,
@@ -74,6 +52,48 @@ module Analytica
74
52
  bar_settings
75
53
  end
76
54
 
55
+ def generate_title
56
+ options = {}
57
+ if @title_set
58
+ options.merge!(@title)
59
+ end
60
+ options
61
+ end
62
+
63
+ def generate_labels
64
+ options = {}
65
+ if @labels_set
66
+ if @labels[:data]
67
+ @labels[:data][:data].each {|element| data_string += ",#{element.to_f}"}
68
+ data_labels = {
69
+ :custom => "chm=N#{@labels[:data][:prefix]}*f#{@labels[:data][:decimal]}*#{@labels[:data][:postfix]},#{@labels[:data][:color]},0,-1,#{@labels[:data][:size]}&chds=0,#{datamax}"
70
+ }
71
+ options.merge!(data_labels)
72
+ end
73
+
74
+ if @labels[:axis]
75
+ axis_labels = {
76
+ :axis_with_labels => ['x', 'y'],
77
+ :axis_labels => [@labels[:axis][:data], ["#{0}", "#{(datamax*0.5).to_i}", "#{datamax.to_i}"]]
78
+ }
79
+ options.merge!(axis_labels)
80
+ end
81
+ end
82
+ puts "ended with label settings => #{options.inspect}"
83
+ options
84
+ end
85
+
86
+ def common_options
87
+ options = {}
88
+ options.merge!(generate_labels)
89
+ options.merge!(generate_title)
90
+ options
91
+ end
92
+ end
93
+
94
+ module DataSet
95
+ include Strict
96
+
77
97
  def datamax
78
98
  (max > 0) ? (1.25*max) : 1
79
99
  end
@@ -131,7 +151,7 @@ module Analytica
131
151
  :color => '0000ff',
132
152
  :background_color => 'ffffff',
133
153
  :width => 600,
134
- :height => 280,
154
+ :height => 180,
135
155
  :bar_settings => {}}, params)
136
156
 
137
157
  enforce_map!({
@@ -184,6 +204,7 @@ module Analytica
184
204
  :stacked => false,
185
205
  :width => 600,
186
206
  :height => 280,
207
+ :stacked => false,
187
208
  :bar_settings => {}}, params)
188
209
 
189
210
  enforce_map!({
@@ -219,51 +240,15 @@ module Analytica
219
240
  }
220
241
 
221
242
  options.merge!(color)
222
-
223
- if @labels_set
224
243
 
225
- if @labels[:data]
226
- data_string = ""
227
- @labels[:data][:data].each {|element| data_string += ",#{element.to_f}"}
228
- data_string = data_string[1..data_string.size]
229
- data_labels = {
230
- :custom => "chm=N#{@labels[:data][:prefix]}*f#{@labels[:data][:decimal]}*#{@labels[:data][:postfix]},#{@labels[:data][:color]},0,-1,#{@labels[:data][:size]}&chds=0,#{datamax}"
231
- }
232
- options.merge!(data_labels)
233
- end
234
-
235
- if @labels[:axis]
236
- puts "doing the axis labels thing #{@labels[:axis][:data]}"
237
- axis_labels = {
238
- :axis_with_labels => ['x', 'y'],
239
- :axis_labels => [@labels[:axis][:data], ["#{0}", "#{(datamax*0.5).to_i}", "#{datamax.to_i}"]]
240
- }
241
-
242
- options.merge!(axis_labels)
243
- end
244
- end
245
-
246
- if @title_set
247
- options.merge!(@title)
248
- end
244
+ options.merge!(common_options)
245
+
249
246
  return Gchart.bar(options)
250
247
  end
251
248
  end
252
249
 
253
250
  module DataSystem
254
251
 
255
- def bar_settings(bar_settings)
256
- enforce_map_optional!({
257
- :width => :natural_number,
258
- :spacing => :natural_number,
259
- :group_spacing => :natural_number}, bar_settings)
260
- bar_settings
261
- end
262
-
263
- def set_labels(data, params={})
264
- # TODO implement
265
- end
266
-
267
252
  def datamax
268
253
  (self.map{|dset| dset.datamax}).max
269
254
  end
@@ -322,6 +307,7 @@ module Analytica
322
307
  :background_color => '000000',
323
308
  :width => 600,
324
309
  :height => 280,
310
+ :stacked => false,
325
311
  :bar_settings => {}}, params)
326
312
 
327
313
  enforce_map!({
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: analytica
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 61
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 16
10
- version: 0.0.16
9
+ - 17
10
+ version: 0.0.17
11
11
  platform: ruby
12
12
  authors:
13
13
  - Raeez Lorgat