brauser 3.3.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -0
  3. data/.travis-gemfile +4 -5
  4. data/.travis.yml +2 -2
  5. data/CHANGELOG.md +4 -0
  6. data/Gemfile +7 -8
  7. data/README.md +31 -95
  8. data/Rakefile +0 -1
  9. data/brauser.gemspec +4 -4
  10. data/default_definitions/browsers.rb +50 -0
  11. data/default_definitions/languages.rb +118 -0
  12. data/default_definitions/platforms.rb +24 -0
  13. data/doc/Brauser.html +6 -6
  14. data/doc/Brauser/Browser.html +3867 -580
  15. data/doc/Brauser/Definitions.html +537 -0
  16. data/doc/Brauser/Definitions/Base.html +342 -0
  17. data/doc/Brauser/Definitions/Browser.html +1047 -0
  18. data/doc/Brauser/Definitions/Language.html +496 -0
  19. data/doc/Brauser/Definitions/Platform.html +686 -0
  20. data/doc/Brauser/Hooks.html +2 -2
  21. data/doc/Brauser/Hooks/RubyOnRails.html +9 -9
  22. data/doc/Brauser/Parser.html +513 -0
  23. data/doc/Brauser/Value.html +601 -0
  24. data/doc/Brauser/Version.html +5 -5
  25. data/doc/_index.html +25 -108
  26. data/doc/class_list.html +1 -1
  27. data/doc/file.README.html +33 -97
  28. data/doc/index.html +33 -97
  29. data/doc/method_list.html +72 -120
  30. data/doc/top-level-namespace.html +2 -2
  31. data/lib/brauser.rb +13 -15
  32. data/lib/brauser/browser.rb +195 -66
  33. data/lib/brauser/definitions/base.rb +71 -0
  34. data/lib/brauser/definitions/browser.rb +80 -0
  35. data/lib/brauser/definitions/language.rb +29 -0
  36. data/lib/brauser/definitions/platform.rb +42 -0
  37. data/lib/brauser/hooks.rb +1 -2
  38. data/lib/brauser/parser.rb +47 -0
  39. data/lib/brauser/value.rb +39 -0
  40. data/lib/brauser/version.rb +3 -4
  41. data/spec/brauser/browser_spec.rb +73 -564
  42. data/spec/brauser/default_definitions_spec.rb +129 -0
  43. data/spec/brauser/definitions/base_spec.rb +48 -0
  44. data/spec/brauser/definitions/browser_spec.rb +47 -0
  45. data/spec/brauser/definitions/language_spec.rb +18 -0
  46. data/spec/brauser/definitions/platform_spec.rb +36 -0
  47. data/spec/brauser/hooks_spec.rb +5 -6
  48. data/spec/brauser/parser_spec.rb +31 -0
  49. data/spec/brauser/value_spec.rb +34 -0
  50. data/spec/coverage_helper.rb +0 -1
  51. data/spec/spec_helper.rb +0 -1
  52. metadata +50 -23
  53. data/lib/brauser/browseable/attributes.rb +0 -95
  54. data/lib/brauser/browseable/general.rb +0 -104
  55. data/lib/brauser/browseable/parsing.rb +0 -127
  56. data/lib/brauser/browseable/partial_querying.rb +0 -116
  57. data/lib/brauser/browseable/querying.rb +0 -63
  58. data/lib/brauser/browseable/register.rb +0 -73
  59. data/lib/brauser/definition.rb +0 -80
  60. data/lib/brauser/definitions/browsers.rb +0 -68
  61. data/lib/brauser/definitions/languages.rb +0 -130
  62. data/lib/brauser/definitions/platforms.rb +0 -30
  63. data/lib/brauser/query.rb +0 -36
  64. data/lib/brauser/queryable/chainers.rb +0 -56
  65. data/lib/brauser/queryable/queries.rb +0 -60
  66. data/spec/brauser/definition_spec.rb +0 -39
  67. data/spec/brauser/query_spec.rb +0 -111
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0c199ed2bb20255c6bfe075a1a0b651dc1d3b7ec
4
- data.tar.gz: f9c6e8d66a881d7ccbae6c8bcd4c6e520f022464
3
+ metadata.gz: 03c10b60645b3b120212b7d61075a8329d18f03c
4
+ data.tar.gz: afd44f3b7ce20de1091793717f2bd082ceb5c6c6
5
5
  SHA512:
