Class: HowLongToBeat::JSONResultParser
- Inherits:
-
Object
- Object
- HowLongToBeat::JSONResultParser
- Defined in:
- lib/howlongtobeat/json_result_parser.rb
Constant Summary collapse
- IMAGE_URL_PREFIX =
"https://howlongtobeat.com/games/"- GAME_URL_PREFIX =
"https://howlongtobeat.com/game/"
Instance Attribute Summary collapse
-
#results ⇒ Object
readonly
Returns the value of attribute results.
Instance Method Summary collapse
-
#initialize(input_game_name, input_game_url, input_minimum_similarity, input_game_id = nil, input_similarity_case_sensitive = true, input_auto_filter_times = false) ⇒ JSONResultParser
constructor
A new instance of JSONResultParser.
- #parse_json_result(input_json_result) ⇒ Object
Constructor Details
#initialize(input_game_name, input_game_url, input_minimum_similarity, input_game_id = nil, input_similarity_case_sensitive = true, input_auto_filter_times = false) ⇒ JSONResultParser
Returns a new instance of JSONResultParser.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/howlongtobeat/json_result_parser.rb', line 11 def initialize(input_game_name, input_game_url, input_minimum_similarity, input_game_id = nil, input_similarity_case_sensitive = true, input_auto_filter_times = false) @results = [] @minimum_similarity = input_minimum_similarity @similarity_case_sensitive = input_similarity_case_sensitive @auto_filter_times = input_auto_filter_times @game_id = input_game_id @base_game_url = input_game_url @game_name = input_game_name @game_name_numbers = @game_name.split(" ").select { |word| word.match?(/^\d+$/) } if @game_id @minimum_similarity = 0 @similarity_case_sensitive = false end end |
Instance Attribute Details
#results ⇒ Object (readonly)
Returns the value of attribute results.
9 10 11 |
# File 'lib/howlongtobeat/json_result_parser.rb', line 9 def results @results end |
Instance Method Details
#parse_json_result(input_json_result) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/howlongtobeat/json_result_parser.rb', line 28 def parse_json_result(input_json_result) response_result = JSON.parse(input_json_result) games = extract_games(response_result) return if games.nil? || games.empty? games.each do |game| new_game_entry = parse_json_element(game) if @game_id && new_game_entry.game_id.to_s != @game_id.to_s next elsif @minimum_similarity == 0.0 @results << new_game_entry elsif new_game_entry.similarity >= @minimum_similarity @results << new_game_entry end end end |