Class: AsciiChem::Transform::CrystalBuilder
- Inherits:
-
Object
- Object
- AsciiChem::Transform::CrystalBuilder
- Defined in:
- lib/asciichem/transform.rb
Overview
Builds a Crystal from parsed grammar captures. The grammar captures the name, params, and body as raw strings; this class parses them into the model fields.
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(name, params_str, body_str) ⇒ CrystalBuilder
constructor
A new instance of CrystalBuilder.
Constructor Details
#initialize(name, params_str, body_str) ⇒ CrystalBuilder
Returns a new instance of CrystalBuilder.
201 202 203 204 205 |
# File 'lib/asciichem/transform.rb', line 201 def initialize(name, params_str, body_str) @name = strip_parslet(name) @params_str = strip_parslet(params_str) @body_str = strip_parslet(body_str) end |
Instance Method Details
#build ⇒ Object
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# File 'lib/asciichem/transform.rb', line 207 def build params = parse_params(@params_str) atoms = parse_atoms(@body_str) Model::Crystal.new( name: @name, a: params['a'], b: params['b'], c: params['c'], alpha: params['alpha'], beta: params['beta'], gamma: params['gamma'], spacegroup: params['sg'], atoms: atoms ) end |