6
- metadata.gz: 709a5a19e9a881bc10000ce9b7d41a91785ae4158d72b42a94aae0e96b270bc0530e7996551a8a18f236dbd6a47e4858c81b7df4fd696917da79022f80156ff4
7
- data.tar.gz: 02435f0e763bec43834ec856e6072f3e1baf371d00036ed745d10a952ee31e0fac8bb70231baa605f7f912a613eb90dc6c92aad4cf3b7373a92ca422d19af19f
6
+ metadata.gz: 34f1456d25afba54aa403ac3fb4fbce38d8517818fe61d6d9db67467ff82b90c8736fdb76be01c8fefefdf6bfc49bb0e3c8308e17af9789e7ed31bd6fd8fa23d
7
+ data.tar.gz: 0ec85e1dcb743b926ad46aeaa71500d55402a45998618c1bd2608d407ba71341b26235e2a6eda481daef191c26338e2630916bc8caf8005f2759d0f0a79f3b54
@@ -10,12 +10,18 @@ BracesAroundHashParameters:
10
10
  CyclomaticComplexity:
11
11
  Max: 15
12
12
 
13
+ EachWithObject:
14
+ Enabled: false
15
+
13
16
  IndentationConsistency:
14
17
  Enabled: false
15
18
 
16
19
  LineLength:
17
20
  Max: 160
18
21
 
22
+ Metrics/ClassLength:
23
+ Max: 150
24
+
19
25
  ParameterLists:
20
26
  Max: 6
21
27
 
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  #
3
2
  # This file is part of the brauser gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
4
3
  # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
@@ -9,7 +8,7 @@ source "http://rubygems.org"
9
8
  gemspec
10
9
 
11
10
  # Testing
12
- gem "rspec", "~> 2.14.1"
13
- gem "rake", "~> 10.3.1"
14
- gem "simplecov", ">= 0.8.2"
15
- gem "coveralls", ">= 0.7.0", require: false
11
+ gem "rspec", "~> 3.1"
12
+ gem "rake", "~> 10.3"
13
+ gem "simplecov", ">= 0.9"
14
+ gem "coveralls", ">= 0.7", require: false
@@ -1,8 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.1.2
4
- - jruby-head
5
- - rbx-2.2.6
4
+ #- jruby-head
5
+ #- rbx-2.2.7
6
6
  script: bundle exec rake spec:coverage
7
7
  gemfile: .travis-gemfile
8
8
  notifications:
@@ -1,3 +1,7 @@
1
+ ### 4.0.0 / 2014-09-29
2
+
3
+ * Full rewrite. See the README.md for more informations.
4
+
1
5
  ### 3.3.2 / 2014-05-22
2
6
 
3
7
  * Added definitions for Microsoft Internet Explorer 11.
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  #
3
2
  # This file is part of the brauser gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
4
3
  # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
@@ -9,13 +8,13 @@ source "http://rubygems.org"
9
8
  gemspec
10
9
 
11
10
  # Testing
12
- gem "rspec", "~> 2.14.1"
13
- gem "rake", "~> 10.3.1"
11
+ gem "rspec", "~> 3.1"
12
+ gem "rake", "~> 10.3"
14
13
 
15
14
  # Documentation
16
- gem "simplecov", ">= 0.8.2"
17
- gem "coveralls", ">= 0.7.0", require: false
15
+ gem "simplecov", ">= 0.9"
16
+ gem "coveralls", ">= 0.7", require: false
18
17
  gem "pry", ">= 0"
19
- gem "yard", ">= 0.8.7"
20
- gem "kramdown", ">= 1.3.3"
21
- gem "github-markup", ">= 1.2.1"
18
+ gem "yard", ">= 0.8"
19
+ gem "kramdown", ">= 1.4"
20
+ gem "github-markup", ">= 1.3"
data/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  A framework agnostic browser detection and querying helper.
11
11
 
12
- http://sw.cow.tc/brauser
12
+ http://sw.cowtech.it/brauser
13
13
 
14
14
  http://rdoc.info/gems/brauser
