Class: Rust::Formula
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
pull_priority, #r_hash, #r_mirror, #r_mirror_to
Constructor Details
#initialize(left_part, right_part) ⇒ Formula
Returns a new instance of Formula.
27
28
29
30
31
32
33
|
# File 'lib/rust/core/types/language.rb', line 27
def initialize(left_part, right_part)
raise ArgumentError, "Expected string" if left_part && !left_part.is_a?(String)
raise ArgumentError, "Expected string" if !right_part.is_a?(String)
@left_part = left_part || ""
@right_part = right_part
end
|
Instance Attribute Details
#left_part ⇒ Object
Returns the value of attribute left_part.
24
25
26
|
# File 'lib/rust/core/types/language.rb', line 24
def left_part
@left_part
end
|
#right_part ⇒ Object
Returns the value of attribute right_part.
25
26
27
|
# File 'lib/rust/core/types/language.rb', line 25
def right_part
@right_part
end
|
Class Method Details
.can_pull?(type, klass) ⇒ Boolean
5
6
7
|
# File 'lib/rust/core/types/language.rb', line 5
def self.can_pull?(type, klass)
return klass == "formula" || (klass.is_a?(Array) && klass.include?("formula"))
end
|
.pull_variable(variable, type, klass) ⇒ Object
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/rust/core/types/language.rb', line 9
def self.pull_variable(variable, type, klass)
formula_elements = Rust._pull("as.character(#{variable})")
assert("The number of elements of a formula must be 2 or 3: #{formula_elements} given") { formula_elements.size > 1 && formula_elements.size < 4 }
if formula_elements.size == 2
return Formula.new(nil, formula_elements[1])
elsif formula_elements.size == 3
return Formula.new(formula_elements[2], formula_elements[1])
end
end
|
Instance Method Details
35
36
37
38
39
|
# File 'lib/rust/core/types/language.rb', line 35
def ==(oth)
return false unless oth.is_a?(Formula)
return @left_part == oth.left_part && @right_part == oth.right_part
end
|
45
46
47
|
# File 'lib/rust/core/types/language.rb', line 45
def inspect
return self.to_R.strip
end
|
#load_in_r_as(variable_name) ⇒ Object
20
21
22
|
# File 'lib/rust/core/types/language.rb', line 20
def load_in_r_as(variable_name)
Rust._eval("#{variable_name} <- #{self.left_part} ~ #{self.right_part}")
end
|
41
42
43
|
# File 'lib/rust/core/types/language.rb', line 41
def to_R
return "#@left_part ~ #@right_part"
end
|