Class: WifiWand::Models::Helpers::ResourceManager
- Inherits:
-
Object
- Object
- WifiWand::Models::Helpers::ResourceManager
- Defined in:
- lib/wifi_wand/models/helpers/resource_manager.rb
Defined Under Namespace
Classes: OpenResource, OpenResources
Instance Method Summary collapse
-
#available_resources_help ⇒ Object
Get help string for available resources.
-
#invalid_codes_error(invalid_codes) ⇒ Object
Get error message for invalid codes.
- #invalid_resource_codes(*resource_codes) ⇒ Object
- #open_resources ⇒ Object
-
#open_resources_by_codes(model, *resource_codes) ⇒ Hash
Opens resources by their abbreviation codes.
Instance Method Details
#available_resources_help ⇒ Object
Get help string for available resources
52 53 54 |
# File 'lib/wifi_wand/models/helpers/resource_manager.rb', line 52 def available_resources_help "Please specify a resource to open:\n #{open_resources.help_string.gsub(',', "\n")}" end |
#invalid_codes_error(invalid_codes) ⇒ Object
Get error message for invalid codes
57 58 59 60 61 62 |
# File 'lib/wifi_wand/models/helpers/resource_manager.rb', line 57 def invalid_codes_error(invalid_codes) codes_string = invalid_codes.map { |code| "'#{code}'" }.join(', ') pluralized_codes = invalid_codes.length > 1 ? 'codes' : 'code' resource_list_str = open_resources.help_string.gsub(',', "\n") "Invalid resource #{pluralized_codes}: #{codes_string}. Valid codes are:\n #{resource_list_str}" end |
#invalid_resource_codes(*resource_codes) ⇒ Object
21 22 23 |
# File 'lib/wifi_wand/models/helpers/resource_manager.rb', line 21 def invalid_resource_codes(*resource_codes) normalized_resource_codes(resource_codes).reject { |code| open_resources.find_by_code(code) } end |
#open_resources ⇒ Object
19 |
# File 'lib/wifi_wand/models/helpers/resource_manager.rb', line 19 def open_resources = @open_resources ||= load_resources |
#open_resources_by_codes(model, *resource_codes) ⇒ Hash
Opens resources by their abbreviation codes
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/wifi_wand/models/helpers/resource_manager.rb', line 30 def open_resources_by_codes(model, *resource_codes) raise ArgumentError, 'Model cannot be nil' if model.nil? resource_codes = normalized_resource_codes(resource_codes) return { opened_resources: [], invalid_codes: [] } if resource_codes.empty? invalid_codes = invalid_resource_codes(*resource_codes) unless invalid_codes.empty? return { opened_resources: [], invalid_codes: invalid_codes } end opened_resources = resource_codes.map do |code| resource = open_resources.find_by_code(code) model.open_resource(resource.url) resource end { opened_resources: opened_resources, invalid_codes: invalid_codes } end |