Class: Statsample::Analysis::Suite
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Shorthand
#cor, #cov, #dataset, #dominance_analysis, #dominance_analysis_bootstrap, #levene, #lr, #multiscale_analysis, #names, #pca, #polychoric, #principal_axis, #read_csv, #read_excel, rnorm, #scale_analysis, #skill_scale_analysis, test_u, #tetrachoric, #vector
Constructor Details
#initialize(opts = Hash.new(), &block) ⇒ Suite
Returns a new instance of Suite.
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/statsample/analysis/suite.rb', line 8
def initialize(opts=Hash.new(), &block)
if !opts.is_a? Hash
opts={:name=>opts}
end
@block=block
@name=opts[:name] || "Analysis #{Time.now}"
@attached=[]
@output=opts[:output] || ::STDOUT
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
81
82
83
84
85
86
|
# File 'lib/statsample/analysis/suite.rb', line 81
def method_missing(name, *args,&block)
@attached.reverse.each do |ds|
return ds[name] if ds.vectors.to_a.include? (name)
end
raise "Method #{name} doesn't exists"
end
|
Instance Attribute Details
Returns the value of attribute block.
7
8
9
|
# File 'lib/statsample/analysis/suite.rb', line 7
def block
@block
end
|
Returns the value of attribute name.
6
7
8
|
# File 'lib/statsample/analysis/suite.rb', line 6
def name
@name
end
|
Returns the value of attribute output.
5
6
7
|
# File 'lib/statsample/analysis/suite.rb', line 5
def output
@output
end
|
Instance Method Details
#add_to_reportbuilder(rb) ⇒ Object
34
35
36
|
# File 'lib/statsample/analysis/suite.rb', line 34
def add_to_reportbuilder(rb)
SuiteReportBuilder.new({:name=>name, :rb=>rb}, &block)
end
|
#attach(ds) ⇒ Object
47
48
49
|
# File 'lib/statsample/analysis/suite.rb', line 47
def attach(ds)
@attached.push(ds)
end
|
#boxplot(*args) ⇒ Object
71
72
73
|
# File 'lib/statsample/analysis/suite.rb', line 71
def boxplot(*args)
show_svg(old_boxplot(*args).to_svg)
end
|
Provides a description of the procedure. Only appears as a commentary on SuiteReportBuilder outputs
24
25
26
27
|
# File 'lib/statsample/analysis/suite.rb', line 24
def desc(d)
@output.puts("Description:")
@output.puts(" #{d}")
end
|
#detach(ds = nil) ⇒ Object
50
51
52
53
54
55
56
|
# File 'lib/statsample/analysis/suite.rb', line 50
def detach(ds=nil)
if ds.nil?
@attached.pop
else
@attached.delete(ds)
end
end
|
#echo(*args) ⇒ Object
28
29
30
|
# File 'lib/statsample/analysis/suite.rb', line 28
def echo(*args)
@output.puts(*args)
end
|
#generate(filename) ⇒ Object
38
39
40
41
|
# File 'lib/statsample/analysis/suite.rb', line 38
def generate(filename)
ar=SuiteReportBuilder.new({:name=>name}, &block)
ar.generate(filename)
end
|
#histogram(*args) ⇒ Object
74
75
76
|
# File 'lib/statsample/analysis/suite.rb', line 74
def histogram(*args)
show_svg(old_histogram(*args).to_svg)
end
|
#old_boxplot ⇒ Object
57
|
# File 'lib/statsample/analysis/suite.rb', line 57
alias :old_boxplot :boxplot
|
#old_histogram ⇒ Object
58
|
# File 'lib/statsample/analysis/suite.rb', line 58
alias :old_histogram :histogram
|
#old_scatterplot ⇒ Object
59
|
# File 'lib/statsample/analysis/suite.rb', line 59
alias :old_scatterplot :scatterplot
|
Run the analysis, putting output on
19
20
21
|
# File 'lib/statsample/analysis/suite.rb', line 19
def run
@block.arity<1 ? instance_eval(&@block) : @block.call(self)
end
|
#scatterplot(*args) ⇒ Object
77
78
79
|
# File 'lib/statsample/analysis/suite.rb', line 77
def scatterplot(*args)
show_svg(old_scatterplot(*args).to_svg)
end
|
#show_svg(svg) ⇒ Object
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/statsample/analysis/suite.rb', line 61
def show_svg(svg)
require 'tmpdir'
fn=Dir.tmpdir+"/image_#{Time.now.to_f}.svg"
File.open(fn,"w") {|fp| fp.write svg}
if RUBY_PLATFORM =~/darwin/
%x(open -a safari #{fn})
else
%x(xdg-open #{fn})
end
end
|
#summary(obj) ⇒ Object
31
32
33
|
# File 'lib/statsample/analysis/suite.rb', line 31
def summary(obj)
obj.summary
end
|
42
43
44
45
|
# File 'lib/statsample/analysis/suite.rb', line 42
def to_text
ar=SuiteReportBuilder.new({:name=>name}, &block)
ar.to_text
end
|