class Kugutsu::SceneParser
Public Instance Methods
parse(file, event_bus)
click to toggle source
# File lib/kugutsu/scene_parser.rb, line 3 def parse(file, event_bus) scene = JSON.parse(file.read) actions = deserialize_actions(scene['actions'], event_bus) Scene.new(scene['id'], actions) end
Private Instance Methods
deserialize_actions(actions_data, event_bus)
click to toggle source
# File lib/kugutsu/scene_parser.rb, line 13 def deserialize_actions(actions_data, event_bus) actions_data.map do |action_data| klass = to_class_string(action_data['type']) Object::const_get(klass).new(action_data, event_bus) end end
to_class_string(action_type_raw)
click to toggle source
# File lib/kugutsu/scene_parser.rb, line 20 def to_class_string(action_type_raw) action_type_formatted = action_type_raw.split(":"). map { |str| to_pascal_case(str) }. join("::") "::#{action_type_formatted}Action" end
to_pascal_case(str)
click to toggle source
# File lib/kugutsu/scene_parser.rb, line 29 def to_pascal_case(str) str.split("_").map(&:capitalize).join end