Skip to content

Commit 8c82c24

Browse files
author
Ivan Evgrafov
authored
Merge pull request #11 from SciRuby/fix_taking_name_from_dataframe
take title for plot from Daru::DataFrame
2 parents 6f11232 + c2c2976 commit 8c82c24

File tree

4 files changed

+38
-10
lines changed

4 files changed

+38
-10
lines changed

gnuplotrb.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ Gem::Specification.new do |spec|
2626
spec.add_development_dependency 'rubocop', '~> 0.29'
2727
spec.add_development_dependency 'codeclimate-test-reporter'
2828
spec.add_development_dependency 'chunky_png'
29+
spec.add_development_dependency 'simplecov'
2930
spec.add_development_dependency 'daru'
3031
end

lib/gnuplotrb/plot.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ def parse_datasets_array(datasets)
284284
when Hamster::Vector
285285
datasets[0]
286286
when (defined?(Daru) ? Daru::DataFrame : nil)
287+
set_name_from_daru_dataframe(datasets[0])
287288
Hamster::Vector.new(datasets[0].map { |ds| dataset_from_any(ds) })
288289
else
289290
Hamster::Vector.new(datasets.map { |ds| dataset_from_any(ds) })
@@ -295,5 +296,9 @@ def parse_datasets_array(datasets)
295296
def new_with_options(options)
296297
self.class.new(@datasets, options)
297298
end
299+
300+
def set_name_from_daru_dataframe(dataframe)
301+
self.title = dataframe.name unless title
302+
end
298303
end
299304
end

spec/plot_spec.rb

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@
1616
@title = 'Awesome spec'
1717
@formula = %w(sin(x) cos(x) exp(-x))
1818
@options = { title: @title, term: 'dumb' }
19-
@df = Daru::DataFrame.new(
20-
Build: [312, 630, 315, 312],
21-
Test: [525, 1050, 701, 514],
22-
Deploy: [215, 441, 370, 220]
23-
)
2419
end
2520

2621
it 'should be created out of sequence of datasets' do
@@ -38,10 +33,38 @@
3833
expect(plot.title).to eql(@title)
3934
end
4035

41-
it 'should be created out of Daru::DataFrame' do
42-
p = Plot.new(@df)
43-
expect(p).to be_an_instance_of(Plot)
44-
expect(p.datasets.size).to be_eql(3)
36+
context 'creation out of Daru::DataFrame' do
37+
let(:df) do
38+
Daru::DataFrame.new(
39+
{
40+
Build: [312, 630, 315, 312],
41+
Test: [525, 1050, 701, 514],
42+
Deploy: [215, 441, 370, 220]
43+
},
44+
index: [0, 1, 2, 3],
45+
name: 'Dummy DataFrame'
46+
)
47+
end
48+
49+
subject { Plot.new(df) }
50+
51+
it { is_expected.to be_an_instance_of Plot }
52+
53+
it 'creates datasets for each column except index' do
54+
expect(subject.datasets.size).to be 3
55+
end
56+
57+
it 'takes name for plot from DataFrame' do
58+
expect(subject.title).to eql(df.name)
59+
end
60+
61+
context 'with title option given' do
62+
subject { Plot.new(df, title: 'Not a DataFrame') }
63+
64+
it "uses title option instead of DataFrame name" do
65+
expect(subject.title).not_to eql(df.name)
66+
end
67+
end
4568
end
4669
end
4770

spec/spec_helper.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
require 'simplecov'
2-
require 'codeclimate-test-reporter'
32
require 'digest'
43
require 'chunky_png'
54
require 'digest/md5'

0 commit comments

Comments
 (0)