lazy_high_charts 1.1.1 → 1.1.2

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/CHANGELOG.md CHANGED
@@ -1,15 +1,13 @@
1
- Mar 20,2011
2
- * be compatible to rails 2.3
3
- * dump to 1.1.1
4
- * Rename options[:x_axis] and options[:y_axis] to options[:xAxis] and options[:yAxis], and options[:plot_options] to options[:plotOptions] to make it consistent with highcharts.
5
-
6
- Mar 19,2011
7
- * refactor my gem code,dumped to 1.0.9
8
- * fix activeview load expansion tag
1
+ * Jul 13, 2011
2
+ HighStock support
3
+ remove some defaults
4
+
5
+ Jan 31, 2011
6
+ * backwards compatibility for rails 2.3.x in rendering callbacks options
9
7
 
10
8
  Nov 30,2010
11
9
  * dumped to gem 0.0.1
12
-
10
+
13
11
  Sep 13,2010
14
12
  * truely support rails 3.0(returning is deprecate function,use tap) deshi(xiaods@gmail.com)
15
13
 
data/README.md CHANGED
@@ -5,6 +5,16 @@ LazyHighCharts is Rails 2.x/3.x Gem for displaying Highcharts graphs.
5
5
  Compatibility:
6
6
  lazy_high_charts 1.x is compatible with Rails 2.x/3.x
7
7
 
8
+ =======
9
+ ### plugin support for rails 2.3.5 and rails 3
10
+
11
+ script/plugin install git://github.com/michelson/lazy_high_charts.git ##(for rails 2)
12
+
13
+ rails plugin install git://github.com/michelson/lazy_high_charts.git ##(for rails 3)
14
+
15
+ #HighStocks
16
+ LazyHighCharts now compatible with beta HighStock, http://www.highcharts.com/stock/demo/
17
+
8
18
  Usage
9
19
  =======
10
20
  About javascript Assets notes:
@@ -37,7 +47,7 @@ Usage
37
47
  f.options[:chart][:defaultSeriesType] = "area"
38
48
  f.options[:chart][:inverted] = true
39
49
  f.options[:legend][:layout] = "horizontal"
40
- f.options[:x_axis][:categories] = ["uno" ,"dos" , "tres" , "cuatro"]
50
+ f.options[:xAxis][:categories] = ["uno" ,"dos" , "tres" , "cuatro"]
41
51
  ......
42
52
 
43
53
  Overriding entire option:
@@ -67,11 +77,21 @@ Usage
67
77
 
68
78
 
69
79
 
80
+
81
+ HighStock Support:
82
+
83
+ ##just call HighChart Helper this way:
84
+
85
+ <%= high_stock("my_id", @h) %>
86
+
87
+
70
88
  Option reference:
71
89
 
72
90
  http://www.highcharts.com/ref/
73
91
 
74
-
92
+ HighCharts License:
93
+
94
+ http://www.highcharts.com/license
75
95
 
76
96
 
77
97
  Contributors
data/init.rb CHANGED
@@ -1,6 +1,5 @@
1
- # encoding: utf-8
1
+ # coding: utf-8
2
2
  require 'lazy_high_charts'
3
3
  require 'lazy_high_charts/layout_helper'
4
-
5
4
  ActionView::Helpers::AssetTagHelper.register_javascript_expansion :high_charts => ["highcharts"]
6
- ActionView::Base.send :include, LazyHighCharts::LayoutHelper
5
+ ActionView::Base.send :include, LazyHighCharts::LayoutHelper
@@ -3,7 +3,6 @@
3
3
  $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
4
4
  require 'lazy_high_charts/version'
5
5
 
6
-
7
6
  Gem::Specification.new do |s|
8
7
  s.name = "lazy_high_charts"
9
8
  s.version = LazyHighCharts::VERSION
@@ -2,9 +2,9 @@ module LazyHighCharts
2
2
  class InstallGenerator < Rails::Generators::Base
3
3
  desc "This generator install highcharts javascripts"
4
4
 
5
- def install_highcharts
6
- say_status("installing", "Highcharts javascript (github HEAD)", :green)
7
- get "https://github.com/highslide-software/highcharts.com/raw/master/js/highcharts.src.js","public/javascripts/highcharts.js"
5
+ def install_highcharts(opts = nil)
6
+ say_status("installing", "Highcharts javascript (github STOCK branch)", :green)
7
+ get "https://raw.github.com/highslide-software/highcharts.com/stock/js/highcharts.src.js","public/javascripts/highcharts.js"
8
8
  rescue OpenURI::HTTPError