15
15
 
@@ -19,7 +19,7 @@ Brauser is a framework agnostic helper that helps you in targeting your applicat
19
19
 
20
20
  ### Installation
21
21
 
22
- Brauser comes with a Ruby on Rails hooks (more framework to follow), so for Rails you have just to add this to your Gemfile:
22
+ Brauser comes with a Ruby on Rails hooks (more frameworks to follow), so for Rails you have just to add this to your Gemfile:
23
23
 
24
24
  ```ruby
25
25
  gem "brauser"
@@ -39,11 +39,15 @@ For the rest of this document, let's assume you use Chrome 1.2.3 on Mac OS X.
39
39
 
40
40
  ### Getting browser information
41
41
 
42
- Once you instantiate the browser, you can query the browser about `name`, `version` and `platform`. You can also get readable name and platforms via `readable_name` and `platform_name`.
42
+ Once you instantiate the browser, you can query the browser about `name`, `version`, `platform`, `languages`.
43
43
 
44
- The version is returned as a `String`, and you can use `Brauser::Browser.compare_versions` to compare against another version.
44
+ You can also get readable name and platforms via `human_name`, `human_platform`, `human_languages`.
45
45
 
46
- The name and the platform are returned as `Symbol` and can be in the range of names and engines registered via `register_browser`, `register_default_browsers`, `register_platform` and `register_default_platforms`.
46
+ The version is handle via the [versionomy](http://dazuma.github.io/versionomy/) gem.
47
+
48
+ The name and the platform are returned as `Symbol` and can be in the range of names and engines registered via `Brauser::Definitions.register`.
49
+
50
+ The languages are returned as an hash where values are the priorities.
47
51
 
48
52
  Also, you can get global information using `browser.to_s` or `browser.classes`. This will return an array or a string already formatted to be used in your views to scope your CSS.
49
53
 
@@ -65,126 +69,58 @@ And thus scoping your CSS will be trivial.
65
69
 
66
70
  ### Querying the browser
67
71
 
68
- Brauser supports querying about name (method `is`), version (method `v`), platform (method `on`) and language (method `accepts`).
72
+ Brauser supports querying about name, version, platform, language.
69
73
 
70
- The `is` method queries about a browser name (or a list of names) and optionally by version and platform:
74
+ name and platform support querying via the `==` operator, which supports a single value or a list of values.
71
75
 
72
76
  ```ruby
73
77
  # We talk about the ending ? later.
74
- browser.is?(:chrome)
75
- # => true
76
- browser.is?([:msie, :firefox])
77
- # => false
78
- browser.is?(:chrome, {lt: "2"}, :osx)
78
+ browser.name == :chrome
79
79
  # => true
80
- browser.is?(:chrome, ">= 3", :windows)
80
+ browser.name == [:msie, :firefox]
81
81
  # => false
82
82
  ```
83
83
 
84
- The method `is` is the only which supports direct internal propagation to version and platform.
85
-
86
- The `version` (short: `v`) method queries about the browser version. You can specify the comparison with an hash or a little expression.
87
-
88
- In the case of hash, the syntax is `{:operator => value}`, where `:operator` is one of `[:lt, :lte, :eq, :gte, :gt]` and value can be a Float or a String.
89
-
90
- In the case of expression, the syntax is `OPERATOR VALUE && ..`, where `OPERATOR` is one of `["<", "<=", "=", "==", ">=", ">"]` and value specifies the version.
91
-
92
- Examples:
84
+ The version is delegated to the versionomy gem. You can use comparison operator. The right hand part must be either a `String` or a `Versionomy::Value`.
93
85
 
94
86
  ```ruby
95
- # Those two methods are equivalent.
96
- browser.version?({lt: "2", gt: 1})
97
- # => true
98
- browser.is?("< 2 && > 1")
87
+ browser.version == "3"
88
+ # => false
89
+ browser.version >= "2"
99
90
  # => true
100
91
  ```
101
92
 
102
- The method `on` check is the current browser in one of the specified platform. The platform should be passed as `Symbol`.
93
+ The language support querying via the `accepts?` method, which supports a single value or a list of values.
103
94
 
104
95
  ```ruby
