lazy_high_charts 1.0.9 → 1.1.1
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 +6 -1
- data/README.md +16 -8
- data/init.rb +5 -5
- data/lib/lazy_high_charts.rb +3 -4
- data/lib/lazy_high_charts/high_chart.rb +3 -4
- data/lib/lazy_high_charts/layout_helper.rb +32 -32
- data/lib/lazy_high_charts/railtie.rb +15 -8
- data/lib/lazy_high_charts/version.rb +1 -1
- data/rails/init.rb +1 -1
- data/spec/high_chart_spec.rb +10 -10
- data/spec/spec_helper.rb +1 -0
- metadata +2 -2
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
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
|
+
|
1
6
|
Mar 19,2011
|
2
7
|
* refactor my gem code,dumped to 1.0.9
|
8
|
+
* fix activeview load expansion tag
|
3
9
|
|
4
10
|
Nov 30,2010
|
5
11
|
* dumped to gem 0.0.1
|
@@ -10,7 +16,6 @@
|
|
10
16
|
Sep 14,2010
|
11
17
|
* update codebase to support rails3.0 and rspec2
|
12
18
|
|
13
|
-
|
14
19
|
Oct 8,2010
|
15
20
|
* update rake.it works now!
|
16
21
|
|
data/README.md
CHANGED
@@ -1,13 +1,24 @@
|
|
1
1
|
LazyHighCharts
|
2
2
|
=======
|
3
|
-
LazyHighCharts is Rails 3.x Gem for displaying Highcharts graphs.
|
3
|
+
LazyHighCharts is Rails 2.x/3.x Gem for displaying Highcharts graphs.
|
4
4
|
|
5
5
|
Compatibility:
|
6
|
-
lazy_high_charts 1.x is
|
6
|
+
lazy_high_charts 1.x is compatible with Rails 2.x/3.x
|
7
7
|
|
8
|
-
Current Version: 1.0.9
|
9
8
|
Usage
|
10
9
|
=======
|
10
|
+
About javascript Assets notes:
|
11
|
+
for Rails 2.x
|
12
|
+
1.you need manually put jquery/highcharts js to public/javascript
|
13
|
+
2.modify your layout html
|
14
|
+
Sample Code:
|
15
|
+
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" %>
|
16
|
+
<%= javascript_include_tag :high_charts %>
|
17
|
+
3. add gem name in your config/environment.rb
|
18
|
+
config.gem "lazy_high_charts"
|
19
|
+
4.done!
|
20
|
+
|
21
|
+
For Rails 3.x
|
11
22
|
In your Gemfile, add this line:
|
12
23
|
gem 'lazy_high_charts'
|
13
24
|
|
@@ -40,10 +51,7 @@ Usage
|
|
40
51
|
|
41
52
|
Usage in layout:
|
42
53
|
|
43
|
-
<%= javascript_include_tag
|
44
|
-
<!--[if IE]>
|
45
|
-
<%= javascript_include_tag 'excanvas.compiled' %>
|
46
|
-
<![endif]-->
|
54
|
+
<%= javascript_include_tag :high_charts %>
|
47
55
|
|
48
56
|
Usage in view:
|
49
57
|
|
@@ -51,7 +59,7 @@ Usage
|
|
51
59
|
|
52
60
|
Passing formatting options in the view to the helper block , because all the helper options declared in the controller are converted in strict/valid json (quoted key); so we need to extend the json object with some js.
|
53
61
|
|
54
|
-
|
62
|
+
<%= high_chart("my_id", @h) do |c| %>
|
55
63
|
<%= "options.tooltip.formatter = function() { return '<b>HEY!!!'+ this.series.name +'</b><br/>'+ this.x +': '+ this.y +' units';}" %>
|
56
64
|
<%= "options.xAxis.labels.formatter = function() { return 'ho';}" %>
|
57
65
|
<%= "options.yAxis.labels.formatter = function() { return 'hey';}" %>
|
data/init.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
2
|
-
require '
|
3
|
-
require '
|
4
|
-
ActionView::Helpers::AssetTagHelper.register_javascript_expansion :high_charts => ["highcharts"]
|
5
|
-
ActionView::Base.send :include, LazyHighCharts::LayoutHelper
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'lazy_high_charts'
|
3
|
+
require 'lazy_high_charts/layout_helper'
|
6
4
|
|
5
|
+
ActionView::Helpers::AssetTagHelper.register_javascript_expansion :high_charts => ["highcharts"]
|
6
|
+
ActionView::Base.send :include, LazyHighCharts::LayoutHelper
|
data/lib/lazy_high_charts.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
|
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])
|
4
3
|
require File.join(File.dirname(__FILE__), *%w[lazy_high_charts railtie]) if defined?(::Rails::Railtie)
|
5
4
|
|
6
5
|
module LazyHighCharts
|
7
|
-
|
6
|
+
|
8
7
|
end
|
@@ -9,7 +9,6 @@ module LazyHighCharts
|
|
9
9
|
|
10
10
|
def initialize(canvas = nil, html_opts = {})
|
11
11
|
|
12
|
-
@collection_filter = nil
|
13
12
|
self.tap do |high_chart|
|
14
13
|
high_chart.data ||= []
|
15
14
|
high_chart.options ||= {}
|
@@ -26,17 +25,17 @@ module LazyHighCharts
|
|
26
25
|
self.title({ :text=>"example test title from highcharts gem"})
|
27
26
|
self.legend({:layout=>"vertical", :style=>{:position=>'absolute', :bottom=>'auto', :left=>'150px', :top=>'150px'} , :borderWidth=> 1,
|
28
27
|
:backgroundColor=>'#FFFFFF'})
|
29
|
-
self.
|
28
|
+
self.xAxis(
|
30
29
|
{:categories=> ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
|
31
30
|
:plotBands=> [{
|
32
31
|
:from=> 6.0,:to=> 6.5,:color=> 'rgba(68, 170, 213, .2)'
|
33
32
|
}],
|
34
33
|
:labels=>{ :align=>'right',:rotation=>45 }
|
35
34
|
})
|
36
|
-
self.
|
35
|
+
self.yAxis({:title=> {:text=> 'Fruit units'}, :labels=>{:align=>'right'} })
|
37
36
|
self.tooltip({ :enabled=>true })
|
38
37
|
self.credits({:enabled => false})
|
39
|
-
self.
|
38
|
+
self.plotOptions({
|
40
39
|
:areaspline => {
|
41
40
|
:fillOpacity => 0.5
|
42
41
|
}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
require 'rails' unless defined? ::Rails
|
2
3
|
|
3
4
|
module LazyHighCharts
|
4
5
|
module LayoutHelper
|
@@ -11,41 +12,40 @@ module LazyHighCharts
|
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
14
|
-
def high_graph(placeholder, object, &block)
|
15
|
-
@options = {
|
16
|
-
"chart" => object.options[:chart],
|
17
|
-
"title" => object.options[:title],
|
18
|
-
"legend" => object.options[:legend],
|
19
|
-
"xAxis" => object.options[:xAxis],
|
20
|
-
"yAxis" => object.options[:yAxis],
|
21
|
-
"credits" => object.options[:credits],
|
22
|
-
"plotOptions" => object.options[:plotOptions],
|
23
|
-
"series" => object.options[:series],
|
24
|
-
"subtitle" => object.options[:subtitle]
|
25
|
-
}.reject{|k,v| v.nil?}
|
26
|
-
|
27
|
-
graph =<<-EOJS
|
28
|
-
<script type="text/javascript">
|
29
|
-
jQuery(function() {
|
30
|
-
var options = { #{format_options} };
|
31
|
-
#{capture(&block) if block_given?}
|
32
|
-
var chart = new Highcharts.Chart(options);
|
33
|
-
});
|
34
|
-
</script>
|
35
|
-
EOJS
|
36
15
|
|
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
|
+
};
|
33
|
+
|
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
|
41
|
+
|
42
|
+
if defined?(raw) && ::Rails.version >= '3.0'
|
37
43
|
return raw(graph)
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
def format_options
|
42
|
-
options = []
|
43
|
-
@options.each do |k,v|
|
44
|
-
options << "#{k}: #{v.to_json}"
|
45
|
-
end
|
46
|
-
options << "tooltip:{}"
|
47
|
-
options.join(', ')
|
44
|
+
else
|
45
|
+
return graph unless block_given?
|
46
|
+
concat graph
|
48
47
|
end
|
48
|
+
end
|
49
49
|
|
50
50
|
end
|
51
51
|
end
|
@@ -1,12 +1,19 @@
|
|
1
|
-
|
1
|
+
require 'lazy_high_charts'
|
2
|
+
require 'lazy_high_charts/layout_helper'
|
3
|
+
require 'rails'
|
2
4
|
|
3
5
|
module LazyHighCharts
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
|
7
|
+
class Railtie < ::Rails::Railtie
|
8
|
+
config.before_configuration do
|
9
|
+
config.action_view.javascript_expansions[:high_charts] = %w(highcharts)
|
10
|
+
end
|
11
|
+
|
12
|
+
initializer 'lazy_high_charts.initialize' do
|
13
|
+
ActiveSupport.on_load(:action_view) do
|
14
|
+
include LazyHighCharts::LayoutHelper
|
15
|
+
end
|
9
16
|
end
|
10
17
|
end
|
11
|
-
|
12
|
-
end
|
18
|
+
|
19
|
+
end
|
data/rails/init.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require File.expand_path(File.join(File.dirname(__FILE__), "..", "init"))
|
2
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "..", "init"))
|
data/spec/high_chart_spec.rb
CHANGED
@@ -32,7 +32,7 @@ describe "HighChart" do
|
|
32
32
|
LazyHighCharts::HighChart.new.options.should == {
|
33
33
|
:subtitle=>{},
|
34
34
|
:chart=>{:renderTo=>nil, :defaultSeriesType=>"areaspline"},
|
35
|
-
:
|
35
|
+
:plotOptions=>{:areaspline=>{:fillOpacity=>0.5}},
|
36
36
|
:legend=>{
|
37
37
|
:borderWidth=>1,
|
38
38
|
:backgroundColor=>"#FFFFFF",
|
@@ -41,11 +41,11 @@ describe "HighChart" do
|
|
41
41
|
:left=>"150px", :position=>"absolute", :bottom=>"auto"}
|
42
42
|
},
|
43
43
|
:tooltip=>{:enabled=>true},
|
44
|
-
:
|
44
|
+
:xAxis=>{
|
45
45
|
:categories=>["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
|
46
46
|
:plotBands=>[{:to=>6.5, :from=>6.0, :color=>"rgba(68, 170, 213, .2)"}],
|
47
47
|
:labels=>{:align=>"right", :rotation=>45}},
|
48
|
-
:
|
48
|
+
:yAxis=>{:title=>{:text=>"Fruit units"},
|
49
49
|
:labels=>{:align=>"right"}},
|
50
50
|
:title=>{:text=>"example test title from highcharts gem"},
|
51
51
|
:credits=>{:enabled=>false}
|
@@ -76,11 +76,11 @@ describe "HighChart" do
|
|
76
76
|
f.options[:chart][:defaultSeriesType] = "area"
|
77
77
|
f.options[:chart][:inverted] = true
|
78
78
|
f.options[:legend][:layout] = "horizontal"
|
79
|
-
f.options[:
|
79
|
+
f.options[:xAxis][:categories] = ["uno" ,"dos" , "tres" , "cuatro"]
|
80
80
|
end
|
81
81
|
chart.data.should == [{:name=>"John", :data=>[3, 20]}, {:name=>"Jane", :data=>[1, 3]}]
|
82
82
|
chart.options[:legend][:layout].should == "horizontal"
|
83
|
-
chart.options[:
|
83
|
+
chart.options[:xAxis][:categories].should == ["uno" ,"dos" , "tres" , "cuatro"]
|
84
84
|
chart.options[:chart][:defaultSeriesType].should == "area"
|
85
85
|
chart.options[:chart][:inverted].should == true
|
86
86
|
end
|
@@ -91,12 +91,12 @@ describe "HighChart" do
|
|
91
91
|
f.series(:name=>'Jane', :data=>[1, 3] )
|
92
92
|
f.title({ :text=>"example test title from controller"})
|
93
93
|
# without overriding
|
94
|
-
f.
|
94
|
+
f.xAxis(:categories => ["uno" ,"dos" , "tres" , "cuatro"] , :labels=>{:rotation=>-45 , :align => 'right'})
|
95
95
|
f.chart({:defaultSeriesType=>"spline" , :renderTo => "myRenderArea" , :inverted => true})
|
96
96
|
end
|
97
|
-
chart.options[:
|
98
|
-
chart.options[:
|
99
|
-
chart.options[:
|
97
|
+
chart.options[:xAxis][:categories].should == ["uno" ,"dos" , "tres" , "cuatro"]
|
98
|
+
chart.options[:xAxis][:labels][:rotation].should == -45
|
99
|
+
chart.options[:xAxis][:labels][:align].should == "right"
|
100
100
|
chart.options[:chart][:defaultSeriesType].should == "spline"
|
101
101
|
chart.options[:chart][:renderTo].should == "myRenderArea"
|
102
102
|
chart.options[:chart][:inverted].should == true
|
@@ -117,4 +117,4 @@ describe "HighChart" do
|
|
117
117
|
|
118
118
|
end
|
119
119
|
|
120
|
-
end
|
120
|
+
end
|
data/spec/spec_helper.rb
CHANGED
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.
|
5
|
+
version: 1.1.1
|
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-
|
14
|
+
date: 2011-03-20 00:00:00 +08:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|