lazy_high_charts 1.5.2 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,39 +1,57 @@
1
- #
2
1
  # A way to filter certain keys of data provided to the LazyHighCharts#series method and the LazyHighCharts#options
3
2
  #
4
- # Add methods or keys to the FILTER_MAP hash to have them applied to the options in a series
5
- # In the FILTER_MAP, the hash keys are methods, and the values are arrays of the hash keys the filter should be
6
- # applied to
3
+ # Add keys and methods to the FILTER_MAP hash to have them applied to the options in a series
7
4
  #
8
5
  # Be careful that it is OK to filter the hash keys you specify for every key of the options or series hash
9
6
  #
10
7
  module LazyHighCharts
11
8
  module OptionsKeyFilter
12
- def self.milliseconds value
13
- value * 1000
14
- end
9
+ FILTER_MAP = {
10
+ :data => [:format_data],
11
+ :pointInterval => [:milliseconds],
12
+ :pointStart => [:date_to_js_code]
13
+ }
15
14
 
16
- def self.date_to_js_code date
17
- "Date.UTC(#{date.year}, #{date.month - 1}, #{date.day})".js_code
18
- end
15
+ class << self
16
+ def filter options
17
+ {}.tap do |hash|
18
+ options.each do |key, value|
19
+ if value.is_a?(::Hash)
20
+ hash[key] = filter(value)
21
+ else
22
+ hash[key] = value
23
+ methods = Array(FILTER_MAP[key])
24
+ methods.each do |method_name|
25
+ hash[key] = send(method_name, hash[key])
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
19
31
 
20
- def self.filter options
21
- new_options = options.map do |k, v|
22
- if v.is_a? ::Hash
23
- v = filter v
32
+ private
33
+
34
+ def milliseconds value
35
+ value * 1_000
36
+ end
37
+
38
+ def date_to_js_code date
39
+ "Date.UTC(#{date.year}, #{date.month - 1}, #{date.day})".js_code
40
+ end
41
+
42
+ def format_data(data)
43
+ data.map { |item| format_data_item(item) }
44
+ end
45
+
46
+ def format_data_item(item)
47
+ if item.is_a?(::Array)
48
+ format_data item
49
+ elsif item.is_a?(DateTime)
50
+ date_to_js_code item
24
51
  else
25
- FILTER_MAP.each_pair do |method, matchers|
26
- v = method.call(v) if matchers.include?(k)
27
- end
52
+ item
28
53
  end
29
- [k, v]
30
54
  end
31
- Hash[new_options]
32
55
  end
33
-
34
- FILTER_MAP = {
35
- method(:milliseconds) => [:pointInterval],
36
- method(:date_to_js_code) => [:pointStart]
37
- }
38
56
  end
39
- end
57
+ end
@@ -15,10 +15,28 @@ namespace :highcharts do
15
15
  say "Grabbing Core from Highcharts codebase..." do
16
16
  sh "mkdir -p vendor/assets/javascripts/highcharts/modules/"
17
17
  sh "mkdir -p vendor/assets/javascripts/highcharts/adapters/"
18
-
18
+
19
19
  sh "curl -# http://code.highcharts.com/highcharts.js -L --compressed -o vendor/assets/javascripts/highcharts/highcharts.js"
20
+ sh "curl -# http://code.highcharts.com/highcharts-3d.js -L --compressed -o vendor/assets/javascripts/highcharts/highcharts-3d.js"
20
21
  sh "curl -# http://code.highcharts.com/highcharts-more.js -L --compressed -o vendor/assets/javascripts/highcharts/highcharts-more.js"
22
+
23
+ # Modules
24
+ sh "curl -# http://code.highcharts.com/modules/accessibility.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/accessibility.js"
25
+ sh "curl -# http://code.highcharts.com/modules/annotations.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/annotations.js"
26
+ sh "curl -# http://code.highcharts.com/modules/boost.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/boost.js"
27
+ sh "curl -# http://code.highcharts.com/modules/broken-axis.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/broken-axis.js"
28
+ sh "curl -# http://code.highcharts.com/modules/canvas-tools.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/canvas-tools.js"
29
+ sh "curl -# http://code.highcharts.com/modules/data.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/data.js"
21
30
  sh "curl -# http://code.highcharts.com/modules/exporting.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/exporting.js"