9
9
  say_status("warning", "could not find Highcharts javascript file", :yellow)
10
10
  end
@@ -1,5 +1,5 @@
1
1
  require File.join(File.dirname(__FILE__), *%w[lazy_high_charts high_chart])
2
- require File.join(File.dirname(__FILE__), *%w[lazy_high_charts layout_helper])
2
+ require File.join(File.dirname(__FILE__), *%w[lazy_high_charts layout_helper])
3
3
  require File.join(File.dirname(__FILE__), *%w[lazy_high_charts railtie]) if defined?(::Rails::Railtie)
4
4
 
5
5
  module LazyHighCharts
@@ -6,41 +6,30 @@ module LazyHighCharts
6
6
  alias :canvas :placeholder
7
7
  alias :canvas= :placeholder=
8
8
 
9
+ def initialize(canvas = nil, html_opts = {})
9
10
 
10
- def initialize(canvas = nil, html_opts = {})
11
-
12
- self.tap do |high_chart|
13
- high_chart.data ||= []
14
- high_chart.options ||= {}
15
- high_chart.defaults_options
16
- high_chart.html_options = html_opts
17
- high_chart.canvas = canvas if canvas
18
- yield high_chart if block_given?
19
- end
11
+ @collection_filter = nil
12
+ self.tap do |high_chart|
13
+ high_chart.data ||= []
14
+ high_chart.options ||= {}
15
+ high_chart.defaults_options
16
+ high_chart.html_options = html_opts.reverse_merge(CANVAS_DEFAULT_HTML_OPTIONS)
17
+ high_chart.canvas = canvas if canvas
18
+ yield high_chart if block_given?
20
19
  end
20
+ end
21
21
 
22
22
  # title: legend: xAxis: yAxis: tooltip: credits: :plotOptions
23
23
 
24
24
  def defaults_options
25
25
  self.title({ :text=>"example test title from highcharts gem"})
26
- self.legend({:layout=>"vertical", :style=>{:position=>'absolute', :bottom=>'auto', :left=>'150px', :top=>'150px'} , :borderWidth=> 1,
27
- :backgroundColor=>'#FFFFFF'})
28
- self.xAxis(
29
- {:categories=> ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
30
- :plotBands=> [{
31
- :from=> 6.0,:to=> 6.5,:color=> 'rgba(68, 170, 213, .2)'
32
- }],
33
- :labels=>{ :align=>'right',:rotation=>45 }
34
- })
35
- self.yAxis({:title=> {:text=> 'Fruit units'}, :labels=>{:align=>'right'} })
26
+ self.legend({ :layout=>"vertical", :style=>{} })
27
+ self.x_axis({})
28
+ self.y_axis({ :title=> {:text=> nil}, :labels=>{} })
36
29
  self.tooltip({ :enabled=>true })
37
- self.credits({:enabled => false})
38
- self.plotOptions({
39
- :areaspline => {
40
- :fillOpacity => 0.5
41
- }
42
- })
43
- self.chart({:defaultSeriesType=>"areaspline" , :renderTo => nil})
30
+ self.credits({ :enabled => false})
31
+ self.plot_options({ :areaspline => { } })
32
+ self.chart({ :defaultSeriesType=>nil , :renderTo => nil})
44
33
  self.subtitle({})
45
34
  end
46
35
 
@@ -68,7 +57,8 @@ module LazyHighCharts
68
57
  end
69
58
  end
70
59
 
71
- private
60
+ private
61
+
72
62
  def series_options
73
63
  @options.reject {|k,v| SERIES_OPTIONS.include?(k.to_s) == false}
74
64
  end
@@ -1,51 +1,86 @@
1
1
  # coding: utf-8
2
- require 'rails' unless defined? ::Rails
3
-
4
2
  module LazyHighCharts
5
3
  module LayoutHelper
