Class: ViennaRna::Package::Base
- Inherits:
-
Object
- Object
- ViennaRna::Package::Base
- Includes:
- Global::ChainExtensions, Global::RunExtensions
- Defined in:
- lib/vienna_rna/package/base.rb
Direct Known Subclasses
EnergyGrid2d, Eval, FftMfpt, Fold, Heat, Kinwalker, Mfpt, Plot, Population, Spectral, Subopt, TabuPath, Xbor
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#flags ⇒ Object
readonly
Returns the value of attribute flags.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
-
#runtime ⇒ Object
readonly
Returns the value of attribute runtime.
Class Method Summary collapse
Instance Method Summary collapse
- #debugger(&block) ⇒ Object
-
#initialize(data, chaining: false) ⇒ Base
constructor
A new instance of Base.
- #inspect ⇒ Object
- #serialize ⇒ Object
Methods included from Global::ChainExtensions
Methods included from Global::RunExtensions
Constructor Details
#initialize(data, chaining: false) ⇒ Base
Returns a new instance of Base.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/vienna_rna/package/base.rb', line 34 def initialize(data, chaining: false) unless chaining data = [data] unless data.is_a?(Array) @data = case data.map(&:class) when [ViennaRna::Global::Rna] then data.first when *(1..3).map { |i| [String] * i } then RNA.from_string(*data) when [Hash] then RNA.from_hash(*data) when [Array] then RNA.from_array(*data) when [NilClass] then ViennaRna::Global::Rna.placeholder else raise TypeError.new("Unsupported ViennaRna::Global::Rna#initialize format: #{data}") end else @data = transform_for_chaining(data) end end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
32 33 34 |
# File 'lib/vienna_rna/package/base.rb', line 32 def data @data end |
#flags ⇒ Object (readonly)
Returns the value of attribute flags.
32 33 34 |
# File 'lib/vienna_rna/package/base.rb', line 32 def flags @flags end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
32 33 34 |
# File 'lib/vienna_rna/package/base.rb', line 32 def response @response end |
#runtime ⇒ Object (readonly)
Returns the value of attribute runtime.
32 33 34 |
# File 'lib/vienna_rna/package/base.rb', line 32 def runtime @runtime end |
Class Method Details
.bootstrap(data: nil, output: "") ⇒ Object
24 25 26 27 28 29 |
# File 'lib/vienna_rna/package/base.rb', line 24 def bootstrap(data: nil, output: "") new(data).tap do |object| object.instance_variable_set(:@response, File.exist?(output) ? File.read(output).chomp : output) object.post_process if object.respond_to?(:post_process) end end |
Instance Method Details
#debugger(&block) ⇒ Object
55 56 57 |
# File 'lib/vienna_rna/package/base.rb', line 55 def debugger(&block) self.class.debugger(&block) end |
#inspect ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/vienna_rna/package/base.rb', line 59 def inspect "#<%s (%.2f sec): data: %s, flags: %s, vars: %s>" % [ self.class.name, runtime.real, data, flags, (instance_variables - %i|@data @flags @response @runtime|).map(&:to_s).sort.join(", ") ] end |
#serialize ⇒ Object
51 52 53 |
# File 'lib/vienna_rna/package/base.rb', line 51 def serialize YAML.dump(self) end |