31
+ sh "curl -# http://code.highcharts.com/modules/export-data.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/export-data.js"
32
+ sh "curl -# http://code.highcharts.com/modules/drilldown.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/drilldown.js"
33
+ sh "curl -# http://code.highcharts.com/modules/funnel.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/funnel.js"
34
+ sh "curl -# http://code.highcharts.com/modules/heatmap.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/heatmap.js"
35
+ sh "curl -# http://code.highcharts.com/modules/no-data-to-display.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/no-data-to-display.js"
36
+ sh "curl -# http://code.highcharts.com/modules/offline-exporting.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/offline-exporting.js"
37
+ sh "curl -# http://code.highcharts.com/modules/solid-gauge.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/solid-gauge.js"
38
+ sh "curl -# http://code.highcharts.com/modules/treemap.js -L --compressed -o vendor/assets/javascripts/highcharts/modules/treemap.js"
39
+
22
40
  sh "curl -# http://code.highcharts.com/adapters/mootools-adapter.js -L --compressed -o vendor/assets/javascripts/highcharts/adapters/mootools-adapter.js"
23
41
  sh "curl -# http://code.highcharts.com/adapters/prototype-adapter.js -L --compressed -o vendor/assets/javascripts/highcharts/adapters/prototype-adapter.js"
24
42
  end
@@ -29,13 +47,14 @@ namespace :highcharts do
29
47
 
30
48
  sh "mkdir -p vendor/assets/javascripts/highcharts/stock/modules/"
31
49
  sh "mkdir -p vendor/assets/javascripts/highcharts/stock/adapters/"
32
-
50
+
33
51
  sh "curl -# http://code.highcharts.com/stock/highstock.js -L --compressed -o vendor/assets/javascripts/highcharts/highstock.js"
34
52
  sh "curl -# http://code.highcharts.com/stock/highcharts-more.js -L --compressed -o vendor/assets/javascripts/highcharts/stock/highcharts-more.js"
35
53
  sh "curl -# http://code.highcharts.com/stock/modules/exporting.js -L --compressed -o vendor/assets/javascripts/highcharts/stock/modules/exporting.js"
54
+ sh "curl -# http://code.highcharts.com/stock/modules/funnel.js -L --compressed -o vendor/assets/javascripts/highcharts/stock/modules/funnel.js"
36
55
  sh "curl -# http://code.highcharts.com/stock/adapters/mootools-adapter.js -L --compressed -o vendor/assets/javascripts/highcharts/stock/adapters/mootools-adapter.js"
37
56
  sh "curl -# http://code.highcharts.com/stock/adapters/prototype-adapter.js -L --compressed -o vendor/assets/javascripts/highcharts/stock/adapters/prototype-adapter.js"
38
57
  end
39
58
  end
40
59
 
41
- end
60
+ end
@@ -10,27 +10,51 @@ get '/' do
10
10
  erb :index #, :layout => :layout
11
11
  end
12
12
 
13
+ get '/dates' do
14
+ irregular_time_example()
15
+ erb :index
16
+ end
17
+
13
18
  def highchart_example
14
19
  # https://github.com/michelson/lazy_high_charts/wiki/Combination-Chart
15
20
  @chart = LazyHighCharts::HighChart.new('graph') do |f|
16
21
  f.title({ text: "Combination chart"})
17
- f.options[:xAxis][:categories] =
22
+ f.options[:xAxis][:categories] =
18
23
  ['Apples', 'Oranges', 'Pears', 'Bananas', 'Plums']
