Skip to content

Commit

Permalink
Separate method init_css
Browse files Browse the repository at this point in the history
  • Loading branch information
Prakriti-nith committed May 26, 2018
1 parent be20db9 commit 4b7b151
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 12 deletions.
5 changes: 4 additions & 1 deletion lib/daru/view.rb
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,10 @@ def dependent_script(lib=:nyaplot)
when :nyaplot
Nyaplot.init_script
when :highcharts
LazyHighCharts.init_script
init_code = ''
init_code << LazyHighCharts.init_css
init_code << LazyHighCharts.init_script
init_code
when :googlecharts
GoogleVisualr.init_script
when :datatables
Expand Down
5 changes: 4 additions & 1 deletion lib/daru/view/adapters/highcharts.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ def init(data=[], options={})
end

def init_script
LazyHighCharts.init_script
init_code = ''
init_code << LazyHighCharts.init_css
init_code << LazyHighCharts.init_script
init_code
end

def generate_body(plot)
Expand Down
27 changes: 20 additions & 7 deletions lib/daru/view/adapters/highcharts/display.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
require_relative 'iruby_notebook'

module LazyHighCharts
# Loads the dependent javascript required
#
# @param [Array] dependent js files required
# @return [String] js code of the dependent files
def self.init_script(
dependent_js=['js/highstock.js', 'js/map.js', 'highcharts-more.js',
'modules/exporting.js', 'highcharts-3d.js', 'modules/data.js'],
dependent_css=['highcharts.css']
'modules/exporting.js', 'highcharts-3d.js', 'modules/data.js']
)
# Highstock is based on Highcharts, meaning it has all the core
# functionality of Highcharts, plus some additional features. So
Expand All @@ -14,15 +17,25 @@ def self.init_script(
#
# Note: Don't reorder the dependent_js elements. It must be loaded in
# the same sequence. Otherwise some of the JS overlap and doesn't work.
css = ''
css << "\n<style type='text/css'>"
css << LazyHighCharts.generate_init_code_css(dependent_css)
css << "\n</style>"
js = ''
js << "\n<script type='text/javascript'>"
js << LazyHighCharts.generate_init_code(dependent_js)
js << "\n</script>"
css + js
js
end

# Loads the dependent css required in styled mode
#
# @param [Array] dependent css files required
# @return [String] CSS code of the dependent file(s)
def self.init_css(
dependent_css=['highcharts.css']
)
css = ''
css << "\n<style type='text/css'>"
css << LazyHighCharts.generate_init_code_css(dependent_css)
css << "\n</style>"
css
end

class HighChart
Expand Down
9 changes: 7 additions & 2 deletions spec/adapters/highcharts/display_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
expect(js).to match(/BEGIN js\/highstock.js/i)
expect(js).to match(/Highstock JS/i)
expect(js).to match(/END js\/highstock.js/i)
expect(js).to match(/BEGIN highcharts.css/i)
expect(js).to match(/END highcharts.css/i)
expect(js).to match(/BEGIN highcharts-more.js/i)
expect(js).to match(/END highcharts-more.js/i)
expect(js).to match(/BEGIN modules\/exporting.js/i)
Expand All @@ -28,6 +26,13 @@
/console.log\(\"Finish loading highchartsjs\"\)/i)
end
end
describe "#init_css" do
it "generates valid initial css" do
css = LazyHighCharts.init_css
expect(css).to match(/BEGIN highcharts.css/i)
expect(css).to match(/END highcharts.css/i)
end
end
end

describe LazyHighCharts::HighChart do
Expand Down
21 changes: 20 additions & 1 deletion spec/view_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,23 @@
end
end

end
context "#dependent_script" do
it "should generate valid dependent script of highcharts" do
script = Daru::View.dependent_script(:highcharts)
expect(script).to match(/BEGIN highcharts.css/i)
expect(script).to match(/END highcharts.css/i)
expect(script).to match(/BEGIN js\/highstock.js/i)
expect(script).to match(/Highstock JS/i)
expect(script).to match(/END js\/highstock.js/i)
expect(script).to match(/BEGIN highcharts-more.js/i)
expect(script).to match(/END highcharts-more.js/i)
expect(script).to match(/BEGIN modules\/exporting.js/i)
expect(script).to match(/END modules\/exporting.js/i)
expect(script).to match(/BEGIN highcharts-3d.js/i)
expect(script).to match(/END highcharts-3d.js/i)
expect(script).to match(/BEGIN modules\/data.js/i)
expect(script).to match(/END modules\/data.js/i)
end
end

end

0 comments on commit 4b7b151

Please sign in to comment.