Module: ActiveRecordExtended::QueryMethods::Inet
- Included in:
- ActiveRecord::QueryMethods::WhereChain
- Defined in:
- lib/active_record_extended/query_methods/inet.rb
Instance Method Summary collapse
- #contained_within(opts, *rest) ⇒ Object
- #contained_within_or_equals(opts, *rest) ⇒ Object
- #contains_or_equals(opts, *rest) ⇒ Object
-
#inet_contained_within(opts, *rest) ⇒ Object
Finds matching inet column records that fall within a given submasked IP range.
-
#inet_contained_within_or_equals(opts, *rest) ⇒ Object
Finds matching inet column records that fall within a given submasked IP range and also finds records that also contain a submasking field that fall within range too.
-
#inet_contains(opts, *rest) ⇒ Object
Strictly finds records that contain a submask and the supplied IP address falls within its range.
-
#inet_contains_or_equals(opts, *rest) ⇒ Object
Finds records that contain a submask and the supplied IP address falls within its range.
-
#inet_contains_or_is_contained_within(opts, *rest) ⇒ Object
This method is a combination of ‘inet_contains` and `inet_contained_within`.
Instance Method Details
#contained_within(opts, *rest) ⇒ Object
6 7 8 9 10 |
# File 'lib/active_record_extended/query_methods/inet.rb', line 6 def contained_within(opts, *rest) ActiveSupport::Deprecation.warn("#contained_within will soon be deprecated for version 1.0 release. "\ "Please use #inet_contained_within instead.", caller(1)) inet_contained_within(opts, *rest) end |
#contained_within_or_equals(opts, *rest) ⇒ Object
26 27 28 29 30 |
# File 'lib/active_record_extended/query_methods/inet.rb', line 26 def contained_within_or_equals(opts, *rest) ActiveSupport::Deprecation.warn("#contained_within_or_equals will soon be deprecated for version 1.0 release. "\ "Please use #inet_contained_within_or_equals instead.", caller(1)) inet_contained_within_or_equals(opts, *rest) end |
#contains_or_equals(opts, *rest) ⇒ Object
47 48 49 50 51 |
# File 'lib/active_record_extended/query_methods/inet.rb', line 47 def contains_or_equals(opts, *rest) ActiveSupport::Deprecation.warn("#contains_or_equals will soon be deprecated for version 1.0 release. "\ "Please use #inet_contains_or_equals instead.", caller(1)) inet_contains_or_equals(opts, *rest) end |
#inet_contained_within(opts, *rest) ⇒ Object
Finds matching inet column records that fall within a given submasked IP range
Column(inet) << “127.0.0.1/24”
User.where.inet_contained_within(ip: “127.0.0.1/16”)
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" << '127.0.0.1/16'"
User.where.inet_contained_within(ip: IPAddr.new(“192.168.2.0/24”))
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" << '192.168.2.0/24'"
22 23 24 |
# File 'lib/active_record_extended/query_methods/inet.rb', line 22 def inet_contained_within(opts, *rest) substitute_comparisons(opts, rest, Arel::Nodes::Inet::ContainedWithin, "inet_contained_within") end |
#inet_contained_within_or_equals(opts, *rest) ⇒ Object
Finds matching inet column records that fall within a given submasked IP range and also finds records that also contain a submasking field that fall within range too.
Column(inet) <<= “127.0.0.1/24”
User.where.inet_contained_within_or_equals(ip: “127.0.0.1/16”)
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" <<= '127.0.0.44/32'"
User.where.inet_contained_within_or_equals(ip: IPAddr.new(“192.168.2.0/24”))
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" <<= '192.168.2.0/24'"
43 44 45 |
# File 'lib/active_record_extended/query_methods/inet.rb', line 43 def inet_contained_within_or_equals(opts, *rest) substitute_comparisons(opts, rest, Arel::Nodes::Inet::ContainedWithinEquals, "inet_contained_within_or_equals") end |
#inet_contains(opts, *rest) ⇒ Object
Strictly finds records that contain a submask and the supplied IP address falls within its range.
Column(inet) >>= “127.0.0.1”
User.where.inet_contained_within_or_equals(ip: “127.0.255.255”)
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" >> '127.0.255.255'"
User.where.inet_contained_within_or_equals(ip: IPAddr.new(“127.0.0.255”))
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" >> '127.0.0.255/32'"
77 78 79 |
# File 'lib/active_record_extended/query_methods/inet.rb', line 77 def inet_contains(opts, *rest) substitute_comparisons(opts, rest, Arel::Nodes::Contains, "inet_contains") end |
#inet_contains_or_equals(opts, *rest) ⇒ Object
Finds records that contain a submask and the supplied IP address falls within its range.
Column(inet) >>= “127.0.0.1/24”
User.where.inet_contained_within_or_equals(ip: “127.0.255.255”)
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" >>= '127.0.255.255'"
User.where.inet_contained_within_or_equals(ip: IPAddr.new(“127.0.0.255”))
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" >>= '127.0.0.255/32'"
63 64 65 |
# File 'lib/active_record_extended/query_methods/inet.rb', line 63 def inet_contains_or_equals(opts, *rest) substitute_comparisons(opts, rest, Arel::Nodes::Inet::ContainsEquals, "inet_contains_or_equals") end |
#inet_contains_or_is_contained_within(opts, *rest) ⇒ Object
This method is a combination of ‘inet_contains` and `inet_contained_within`
Finds records that are contained within a given submask. And will also find records where their submask is also contains a given IP or IP submask.
Column(inet) && “127.0.0.1/28”
User.where.inet_contains_or_is_contained_by(ip: “127.0.255.255/28”)
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" && '127.0.255.255/28'"
User.where.inet_contains_or_is_contained_by(ip: IPAddr.new(“127.0.0.255”))
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"ip\" && '127.0.0.255/32'"
94 95 96 97 |
# File 'lib/active_record_extended/query_methods/inet.rb', line 94 def inet_contains_or_is_contained_within(opts, *rest) substitute_comparisons(opts, rest, Arel::Nodes::Inet::ContainsOrContainedWithin, "inet_contains_or_is_contained_within") end |