19
24
  f.labels(:items=>
20
- [:html=>"Total fruit consumption",
25
+ [:html=>"Total fruit consumption",
21
26
  :style=>{:left=>"40px", :top=>"8px", :color=>"black"} ])
22
27
  f.series(:type=> 'column',:name=> 'Jane',:data=> [3, 2, 1, 3, 4])
23
28
  f.series(:type=> 'column',:name=> 'John',:data=> [2, 3, 5, 7, 6])
24
29
  f.series(:type=> 'column', :name=> 'Joe',:data=> [4, 3, 3, 9, 0])
25
- f.series(:type=> 'spline',:name=> 'Average',
30
+ f.series(:type=> 'spline',:name=> 'Average',
26
31
  :data=> [3, 2.67, 3, 6.33, 3.33])
27
- f.series(:type=> 'pie',:name=> 'Total consumption',
32
+ f.series(:type=> 'column', :data=> [[DateTime.new(10), 100], [DateTime.new(20), 100]])
33
+
34
+ f.series(:type=> 'pie',:name=> 'Total consumption',
28
35
  :data=> [
29
- {:name=> 'Jane', :y=> 13, :color=> 'red'},
36
+ {:name=> 'Jane', :y=> 13, :color=> 'red'},
30
37
  {:name=> 'John', :y=> 23,:color=> 'green'},
31
38
  {:name=> 'Joe', :y=> 19,:color=> 'blue'}
32
39
  ],
33
40
  :center=> [100, 80], :size=> 100, :showInLegend=> false)
34
41
  end
35
-
36
- end
42
+ end
43
+
44
+ def irregular_time_example()
45
+ @chart = LazyHighCharts::HighChart.new('graph') do |f|
46
+ f.title({ text: "Irregular Time Example"})
47
+ f.xAxis({type: 'datetime' })
48
+ f.series(:type=> 'spline', :data=> make_random_series(1))
49
+ f.series(:type=> 'spline', :data=> make_random_series(2))
50
+ f.series(:type=> 'spline', :data=> make_random_series(3))
51
+ end
52
+ end
53
+
54
+ def make_random_series(step)
55
+ data = []
56
+ for i in 0..10
57
+ data << [DateTime.new(i * step), (rand * 100).to_i]
58
+ end
59
+ data
60
+ end
@@ -0,0 +1,51 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe "HighChartGlobals" do
4
+ before(:each) do
5
+ @chart_globals = LazyHighCharts::HighChartGlobals.new do |chart|
6
+ chart.global( useUTC: false )
7
+ chart.chart(
8
+ backgroundColor: {
9
+ linearGradient: [0, 0, 500, 500],
10
+ stops: [
11
+ [0, "rgb(255, 255, 255)"],
12
+ [1, "rgb(240, 240, 255)"]
13
+ ]
14
+ },
15
+ borderWidth: 2,
16
+ plotBackgroundColor: "rgba(255, 255, 255, .9)",
17
+ plotShadow: true,
18
+ plotBorderWidth: 1
19
+ )
20
+ chart.lang(
21
+ thousandsSep: ","
22
+ )
23
+ chart.colors([
24
+ "#90ed7d", "#f7a35c", "#8085e9", "#f15c80", "#e4d354"
25
+ ])
26
+ end
27
+ end
28
+
29
+ # this is almost all flotomatic stuff
30
+ describe "initialization" do
31
+
32
+ it "should set options hash by default" do
33
+ @chart_globals.options.is_a?(Hash).should == true
34
+ end
35
+
36
+ it "should take a block and set attributes" do
37
+ @chart_globals.options[:lang][:thousandsSep].should == ","
38
+ @chart_globals.options[:global][:useUTC].should == false
39
+ @chart_globals.options[:chart][:backgroundColor][:linearGradient].should == [0, 0, 500, 500]
40
+ end
41
+
42
+ it "should override options" do
43
+ chart = LazyHighCharts::HighChartGlobals.new
44
+ chart.global({ useUTC: true })
45
+ chart.options[:global][:useUTC].should == true
46
+ chart.global({ useUTC: false })
47
+ chart.options[:global][:useUTC].should == false
48
+ end
49
+
50
+ end
51
+ end
@@ -17,25 +17,25 @@ describe "HighChart" do
17
17
  # this is almost all flotomatic stuff
18
18
  describe "initialization" do
19
19
  it "should take an optional 'placeholder' argument" do
20
- LazyHighCharts::HighChart.new(@placeholder).placeholder.should == @placeholder
21
- LazyHighCharts::HighChart.new.placeholder.should_not == @placeholder
20
+ expect(LazyHighCharts::HighChart.new(@placeholder).placeholder).to eq(@placeholder)
21
+ expect(LazyHighCharts::HighChart.new.placeholder).not_to eq(@placeholder)
22
22
  end
23
23
 
24
24
  it "shouldn't generate a nil placeholder" do
25
- LazyHighCharts::HighChart.new.placeholder.should_not be_nil
25
+ expect(LazyHighCharts::HighChart.new.placeholder).not_to be_nil
26
26
  end
27
27
 
28
28
  it "should generate different placeholders for different charts" do
29
29
  a_different_placeholder = LazyHighCharts::HighChart.new.placeholder
30
- LazyHighCharts::HighChart.new.placeholder.should_not == a_different_placeholder
30
+ expect(LazyHighCharts::HighChart.new.placeholder).not_to eq(a_different_placeholder)
31
31
  end
32
32
 
33
33
  it "should take an optional html_options argument (defaulting to 300px height)" do
34
- LazyHighCharts::HighChart.new(@placeholder, @html_options).html_options.should == @html_options
34
+ expect(LazyHighCharts::HighChart.new(@placeholder, @html_options).html_options).to eq(@html_options)
35
35
  end
36
36
 
37
37
  it "should set options by default" do
38
- LazyHighCharts::HighChart.new.options.should == {
38
+ expect(LazyHighCharts::HighChart.new.options).to eq({
39
39
  :title => {:text => nil},
40
40
  :legend => {:layout => "vertical", :style => {}},
41
41
  :xAxis => {},
@@ -44,27 +44,27 @@ describe "HighChart" do
44
44
  :credits => {:enabled => false},
45
45
  :plotOptions => {:areaspline => {}},
46
46
  :chart => {:defaultSeriesType => "line", :renderTo => nil},
47
- :subtitle => {}}
47
+ :subtitle => {}})
48
48
  end
49
49
 
50
50
  it "should set data empty by default" do
51
- LazyHighCharts::HighChart.new.series_data.should == []
51
+ expect(LazyHighCharts::HighChart.new.series_data).to eq([])
52
52
  end
53
53
 
54
54
  it "should take a block setting attributes" do
55
55
  chart = LazyHighCharts::HighChart.new { |f| f.series_data = @data; f.options = @options }
56
- chart.series_data.should == @data
57
- chart.options.should == @options
56
+ expect(chart.series_data).to eq(@data)
57
+ expect(chart.options).to eq(@options)
58
58
  end
59
59
 
60
60
  it "should take a block setting attributes" do
61
61
  chart = LazyHighCharts::HighChart.new { |f| f.options[:legend][:layout] = "horizontal" }
62
- chart.options[:legend][:layout].should == "horizontal"
62
+ expect(chart.options[:legend][:layout]).to eq("horizontal")
63
63
  end
64
64
 
65
65
  it "should take a block setting attributes" do
66
66
  chart = LazyHighCharts::HighChart.new { |f| f.options[:range_selector] = {}; f.options[:range_selector][:selected] = 1 }
67
- chart.options[:range_selector][:selected].should == 1
67
+ expect(chart.options[:range_selector][:selected]).to eq(1)
68
68
  end
69
69
 
70
70
  it "should change a block data without overriding options" do
@@ -77,11 +77,11 @@ describe "HighChart" do
77
77
  f.options[:legend][:layout] = "horizontal"
78
78
  f.options[:xAxis][:categories] = ["uno", "dos", "tres", "cuatro"]
79
79
  end
80
- chart.series_data.should == [{:name => "John", :data => [3, 20]}, {:name => "Jane", :data => [1, 3]}]
81
- chart.options[:legend][:layout].should == "horizontal"
82
- chart.options[:xAxis][:categories].should == ["uno", "dos", "tres", "cuatro"]
83
- chart.options[:chart][:defaultSeriesType].should == "area"
84
- chart.options[:chart][:inverted].should == true
80
+ expect(chart.series_data).to eq([{:name => "John", :data => [3, 20]}, {:name => "Jane", :data => [1, 3]}])
81
+ expect(chart.options[:legend][:layout]).to eq("horizontal")
82
+ expect(chart.options[:xAxis][:categories]).to eq(["uno", "dos", "tres", "cuatro"])
83
+ expect(chart.options[:chart][:defaultSeriesType]).to eq("area")
84
+ expect(chart.options[:chart][:inverted]).to eq(true)
85
85
  end
86
86
 
87
87
  it "should change a block data with overriding entire options" do
@@ -93,12 +93,12 @@ describe "HighChart" do
93
93
  f.xAxis(:categories => ["uno", "dos", "tres", "cuatro"], :labels => {:rotation => -45, :align => 'right'})
94
94
  f.chart({:defaultSeriesType => "spline", :renderTo => "myRenderArea", :inverted => true})
95
95
  end
96
- chart.options[:xAxis][:categories].should == ["uno", "dos", "tres", "cuatro"]
97
- chart.options[:xAxis][:labels][:rotation].should == -45
98
- chart.options[:xAxis][:labels][:align].should == "right"
99
- chart.options[:chart][:defaultSeriesType].should == "spline"
100
- chart.options[:chart][:renderTo].should == "myRenderArea"
101
- chart.options[:chart][:inverted].should == true
96
+ expect(chart.options[:xAxis][:categories]).to eq(["uno", "dos", "tres", "cuatro"])
97
+ expect(chart.options[:xAxis][:labels][:rotation]).to eq(-45)
98
+ expect(chart.options[:xAxis][:labels][:align]).to eq("right")
99
+ expect(chart.options[:chart][:defaultSeriesType]).to eq("spline")
100
+ expect(chart.options[:chart][:renderTo]).to eq("myRenderArea")
101
+ expect(chart.options[:chart][:inverted]).to eq(true)
102
102
  end
103
103
 
104
104
  it "should have subtitles" do
@@ -111,7 +111,7 @@ describe "HighChart" do
111
111
  f.chart({:defaultSeriesType => "spline", :renderTo => "myRenderArea", :inverted => true})
112
112
  f.subtitle({:text => "Bar"})
113
113
  end
114
- chart.options[:subtitle][:text].should == "Bar"
114
+ expect(chart.options[:subtitle][:text]).to eq("Bar")
115
115
  end
116
116
 
117
117
  it 'should override entire option by default when resetting it again' do
@@ -119,8 +119,8 @@ describe "HighChart" do
119
119
  f.xAxis(categories: [3, 5, 7])
120
120
  f.xAxis(title: {text: 'x title'})
121
121
  end
122
- chart.options[:xAxis][:categories].should == nil
123
- chart.options[:xAxis][:title][:text].should == 'x title'
122
+ expect(chart.options[:xAxis][:categories]).to eq(nil)
123
+ expect(chart.options[:xAxis][:title][:text]).to eq('x title')
124
124
  end
125
125
 
126
126
  it 'should allow to build options step by step without overriding previously set values' do
@@ -128,8 +128,8 @@ describe "HighChart" do
128
128
  f.xAxis!(categories: [3, 5, 7])
129
129
  f.xAxis!(title: {text: 'x title'})
130
130
  end
131
- chart.options[:xAxis][:categories].should == [3, 5, 7]
132
- chart.options[:xAxis][:title][:text].should == 'x title'
131
+ expect(chart.options[:xAxis][:categories]).to eq([3, 5, 7])
132
+ expect(chart.options[:xAxis][:title][:text]).to eq('x title')
133
133
  end
134
134
 
135
135
  it 'should merge options and data into a full options hash' do
@@ -142,9 +142,10 @@ describe "HighChart" do
142
142
  end
143
143
 
144
144
  json = chart.full_options
145
- json.should match /\"series\"/
146
- json.should match /\"title\"/
147
- json.should match /\"tooltip\": { \"enabled\": true,\"formatter\"/
145
+ expect(json).to match /\"series\"/
146
+ expect(json).to match /\"title\"/
147
+ expect(json).to match /\"tooltip\": { \"enabled\": true,\"formatter\"/
148
+ expect(json).to match /\"data\": \[ 29.9,71.5,106.4,129.2,144.0,176.0,135.6,148.5,216.4,194.1,95.6,54.4 \]/
148
149
  end
149
150
 
150
151
  end
@@ -10,56 +10,86 @@ describe HighChartsHelper do
10
10
  @chart = LazyHighCharts::HighChart.new(@placeholder)
11
11
  @data = "data"
12
12
  @options = "options"
13
+ @chart_globals = LazyHighCharts::HighChartGlobals.new do |chart|
14
+ chart.global({ useUTC: false })
15
+ chart.chart({
16
+ backgroundColor: {
17
+ linearGradient: [0, 0, 500, 500],
18
+ stops: [
19
+ [0, "rgb(255, 255, 255)"],
20
+ [1, "rgb(240, 240, 255)"]
21
+ ]
22
+ },
23
+ borderWidth: 2,
24
+ plotBackgroundColor: "rgba(255, 255, 255, .9)",
25
+ plotShadow: true,
26
+ plotBorderWidth: 1
27
+ })
28
+ chart.lang({
29
+ thousandsSep: ","
30
+ })
31
+ chart.colors([
32
+ "#90ed7d", "#f7a35c", "#8085e9", "#f15c80", "#e4d354"
33
+ ])
34
+ end
13
35
  end
14
36
 
15
37
  context "layout_helper" do
16
38
  it "should return a div with an id of high_chart object" do
17
- high_chart(@placeholder, @chart).should have_selector('div', :id => @placeholder)
39
+ expect(high_chart(@placeholder, @chart)).to have_selector('div', :id => @placeholder)
18
40
  end
19
41
 
20
42
  it "should return a script" do
21
43
  hc = LazyHighCharts::HighChart.new("placeholder")
22
- high_chart(hc.placeholder, hc).should have_selector('script')
44
+ expect(high_chart(hc.placeholder, hc)).to have_selector('script')
45
+ end
46
+ end
47
+
48
+ context "high_chart_globals" do
49
+ it "should return a script" do
50
+ high_chart_globals(@chart_globals).should have_selector('script')
51
+ end
52
+
53
+ it "should take a block and set attributes" do
54
+ high_chart_globals(@chart_globals).should match(/useUTC/)
55
+ high_chart_globals(@chart_globals).should match(/backgroundColor/)
56
+ high_chart_globals(@chart_globals).should match(/thousandsSep/)
23
57
  end
24
58
  end
25
59
 
26
60
  context "high_chart_graph" do
27
61
  describe "ready function" do
28
62
  it "should be a javascript script" do
29
- high_chart(@placeholder, @chart).should have_selector('script', :type => 'text/javascript')
30
- high_chart(@placeholder, @chart).should match(/}\)\(\)/)
63
+ expect(high_chart(@placeholder, @chart)).to have_selector('script', :type => 'text/javascript')
64
+ expect(high_chart(@placeholder, @chart)).to match(/}\)\(\)/)
31
65
  end
