Module: TRuby::CodeEmitter
- Defined in:
- lib/t_ruby/code_emitter.rb
Overview
Version-specific code transformation strategies
Defined Under Namespace
Classes: Base, Ruby30, Ruby31, Ruby34, Ruby40
Class Method Summary collapse
-
.for_version(target_ruby) ⇒ Base
Factory method to get appropriate emitter for target Ruby version.
Class Method Details
.for_version(target_ruby) ⇒ Base
Factory method to get appropriate emitter for target Ruby version
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/t_ruby/code_emitter.rb', line 15 def self.for_version(target_ruby) version = RubyVersion.parse(target_ruby) if version.numbered_parameters_raise_error? Ruby40.new(version) elsif version.supports_it_parameter? Ruby34.new(version) elsif version.supports_anonymous_block_forwarding? Ruby31.new(version) else Ruby30.new(version) end end |