Module: KRPC::ProcedureNameParser
- Defined in:
- lib/krpc/procedure_name_parser.rb
Defined Under Namespace
Classes: Result
Class Method Summary collapse
Class Method Details
.parse(proc_name) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/krpc/procedure_name_parser.rb', line 6 def self.parse(proc_name) parts = proc_name.split('_') name = parts[-1] raise(ProcedureNameParserError, "Procedure name is empty") if proc_name.empty? raise(ProcedureNameParserError, "Invalid procedure name") if parts.size > 3 case parts.size when 1 Result.new(:plain_procedure, false, false, name, nil) when 2 case parts[0] when 'get' Result.new(:service_property_getter, false, false, name, nil) when 'set' Result.new(:service_property_setter, true, false, name, nil) else Result.new(:class_method, false, true, name, parts[0]) end when 3 case parts[1] when 'get' Result.new(:class_property_getter, false, true, name, parts[0]) when 'set' Result.new(:class_property_setter, true, true, name, parts[0]) when 'static' Result.new(:class_static_method, false, true, name, parts[0]) else raise(ProcedureNameParserError, "Invalid procedure name") end end end |