chartify 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e43f72a8d875e3c910d4cd10326ef74c24005324
4
- data.tar.gz: b671a8ad3a32d9e81a1905b6ce4f21c1f0b7c232
3
+ metadata.gz: 2f3138a3aaabede918897180074d61740e25d180
4
+ data.tar.gz: ce208f1f14a6282a0d3294729395b03722279479
5
5
  SHA512:
6
- metadata.gz: 570d6be7cfa5b7263bae328533095e3ed987fa7da7c7f51506a7c5433bb8f16d5b129d80d8d22e203afee17e19191778907a7c4a6765559b5a7a522ae92dce35
7
- data.tar.gz: 48a44e598cc148a5639f8c21071cfc2dec09cb070eb2a2533164fa705113d2a99a94a4b58281266a45fae174292eef1455c3c176e1cf29cb6ccaa5684575ec7b
6
+ metadata.gz: b1e524cad2309a25152e16a6832204c444eb04018d93a0a14381cd710e0e5edd1665808db6c9063b66f03bbcd087cf507d32665feaf79c0b6eb8430dff09642d
7
+ data.tar.gz: f45202af7bd870ade18aaed0df653aec6c2d40f815f7ca98dffb1f509a657c0ef22455b7baa64a125b2864e088fb1aa82b8db4f479a940324bb0a9a411fc3e32
@@ -0,0 +1,29 @@
1
+ require 'chartify/chart_base'
2
+ require 'gruff'
3
+
4
+ # Example
5
+ # -------
6
+ # Chartify::Factory.build(:area) do |chart|
7
+ # chart.data = [{hours_remain: 100, estimated_hours_remain: 100, day: 3.days.ago.to_date},
8
+ # {hours_remain: 50, estimated_hours_remain: 45, day: 2.days.ago.to_date},
9
+ # {hours_remain: 5, estimated_hours_remain: 10, day: 1.days.ago.to_date}]
10
+ # chart.columns = {hours_remain: 'Hours remaining', estimated_hours_remain: 'Estimated hours remaining'}
11
+ # chart.label_column = :day
12
+ # end
13
+ module Chartify
14
+ class AreaChart < ChartBase
15
+ def to_blob
16
+ g = prepare_gruff(:area)
17
+
18
+ data.each do |row|
19
+ if row.kind_of?(Array)
20
+ key, val = row[0], row[1]
21
+ else
22
+ key, val = row.key, row.val
23
+ end
24
+ g.data(key, val)
25
+ end
26
+ g.to_blob
27
+ end
28
+ end
29
+ end
@@ -4,7 +4,8 @@ require 'gruff'
4
4
  module Chartify
5
5
  class BarChart < ChartBase
6
6
  def to_blob
7
- g = prepare_gruff(:bar)
7
+ raise 'Need to specify label_column' unless label_column.present?
8
+ g = prepare_gruff(:side_bar)
8
9
 
9
10
  columns.each do |column|
10
11
  if column.kind_of?(Array)
@@ -18,7 +18,7 @@ module Chartify
18
18
  end
19
19
 
20
20
  def render_chart(html_dom_id, options = {})
21
- api_name = options[:web_api_name] || Chartify.config.web_api_name.to_s
21
+ api_name = options[:web_api_name] || config.web_api_name.to_s
22
22
  class_name = self.class.name.split("::")[1]
23
23
  load "chartify/web_chart/#{api_name}/#{class_name.underscore}.rb"
24
24
  chart = "Chartify::WebChart::#{api_name.camelize}::#{class_name}".constantize.new
@@ -0,0 +1,29 @@
1
+ require 'chartify/chart_base'
2
+ require 'gruff'
3
+
4
+ module Chartify
5
+ class ColumnChart < ChartBase
6
+ def to_blob
7
+ raise 'Need to specify label_column' unless label_column.present?
8
+ g = prepare_gruff(:bar)
9
+
10
+ columns.each do |column|
11
+ if column.kind_of?(Array)
12
+ key, text = column[0], column[1]
13
+ else
14
+ key, text = column, column.to_s.humanize
15
+ end
16
+
17
+ g.data(text, data_for_column(key))
18
+ end
19
+
20
+ labels = {}
21
+ data_for_column(label_column).each_with_index do |label, index|
22
+ labels[index] = label.to_s
23
+ end
24
+
25
+ g.labels = labels
26
+ g.to_blob
27
+ end
28
+ end
29
+ end
@@ -2,6 +2,8 @@ require 'chartify/gruff_themes'
2
2
  require 'chartify/line_chart'