32
66
 
33
67
  it "should assign to the onload event" do
34
- high_chart(@placeholder, @chart).should include('window.onload = function(){')
35
- end
36
- it "should call any existing onload function" do
37
- high_chart(@placeholder, @chart).should match(/onload = window.onload;/)
38
- high_chart(@placeholder, @chart).should match(/if \(typeof onload == "function"\)\s*onload\(\)/)
68
+ expect(high_chart(@placeholder, @chart)).to include('window.addEventListener(\'load\', function() {')
39
69
  end
40
70
  end
41
71
  describe "initialize HighChart" do
42
72
  it "should set variables `chart` `options`" do
43
- high_chart(@placeholder, @chart).should match(/var\s+options\s+=/)
44
- high_chart(@placeholder, @chart).should match(/window.chart_placeholder\s=/)
73
+ expect(high_chart(@placeholder, @chart)).to match(/var\s+options\s+=/)
74
+ expect(high_chart(@placeholder, @chart)).to match(/window.chart_placeholder\s=/)
45
75
  end
46
76
  it "should set Chart data" do
47
- high_chart(@placeholder, @chart).should match(/window\.chart_placeholder\s=\snew\sHighcharts.Chart/)
77
+ expect(high_chart(@placeholder, @chart)).to match(/window\.chart_placeholder\s=\snew\sHighcharts.Chart/)
48
78
  end
