quacky-charts 0.0.5 → 0.0.6

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/README.md CHANGED
@@ -18,16 +18,11 @@ Run this command to install the needed JS files:
18
18
 
19
19
  ## Usage
20
20
 
21
- Add these lines to app/assets/javascripts/application.js:
21
+ Add this line to the controller:
22
22
 
23
- //= require d3.v2.min
24
- //= require pie_charts.js
23
+ @chart = Quacky::PieChartBuilder.new
25
24
 
26
- and to the controller:
27
-
28
- @chart = QuackyC::PieChartBuilder.new
29
-
30
- and finally, in the view:
25
+ and in the view:
31
26
 
32
27
  <%= @chart.draw %>
33
28
 
@@ -8,7 +8,7 @@ module Quacky
8
8
  desc "This gesnerator installs JS files needed for D3 pie charts"
9
9
 
10
10
  def write_js_files
11
- copy_file "pie_charts.js", "app/assets/javascripts/pie_charts.js"
11
+ copy_file "pie_charts.js.coffee", "app/assets/javascripts/pie_charts.js.coffee"
12
12
  copy_file "d3.v2.min.js", "app/assets/javascripts/d3.v2.min.js"
13
13
  end
14
14
 
@@ -0,0 +1,36 @@
1
+ # based on the example at https://github.com/mbostock/d3/blob/master/examples/donut/donut.html
2
+ $(document).ready( ->
3
+ builder = new PieChartBuilder
4
+ builder.drawCharts()
5
+ )
6
+
7
+ class PieChartBuilder
8
+
9
+ drawCharts: ->
10
+ w = 300
11
+ h = 300
12
+ r = 100
13
+ color = d3.scale.category20c()
14
+
15
+ data = [{"label":"one", "value":20},
16
+ {"label":"two", "value":50},
17
+ {"label":"three", "value":30}]
18
+
19
+ vis = d3.select(".pie-chart").append("svg:svg").data([data]).attr("width", w).attr("height", h).append("svg:g").attr("transform", "translate(" + r + "," + r + ")")
20
+ arc = d3.svg.arc().outerRadius(r)
21
+
22
+ pie = d3.layout.pie().value( (d) ->
23
+ return d.value
24
+ )
25
+ arcs = vis.selectAll("g.slice").data(pie).enter().append("svg:g").attr("class", "slice")
26
+ arcs.append("svg:path").attr("fill", (d, i) ->
27
+ return color(i)
28
+ ).attr("d", arc)
29
+
30
+ arcs.append("svg:text").attr("transform", (d) ->
31
+ d.innerRadius = 0
32
+ d.outerRadius = r
33
+ return "translate(" + arc.centroid(d) + ")"
34
+ ).attr("text-anchor", "middle").text( (d, i) ->
35
+ return data[i].label
36
+ )
@@ -1,10 +1,12 @@
1
1
  module Quacky
2
+
2
3
  class PieChartBuilder
3
4
 
4
5
  # return a content tag that can be selected by the client-side, and drawn on
5
6
  def draw
6
- content_tag(:div, nil, :class => 'pie-chart')
7
+ "<div class='pie-chart'>".html_safe
7
8
  end
8
9
 
9
10
  end
11
+
10
12
  end
@@ -1,3 +1,3 @@
1
1
  module QuackyCharts
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/quacky-charts.rb CHANGED
@@ -1,13 +1,7 @@
1
1
  require "quacky/version"
2
2
  require "quacky/pie_chart_builder"
3
3
 
4
- include ActionView::Helpers::TagHelper
4
+ #include ActionView::Helpers::TagHelper
5
5
 
6
6
  module Quacky
7
-
8
- # return a content tag that can be selected by the client-side, and drawn on
9
- def draw
10
- content_tag(:div, nil, :class => 'pie-chart')
11
- end
12
-
13
7
  end
