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.
166 167 168 169 170 |
# File 'lib/asciichem/transform.rb', line 166 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
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'lib/asciichem/transform.rb', line 172 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 |