Class: Smite::DataTransform
- Inherits:
-
Object
- Object
- Smite::DataTransform
- Defined in:
- lib/smite/data_transform.rb
Class Method Summary collapse
- .transform_abilities(data) ⇒ Object
- .transform_gods(data) ⇒ Object
- .transform_item_effect(data) ⇒ Object
- .transform_items(data) ⇒ Object
- .transform_match_achievements(data) ⇒ Object
- .transform_match_summary(data) ⇒ Object
- .transform_stats(data) ⇒ Object
Class Method Details
.transform_abilities(data) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/smite/data_transform.rb', line 21 def transform_abilities(data) ability_fields = data.slice(*ability_map_fields) return data if ability_fields.empty? data['abilities'] = ability_fields.values.map do |ability_data| data_attrs = ability_data.slice('Id', 'Summary', 'URL') desc = ability_data['Description'] desc = desc.nil? ? {} : desc['itemDescription'] Ability.new(data_attrs.merge(desc)) end data.except(*ability_filter_fields) end |
.transform_gods(data) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/smite/data_transform.rb', line 13 def transform_gods(data) god_fields = data.slice(*god_map_fields) return data if god_fields.empty? data['god'] = god_fields.values.map { |id| Smite::Game.god(id) }[0] data.except(*god_filter_fields) end |
.transform_item_effect(data) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/smite/data_transform.rb', line 57 def transform_item_effect(data) return unless data['Description'] and data['Value'] effect = data.delete('Description').tr(' ','') effect = ActiveSupport::Inflector.underscore(effect) data['attribute'] = effect value = data.delete('Value') @percentage = value[/%/] value = value.tr('+', '').to_i data['amount'] = value data end |
.transform_items(data) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/smite/data_transform.rb', line 5 def transform_items(data) item_fields = data.slice(*item_map_fields) return data if item_fields.empty? data['items'] = item_fields.values.map { |id| Smite::Game.item(id) } data.except(*item_filter_fields) end |
.transform_match_achievements(data) ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/smite/data_transform.rb', line 71 def transform_match_achievements(data) ach_fields = data.slice(*match_achievement_map_fields) return data if ach_fields.empty? data['match_achievements'] = MatchAchievements.new(ach_fields) data.except(*match_achievement_filter_fields) end |
.transform_match_summary(data) ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/smite/data_transform.rb', line 36 def transform_match_summary(data) return data unless data['queue'] if data['queue'] =~ /League/ data else data.except(*match_summary_filter_fields) end end |
.transform_stats(data) ⇒ Object
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/smite/data_transform.rb', line 46 def transform_stats(data) stat_fields = data.slice(*stats_map_fields) return data if stat_fields.empty? stat_fields['movement_speed'] = stat_fields.delete('speed') stat_fields['mp5'] = stat_fields.delete('mana_per_five') stat_fields['hp5'] = stat_fields.delete('health_per_five') data['stats'] = GodStats.new(data['name'], stat_fields) data.except(*stats_filter_fields) end |