Module: Brauser::Browseable::PartialQuerying

Included in:
Brauser::Browser
Defined in:
lib/brauser/browseable/partial_querying.rb

Overview

Methods to query with chaining.

Instance Method Summary (collapse)

Instance Method Details

- (Query) accepts(langs = [])

Check if the browser accepts the specified languages.

Parameters:

  • langs (String|Array) (defaults to: [])

    A list of languages to match against.

Returns:

  • (Query)

    A query which can evaluated for concatenation or result.



63
64
65
66
67
# File 'lib/brauser/browseable/partial_querying.rb', line 63

def accepts(langs = [])
  parse_accept_language(@accept_language) unless @languages

  ::Brauser::Query.new(self, (@languages & langs.ensure_array(nil, true, true, true, :to_s)).present?)
end

- (Query) is(names = [], versions = {}, platforms = [])

Checks if the browser is a specific name and optionally of a specific version and platform.

Parameters:

  • names (Symbol|Array) (defaults to: [])

    A list of specific names to match. Also, this meta-names are supported: :capable and :tablet.

  • versions (String|Hash) (defaults to: {})

    A string in the form operator version && ... (example: >= 7 && < 4) or an hash with specific version to match against, in form {:operator => version}, where operator is one of :lt, :lte, :eq, :gt, :gte.

  • platforms (Symbol|Array) (defaults to: [])

    A list of specific platform to match. Valid values are all those possible for the platform attribute.

Returns:

  • (Query)

    A query which can evaluated for concatenation or result.

See Also:

  • #version?
  • #on?


22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/brauser/browseable/partial_querying.rb', line 22

def is(names = [], versions = {}, platforms = [])
  parse_agent(@agent) unless @name

  names = adjust_names(names)
  versions = parse_versions_query(versions)
  platforms = platforms.ensure_array

  ::Brauser::Query.new(self,
                       (names.blank? || (names.include?(@name) && check_capable(names))) &&
                         (versions.blank? || version?(versions)) &&
                         (platforms.blank? || on?(platforms))
  )
end

- (Query) on(platforms = [])

Check if the browser is on a specific platform.

Parameters:

  • platforms (Symbol|Array) (defaults to: [])

    A list of specific platform to match.

Returns:

  • (Query)

    A query which can evaluated for concatenation or result.



53
54
55
56
57
# File 'lib/brauser/browseable/partial_querying.rb', line 53

def on(platforms = [])
  parse_agent(@agent) unless @platform

  ::Brauser::Query.new(self, platforms.blank? || platforms.ensure_array(nil, true, true, true, :to_sym).include?(@platform))
end

- (Query) version_equals_to(versions = {}) Also known as: v

Checks if the browser is a specific version.

Parameters:

  • versions (String|Hash) (defaults to: {})

    A string in the form operator version && ... (example: >= 7 && < 4) or an hash with specific version to match against, in form {:operator => version}, where operator is one of :lt, :lte, :eq, :gt, :gte.

Returns:

  • (Query)

    A query which can evaluated for concatenation or result.



41
42
43
44
45
46
# File 'lib/brauser/browseable/partial_querying.rb', line 41

def version_equals_to(versions = {})
  parse_agent(@agent) unless @version
  versions = versions.is_a?(String) ? parse_versions_query(versions) : versions.ensure_hash

  ::Brauser::Query.new(self, versions.all? { |operator, value| Brauser::Browser.compare_versions(@version, operator, value) })
end