brauser 3.3.2 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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")