49
79
 
50
80
  it "should set chart renderTo" do
51
- high_chart(@placeholder, @chart).should match(/"renderTo": "placeholder"/)
81
+ expect(high_chart(@placeholder, @chart)).to match(/"renderTo": "placeholder"/)
52
82
  end
53
83
 
54
84
  it "should set Chart Stock" do
55
- high_stock(@placeholder, @chart).should match(/window\.chart_placeholder\s+=\s+new\s+Highcharts.StockChart/)
85
+ expect(high_stock(@placeholder, @chart)).to match(/window\.chart_placeholder\s+=\s+new\s+Highcharts.StockChart/)
56
86
  end
57
87
  end
58
88
 
59
89
  describe "HighChart Variable" do
60
90
  it "should underscore chart_ variable" do
61
- high_chart("place-holder", @chart).should match(/window.chart_place_holder\s=/)
62
- high_chart("PlaceHolder", @chart).should match(/window.chart_place_holder\s=/)
91
+ expect(high_chart("place-holder", @chart)).to match(/window.chart_place_holder\s=/)
92
+ expect(high_chart("PlaceHolder", @chart)).to match(/window.chart_place_holder\s=/)
63
93
  end
64
94
  end
65
95
  end
@@ -75,11 +105,11 @@ describe HighChartsHelper do
75
105
  :data => [0, 1, 2, 3, 5, 6, 0, 7]
