fullscreen_lazy_high_charts 1.1.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/.gitignore +14 -0
- data/.rspec +3 -0
- data/CHANGELOG.md +22 -0
- data/Gemfile +4 -0
- data/MIT-LICENSE +20 -0
- data/README.md +103 -0
- data/Rakefile +14 -0
- data/autotest/discover.rb +1 -0
- data/init.rb +5 -0
- data/lazy_high_charts.gemspec +35 -0
- data/lib/generators/lazy_high_charts/install/install_generator.rb +17 -0
- data/lib/lazy_high_charts.rb +7 -0
- data/lib/lazy_high_charts/high_chart.rb +82 -0
- data/lib/lazy_high_charts/layout_helper.rb +90 -0
- data/lib/lazy_high_charts/railtie.rb +20 -0
- data/lib/lazy_high_charts/version.rb +3 -0
- data/rails/init.rb +2 -0
- data/spec/high_chart_spec.rb +105 -0
- data/spec/lazy_high_charts_spec.rb +55 -0
- data/spec/spec_helper.rb +42 -0
- metadata +124 -0
data/.gitignore
ADDED
data/.rspec
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
* Jul 14, 2011
|
2
|
+
add support rails 3.1 rc4 now
|
3
|
+
|
4
|
+
* Jul 13, 2011
|
5
|
+
HighStock support
|
6
|
+
remove some defaults
|
7
|
+
|
8
|
+
Jan 31, 2011
|
9
|
+
* backwards compatibility for rails 2.3.x in rendering callbacks options
|
10
|
+
|
11
|
+
Nov 30,2010
|
12
|
+
* dumped to gem 0.0.1
|
13
|
+
|
14
|
+
Sep 13,2010
|
15
|
+
* truely support rails 3.0(returning is deprecate function,use tap) deshi(xiaods@gmail.com)
|
16
|
+
|
17
|
+
Sep 14,2010
|
18
|
+
* update codebase to support rails3.0 and rspec2
|
19
|
+
|
20
|
+
Oct 8,2010
|
21
|
+
* update rake.it works now!
|
22
|
+
|
data/Gemfile
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008-2010 Miguel Michelson Martinez
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
LazyHighCharts
|
2
|
+
=======
|
3
|
+
LazyHighCharts is Rails 2.x/3.x Gem for displaying Highcharts graphs.
|
4
|
+
|
5
|
+
Now Support Rails 3.1 rc4 stable branch,Happy useful
|
6
|
+
=======
|
7
|
+
### plugin support for rails 2.3.5 and rails 3
|
8
|
+
|
9
|
+
script/plugin install git://github.com/michelson/lazy_high_charts.git ##(for rails 2)
|
10
|
+
|
11
|
+
rails plugin install git://github.com/michelson/lazy_high_charts.git ##(for rails 3)
|
12
|
+
|
13
|
+
### HighStocks
|
14
|
+
LazyHighCharts now compatible with beta HighStock, http://www.highcharts.com/stock/demo/
|
15
|
+
|
16
|
+
Usage
|
17
|
+
=======
|
18
|
+
About javascript Assets notes:
|
19
|
+
for Rails 2.x/3.x
|
20
|
+
1.you need manually put jquery/highcharts js to public/javascript
|
21
|
+
2.modify your layout html
|
22
|
+
Sample Code:
|
23
|
+
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" %>
|
24
|
+
<%= javascript_include_tag :high_charts %>
|
25
|
+
3. add gem name in your config/environment.rb
|
26
|
+
config.gem "lazy_high_charts"
|
27
|
+
4.done!
|
28
|
+
|
29
|
+
For Rails 3.x
|
30
|
+
In your Gemfile, add this line:
|
31
|
+
gem 'lazy_high_charts'
|
32
|
+
|
33
|
+
For Rails 3.1
|
34
|
+
In your Gemfile, add this line:
|
35
|
+
gem 'lazy_high_charts', '~> 1.1.5'
|
36
|
+
then execuate command:
|
37
|
+
Rails g lazy_high_charts:install
|
38
|
+
|
39
|
+
Usage in Controller:
|
40
|
+
|
41
|
+
@h = LazyHighCharts::HighChart.new('graph') do |f|
|
42
|
+
f.options[:chart][:defaultSeriesType] = "area"
|
43
|
+
f.series(:name=>'John', :data=>[3, 20, 3, 5, 4, 10, 12 ,3, 5,6,7,7,80,9,9])
|
44
|
+
f.series(:name=>'Jane', :data=> [1, 3, 4, 3, 3, 5, 4,-46,7,8,8,9,9,0,0,9] )
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
Without overriding entire option , (only change a specific option index):
|
49
|
+
|
50
|
+
@h = LazyHighCharts::HighChart.new('graph') do |f|
|
51
|
+
.....
|
52
|
+
f.options[:chart][:defaultSeriesType] = "area"
|
53
|
+
f.options[:chart][:inverted] = true
|
54
|
+
f.options[:legend][:layout] = "horizontal"
|
55
|
+
f.options[:xAxis][:categories] = ["uno" ,"dos" , "tres" , "cuatro"]
|
56
|
+
......
|
57
|
+
|
58
|
+
Overriding entire option:
|
59
|
+
|
60
|
+
@h = LazyHighCharts::HighChart.new('graph') do |f|
|
61
|
+
.....
|
62
|
+
f.xAxis(:categories => @days.reverse! , :labels=>{:rotation=>-45 , :align => 'right'})
|
63
|
+
f.chart({:defaultSeriesType=>"spline" , :renderTo => "myRenderArea" , :inverted => true})
|
64
|
+
.....
|
65
|
+
|
66
|
+
|
67
|
+
Usage in layout:
|
68
|
+
|
69
|
+
<%= javascript_include_tag :high_charts %>
|
70
|
+
|
71
|
+
Usage in view:
|
72
|
+
|
73
|
+
<%= high_chart("my_id", @h) %>
|
74
|
+
|
75
|
+
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.
|
76
|
+
|
77
|
+
<%= high_chart("my_id", @h) do |c| %>
|
78
|
+
<%= "options.tooltip.formatter = function() { return '<b>HEY!!!'+ this.series.name +'</b><br/>'+ this.x +': '+ this.y +' units';}" %>
|
79
|
+
<%= "options.xAxis.labels.formatter = function() { return 'ho';}" %>
|
80
|
+
<%= "options.yAxis.labels.formatter = function() { return 'hey';}" %>
|
81
|
+
<%end %>
|
82
|
+
|
83
|
+
HighStock Support:
|
84
|
+
|
85
|
+
##just call HighChart Helper this way:
|
86
|
+
|
87
|
+
<%= high_stock("my_id", @h) %>
|
88
|
+
|
89
|
+
Option reference:
|
90
|
+
|
91
|
+
http://www.highcharts.com/ref/
|
92
|
+
|
93
|
+
HighCharts License:
|
94
|
+
|
95
|
+
http://www.highcharts.com/license
|
96
|
+
|
97
|
+
|
98
|
+
Contributors
|
99
|
+
=======
|
100
|
+
LazyHighCharts gem is maintained by "Deshi Xiao":https://github.com/xiaods
|
101
|
+
Run @git shortlog -n -s --no-merges@ to see the awesome.
|
102
|
+
|
103
|
+
Copyright (c) 2010 Miguel Michelson Martinez, released under the MIT license
|
data/Rakefile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rake/dsl_definition'
|
4
|
+
require 'rake'
|
5
|
+
require 'rspec/core/rake_task'
|
6
|
+
require 'bundler'
|
7
|
+
|
8
|
+
desc 'Default: run specs.'
|
9
|
+
task :default => :spec
|
10
|
+
|
11
|
+
desc 'Test the Lazy_high_charts gem.'
|
12
|
+
RSpec::Core::RakeTask.new('spec') do |t|
|
13
|
+
t.pattern = FileList['spec/**/*_spec.rb']
|
14
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Autotest.add_discovery { "rspec2" }
|
data/init.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#require File.expand_path("../lib/lazy_high_charts/version", __FILE__)
|
3
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
4
|
+
require 'lazy_high_charts/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "fullscreen_lazy_high_charts"
|
8
|
+
s.version = LazyHighCharts::VERSION
|
9
|
+
s.platform = Gem::Platform::RUBY
|
10
|
+
s.authors = ['Miguel Michelson Martinez','Deshi Xiao', 'Drew Baumann']
|
11
|
+
s.email = ['miguelmichelson@gmail.com','xiaods@gmail.com']
|
12
|
+
s.homepage = "https://github.com/xiaods/lazy_high_charts"
|
13
|
+
s.summary = "lazy higcharts gem for rails -- Modified for Fullscreen, Inc. use."
|
14
|
+
s.description = "use highcharts js libary to visualization your data by rubygem/rails"
|
15
|
+
|
16
|
+
s.extra_rdoc_files = [ "README.md", "CHANGELOG.md" ]
|
17
|
+
s.rdoc_options = [ "--charset=UTF-8" ]
|
18
|
+
|
19
|
+
s.required_rubygems_version = "~> 1.3"
|
20
|
+
|
21
|
+
s.add_dependency "bundler", "~> 1.0"
|
22
|
+
|
23
|
+
s.add_development_dependency "webrat","~> 0.7"
|
24
|
+
s.add_development_dependency "rspec", "~> 2.0"
|
25
|
+
s.add_development_dependency "rails", "~> 3.0"
|
26
|
+
|
27
|
+
s.description = <<-DESC
|
28
|
+
lazy_high_charts is a Rails 3.x gem for displaying Highcharts graphs.
|
29
|
+
DESC
|
30
|
+
|
31
|
+
s.files = `git ls-files`.split("\n")
|
32
|
+
s.executables = `git ls-files`.split("\n").select{|f| f =~ /^bin/}
|
33
|
+
s.require_path = 'lib'
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module LazyHighCharts
|
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 (github STOCK branch)", :green)
|
7
|
+
if ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR >= 1
|
8
|
+
get "http://highcharts.com/js/highstock.js","app/assets/javascripts/highcharts.js"
|
9
|
+
else
|
10
|
+
get "https://raw.github.com/highslide-software/highcharts.com/stock/js/highcharts.src.js","public/javascripts/highcharts.js"
|
11
|
+
end
|
12
|
+
rescue OpenURI::HTTPError
|
13
|
+
say_status("warning", "could not find Highcharts javascript file", :yellow)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,7 @@
|
|
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])
|
3
|
+
require File.join(File.dirname(__FILE__), *%w[lazy_high_charts railtie]) if defined?(::Rails::Railtie)
|
4
|
+
|
5
|
+
module LazyHighCharts
|
6
|
+
|
7
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
module LazyHighCharts
|
2
|
+
class HighChart
|
3
|
+
CANVAS_DEFAULT_HTML_OPTIONS = { :style => "height: 300px, width:615px" }
|
4
|
+
SERIES_OPTIONS = %w(lines points bars shadowSize colors)
|
5
|
+
|
6
|
+
attr_accessor :data, :options, :placeholder, :html_options
|
7
|
+
alias :canvas :placeholder
|
8
|
+
alias :canvas= :placeholder=
|
9
|
+
|
10
|
+
def initialize(canvas = nil, html_opts = {})
|
11
|
+
|
12
|
+
@collection_filter = nil
|
13
|
+
self.tap do |high_chart|
|
14
|
+
high_chart.data ||= []
|
15
|
+
high_chart.options ||= {}
|
16
|
+
high_chart.defaults_options
|
17
|
+
high_chart.html_options = html_opts.reverse_merge(CANVAS_DEFAULT_HTML_OPTIONS)
|
18
|
+
high_chart.canvas = canvas if canvas
|
19
|
+
yield high_chart if block_given?
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# title: legend: xAxis: yAxis: tooltip: credits: :plotOptions
|
24
|
+
|
25
|
+
def defaults_options
|
26
|
+
self.title({ :text=>"example test title from highcharts gem"})
|
27
|
+
self.legend({ :layout=>"vertical", :style=>{} })
|
28
|
+
self.xAxis({})
|
29
|
+
self.yAxis({ :title=> {:text=> nil}, :labels=>{} })
|
30
|
+
self.tooltip({ :enabled=>true })
|
31
|
+
self.credits({ :enabled => false})
|
32
|
+
self.plotOptions({ :areaspline => { } })
|
33
|
+
self.chart({ :defaultSeriesType=>"areaspline" , :renderTo => nil})
|
34
|
+
self.subtitle({})
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
# Pass other methods through to the javascript high_chart object.
|
39
|
+
#
|
40
|
+
# For instance: <tt>high_chart.grid(:color => "#699")</tt>
|
41
|
+
#
|
42
|
+
def method_missing(meth, opts = {})
|
43
|
+
merge_options meth, opts
|
44
|
+
end
|
45
|
+
|
46
|
+
# Add a simple series to the graph:
|
47
|
+
#
|
48
|
+
# data = [[0,5], [1,5], [2,5]]
|
49
|
+
# @high_chart.series :name=>'Updated', :data=>data
|
50
|
+
# @high_chart.series :name=>'Updated', :data=>[5, 1, 6, 1, 5, 4, 9]
|
51
|
+
#
|
52
|
+
def series(opts = {})
|
53
|
+
@data ||= []
|
54
|
+
if opts.blank?
|
55
|
+
@data << series_options.merge(:name => label, :data => d)
|
56
|
+
else
|
57
|
+
@data << opts.merge(:name => opts[:name], :data => opts[:data])
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def series_options
|
64
|
+
@options.reject {|k,v| SERIES_OPTIONS.include?(k.to_s) == false}
|
65
|
+
end
|
66
|
+
|
67
|
+
def merge_options(name, opts)
|
68
|
+
@options.merge! name => opts
|
69
|
+
end
|
70
|
+
|
71
|
+
def arguments_to_options(args)
|
72
|
+
if args.blank?
|
73
|
+
{:show => true}
|
74
|
+
elsif args.is_a? Array
|
75
|
+
args.first
|
76
|
+
else
|
77
|
+
args
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
module LazyHighCharts
|
3
|
+
module LayoutHelper
|
4
|
+
|
5
|
+
def high_chart(placeholder, object ,id="nil", &block)
|
6
|
+
object.html_options.merge!({:id=>placeholder})
|
7
|
+
object.options[:chart][:renderTo] = placeholder
|
8
|
+
high_graph(placeholder,object ,id, &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))
|
15
|
+
end
|
16
|
+
|
17
|
+
def high_graph(placeholder, object, id, &block)
|
18
|
+
graph =<<-EOJS
|
19
|
+
<script type="text/javascript">
|
20
|
+
var global_chart_#{id};
|
21
|
+
|
22
|
+
|
23
|
+
jQuery(function() {
|
24
|
+
// 1. Define JSON options
|
25
|
+
var options = {
|
26
|
+
chart: #{object.options[:chart].to_json},
|
27
|
+
title: #{object.options[:title].to_json},
|
28
|
+
legend: #{object.options[:legend].to_json},
|
29
|
+
xAxis: #{object.options[:xAxis].to_json},
|
30
|
+
yAxis: #{object.options[:yAxis].to_json},
|
31
|
+
tooltip: #{object.options[:tooltip].to_json},
|
32
|
+
credits: #{object.options[:credits].to_json},
|
33
|
+
plotOptions: #{object.options[:plotOptions].to_json},
|
34
|
+
series: #{object.data.to_json},
|
35
|
+
subtitle: #{object.options[:subtitle].to_json}
|
36
|
+
};
|
37
|
+
|
38
|
+
// 2. Add callbacks (non-JSON compliant)
|
39
|
+
#{capture(&block) if block_given?}
|
40
|
+
// 3. Build the chart
|
41
|
+
console.log(global_chart_#{id})
|
42
|
+
global_chart_#{id} = new Highcharts.Chart(options);
|
43
|
+
});
|
44
|
+
</script>
|
45
|
+
EOJS
|
46
|
+
|
47
|
+
if defined?(raw)
|
48
|
+
return raw(graph)
|
49
|
+
else
|
50
|
+
return graph
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
def high_graph_stock(placeholder, object, &block)
|
56
|
+
graph =<<-EOJS
|
57
|
+
<script type="text/javascript">
|
58
|
+
jQuery(function() {
|
59
|
+
// 1. Define JSON options
|
60
|
+
var options = {
|
61
|
+
chart: #{object.options[:chart].to_json},
|
62
|
+
title: #{object.options[:title].to_json},
|
63
|
+
legend: #{object.options[:legend].to_json},
|
64
|
+
xAxis: #{object.options[:xAxis].to_json},
|
65
|
+
yAxis: #{object.options[:yAxis].to_json},
|
66
|
+
tooltip: #{object.options[:tooltip].to_json},
|
67
|
+
credits: #{object.options[:credits].to_json},
|
68
|
+
plotOptions: #{object.options[:plotOptions].to_json},
|
69
|
+
series: #{object.data.to_json},
|
70
|
+
subtitle: #{object.options[:subtitle].to_json}
|
71
|
+
};
|
72
|
+
|
73
|
+
// 2. Add callbacks (non-JSON compliant)
|
74
|
+
#{capture(&block) if block_given?}
|
75
|
+
// 3. Build the chart
|
76
|
+
var chart = new Highcharts.StockChart(options);
|
77
|
+
});
|
78
|
+
</script>
|
79
|
+
EOJS
|
80
|
+
|
81
|
+
if defined?(raw)
|
82
|
+
return raw(graph)
|
83
|
+
else
|
84
|
+
return graph
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'lazy_high_charts'
|
2
|
+
require 'lazy_high_charts/layout_helper.rb'
|
3
|
+
|
4
|
+
require 'rails'
|
5
|
+
|
6
|
+
module LazyHighCharts
|
7
|
+
|
8
|
+
class Railtie < ::Rails::Railtie
|
9
|
+
config.before_configuration do
|
10
|
+
config.action_view.javascript_expansions[:high_charts] = %w(highcharts)
|
11
|
+
end
|
12
|
+
|
13
|
+
initializer 'lazy_high_charts.initialize' do
|
14
|
+
ActiveSupport.on_load(:action_view) do
|
15
|
+
include LazyHighCharts::LayoutHelper
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/rails/init.rb
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
Record = Struct.new(:frequency, :amplitude)
|
4
|
+
|
5
|
+
describe "HighChart" do
|
6
|
+
before(:each) do
|
7
|
+
@collection = [Record.new(1,15), Record.new(2,30), Record.new(4,40)]
|
8
|
+
@data = [ [1,15], [2,30], [4,40]]
|
9
|
+
|
10
|
+
@placeholder = "placeholder"
|
11
|
+
@html_options = {:class => "stylin"}
|
12
|
+
@options = {:bars => {:show => true}}
|
13
|
+
|
14
|
+
@flot = LazyHighCharts::HighChart.new(@placeholder, @html_options) {|chart| chart.options = @options }
|
15
|
+
end
|
16
|
+
|
17
|
+
# this is almost all flotomatic stuff
|
18
|
+
describe "initialization" do
|
19
|
+
it "should take an optional 'placeholder' argument" do
|
20
|
+
LazyHighCharts::HighChart.new(@placeholder).placeholder.should == @placeholder
|
21
|
+
LazyHighCharts::HighChart.new.placeholder.should == nil
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should take an optional html_options argument (defaulting to 300px height)" do
|
25
|
+
LazyHighCharts::HighChart.new(@html_options).placeholder.should == @html_options
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should set options by default" do
|
29
|
+
LazyHighCharts::HighChart.new.options.should == {
|
30
|
+
:title=>{:text=>"example test title from highcharts gem"},
|
31
|
+
:legend=>{:layout=>"vertical", :style=>{}},
|
32
|
+
:xAxis=>{},
|
33
|
+
:yAxis=>{:title=>{:text=>nil}, :labels=>{}},
|
34
|
+
:tooltip=>{:enabled=>true},
|
35
|
+
:credits=>{:enabled=>false},
|
36
|
+
:plotOptions=>{:areaspline=>{}},
|
37
|
+
:chart=>{:defaultSeriesType=>"areaspline", :renderTo=>nil},
|
38
|
+
:subtitle=>{}}
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should set data empty by default" do
|
42
|
+
LazyHighCharts::HighChart.new.data.should == []
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should take a block setting attributes" do
|
46
|
+
chart = LazyHighCharts::HighChart.new {|f| f.data = @data ; f.options = @options }
|
47
|
+
chart.data.should == @data
|
48
|
+
chart.options.should == @options
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should take a block setting attributes" do
|
52
|
+
chart = LazyHighCharts::HighChart.new {|f| f.options[:legend][:layout] = "horizontal" }
|
53
|
+
chart.options[:legend][:layout].should == "horizontal"
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should change a block data without overriding options" do
|
57
|
+
chart = LazyHighCharts::HighChart.new('graph') do |f|
|
58
|
+
f.series(:name=>'John', :data=>[3, 20])
|
59
|
+
f.series(:name=>'Jane',:data=> [1, 3] )
|
60
|
+
# without overriding
|
61
|
+
f.options[:chart][:defaultSeriesType] = "area"
|
62
|
+
f.options[:chart][:inverted] = true
|
63
|
+
f.options[:legend][:layout] = "horizontal"
|
64
|
+
f.options[:xAxis][:categories] = ["uno" ,"dos" , "tres" , "cuatro"]
|
65
|
+
end
|
66
|
+
chart.data.should == [{:name=>"John", :data=>[3, 20]}, {:name=>"Jane", :data=>[1, 3]}]
|
67
|
+
chart.options[:legend][:layout].should == "horizontal"
|
68
|
+
chart.options[:xAxis][:categories].should == ["uno" ,"dos" , "tres" , "cuatro"]
|
69
|
+
chart.options[:chart][:defaultSeriesType].should == "area"
|
70
|
+
chart.options[:chart][:inverted].should == true
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should change a block data with overriding entire options" do
|
74
|
+
chart = LazyHighCharts::HighChart.new('graph') do |f|
|
75
|
+
f.series(:name=>'John', :data=>[3, 20])
|
76
|
+
f.series(:name=>'Jane', :data=>[1, 3] )
|
77
|
+
f.title({ :text=>"example test title from controller"})
|
78
|
+
# without overriding
|
79
|
+
f.xAxis(:categories => ["uno" ,"dos" , "tres" , "cuatro"] , :labels=>{:rotation=>-45 , :align => 'right'})
|
80
|
+
f.chart({:defaultSeriesType=>"spline" , :renderTo => "myRenderArea" , :inverted => true})
|
81
|
+
end
|
82
|
+
chart.options[:xAxis][:categories].should == ["uno" ,"dos" , "tres" , "cuatro"]
|
83
|
+
chart.options[:xAxis][:labels][:rotation].should == -45
|
84
|
+
chart.options[:xAxis][:labels][:align].should == "right"
|
85
|
+
chart.options[:chart][:defaultSeriesType].should == "spline"
|
86
|
+
chart.options[:chart][:renderTo].should == "myRenderArea"
|
87
|
+
chart.options[:chart][:inverted].should == true
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should have subtitles" do
|
91
|
+
chart = LazyHighCharts::HighChart.new('graph') do |f|
|
92
|
+
f.series(:name=>'John',:data=> [3, 20])
|
93
|
+
f.series(:name=>'Jane', :data=>[1, 3] )
|
94
|
+
f.title({ :text=>"example test title from controller"})
|
95
|
+
# without overriding
|
96
|
+
f.x_axis(:categories => ["uno" ,"dos" , "tres" , "cuatro"] , :labels=>{:rotation=>-45 , :align => 'right'})
|
97
|
+
f.chart({:defaultSeriesType=>"spline" , :renderTo => "myRenderArea" , :inverted => true})
|
98
|
+
f.subtitle({:text=>"Bar"})
|
99
|
+
end
|
100
|
+
chart.options[:subtitle][:text].should == "Bar"
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
+
|
4
|
+
describe HighChartsHelper do
|
5
|
+
include LazyHighCharts::LayoutHelper
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@class = "stylin"
|
9
|
+
@placeholder = "placeholder"
|
10
|
+
@chart = LazyHighCharts::HighChart.new(@placeholder)
|
11
|
+
@data = "data"
|
12
|
+
@options = "options"
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "layout_helper" do
|
16
|
+
it "should return a div with an id of high_chart object" do
|
17
|
+
hc = LazyHighCharts::HighChart.new("placeholder", :class => 'stylin')
|
18
|
+
high_chart(hc.placeholder, hc).should have_selector('div', :id => hc.placeholder, :class => 'stylin')
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should return a script" do
|
22
|
+
hc = LazyHighCharts::HighChart.new("placeholder")
|
23
|
+
high_chart(hc.placeholder, hc).should have_selector('script')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "high_chart_graph" do
|
28
|
+
describe "ready function" do
|
29
|
+
it "should be a javascript script" do
|
30
|
+
high_chart(@placeholder, @chart).should have_selector('script', :type => 'text/javascript')
|
31
|
+
high_chart(@placeholder, @chart).should match(/\}\s*\)\s*;/)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should generate generate ready function (no conflict with prototype)" do
|
35
|
+
high_chart(@placeholder, @chart).should match(/jQuery\(function\(\)\s*\{/)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
describe "initialize HighChart" do
|
39
|
+
it "should set Chart data" do
|
40
|
+
high_chart(@placeholder, @chart).should match(/var\s+chart\s+=\s+new\s+Highcharts.Chart/)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should set chart renderTo" do
|
44
|
+
high_chart(@placeholder, @chart).should match(/\"renderTo\":\"placeholder\"/)
|
45
|
+
end
|
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
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'rubygems'
|
3
|
+
require 'bundler'
|
4
|
+
Bundler.setup
|
5
|
+
|
6
|
+
require 'active_support'
|
7
|
+
require 'action_pack'
|
8
|
+
require 'action_view'
|
9
|
+
require 'action_controller'
|
10
|
+
require 'rails'
|
11
|
+
#require 'action_mailer'
|
12
|
+
|
13
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/lazy_high_charts'))
|
14
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/lazy_high_charts/layout_helper'))
|
15
|
+
|
16
|
+
require 'webrat'
|
17
|
+
require 'rspec'
|
18
|
+
# RSpec 1.x and 2.x compatibility
|
19
|
+
if defined?(RSpec)
|
20
|
+
RSPEC_NAMESPACE = RSPEC_CONFIGURER = RSpec
|
21
|
+
elsif defined?(Spec)
|
22
|
+
RSPEC_NAMESPACE = Spec
|
23
|
+
RSPEC_CONFIGURER = Spec::Runner
|
24
|
+
else
|
25
|
+
begin
|
26
|
+
require 'rspec'
|
27
|
+
RSPEC_NAMESPACE = RSPEC_CONFIGURER = Rspec
|
28
|
+
rescue LoadError
|
29
|
+
require 'spec'
|
30
|
+
RSPEC_NAMESPACE = Spec
|
31
|
+
RSPEC_CONFIGURER = Spec::Runner
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
RSPEC_CONFIGURER.configure do |config|
|
36
|
+
config.include ActionView::Helpers
|
37
|
+
config.include Webrat::Matchers
|
38
|
+
end
|
39
|
+
|
40
|
+
module HighChartsHelper
|
41
|
+
include ActionView::Helpers::TagHelper
|
42
|
+
end
|
metadata
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fullscreen_lazy_high_charts
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 1.1.6
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Miguel Michelson Martinez
|
9
|
+
- Deshi Xiao
|
10
|
+
- Drew Baumann
|
11
|
+
autorequire:
|
12
|
+
bindir: bin
|
13
|
+
cert_chain: []
|
14
|
+
|
15
|
+
date: 2011-09-07 00:00:00 -07:00
|
16
|
+
default_executable:
|
17
|
+
dependencies:
|
18
|
+
- !ruby/object:Gem::Dependency
|
19
|
+
name: bundler
|
20
|
+
prerelease: false
|
21
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
+
none: false
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: "1.0"
|
27
|
+
type: :runtime
|
28
|
+
version_requirements: *id001
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: webrat
|
31
|
+
prerelease: false
|
32
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: "0.7"
|
38
|
+
type: :development
|
39
|
+
version_requirements: *id002
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: rspec
|
42
|
+
prerelease: false
|
43
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: "2.0"
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id003
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: rails
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: "3.0"
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id004
|
62
|
+
description: " lazy_high_charts is a Rails 3.x gem for displaying Highcharts graphs.\n"
|
63
|
+
email:
|
64
|
+
- miguelmichelson@gmail.com
|
65
|
+
- xiaods@gmail.com
|
66
|
+
executables: []
|
67
|
+
|
68
|
+
extensions: []
|
69
|
+
|
70
|
+
extra_rdoc_files:
|
71
|
+
- README.md
|
72
|
+
- CHANGELOG.md
|
73
|
+
files:
|
74
|
+
- .gitignore
|
75
|
+
- .rspec
|
76
|
+
- CHANGELOG.md
|
77
|
+
- Gemfile
|
78
|
+
- MIT-LICENSE
|
79
|
+
- README.md
|
80
|
+
- Rakefile
|
81
|
+
- autotest/discover.rb
|
82
|
+
- init.rb
|
83
|
+
- lazy_high_charts-1.1.5.gem
|
84
|
+
- lazy_high_charts.gemspec
|
85
|
+
- lib/generators/lazy_high_charts/install/install_generator.rb
|
86
|
+
- lib/lazy_high_charts.rb
|
87
|
+
- lib/lazy_high_charts/high_chart.rb
|
88
|
+
- lib/lazy_high_charts/layout_helper.rb
|
89
|
+
- lib/lazy_high_charts/railtie.rb
|
90
|
+
- lib/lazy_high_charts/version.rb
|
91
|
+
- rails/init.rb
|
92
|
+
- spec/high_chart_spec.rb
|
93
|
+
- spec/lazy_high_charts_spec.rb
|
94
|
+
- spec/spec_helper.rb
|
95
|
+
has_rdoc: true
|
96
|
+
homepage: https://github.com/xiaods/lazy_high_charts
|
97
|
+
licenses: []
|
98
|
+
|
99
|
+
post_install_message:
|
100
|
+
rdoc_options:
|
101
|
+
- --charset=UTF-8
|
102
|
+
require_paths:
|
103
|
+
- lib
|
104
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: "0"
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
112
|
+
requirements:
|
113
|
+
- - ~>
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: "1.3"
|
116
|
+
requirements: []
|
117
|
+
|
118
|
+
rubyforge_project:
|
119
|
+
rubygems_version: 1.6.2
|
120
|
+
signing_key:
|
121
|
+
specification_version: 3
|
122
|
+
summary: lazy higcharts gem for rails -- Modified for Fullscreen, Inc. use.
|
123
|
+
test_files: []
|
124
|
+
|