6
-
7
- def high_chart(placeholder, object, &block)
8
- if object
9
- object.html_options.merge!({:id=>placeholder})
10
- object.options[:chart][:renderTo] = placeholder
11
- high_graph(placeholder,object , &block).concat(content_tag("div","", object.html_options))
12
- end
4
+
5
+ def high_chart(placeholder, object , &block)
6
+ object.html_options.merge!({:id=>placeholder})
7
+ object.options[:chart][:renderTo] = placeholder
8
+ high_graph(placeholder,object , &block).concat(content_tag("div","", object.html_options))
9
+ end
10
+
11
+ def high_stock(placeholder, object , &block)
12
+ object.html_options.merge!({:id=>placeholder})
13
+ object.options[:chart][:renderTo] = placeholder
14
+ high_graph_stock(placeholder,object , &block).concat(content_tag("div","", object.html_options))
13
15
  end
14
16
 
17
+ def high_graph(placeholder, object, &block)
18
+ graph =<<-EOJS
19
+ <script type="text/javascript">
20
+ jQuery(function() {
21
+ // 1. Define JSON options
22
+ var options = {
23
+ chart: #{object.options[:chart].to_json},
24
+ title: #{object.options[:title].to_json},
25
+ legend: #{object.options[:legend].to_json},
26
+ xAxis: #{object.options[:x_axis].to_json},
27
+ yAxis: #{object.options[:y_axis].to_json},
28
+ tooltip: #{object.options[:tooltip].to_json},
29
+ credits: #{object.options[:credits].to_json},
30
+ plotOptions: #{object.options[:plot_options].to_json},
31
+ series: #{object.data.to_json},
32
+ subtitle: #{object.options[:subtitle].to_json}
33
+ };
15
34
 
16
- def high_graph(placeholder, object, &block)
17
- graph =<<-EOJS
18
- <script type="text/javascript">
19
- jQuery(function() {
20
- // 1. Define JSON options
21
- var options = {
22
- chart: #{object.options[:chart].to_json},
23
- title: #{object.options[:title].to_json},
24
- legend: #{object.options[:legend].to_json},
25
- xAxis: #{object.options[:xAxis].to_json},
26
- yAxis: #{object.options[:yAxis].to_json},
27
- tooltip: #{object.options[:tooltip].to_json},
28
- credits: #{object.options[:credits].to_json},
29
- plotOptions: #{object.options[:plotOptions].to_json},
30
- series: #{object.data.to_json},
31
- subtitle: #{object.options[:subtitle].to_json}
32
- };
35
+ // 2. Add callbacks (non-JSON compliant)
36
+ #{capture(&block) if block_given?}
37
+ // 3. Build the chart
38
+ var chart = new Highcharts.Chart(options);
39
+ });
40
+ </script>
41
+ EOJS
42
+
43
+ if defined?(raw)
44
+ return raw(graph)
45
+ else
46
+ return graph
47
+ end
48
+
49
+ end
33
50
 
34
- // 2. Add callbacks (non-JSON compliant)
35
- #{capture(&block) if block_given?}
36
- // 3. Build the chart
37
- var chart = new Highcharts.Chart(options);
38
- });
39
- </script>
40
- EOJS
51
+ def high_graph_stock(placeholder, object, &block)
52
+ graph =<<-EOJS
53
+ <script type="text/javascript">
54
+ jQuery(function() {
55
+ // 1. Define JSON options
56
+ var options = {
57
+ chart: #{object.options[:chart].to_json},
58
+ title: #{object.options[:title].to_json},
59
+ legend: #{object.options[:legend].to_json},
60
+ xAxis: #{object.options[:x_axis].to_json},
61
+ yAxis: #{object.options[:y_axis].to_json},
62
+ tooltip: #{object.options[:tooltip].to_json},
63
+ credits: #{object.options[:credits].to_json},
64
+ plotOptions: #{object.options[:plot_options].to_json},
65
+ series: #{object.data.to_json},
66
+ subtitle: #{object.options[:subtitle].to_json}
67
+ };
41
68
 
42
- if defined?(raw) && ::Rails.version >= '3.0'
43
- return raw(graph)
44
- else
45
- return graph unless block_given?
46
- concat graph
69
+ // 2. Add callbacks (non-JSON compliant)
70
+ #{capture(&block) if block_given?}
71
+ // 3. Build the chart
72
+ var chart = new Highcharts.StockChart(options);
73
+ });
74
+ </script>
75
+ EOJS
76
+
77
+ if defined?(raw)
78
+ return raw(graph)
79
+ else
80
+ return graph
81
+ end
82
+
47
83
  end