3
3
  require 'chartify/pie_chart'
4
4
  require 'chartify/bar_chart'
5
+ require 'chartify/column_chart'
6
+ require 'chartify/area_chart'
5
7
 
6
8
  module Chartify
7
9
  class Factory
@@ -14,6 +14,7 @@ require 'gruff'
14
14
  module Chartify
15
15
  class LineChart < ChartBase
16
16
  def to_blob
17
+ raise 'Need to specify label_column' unless label_column.present?
17
18
  g = prepare_gruff(:line)
18
19
 
19
20
  columns.each do |column|
@@ -1,3 +1,3 @@
1
1
  module Chartify
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,24 @@
1
+ require 'chartify/area_chart'
2
+ require 'chartify/web_chart/google_chart/google_chart_module'
3
+
4
+ module Chartify
5
+ module WebChart
6
+ module GoogleChart
7
+ class AreaChart < Chartify::AreaChart
8
+ include Chartify::WebChart::GoogleChart::GoogleChartModule
9
+
10
+ def render(html_dom_id)
11
+ js = <<-JS
12
+ google.load("visualization", "1", {packages:["corechart"]});
13
+ google.setOnLoadCallback(function () {
14
+ var data = google.visualization.arrayToDataTable(#{array_data_table.to_json});
15
+ var chart = new google.visualization.AreaChart(document.getElementById('#{html_dom_id}'));
16
+ chart.draw(data, #{chart_options.to_json});
17
+ });
18
+ JS
19
+ js.html_safe
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ require 'chartify/bar_chart'
2
+ require 'chartify/web_chart/google_chart/google_chart_module'
3
+
4
+ module Chartify
5
+ module WebChart
6
+ module GoogleChart
7
+ class ColumnChart < Chartify::ColumnChart
8
+ include Chartify::WebChart::GoogleChart::GoogleChartModule
9
+
10
+ def render(html_dom_id)
11
+ js = <<-JS
12
+ google.load("visualization", "1", {packages:["corechart"]});
13
+ google.setOnLoadCallback(function () {
14
+ var data = google.visualization.arrayToDataTable(#{array_data_table.to_json});
15
+ var chart = new google.visualization.ColumnChart(document.getElementById('#{html_dom_id}'));
16
+ chart.draw(data, #{chart_options.to_json});
17
+ });
18
+ JS
19
+ js.html_safe
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -21,9 +21,10 @@ module Chartify
21
21
  end
22
22
 
23
23
  def array_data_table
24
- array_data = [[label_column] + column_names]
24
+ array_data = label_column.present? ? [[label_column] + column_names] : [column_names]
25
25
  array_data + data.collect do |row|
26
- [row[label_column]] + column_keys.collect { |col| row[col] }
26
+ row_val = column_keys.collect { |col| row[col] }
27
+ label_column.present? ? [row[label_column]] + row_val : row_val
27
28
  end
28
29
  end
29
30
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chartify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.K.M. Ashrafuzzaman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-25 00:00:00.000000000 Z
11
+ date: 2014-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gruff
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.1
19
+ version: '0.5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.5.1
26
+ version: '0.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: railties
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -48,14 +48,14 @@ dependencies:
48
48
  name: sqlite3
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  - !ruby/object:Gem::Dependency
@@ -154,15 +154,19 @@ files:
154
154
  - README.md
155
155
  - Rakefile
156
156
  - lib/chartify.rb
157
+ - lib/chartify/area_chart.rb
157
158
  - lib/chartify/bar_chart.rb
158
159
  - lib/chartify/chart_base.rb
160
+ - lib/chartify/column_chart.rb
159
161
  - lib/chartify/config.rb
160
162
  - lib/chartify/factory.rb
161
163
  - lib/chartify/gruff_themes.rb
162
164
  - lib/chartify/line_chart.rb
163
165
  - lib/chartify/pie_chart.rb
164
166
  - lib/chartify/version.rb
167
+ - lib/chartify/web_chart/google_chart/area_chart.rb
165
168
  - lib/chartify/web_chart/google_chart/bar_chart.rb
169
+ - lib/chartify/web_chart/google_chart/column_chart.rb
166
170
  - lib/chartify/web_chart/google_chart/google_chart_module.rb
167
171
  - lib/chartify/web_chart/google_chart/line_chart.rb
168
172
  - lib/chartify/web_chart/google_chart/pie_chart.rb