76
106
  )
77
107
  }
78
- chart.options[:rangeSelector][:selected].should == 1
79
- high_chart(@placeholder, chart).should match(/rangeSelector/)
80
- high_chart(@placeholder, chart).should match(/xAxis/)
81
- high_chart(@placeholder, chart).should match(/yAxis/)
82
- high_chart(@placeholder, chart).should match(/series/)
108
+ expect(chart.options[:rangeSelector][:selected]).to eq(1)
109
+ expect(high_chart(@placeholder, chart)).to match(/rangeSelector/)
110
+ expect(high_chart(@placeholder, chart)).to match(/xAxis/)
111
+ expect(high_chart(@placeholder, chart)).to match(/yAxis/)
112
+ expect(high_chart(@placeholder, chart)).to match(/series/)
83
113
 
84
114
  end
85
115
 
@@ -88,7 +118,7 @@ describe HighChartsHelper do
88
118
  chart = LazyHighCharts::HighChart.new { |f|
89
119
  f.others(:foo => "bar")
90
120
  }
91
- high_chart(@placeholder, chart).should match(/foo/)
121
+ expect(high_chart(@placeholder, chart)).to match(/foo/)
92
122
  end
93
123
 
94
124
  it "should allow js code as attribute" do
@@ -96,7 +126,7 @@ describe HighChartsHelper do
96
126
  f.options[:foo] = "function () { alert('hello') }".js_code