48
- end
49
84
 
50
85
  end
51
86
  end
@@ -1,5 +1,6 @@
1
1
  require 'lazy_high_charts'
2
- require 'lazy_high_charts/layout_helper'
2
+ require 'lazy_high_charts/layout_helper.rb'
3
+
3
4
  require 'rails'
4
5
 
5
6
  module LazyHighCharts
@@ -16,4 +17,4 @@ module LazyHighCharts
16
17
  end
17
18
  end
18
19
 
19
- end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module LazyHighCharts
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.2"
3
3
  end
@@ -22,36 +22,25 @@ describe "HighChart" do
22
22
  it "should take an optional 'placeholder' argument" do
23
23
  LazyHighCharts::HighChart.new(@placeholder).placeholder.should == @placeholder
24
24
  LazyHighCharts::HighChart.new.placeholder.should == nil
25
- end
25
+ end
26
26
 
27
27
  it "should take an optional html_options argument (defaulting to 300px height)" do
28
28
  LazyHighCharts::HighChart.new(@html_options).placeholder.should == @html_options
29
- end
29
+ end
30
30
 
31
31
  it "should set options by default" do
32
32
  LazyHighCharts::HighChart.new.options.should == {
33
- :subtitle=>{},
34
- :chart=>{:renderTo=>nil, :defaultSeriesType=>"areaspline"},
35
- :plotOptions=>{:areaspline=>{:fillOpacity=>0.5}},
36
- :legend=>{
37
- :borderWidth=>1,
38
- :backgroundColor=>"#FFFFFF",
39
- :layout=>"vertical",
40
- :style=>{:top=>"150px",
41
- :left=>"150px", :position=>"absolute", :bottom=>"auto"}
42
- },
43
- :tooltip=>{:enabled=>true},
44
- :xAxis=>{
45
- :categories=>["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
46
- :plotBands=>[{:to=>6.5, :from=>6.0, :color=>"rgba(68, 170, 213, .2)"}],
47
- :labels=>{:align=>"right", :rotation=>45}},
48
- :yAxis=>{:title=>{:text=>"Fruit units"},
49
- :labels=>{:align=>"right"}},
50
- :title=>{:text=>"example test title from highcharts gem"},
51
- :credits=>{:enabled=>false}
52
- }
53
-
54
- end
33
+ :plot_options=>{:areaspline=>{}},
34
+ :x_axis=>{},
35
+ :chart=>{:defaultSeriesType=>nil, :renderTo=>nil},
36
+ :y_axis=>{:title=>{:text=>nil},
37
+ :labels=>{}},
38
+ :title=>{:text=>"example test title from highcharts gem"},
39
+ :subtitle=>{},
40
+ :credits=>{:enabled=>false},
41
+ :legend=>{:layout=>"vertical", :style=>{}},
42
+ :tooltip=>{:enabled=>true}}
43
+ end
55
44
 
56
45
  it "should set data empty by default" do
57
46
  LazyHighCharts::HighChart.new.data.should == []
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  require File.dirname(__FILE__) + '/spec_helper'
3
3
 
4
- describe LazyHighCharts::LayoutHelper do
4
+ describe HighChartsHelper do
5
5
  include LazyHighCharts::LayoutHelper
6
6
 
7
7
  before(:each) do
@@ -43,8 +43,12 @@ describe LazyHighCharts::LayoutHelper do
43
43
  it "should set chart renderTo" do
44
44
  high_chart(@placeholder, @chart).should match(/\"renderTo\":\"placeholder\"/)
45
45
  end
46
-
46
+
47
+ it "should set Chart Stock" do
48
+ high_stock(@placeholder, @chart).should match(/var\s+chart\s+=\s+new\s+Highcharts.StockChart/)
49
+ end
47
50
  end
51
+
48
52
  end
49
53
 
50
54
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: lazy_high_charts
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.1.1
5
+ version: 1.1.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Miguel Michelson Martinez
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-03-20 00:00:00 +08:00
14
+ date: 2011-07-14 00:00:00 +08:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  requirements: []
115
115
 
116
116
  rubyforge_project:
117
- rubygems_version: 1.5.2
117
+ rubygems_version: 1.6.2
118
118
  signing_key:
119
119
  specification_version: 3
120
120
  summary: lazy higcharts plugin for rails