105
- browser.on?(:osx)
96
+ browser.accepts?(:it)
106
97
  # => true
107
- browser.on?([:windows, :ios])
108
- # => false
109
- ```
110
-
111
- At the end, the method `accepts` checks if the browser accepts one of the specified languages. Languages should be passed as language codes in `String`.
112
-
113
- ```ruby
114
- browser.accepts?("en")
98
+ browser.accepts?(:it, :en)
115
99
  # => true
116
- browser.accepts?(["de", "es"])
117
- # => false
118
100
  ```
119
101
 
120
- Every query method exists in two forms: the concatenation one (the method name doesn't end with a `?`.
121
-
122
- The former return a `Query` object, which supports the same query method of the browser and thus enables concatenation.
123
-
124
- The latter return a boolean object, and it's equivalent to calling `result` on the query after concatenation.
125
-
126
- Ideally, you should use the `?` version to end the query and fetch the result.
102
+ All the querying can be combined in the single method `is?`:
127
103
 
128
104
  ```ruby
129
- # These expressions are equivalent.
130
- browser.is?(:chrome, {lt: "2"}, :osx)
131
- browser.is(:chrome, {lt: "2"}, :osx).result
132
- browser.is(:chrome).version({lt: "2"}).on?(:osx)
133
- browser.is(:chrome).version({lt: "2"}).on(:osx).result
105
+ browser.is?(name: :chrome, version: ">= 4", platform: [:osx, :windows], languages: :it)
106
+ # => false
134
107
  ```
135
108
 
136
- Finally, Brauser support dynamic query operator to write simple queries without using concatenation.
109
+ Name, platform and languages can be either symbols or array of symbols. Version must be a query in the form is `OPERATOR VALUE && ..`,
110
+ where `OPERATOR` is one of `["<", "<=", "=", "==", ">=", ">"]` and value specifies the version.
137
111
 
138
- You construct the method just using operator specified above, separating method name and method arguments with a `_`.
112
+ ### Adding new browsers, platform and languages.
139
113
 
140
- For the version, use the expression form but use symbol operators and replace `.` with `_` and `&&` with `and`.
114
+ To add new browsers, simply call `::Brauser::Definitions.register(:browser, :id, ...)`.
141
115
 
142
- Example:
143
-
144
- ```ruby
145
- # These expressions are equivalent.
146
- browser.is(:chrome).version("< 2 && > 1.2").on(:osx).result
147
- browser.is_chrome_v_lt_2_and_gt_1_2_on_osx.result
148
-
149
- # These expressions are equivalent.
150
- browser.is(:chrome).version("< 2 && > 1.2").on?(:osx)
151
- browser.is_chrome_v_lt_2_and_gt_1_2_on_osx?
152
- ```
153
-
154
- ### Adding new browsers
155
-
156
- To add new browsers, simply call `::Brauser::Browser.add(:browsers, ...)`.
157
-
158
- This methods accepts a single instance or an array of instances of the `::Brauser::Definition` class.
116
+ The first argument can be `:browser`, `:platform` or `:language`.
117
+ The second argument is the id of the definition.
118
+ The remaining argument will be passed to the definition constructor.
159
119
 
160
120
  For example, for Google Chrome the call should be:
161
121
 
162
122
  ```ruby