97
127
  }
98
128
 
99
- high_chart(@placeholder, chart).should match(/"foo": function \(\) { alert\('hello'\) }/)
129
+ expect(high_chart(@placeholder, chart)).to match(/"foo": function \(\) { alert\('hello'\) }/)
100
130
  end
101
131
 
102
132
  it "should convert keys to proper format" do
@@ -104,8 +134,8 @@ describe HighChartsHelper do
104
134
  f.options[:foo_bar] = {:bar_foo => "someattrib"}
105
135
  }
106
136
 
107
- high_chart(@placeholder, chart).should match(/fooBar/)
108
- high_chart(@placeholder, chart).should match(/barFoo/)
137
+ expect(high_chart(@placeholder, chart)).to match(/fooBar/)
138
+ expect(high_chart(@placeholder, chart)).to match(/barFoo/)
109
139
  end
110
140
 
111
141
  # issue #62 .js_code setting ignored
@@ -118,7 +148,7 @@ describe HighChartsHelper do
118
148
  }
119
149
  }])
120
150
  }
121
- high_chart(@placeholder, chart).should match(/"formatter": function\(\) {return this.value \+ ' W';}/)
151
+ expect(high_chart(@placeholder, chart)).to match(/"formatter": function\(\) {return this.value \+ ' W';}/)
122
152
  end
123
153
 
124
154
  it "should support js_code in Individual data label for each point" do
@@ -135,7 +165,7 @@ describe HighChartsHelper do
135
165
  :y => 54.4}
136
166
  ])
137
167
  }
138
- high_chart(@placeholder, chart).should match(/"formatter": function\(\) {\ return this.x;\ }/)
168
+ expect(high_chart(@placeholder, chart)).to match(/"formatter": function\(\) {\ return this.x;\ }/)
139
169
  end
140
170
 
141
171
  end