@@ -14,4 +14,7 @@ Gem::Specification.new do |gem|
14
14
  gem.name = "quacky-charts"
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = QuackyCharts::VERSION
17
+
18
+ gem.add_development_dependency(%q<rspec>)
19
+ gem.add_runtime_dependency(%q<coffee-rails>, ["~> 3.2.1"])
17
20
  end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Quacky::PieChartBuilder" do
4
+
5
+ it "can be initialized" do
6
+ chart = Quacky::PieChartBuilder.new
7
+ chart.should be_true
8
+ end
9
+
10
+ it "should be the correct type" do
11
+ chart = Quacky::PieChartBuilder.new
12
+ chart.class.should eq(Quacky::PieChartBuilder)
13
+ end
14
+
15
+ it "should be able to draw and raise error" do
16
+ chart = Quacky::PieChartBuilder.new
17
+ lambda {chart.draw}.should raise_error
18
+ end
19
+
20
+ end
@@ -0,0 +1,12 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'Although not required, bundler is recommended for running the tests.'
5
+ end
6
+
7
+ require 'rubygems'
8
+ require 'quacky-charts'
9
+
10
+ RSpec.configure do |config|
11
+ # some (optional) config here
12
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quacky-charts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,40 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-23 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2012-10-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: coffee-rails
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 3.2.1
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 3.2.1
14
46
  description: A Rails Charting Gem
15
47
  email:
16
48
  - travissheppard.1988@gmail.com
@@ -25,11 +57,13 @@ files:
25
57
  - Rakefile
26
58
  - lib/generators/quacky/install_generator.rb
27
59
  - lib/generators/quacky/templates/d3.v2.min.js
28
- - lib/generators/quacky/templates/pie_charts.js
60
+ - lib/generators/quacky/templates/pie_charts.js.coffee
29
61
  - lib/quacky-charts.rb
30
62
  - lib/quacky/pie_chart_builder.rb
31
63
  - lib/quacky/version.rb
32
64
  - quacky-charts.gemspec
65
+ - spec/cases/pie_chart_builder_spec.rb
66
+ - spec/spec_helper.rb
33
67
  homepage: ''
34
68
  licenses: []
35
69
  post_install_message:
@@ -54,4 +88,6 @@ rubygems_version: 1.8.23
54
88
  signing_key:
55
89
  specification_version: 3
56
90
  summary: Configure Charts in Ruby; QuackyCharts builds them with JS tools.
57
- test_files: []
91
+ test_files:
92
+ - spec/cases/pie_chart_builder_spec.rb
93
+ - spec/spec_helper.rb
@@ -1,47 +0,0 @@
1
- // based on the example at https://github.com/mbostock/d3/blob/master/examples/donut/donut.html
2
- $(document).ready(function() {
3
- // the number of slices
4
- var slices = 5;
5
-
6
- var width = 400,
7
- height = 400,
8
- outerRadius = Math.min(width, height) / 2,
9
- innerRadius = 0,
10
- n = slices,
11
- q = 0,
12
- data0 = d3.range(n).map(Math.random),
13
- data1 = d3.range(n).map(Math.random),
14
- data,
15
- color = d3.scale.category20(),
16
- arc = d3.svg.arc(),
17
- donut = d3.layout.pie().sort(null);
18
-
19
- var vis = d3.select(".pie-chart")
20
- .append("svg")
21
- .attr("width", width)
22
- .attr("height", height);
23
-
24
- vis.selectAll("g.arc")
25
- .data(arcs(data0, data1))
26
- .enter().append("g")
27
- .attr("class", "arc")
28
- .attr("transform", "translate(" + outerRadius + "," + outerRadius + ")")
29
- .append("path")
30
- .attr("fill", function(d, i) { return color(i); })
31
- .attr("d", arc);
32
-
33
-
34
- function arcs(data0, data1) {
35
- var arcs0 = donut(data0),
36
- arcs1 = donut(data1),
37
- i = -1,
38
- arc;
39
- while (++i < n) {
40
- arc = arcs0[i];
41
- arc.innerRadius = innerRadius;
42
- arc.outerRadius = outerRadius;
43
- arc.next = arcs1[i];
44
- }
45
- return arcs0;
46
- }
47
- });