lazy_high_charts 1.2.0 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +8 -0
- data/Gemfile +5 -1
- data/README.md +17 -7
- data/lib/generators/lazy_high_charts/install/install_generator.rb +13 -13
- data/lib/lazy_high_charts/high_chart.rb +4 -10
- data/lib/lazy_high_charts/layout_helper.rb +1 -3
- data/lib/lazy_high_charts/version.rb +1 -1
- data/spec/high_chart_spec.rb +1 -1
- data/spec/lazy_high_charts_spec.rb +20 -4
- metadata +3 -3
- data/lib/tasks/charts_tasks.rake +0 -23
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
* Aug 31, 2012
|
2
|
+
1. Correct highchart js location
|
3
|
+
[issue#74](https://github.com/michelson/lazy_high_charts/issues/74)
|
4
|
+
2. support series data add javascript event
|
5
|
+
[issue#73](https://github.com/michelson/lazy_high_charts/issues/73)
|
6
|
+
3. remove default html options.
|
7
|
+
[issue#72](https://github.com/michelson/lazy_high_charts/issues/72)
|
8
|
+
|
1
9
|
* Aug 26, 2012
|
2
10
|
1. Troy Anderson (laptop) <troy@tlainvestments.com>
|
3
11
|
Added ability to supply an array of axes or other objects and still use .js_code within the array of hashes.
|
data/Gemfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
source "http://
|
1
|
+
source "http://ruby.taobao.org"
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in lazy_high_charts.gemspec
|
4
4
|
gemspec
|
@@ -7,4 +7,8 @@ group :test, :development do # This causes the plugins to NOT load
|
|
7
7
|
gem 'webrat','~> 0.7'
|
8
8
|
gem 'rspec', '~> 2.0'
|
9
9
|
gem 'rails'
|
10
|
+
gem 'ZenTest'
|
11
|
+
gem 'autotest'
|
10
12
|
end
|
13
|
+
|
14
|
+
|
data/README.md
CHANGED
@@ -4,9 +4,8 @@ Easily displaying Highcharts graphs with gem style.
|
|
4
4
|
[![Build Status](https://secure.travis-ci.org/michelson/lazy_high_charts.png)](http://travis-ci.org/michelson/lazy_high_charts)
|
5
5
|
|
6
6
|
## Notice
|
7
|
-
|
8
|
-
|
9
|
-
Thanks for Troy & David
|
7
|
+
latest version: 1.2.2
|
8
|
+
[ChangeLog](https://github.com/xiaods/lazy_high_charts/blob/master/CHANGELOG.md)
|
10
9
|
|
11
10
|
### Installation instructions for Rails 3
|
12
11
|
|
@@ -17,7 +16,7 @@ To install it, you just need to add it to your Gemfile:
|
|
17
16
|
And then run this to install the javascript files:
|
18
17
|
rails g lazy_high_charts:install
|
19
18
|
|
20
|
-
### Installing it as a plugin for rails 2.3.
|
19
|
+
### Installing it as a plugin for rails 2.3.x
|
21
20
|
|
22
21
|
script/plugin install git://github.com/michelson/lazy_high_charts.git ##(for rails 2)
|
23
22
|
|
@@ -30,6 +29,12 @@ And then run this to install the javascript files:
|
|
30
29
|
|
31
30
|
About javascript Assets notes:
|
32
31
|
|
32
|
+
### For Rails 3.2.x
|
33
|
+
1. add your highcart js to app/assets/javascripts/application.js
|
34
|
+
````
|
35
|
+
//= require highcharts
|
36
|
+
````
|
37
|
+
|
33
38
|
### For Rails 2.x/3.0.x
|
34
39
|
|
35
40
|
1. you need manually put jquery/highcharts js to public/javascript
|
@@ -129,10 +134,15 @@ We're open to any contribution. It has to be tested properly though.
|
|
129
134
|
* Test your changes. We won't accept any untested contributions (except if they're not testable).
|
130
135
|
* Create an [issue](https://github.com/michelson/lazy_high_charts/issues) with a link to your commits.
|
131
136
|
|
137
|
+
Contributer List:
|
138
|
+
* [Troy Anderson](https://github.com/troya2)
|
139
|
+
* [David Biehl](https://github.com/lazylodr)
|
140
|
+
|
141
|
+
Thanks for Troy & David
|
132
142
|
## Maintainers
|
133
|
-
* Miguel Michelson Martinez
|
134
|
-
* Deshi Xiao
|
143
|
+
* Miguel Michelson Martinez [github/michelson](https://github.com/michelson)
|
144
|
+
* Deshi Xiao [github/xiaods](https://github.com/xiaods)
|
135
145
|
|
136
146
|
## License
|
137
|
-
* Copyright 2011 Deshi Xiao,MIT
|
147
|
+
* Copyright (c) 2011,2012 Deshi Xiao,released under the MIT license
|
138
148
|
* Copyright (c) 2010 Miguel Michelson Martinez, released under the MIT license
|
@@ -1,17 +1,17 @@
|
|
1
1
|
module LazyHighCharts
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
12
|
-
rescue OpenURI::HTTPError
|
13
|
-
say_status("warning", "could not find Highcharts javascript file", :yellow)
|
2
|
+
class InstallGenerator < Rails::Generators::Base
|
3
|
+
desc "This generator install highcharts javascripts"
|
4
|
+
|
5
|
+
def install_highcharts(opts = nil)
|
6
|
+
say_status("installing", "Highcharts javascript(code.highcharts.com/stock version)", :green)
|
7
|
+
if ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR >= 1
|
8
|
+
get "http://code.highcharts.com/stock/highstock.js", "vendor/assets/javascripts/highcharts.js"
|
9
|
+
else
|
10
|
+
get "http://code.highcharts.com/stock/highstock.js","public/javascripts/highcharts.js"
|
14
11
|
end
|
15
|
-
|
12
|
+
rescue OpenURI::HTTPError
|
13
|
+
say_status("warning", "could not find Highcharts javascript file", :yellow)
|
16
14
|
end
|
15
|
+
|
16
|
+
end
|
17
17
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module LazyHighCharts
|
2
2
|
class HighChart
|
3
|
-
|
4
|
-
SERIES_OPTIONS = %w(lines points bars shadowSize colors)
|
3
|
+
SERIES_OPTIONS = %w(data dataParser dataURL index legendIndex name stack type xAxis yAxis)
|
5
4
|
|
6
5
|
attr_accessor :data, :options, :placeholder, :html_options
|
7
6
|
alias :canvas :placeholder
|
@@ -14,14 +13,13 @@ module LazyHighCharts
|
|
14
13
|
high_chart.data ||= []
|
15
14
|
high_chart.options ||= {}
|
16
15
|
high_chart.defaults_options
|
17
|
-
high_chart.html_options
|
16
|
+
high_chart.html_options ||={}
|
18
17
|
high_chart.canvas = canvas if canvas
|
19
18
|
yield high_chart if block_given?
|
20
19
|
end
|
21
20
|
end
|
22
21
|
|
23
22
|
# title: legend: xAxis: yAxis: tooltip: credits: :plotOptions
|
24
|
-
|
25
23
|
def defaults_options
|
26
24
|
self.title({ :text=>"example test title from highcharts gem"})
|
27
25
|
self.legend({ :layout=>"vertical", :style=>{} })
|
@@ -30,7 +28,7 @@ module LazyHighCharts
|
|
30
28
|
self.tooltip({ :enabled=>true })
|
31
29
|
self.credits({ :enabled => false})
|
32
30
|
self.plotOptions({ :areaspline => { } })
|
33
|
-
self.chart({ :defaultSeriesType=>"
|
31
|
+
self.chart({ :defaultSeriesType=>"line" , :renderTo => nil})
|
34
32
|
self.subtitle({})
|
35
33
|
end
|
36
34
|
|
@@ -38,7 +36,6 @@ module LazyHighCharts
|
|
38
36
|
# Pass other methods through to the javascript high_chart object.
|
39
37
|
#
|
40
38
|
# For instance: <tt>high_chart.grid(:color => "#699")</tt>
|
41
|
-
#
|
42
39
|
def method_missing(meth, opts = {})
|
43
40
|
merge_options meth, opts
|
44
41
|
end
|
@@ -48,12 +45,9 @@ module LazyHighCharts
|
|
48
45
|
# data = [[0,5], [1,5], [2,5]]
|
49
46
|
# @high_chart.series :name=>'Updated', :data=>data
|
50
47
|
# @high_chart.series :name=>'Updated', :data=>[5, 1, 6, 1, 5, 4, 9]
|
51
|
-
#
|
52
48
|
def series(opts = {})
|
53
49
|
@data ||= []
|
54
|
-
if opts.
|
55
|
-
@data << series_options.merge(:name => label, :data => d)
|
56
|
-
else
|
50
|
+
if not opts.empty?
|
57
51
|
@data << opts.merge(:name => opts[:name], :data => opts[:data])
|
58
52
|
end
|
59
53
|
end
|
@@ -25,8 +25,7 @@ module LazyHighCharts
|
|
25
25
|
|
26
26
|
def build_html_output(type, placeholder, object, &block)
|
27
27
|
options_collection = [ generate_json_from_hash(object.options) ]
|
28
|
-
|
29
|
-
options_collection << %|"series": #{object.data.to_json}|
|
28
|
+
options_collection << %|"series": [#{generate_json_from_array(object.data)}]|
|
30
29
|
|
31
30
|
core_js =<<-EOJS
|
32
31
|
var options, chart;
|
@@ -57,7 +56,6 @@ module LazyHighCharts
|
|
57
56
|
EOJS
|
58
57
|
end
|
59
58
|
|
60
|
-
|
61
59
|
if defined?(raw)
|
62
60
|
return raw(graph)
|
63
61
|
else
|
data/spec/high_chart_spec.rb
CHANGED
@@ -34,7 +34,7 @@ describe "HighChart" do
|
|
34
34
|
:tooltip=>{:enabled=>true},
|
35
35
|
:credits=>{:enabled=>false},
|
36
36
|
:plotOptions=>{:areaspline=>{}},
|
37
|
-
:chart=>{:defaultSeriesType=>"
|
37
|
+
:chart=>{:defaultSeriesType=>"line", :renderTo=>nil},
|
38
38
|
:subtitle=>{}}
|
39
39
|
end
|
40
40
|
|
@@ -12,10 +12,9 @@ describe HighChartsHelper do
|
|
12
12
|
@options = "options"
|
13
13
|
end
|
14
14
|
|
15
|
-
|
15
|
+
context "layout_helper" do
|
16
16
|
it "should return a div with an id of high_chart object" do
|
17
|
-
|
18
|
-
high_chart(hc.placeholder, hc).should have_selector('div', :id => hc.placeholder, :class => 'stylin')
|
17
|
+
high_chart(@placeholder, @chart).should have_selector('div', :id => @placeholder)
|
19
18
|
end
|
20
19
|
|
21
20
|
it "should return a script" do
|
@@ -24,7 +23,7 @@ describe HighChartsHelper do
|
|
24
23
|
end
|
25
24
|
end
|
26
25
|
|
27
|
-
|
26
|
+
context "high_chart_graph" do
|
28
27
|
describe "ready function" do
|
29
28
|
it "should be a javascript script" do
|
30
29
|
high_chart(@placeholder, @chart).should have_selector('script', :type => 'text/javascript')
|
@@ -115,4 +114,21 @@ describe HighChartsHelper do
|
|
115
114
|
high_chart(@placeholder,chart).should match(/"formatter": function\(\) {return this.value \+ ' W';}/)
|
116
115
|
end
|
117
116
|
|
117
|
+
it "should support js_code in Individual data label for each point" do
|
118
|
+
chart = LazyHighCharts::HighChart.new {|f|
|
119
|
+
f.series(
|
120
|
+
:data => [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, {
|
121
|
+
:dataLabels => {:enabled => true,
|
122
|
+
:align => 'left',
|
123
|
+
:x => 10,
|
124
|
+
:y => 4,
|
125
|
+
:style => {:fontWeight => 'bold'},
|
126
|
+
:formatter => "function() { return this.x; }".js_code
|
127
|
+
},
|
128
|
+
:y => 54.4}
|
129
|
+
])
|
130
|
+
}
|
131
|
+
high_chart(@placeholder,chart).should match(/"formatter": function\(\) {\ return this.x;\ }/)
|
132
|
+
end
|
133
|
+
|
118
134
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lazy_high_charts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-08-
|
13
|
+
date: 2012-08-31 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -58,7 +58,6 @@ files:
|
|
58
58
|
- lib/lazy_high_charts/layout_helper.rb
|
59
59
|
- lib/lazy_high_charts/railtie.rb
|
60
60
|
- lib/lazy_high_charts/version.rb
|
61
|
-
- lib/tasks/charts_tasks.rake
|
62
61
|
- rails/init.rb
|
63
62
|
- spec/high_chart_spec.rb
|
64
63
|
- spec/lazy_high_charts_spec.rb
|
@@ -89,3 +88,4 @@ signing_key:
|
|
89
88
|
specification_version: 3
|
90
89
|
summary: lazy higcharts gem for rails
|
91
90
|
test_files: []
|
91
|
+
has_rdoc:
|
data/lib/tasks/charts_tasks.rake
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# desc "Explaining what the task does"
|
2
|
-
# task :lazy_highcharts do
|
3
|
-
# # Task goes here
|
4
|
-
# end
|
5
|
-
namespace :lazy_high_charts do
|
6
|
-
desc 'Installs required swf in public/ and javascript files to the public/javascripts directory.'
|
7
|
-
task :install do
|
8
|
-
puts "Copying files..."
|
9
|
-
dir = "javascripts"
|
10
|
-
["excanvas.compiled.js", "highcharts.js"].each do |js_file|
|
11
|
-
dest_file = File.join(::Rails.root.to_s, "public", dir, js_file)
|
12
|
-
src_file = File.join(::Rails.root.to_s + "/vendor/plugins/lazy_high_charts" , dir, js_file)
|
13
|
-
FileUtils.cp_r(src_file, dest_file)
|
14
|
-
end
|
15
|
-
puts "Files copied - Installation complete!"
|
16
|
-
end
|
17
|
-
desc 'Removes the javascripts for the plugin.'
|
18
|
-
task :remove do
|
19
|
-
%w{excanvas.compiled.js highcharts.js}.collect { |f|
|
20
|
-
FileUtils.rm ::Rails.root.to_s + "/public/javascripts/" + f unless !f.nil? }
|
21
|
-
puts "Files removed - Finished!"
|
22
|
-
end
|
23
|
-
end
|