Class: DiscoverySiteTarget
- Inherits:
-
Domain::Model
- Object
- Domain::Model
- DiscoverySiteTarget
- Defined in:
- lib/domain/site_target/model.rb
Instance Attribute Summary collapse
-
#end_ip ⇒ Object
Returns the value of attribute end_ip.
-
#site_id ⇒ Object
Returns the value of attribute site_id.
-
#start_ip ⇒ Object
Returns the value of attribute start_ip.
-
#subnet ⇒ Object
Returns the value of attribute subnet.
Class Method Summary collapse
Instance Method Summary collapse
- #extract_ip_addresses(range) ⇒ Object
-
#initialize(attributes = {}) ⇒ DiscoverySiteTarget
constructor
A new instance of DiscoverySiteTarget.
Methods inherited from Domain::Model
columns, from_csv, from_json, headers, #to_csv, #to_hash, #to_s, view
Constructor Details
#initialize(attributes = {}) ⇒ DiscoverySiteTarget
Returns a new instance of DiscoverySiteTarget.
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/domain/site_target/model.rb', line 38 def initialize(attributes = {}) start_ip = attributes[:start_ip] end_ip = attributes[:end_ip] start_ip, end_ip = extract_ip_addresses(attributes[:subnet]) if start_ip.nil? || end_ip.nil? updated_attributes = attributes.merge( start_ip:, end_ip: ) super(updated_attributes) end |
Instance Attribute Details
#end_ip ⇒ Object
Returns the value of attribute end_ip.
33 34 35 |
# File 'lib/domain/site_target/model.rb', line 33 def end_ip @end_ip end |
#site_id ⇒ Object
Returns the value of attribute site_id.
33 34 35 |
# File 'lib/domain/site_target/model.rb', line 33 def site_id @site_id end |
#start_ip ⇒ Object
Returns the value of attribute start_ip.
33 34 35 |
# File 'lib/domain/site_target/model.rb', line 33 def start_ip @start_ip end |
#subnet ⇒ Object
Returns the value of attribute subnet.
33 34 35 |
# File 'lib/domain/site_target/model.rb', line 33 def subnet @subnet end |
Class Method Details
.primary_key ⇒ Object
50 51 52 |
# File 'lib/domain/site_target/model.rb', line 50 def self.primary_key %w[site_id subnet] end |
.table_name ⇒ Object
54 55 56 |
# File 'lib/domain/site_target/model.rb', line 54 def self.table_name 'country_discovery_site_target' end |
Instance Method Details
#extract_ip_addresses(range) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/domain/site_target/model.rb', line 58 def extract_ip_addresses(range) if range.nil? raise ArgumentError, "Target cannot be nil. Please provide a valid IP address or range in the format 'start_ip - end_ip'." end min_ip = max_ip = range min_ip, max_ip = range.split(' - ') if range.include?(' - ') [IPAddr.new(min_ip), IPAddr.new(max_ip)] rescue IPAddr::InvalidAddressError => e raise ArgumentError, "Invalid IP address format found in #{range}: #{e.}" end |