163
- Brauser::Browsers.add(:browsers, ::Brauser::Definition.new(:chrome, "Chrome", /((chrome)|(chromium))/i, /(.+Chrom[a-z]+\/)([a-z0-9.]+)/i))
164
- ```
165
-
166
- ### Adding new platforms
167
-
168
- To add new platforms, simply call `::Brauser::Browser.add(:platforms, ...)`.
169
-
170
- This methods accepts a single instance or an array of instances of the `::Brauser::Definition` class.
171
-
172
- For example, for Mac OS X the call should be:
173
-
174
- ```ruby
175
- Brauser::Browsers.add(:platforms, ::Brauser::Definition.new(:osx, /mac|macintosh|mac os x/i, "Apple MacOS X"))
176
- ```
177
-
178
- ### Adding new languages
179
-
180
- To add new languages, simply call `::Brauser::Browser.add(:languages, ...)`.
181
-
182
- This methods accepts a single instance or an array of instances of the `::Brauser::Definition` class.
183
-
184
- For example, for Italian the call should be:
185
-
186
- ```ruby
187
- Brauser::Browsers.add(:languages, ::Brauser::Definition.new(:it, "Italian"))
123
+ Brauser::Definitions.register(:browsers, :chrome, "Chrome", /((chrome)|(chromium))/i, /(.+Chrom[a-z]+\/)([a-z0-9.]+)/i)
188
124
  ```
189
125
 
190
126
  ## Contributing to brauser
data/Rakefile CHANGED
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  #
3
2
  # This file is part of the brauser gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
4
3
  # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  #
3
2
  # This file is part of the brauser gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
4
3
  # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
@@ -9,7 +8,7 @@ require File.expand_path('../lib/brauser/version', __FILE__)
9
8
  Gem::Specification.new do |gem|
10
9
  gem.name = "brauser"
11
10
  gem.version = Brauser::Version::STRING
12
- gem.homepage = "http://sw.cow.tc/brauser"
11
+ gem.homepage = "http://sw.cowtech.it/brauser"
13
12
  gem.summary = %q{A framework agnostic browser detection and querying helper.}
14
13
  gem.description = %q{A framework agnostic browser detection and querying helper.}
15
14
  gem.rubyforge_project = "brauser"
@@ -23,7 +22,8 @@ Gem::Specification.new do |gem|
23
22
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
24
23
  gem.require_paths = ["lib"]
25
24
 
26
- gem.required_ruby_version = ">= 1.9.3"
25
+ gem.required_ruby_version = ">= 2.1.0"
27
26
 
28
- gem.add_dependency("lazier", "~> 3.5.5")
27
+ gem.add_dependency("lazier", "~> 4.0")
28
+ gem.add_dependency("versionomy", "~> 0.4")
29
29
  end
@@ -0,0 +1,50 @@
1
+ #
2
+ # This file is part of the brauser gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
3
+ # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
4
+ #
5
+
6
+ # Mobile
7
+ Brauser::Definitions.register(:browser, :coremedia, "Apple CoreMedia", /coremedia/i, /.+CoreMedia v([a-z0-9.]+)/i)
8
+ Brauser::Definitions.register(:browser, :opera_mobile, "Opera Mobile", /opera mobi/i, /.+Opera Mobi.+((.+Opera )|(Version\/))([a-z0-9.]+)/i)
9
+ Brauser::Definitions.register(:browser, :opera, "Opera", /(opera)|(opr)/i, ->(header) {
10
+ pattern = header !~ /wii/i ? /((.+Opera )|(OPR\/)|(Version\/))(?<version>[a-z0-9.]+)/i : /(.+Nintendo Wii; U; ; )(?<version>[a-z0-9.]+)/i
11
+ mo = pattern.match(header)
12
+ mo ? mo["version"] : nil
13
+ })
14
+ Brauser::Definitions.register(:browser, :android, "Android", /android/i, /(.+Android )([a-z0-9.]+)/i)
15
+ Brauser::Definitions.register(:browser, :blackberry, "RIM BlackBerry", /blackberry/i, /(.+Version\/)([a-z0-9.]+)/i)
16
+ Brauser::Definitions.register(:browser, :kindle, "Amazon Kindle", /(kindle)/i, /(.+(Kindle|Silk)\/)([a-z0-9.]+)/i)
17
+ Brauser::Definitions.register(:browser, :psp, "Sony Playstation Portable", /psp/i, /(.+PlayStation Portable\); )([a-z0-9.]+)/i)
18
+ Brauser::Definitions.register(:browser, :ps3, "Sony Playstation 3", /playstation 3/i, /(.+PLAYSTATION 3; )([a-z0-9.]+)/i)
19
+ Brauser::Definitions.register(:browser, :windows_phone, "Microsoft Windows Phone", /windows phone/i, /(.+IEMobile\/)([a-z0-9.]+)/i)
20
+ Brauser::Definitions.register(:browser, :wii, "Nintendo Wii", /nintendo wii/, /(.+Nintendo Wii; U; ; )([a-z0-9.]+)/i)
21
+ Brauser::Definitions.register(:browser, :chrome_ios, "Chrome iOS", /crios/i, /(.+CriOS\/)([a-z0-9.]+)/i)
22
+ Brauser::Definitions.register(:browser, :ipod, "Apple iPod", /ipod/i, /(.+Version\/)([a-z0-9.]+)/i)
23
+ Brauser::Definitions.register(:browser, :iphone, "Apple iPhone", /iphone/i, /(.+Version\/)([a-z0-9.]+)/i)
24
+ Brauser::Definitions.register(:browser, :ipad, "Apple iPad", /ipad/i, /(.+Version\/)([a-z0-9.]+)/i)
25
+ Brauser::Definitions.register(:browser, :mobile, "Other Mobile Browser", /(mobile|symbian|midp|windows ce)/i, /.+\/([a-z0-9.]+)/i)
26
+
27
+ # Major desktop
28
+ Brauser::Definitions.register(:browser, :chrome, "Google Chrome", ->(header) {
29
+ ::Brauser::Parser.disambiguate(header, /((chrome)|(chromium))/i, /opr\//i)
30
+ }, /(.+Chrom[a-z]+\/)([a-z0-9.]+)/i)
31
+ Brauser::Definitions.register(:browser, :netscape, "Netscape Navigator", /(netscape|navigator)\//i, /((Netscape|Navigator)\/)([a-z0-9.]+)/i)
32
+ Brauser::Definitions.register(:browser, :firefox, "Mozilla Firefox", /firefox/i, /(.+Firefox\/)([a-z0-9.]+)/i)
33
+ Brauser::Definitions.register(:browser, :safari, "Apple Safari", ->(header) {
34
+ ::Brauser::Parser.disambiguate(header, /safari/i, /((chrome)|(chromium)|(crios)|(opr))/i)
35
+ }, /(.+Version\/)([a-z0-9.]+)/i)
36
+
37
+ # Microsoft Internet Explorer
38
+ Brauser::Definitions.register(:browser, :msie_compatibility, "Microsoft Internet Explorer (Compatibility View)", /(msie 7\.0).+(trident)/i, ->(header) {
39
+ version = /(.+trident\/)(?<version>[a-z0-9.]+)/i.match(header)["version"].split(".")
40
+ version[0] = version[0].to_integer + 4
41
+ version.join(".")
42
+ })
43
+ Brauser::Definitions.register(:browser, :msie, "Microsoft Internet Explorer", ->(header) {
44
+ ::Brauser::Parser.disambiguate(header, /trident|msie/i, /opera/i)
45
+ }, /(.+MSIE |trident.+rv:)([a-z0-9.]+)/i)
46
+
47
+ # Minor desktop
48
+ Brauser::Definitions.register(:browser, :quicktime, "Apple QuickTime", /quicktime/i, /(.+((QuickTime\/)|(qtver=)))([a-z0-9.]+)/i)
49
+ Brauser::Definitions.register(:browser, :webkit, "WebKit Browser", /webkit/i, /(.+WebKit\/)([a-z0-9.]+)/i)
50
+ Brauser::Definitions.register(:browser, :gecko, "Gecko Browser", /gecko/i, /(.+rv:|Gecko\/)([a-z0-9.]+)/i)
@@ -0,0 +1,118 @@
1
+ #
2
+ # This file is part of the brauser gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
3
+ # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
4
+ #
5
+
6
+ Brauser::Definitions.register(:language, "af", "Afrikaans")
7
+ Brauser::Definitions.register(:language, "sq", "Albanian")
8
+ Brauser::Definitions.register(:language, "eu", "Basque")
9
+ Brauser::Definitions.register(:language, "bg", "Bulgarian")
10
+ Brauser::Definitions.register(:language, "be", "Byelorussian")
11
+ Brauser::Definitions.register(:language, "ca", "Catalan")
12
+ Brauser::Definitions.register(:language, "zh", "Chinese")
13
+ Brauser::Definitions.register(:language, "zh-cn", "Chinese/China")
14
+ Brauser::Definitions.register(:language, "zh-tw", "Chinese/Taiwan")
15
+ Brauser::Definitions.register(:language, "zh-hk", "Chinese/Hong Kong")
16
+ Brauser::Definitions.register(:language, "zh-sg", "Chinese/singapore")
17
+ Brauser::Definitions.register(:language, "hr", "Croatian")
18
+ Brauser::Definitions.register(:language, "cs", "Czech")
19
+ Brauser::Definitions.register(:language, "da", "Danish")
20
+ Brauser::Definitions.register(:language, "nl", "Dutch")
21
+ Brauser::Definitions.register(:language, "nl-nl", "Dutch/Netherlands")
22
+ Brauser::Definitions.register(:language, "nl-be", "Dutch/Belgium")
23
+ Brauser::Definitions.register(:language, "en", "English")
24
+ Brauser::Definitions.register(:language, "en-gb", "English/United Kingdom")
25
+ Brauser::Definitions.register(:language, "en-us", "English/United States")
26
+ Brauser::Definitions.register(:language, "en-au", "English/Australian")
27
+ Brauser::Definitions.register(:language, "en-ca", "English/Canada")
28
+ Brauser::Definitions.register(:language, "en-nz", "English/New Zealand")
29
+ Brauser::Definitions.register(:language, "en-ie", "English/Ireland")
30
+ Brauser::Definitions.register(:language, "en-za", "English/South Africa")
31
+ Brauser::Definitions.register(:language, "en-jm", "English/Jamaica")
32
+ Brauser::Definitions.register(:language, "en-bz", "English/Belize")
33
+ Brauser::Definitions.register(:language, "en-tt", "English/Trinidad")
34
+ Brauser::Definitions.register(:language, "et", "Estonian")
35
+ Brauser::Definitions.register(:language, "fo", "Faeroese")
36
+ Brauser::Definitions.register(:language, "fa", "Farsi")
37
+ Brauser::Definitions.register(:language, "fi", "Finnish")
38
+ Brauser::Definitions.register(:language, "fr", "French")
39
+ Brauser::Definitions.register(:language, "fr-be", "French/Belgium")
40
+ Brauser::Definitions.register(:language, "fr-fr", "French/France")
41
+ Brauser::Definitions.register(:language, "fr-ch", "French/Switzerland")
42
+ Brauser::Definitions.register(:language, "fr-ca", "French/Canada")
43
+ Brauser::Definitions.register(:language, "fr-lu", "French/Luxembourg")
44
+ Brauser::Definitions.register(:language, "gd", "Gaelic")
45
+ Brauser::Definitions.register(:language, "gl", "Galician")
46
+ Brauser::Definitions.register(:language, "de", "German")
47
+ Brauser::Definitions.register(:language, "de-at", "German/Austria")
48
+ Brauser::Definitions.register(:language, "de-de", "German/Germany")
49
+ Brauser::Definitions.register(:language, "de-ch", "German/Switzerland")
50
+ Brauser::Definitions.register(:language, "de-lu", "German/Luxembourg")
51
+ Brauser::Definitions.register(:language, "de-li", "German/Liechtenstein")
52
+ Brauser::Definitions.register(:language, "el", "Greek")
53
+ Brauser::Definitions.register(:language, "he", "Hebrew")
54
+ Brauser::Definitions.register(:language, "he-il", "Hebrew/Israel")
55
+ Brauser::Definitions.register(:language, "hi", "Hindi")
56
+ Brauser::Definitions.register(:language, "hu", "Hungarian")
57
+ Brauser::Definitions.register(:language, "ie-ee", "Internet Explorer/Easter Egg")
58
+ Brauser::Definitions.register(:language, "is", "Icelandic")
59
+ Brauser::Definitions.register(:language, "id", "Indonesian")
60
+ Brauser::Definitions.register(:language, "in", "Indonesian")
61
+ Brauser::Definitions.register(:language, "ga", "Irish")
62
+ Brauser::Definitions.register(:language, "it", "Italian")
63
+ Brauser::Definitions.register(:language, "it-ch", "Italian/ Switzerland")
64
+ Brauser::Definitions.register(:language, "ja", "Japanese")
65
+ Brauser::Definitions.register(:language, "km", "Khmer")
66
+ Brauser::Definitions.register(:language, "km-kh", "Khmer/Cambodia")
67
+ Brauser::Definitions.register(:language, "ko", "Korean")
68
+ Brauser::Definitions.register(:language, "lv", "Latvian")
69
+ Brauser::Definitions.register(:language, "lt", "Lithuanian")
70
+ Brauser::Definitions.register(:language, "mk", "Macedonian")
71
+ Brauser::Definitions.register(:language, "ms", "Malaysian")
72
+ Brauser::Definitions.register(:language, "mt", "Maltese")
73
+ Brauser::Definitions.register(:language, "no", "Norwegian")
74
+ Brauser::Definitions.register(:language, "pl", "Polish")
75
+ Brauser::Definitions.register(:language, "pt", "Portuguese")
76
+ Brauser::Definitions.register(:language, "pt-br", "Portuguese/Brazil")
77
+ Brauser::Definitions.register(:language, "rm", "Rhaeto-Romanic")
78
+ Brauser::Definitions.register(:language, "ro", "Romanian")
79
+ Brauser::Definitions.register(:language, "ro-mo", "Romanian/Moldavia")
80
+ Brauser::Definitions.register(:language, "ru", "Russian")
81
+ Brauser::Definitions.register(:language, "ru-mo", "Russian /Moldavia")
82
+ Brauser::Definitions.register(:language, "sr", "Serbian")
83
+ Brauser::Definitions.register(:language, "sk", "Slovack")
84
+ Brauser::Definitions.register(:language, "sl", "Slovenian")
85
+ Brauser::Definitions.register(:language, "sb", "Sorbian")
86
+ Brauser::Definitions.register(:language, "es", "Spanish")
87
+ Brauser::Definitions.register(:language, "es-do", "Spanish")
88
+ Brauser::Definitions.register(:language, "es-ar", "Spanish/Argentina")
89
+ Brauser::Definitions.register(:language, "es-co", "Spanish/Colombia")
90
+ Brauser::Definitions.register(:language, "es-mx", "Spanish/Mexico")
91
+ Brauser::Definitions.register(:language, "es-es", "Spanish/Spain")
92
+ Brauser::Definitions.register(:language, "es-gt", "Spanish/Guatemala")
93
+ Brauser::Definitions.register(:language, "es-cr", "Spanish/Costa Rica")
94
+ Brauser::Definitions.register(:language, "es-pa", "Spanish/Panama")
95
+ Brauser::Definitions.register(:language, "es-ve", "Spanish/Venezuela")
96
+ Brauser::Definitions.register(:language, "es-pe", "Spanish/Peru")
97
+ Brauser::Definitions.register(:language, "es-ec", "Spanish/Ecuador")
98
+ Brauser::Definitions.register(:language, "es-cl", "Spanish/Chile")
99
+ Brauser::Definitions.register(:language, "es-uy", "Spanish/Uruguay")
100
+ Brauser::Definitions.register(:language, "es-py", "Spanish/Paraguay")
101
+ Brauser::Definitions.register(:language, "es-bo", "Spanish/Bolivia")
102
+ Brauser::Definitions.register(:language, "es-sv", "Spanish/El salvador")
103
+ Brauser::Definitions.register(:language, "es-hn", "Spanish/Honduras")
104
+ Brauser::Definitions.register(:language, "es-ni", "Spanish/Nicaragua")
105
+ Brauser::Definitions.register(:language, "es-pr", "Spanish/Puerto Rico")
106
+ Brauser::Definitions.register(:language, "sx", "Sutu")
107
+ Brauser::Definitions.register(:language, "sv", "Swedish")
108
+ Brauser::Definitions.register(:language, "sv-se", "Swedish/Sweden")
109
+ Brauser::Definitions.register(:language, "sv-fi", "Swedish/Finland")
110
+ Brauser::Definitions.register(:language, "ts", "Thai")
111
+ Brauser::Definitions.register(:language, "tn", "Tswana")
112
+ Brauser::Definitions.register(:language, "tr", "Turkish")
113
+ Brauser::Definitions.register(:language, "uk", "Ukrainian")
114
+ Brauser::Definitions.register(:language, "ur", "Urdu")
115
+ Brauser::Definitions.register(:language, "vi", "Vietnamese")
116
+ Brauser::Definitions.register(:language, "xh", "Xshosa")
117
+ Brauser::Definitions.register(:language, "ji", "Yiddish")
118
+ Brauser::Definitions.register(:language, "zu", "Zulu")