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
@@ -119,7 +119,7 @@
119
119
 
120
120
  </div>
121
121
  </dt>
122
- <dd><pre class="code"><span class='int'>3</span></pre></dd>
122
+ <dd><pre class="code"><span class='int'>4</span></pre></dd>
123
123
 
124
124
  <dt id="MINOR-constant" class="">MINOR =
125
125
  <div class="docstring">
@@ -134,7 +134,7 @@
134
134
 
135
135
  </div>
136
136
  </dt>
137
- <dd><pre class="code"><span class='int'>3</span></pre></dd>
137
+ <dd><pre class="code"><span class='int'>0</span></pre></dd>
138
138
 
139
139
  <dt id="PATCH-constant" class="">PATCH =
140
140
  <div class="docstring">
@@ -149,7 +149,7 @@
149
149
 
150
150
  </div>
151
151
  </dt>
152
- <dd><pre class="code"><span class='int'>2</span></pre></dd>
152
+ <dd><pre class="code"><span class='int'>0</span></pre></dd>
153
153
 
154
154
  <dt id="STRING-constant" class="">STRING =
155
155
  <div class="docstring">
@@ -180,9 +180,9 @@
180
180
  </div>
181
181
 
182
182
  <div id="footer">
183
- Generated on Thu May 22 12:11:27 2014 by
183
+ Generated on Mon Sep 29 16:43:31 2014 by
184
184
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
185
- 0.8.7.4 (ruby-2.1.2).
185
+ 0.8.7.4 (ruby-2.1.3).
186
186
  </div>
187
187
 
188
188
  </body>
@@ -80,34 +80,19 @@
80
80
  <td valign='top' width="33%">
81
81
 
82
82
 
83
- <ul id="alpha_A" class="alpha">
84
- <li class="letter">A</li>
85
- <ul>
86
-
87
- <li>
88
- <span class='object_link'><a href="Brauser/Browseable/Attributes.html" title="Brauser::Browseable::Attributes (module)">Attributes</a></span>
89
-
90
- <small>(Brauser::Browseable)</small>
91
-
92
- </li>
93
-
94
- </ul>
95
- </ul>
96
-
97
-
98
83
  <ul id="alpha_B" class="alpha">
99
84
  <li class="letter">B</li>
100
85
  <ul>
101
86
 
102
87
  <li>
103
- <span class='object_link'><a href="Brauser.html" title="Brauser (module)">Brauser</a></span>
88
+ <span class='object_link'><a href="Brauser/Definitions/Base.html" title="Brauser::Definitions::Base (class)">Base</a></span>
89
+
90
+ <small>(Brauser::Definitions)</small>
104
91
 
105
92
  </li>
106
93
 
107
94
  <li>
108
- <span class='object_link'><a href="Brauser/Browseable.html" title="Brauser::Browseable (module)">Browseable</a></span>
109
-
110
- <small>(Brauser)</small>
95
+ <span class='object_link'><a href="Brauser.html" title="Brauser (module)">Brauser</a></span>
111
96
 
112
97
  </li>
113
98
 
@@ -118,32 +103,10 @@
118
103
 
119
104
  </li>
120
105
 
121
- </ul>
122
- </ul>
123
-
124
-
125
- <ul id="alpha_C" class="alpha">
126
- <li class="letter">C</li>
127
- <ul>
128
-
129
- <li>
130
- <span class='object_link'><a href="Brauser/Queryable/Chainers.html" title="Brauser::Queryable::Chainers (module)">Chainers</a></span>
131
-
132
- <small>(Brauser::Queryable)</small>
133
-
134
- </li>
135
-
136
- <li>
137
- <span class='object_link'><a href="Brauser/Browseable/General/ClassMethods.html" title="Brauser::Browseable::General::ClassMethods (module)">ClassMethods</a></span>
138
-
139
- <small>(Brauser::Browseable::General)</small>
140
-
141
- </li>
142
-
143
106
  <li>
144
- <span class='object_link'><a href="Brauser/Browseable/Register/ClassMethods.html" title="Brauser::Browseable::Register::ClassMethods (module)">ClassMethods</a></span>
107
+ <span class='object_link'><a href="Brauser/Definitions/Browser.html" title="Brauser::Definitions::Browser (class)">Browser</a></span>
145
108
 
146
- <small>(Brauser::Browseable::Register)</small>
109
+ <small>(Brauser::Definitions)</small>
147
110
 
148
111
  </li>
149
112
 
@@ -156,14 +119,7 @@
156
119
  <ul>
157
120
 
158
121
  <li>
159
- <span class='object_link'><a href="Brauser/Browseable/DefaultDefinitions.html" title="Brauser::Browseable::DefaultDefinitions (module)">DefaultDefinitions</a></span>
160
-
161
- <small>(Brauser::Browseable)</small>
162
-
163
- </li>
164
-
165
- <li>
166
- <span class='object_link'><a href="Brauser/Definition.html" title="Brauser::Definition (class)">Definition</a></span>
122
+ <span class='object_link'><a href="Brauser/Definitions.html" title="Brauser::Definitions (module)">Definitions</a></span>
167
123
 
168
124
  <small>(Brauser)</small>
169
125
 
@@ -173,21 +129,6 @@
173
129
  </ul>
174
130
 
175
131
 
176
- <ul id="alpha_G" class="alpha">
177
- <li class="letter">G</li>
178
- <ul>
179
-
180
- <li>
181
- <span class='object_link'><a href="Brauser/Browseable/General.html" title="Brauser::Browseable::General (module)">General</a></span>
182
-
183
- <small>(Brauser::Browseable)</small>
184
-
185
- </li>
186
-
187
- </ul>
188
- </ul>
189
-
190
-
191
132
  <ul id="alpha_H" class="alpha">
192
133
  <li class="letter">H</li>
193
134
  <ul>
@@ -203,21 +144,14 @@
203
144
  </ul>
204
145
 
205
146
 
206
- <ul id="alpha_P" class="alpha">
207
- <li class="letter">P</li>
147
+ <ul id="alpha_L" class="alpha">
148
+ <li class="letter">L</li>
208
149
  <ul>
209
150
 
210
151
  <li>
211
- <span class='object_link'><a href="Brauser/Browseable/Parsing.html" title="Brauser::Browseable::Parsing (module)">Parsing</a></span>
152
+ <span class='object_link'><a href="Brauser/Definitions/Language.html" title="Brauser::Definitions::Language (class)">Language</a></span>
212
153
 
213
- <small>(Brauser::Browseable)</small>
214
-
215
- </li>
216
-
217
- <li>
218
- <span class='object_link'><a href="Brauser/Browseable/PartialQuerying.html" title="Brauser::Browseable::PartialQuerying (module)">PartialQuerying</a></span>
219
-
220
- <small>(Brauser::Browseable)</small>
154
+ <small>(Brauser::Definitions)</small>
221
155
 
222
156
  </li>
223
157
 
@@ -225,38 +159,21 @@
225
159
  </ul>
226
160
 
227
161
 
228
- </td><td valign='top' width="33%">
229
-
230
-
231
- <ul id="alpha_Q" class="alpha">
232
- <li class="letter">Q</li>
162
+ <ul id="alpha_P" class="alpha">
163
+ <li class="letter">P</li>
233
164
  <ul>
234
165
 
235
166
  <li>
236
- <span class='object_link'><a href="Brauser/Queryable/Queries.html" title="Brauser::Queryable::Queries (module)">Queries</a></span>
237
-
238
- <small>(Brauser::Queryable)</small>
239
-
240
- </li>
241
-
242
- <li>
243
- <span class='object_link'><a href="Brauser/Query.html" title="Brauser::Query (class)">Query</a></span>
244
-
245
- <small>(Brauser)</small>
246
-
247
- </li>
248
-
249
- <li>
250
- <span class='object_link'><a href="Brauser/Queryable.html" title="Brauser::Queryable (module)">Queryable</a></span>
167
+ <span class='object_link'><a href="Brauser/Parser.html" title="Brauser::Parser (class)">Parser</a></span>
251
168
 
252
169
  <small>(Brauser)</small>
253
170
 
254
171
  </li>
255
172
 
256
173
  <li>
257
- <span class='object_link'><a href="Brauser/Browseable/Querying.html" title="Brauser::Browseable::Querying (module)">Querying</a></span>
174
+ <span class='object_link'><a href="Brauser/Definitions/Platform.html" title="Brauser::Definitions::Platform (class)">Platform</a></span>
258
175
 
259
- <small>(Brauser::Browseable)</small>
176
+ <small>(Brauser::Definitions)</small>
260
177
 
261
178
  </li>
262
179
 
@@ -268,13 +185,6 @@
268
185
  <li class="letter">R</li>
269
186
  <ul>
270
187
 
271
- <li>
272
- <span class='object_link'><a href="Brauser/Browseable/Register.html" title="Brauser::Browseable::Register (module)">Register</a></span>
273
-
274
- <small>(Brauser::Browseable)</small>
275
-
276
- </li>
277
-
278
188
  <li>
279
189
  <span class='object_link'><a href="Brauser/Hooks/RubyOnRails.html" title="Brauser::Hooks::RubyOnRails (module)">RubyOnRails</a></span>
280
190
 
@@ -290,6 +200,13 @@
290
200
  <li class="letter">V</li>
291
201
  <ul>
292
202
 
203
+ <li>
204
+ <span class='object_link'><a href="Brauser/Value.html" title="Brauser::Value (class)">Value</a></span>
205
+
206
+ <small>(Brauser)</small>
207
+
208
+ </li>
209
+
293
210
  <li>
294
211
  <span class='object_link'><a href="Brauser/Version.html" title="Brauser::Version (module)">Version</a></span>
295
212
 
@@ -309,9 +226,9 @@
309
226
  </div>
310
227
 
311
228
  <div id="footer">
312
- Generated on Thu May 22 12:11:27 2014 by
229
+ Generated on Mon Sep 29 16:43:31 2014 by
313
230
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
314
- 0.8.7.4 (ruby-2.1.2).
231
+ 0.8.7.4 (ruby-2.1.3).
315
232
  </div>
316
233
 
317
234
  </body>
@@ -46,7 +46,7 @@
46
46
 
47
47
  <ul id="full_list" class="class">
48
48
  <li><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></li>
49
- <li><a class='toggle'></a> <span class='object_link'><a href="Brauser.html" title="Brauser (module)">Brauser</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><a class='toggle'></a> <span class='object_link'><a href="Brauser/Browseable.html" title="Brauser::Browseable (module)">Browseable</a></span><small class='search_info'>Brauser</small></li><ul><li><span class='object_link'><a href="Brauser/Browseable/Attributes.html" title="Brauser::Browseable::Attributes (module)">Attributes</a></span><small class='search_info'>Brauser::Browseable</small></li><li><span class='object_link'><a href="Brauser/Browseable/DefaultDefinitions.html" title="Brauser::Browseable::DefaultDefinitions (module)">DefaultDefinitions</a></span><small class='search_info'>Brauser::Browseable</small></li><li><a class='toggle'></a> <span class='object_link'><a href="Brauser/Browseable/General.html" title="Brauser::Browseable::General (module)">General</a></span><small class='search_info'>Brauser::Browseable</small></li><ul><li><span class='object_link'><a href="Brauser/Browseable/General/ClassMethods.html" title="Brauser::Browseable::General::ClassMethods (module)">ClassMethods</a></span><small class='search_info'>Brauser::Browseable::General</small></li></ul><li><span class='object_link'><a href="Brauser/Browseable/Parsing.html" title="Brauser::Browseable::Parsing (module)">Parsing</a></span><small class='search_info'>Brauser::Browseable</small></li><li><span class='object_link'><a href="Brauser/Browseable/PartialQuerying.html" title="Brauser::Browseable::PartialQuerying (module)">PartialQuerying</a></span><small class='search_info'>Brauser::Browseable</small></li><li><span class='object_link'><a href="Brauser/Browseable/Querying.html" title="Brauser::Browseable::Querying (module)">Querying</a></span><small class='search_info'>Brauser::Browseable</small></li><li><a class='toggle'></a> <span class='object_link'><a href="Brauser/Browseable/Register.html" title="Brauser::Browseable::Register (module)">Register</a></span><small class='search_info'>Brauser::Browseable</small></li><ul><li><span class='object_link'><a href="Brauser/Browseable/Register/ClassMethods.html" title="Brauser::Browseable::Register::ClassMethods (module)">ClassMethods</a></span><small class='search_info'>Brauser::Browseable::Register</small></li></ul></ul><li><span class='object_link'><a href="Brauser/Browser.html" title="Brauser::Browser (class)">Browser</a></span> &lt; Object<small class='search_info'>Brauser</small></li><li><span class='object_link'><a href="Brauser/Definition.html" title="Brauser::Definition (class)">Definition</a></span> &lt; Object<small class='search_info'>Brauser</small></li><li><a class='toggle'></a> <span class='object_link'><a href="Brauser/Hooks.html" title="Brauser::Hooks (module)">Hooks</a></span><small class='search_info'>Brauser</small></li><ul><li><span class='object_link'><a href="Brauser/Hooks/RubyOnRails.html" title="Brauser::Hooks::RubyOnRails (module)">RubyOnRails</a></span><small class='search_info'>Brauser::Hooks</small></li></ul><li><span class='object_link'><a href="Brauser/Query.html" title="Brauser::Query (class)">Query</a></span> &lt; Object<small class='search_info'>Brauser</small></li><li><a class='toggle'></a> <span class='object_link'><a href="Brauser/Queryable.html" title="Brauser::Queryable (module)">Queryable</a></span><small class='search_info'>Brauser</small></li><ul><li><span class='object_link'><a href="Brauser/Queryable/Chainers.html" title="Brauser::Queryable::Chainers (module)">Chainers</a></span><small class='search_info'>Brauser::Queryable</small></li><li><span class='object_link'><a href="Brauser/Queryable/Queries.html" title="Brauser::Queryable::Queries (module)">Queries</a></span><small class='search_info'>Brauser::Queryable</small></li></ul><li><span class='object_link'><a href="Brauser/Version.html" title="Brauser::Version (module)">Version</a></span><small class='search_info'>Brauser</small></li></ul>
49
+ <li><a class='toggle'></a> <span class='object_link'><a href="Brauser.html" title="Brauser (module)">Brauser</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><span class='object_link'><a href="Brauser/Browser.html" title="Brauser::Browser (class)">Browser</a></span> &lt; Object<small class='search_info'>Brauser</small></li><li><a class='toggle'></a> <span class='object_link'><a href="Brauser/Definitions.html" title="Brauser::Definitions (module)">Definitions</a></span><small class='search_info'>Brauser</small></li><ul><li><span class='object_link'><a href="Brauser/Definitions/Base.html" title="Brauser::Definitions::Base (class)">Base</a></span> &lt; Object<small class='search_info'>Brauser::Definitions</small></li><li><span class='object_link'><a href="Brauser/Definitions/Browser.html" title="Brauser::Definitions::Browser (class)">Browser</a></span> &lt; Base<small class='search_info'>Brauser::Definitions</small></li><li><span class='object_link'><a href="Brauser/Definitions/Language.html" title="Brauser::Definitions::Language (class)">Language</a></span> &lt; Base<small class='search_info'>Brauser::Definitions</small></li><li><span class='object_link'><a href="Brauser/Definitions/Platform.html" title="Brauser::Definitions::Platform (class)">Platform</a></span> &lt; Base<small class='search_info'>Brauser::Definitions</small></li></ul><li><a class='toggle'></a> <span class='object_link'><a href="Brauser/Hooks.html" title="Brauser::Hooks (module)">Hooks</a></span><small class='search_info'>Brauser</small></li><ul><li><span class='object_link'><a href="Brauser/Hooks/RubyOnRails.html" title="Brauser::Hooks::RubyOnRails (module)">RubyOnRails</a></span><small class='search_info'>Brauser::Hooks</small></li></ul><li><span class='object_link'><a href="Brauser/Parser.html" title="Brauser::Parser (class)">Parser</a></span> &lt; Object<small class='search_info'>Brauser</small></li><li><span class='object_link'><a href="Brauser/Value.html" title="Brauser::Value (class)">Value</a></span> &lt; Object<small class='search_info'>Brauser</small></li><li><span class='object_link'><a href="Brauser/Version.html" title="Brauser::Version (module)">Version</a></span><small class='search_info'>Brauser</small></li></ul>
50
50
 
51
51
  </ul>
52
52
  </div>
@@ -72,7 +72,7 @@
72
72
 
73
73
  <p>A framework agnostic browser detection and querying helper.</p>
74
74
 
75
- <p>http://sw.cow.tc/brauser</p>
75
+ <p>http://sw.cowtech.it/brauser</p>
76
76
 
77
77
  <p>http://rdoc.info/gems/brauser</p>
78
78
 
@@ -82,7 +82,7 @@
82
82
 
83
83
  <h3 id="installation">Installation</h3>
84
84
 
85
- <p>Brauser comes with a Ruby on Rails hooks (more framework to follow), so for Rails you have just to add this to your Gemfile:</p>
85
+ <p>Brauser comes with a Ruby on Rails hooks (more frameworks to follow), so for Rails you have just to add this to your Gemfile:</p>
86
86
 
87
87
  <p><code>ruby
88
88
  gem "brauser"
@@ -102,11 +102,15 @@ browser = Brauser::Browser.new(USER_AGENT_HEADER, ACCEPT_LANGUAGE_HEADER)
102
102
 
103
103
  <h3 id="getting-browser-information">Getting browser information</h3>
104
104
 
105
- <p>Once you instantiate the browser, you can query the browser about <code>name</code>, <code>version</code> and <code>platform</code>. You can also get readable name and platforms via <code>readable_name</code> and <code>platform_name</code>.</p>
105
+ <p>Once you instantiate the browser, you can query the browser about <code>name</code>, <code>version</code>, <code>platform</code>, <code>languages</code>. </p>
106
106
 
107
- <p>The version is returned as a <code>String</code>, and you can use <code>Brauser::Browser.compare_versions</code> to compare against another version.</p>
107
+ <p>You can also get readable name and platforms via <code>human_name</code>, <code>human_platform</code>, <code>human_languages</code>.</p>
108
108
 
109
- <p>The name and the platform are returned as <code>Symbol</code> and can be in the range of names and engines registered via <code>register_browser</code>, <code>register_default_browsers</code>, <code>register_platform</code> and <code>register_default_platforms</code>.</p>
109
+ <p>The version is handle via the <a href="http://dazuma.github.io/versionomy/">versionomy</a> gem.</p>
110
+
111
+ <p>The name and the platform are returned as <code>Symbol</code> and can be in the range of names and engines registered via <code>Brauser::Definitions.register</code>.</p>
112
+
113
+ <p>The languages are returned as an hash where values are the priorities.</p>
110
114
 
111
115
  <p>Also, you can get global information using <code>browser.to_s</code> or <code>browser.classes</code>. This will return an array or a string already formatted to be used in your views to scope your CSS.</p>
112
116
 
@@ -128,126 +132,58 @@ browser = Brauser::Browser.new(USER_AGENT_HEADER, ACCEPT_LANGUAGE_HEADER)
128
132
 
129
133
  <h3 id="querying-the-browser">Querying the browser</h3>
130
134
 
131
- <p>Brauser supports querying about name (method <code>is</code>), version (method <code>v</code>), platform (method <code>on</code>) and language (method <code>accepts</code>).</p>
135
+ <p>Brauser supports querying about name, version, platform, language.</p>
132
136
 
133
- <p>The <code>is</code> method queries about a browser name (or a list of names) and optionally by version and platform:</p>
137
+ <p>name and platform support querying via the <code>==</code> operator, which supports a single value or a list of values. </p>
134
138
 
135
139
  <p><code>ruby
136
140
  # We talk about the ending ? later.
137
- browser.is?(:chrome)
141
+ browser.name == :chrome
138
142
  # =&gt; true
139
- browser.is?([:msie, :firefox])
140
- # =&gt; false
141
- browser.is?(:chrome, {lt: "2"}, :osx)
142
- # =&gt; true
143
- browser.is?(:chrome, "&gt;= 3", :windows)
143
+ browser.name == [:msie, :firefox]
144
144
  # =&gt; false
145
145
  </code></p>
146
146
 
147
- <p>The method <code>is</code> is the only which supports direct internal propagation to version and platform.</p>
148
-
149
- <p>The <code>version</code> (short: <code>v</code>) method queries about the browser version. You can specify the comparison with an hash or a little expression.</p>
150
-
151
- <p>In the case of hash, the syntax is <code>{:operator =&gt; value}</code>, where <code>:operator</code> is one of <code>[:lt, :lte, :eq, :gte, :gt]</code> and value can be a Float or a String.</p>
152
-
153
- <p>In the case of expression, the syntax is <code>OPERATOR VALUE &amp;&amp; ..</code>, where <code>OPERATOR</code> is one of <code>["&lt;", "&lt;=", "=", "==", "&gt;=", "&gt;"]</code> and value specifies the version.</p>
154
-
155
- <p>Examples:</p>
147
+ <p>The version is delegated to the versionomy gem. You can use comparison operator. The right hand part must be either a <code>String</code> or a <code>Versionomy::Value</code>.</p>
156
148
 
157
149
  <p><code>ruby
158
- # Those two methods are equivalent.
159
- browser.version?({lt: "2", gt: 1})
160
- # =&gt; true
161
- browser.is?("&lt; 2 &amp;&amp; &gt; 1")
150
+ browser.version == "3"
151
+ # =&gt; false
152
+ browser.version &gt;= "2"
162
153
  # =&gt; true
163
154
  </code></p>
164
155
 
165
- <p>The method <code>on</code> check is the current browser in one of the specified platform. The platform should be passed as <code>Symbol</code>.</p>
156
+ <p>The language support querying via the <code>accepts?</code> method, which supports a single value or a list of values.</p>
166
157
 
167
158
  <p><code>ruby
168
- browser.on?(:osx)
159
+ browser.accepts?(:it)
169
160
  # =&gt; true
170
- browser.on?([:windows, :ios])
171
- # =&gt; false
172
- </code></p>
173
-
174
- <p>At the end, the method <code>accepts</code> checks if the browser accepts one of the specified languages. Languages should be passed as language codes in <code>String</code>.</p>
175
-
176
- <p><code>ruby
177
- browser.accepts?("en")
161
+ browser.accepts?(:it, :en)
178
162
  # =&gt; true
179
- browser.accepts?(["de", "es"])
180
- # =&gt; false
181
163
  </code></p>
182
164
 
183
- <p>Every query method exists in two forms: the concatenation one (the method name doesn’t end with a <code>?</code>.</p>
184
-
185
- <p>The former return a <code>Query</code> object, which supports the same query method of the browser and thus enables concatenation.</p>
186
-
187
- <p>The latter return a boolean object, and it’s equivalent to calling <code>result</code> on the query after concatenation.</p>
188
-
189
- <p>Ideally, you should use the <code>?</code> version to end the query and fetch the result.</p>
165
+ <p>All the querying can be combined in the single method <code>is?</code>:</p>
190
166
 
191
167
  <p><code>ruby
192
- # These expressions are equivalent.
193
- browser.is?(:chrome, {lt: "2"}, :osx)
194
- browser.is(:chrome, {lt: "2"}, :osx).result
195
- browser.is(:chrome).version({lt: "2"}).on?(:osx)
196
- browser.is(:chrome).version({lt: "2"}).on(:osx).result
168
+ browser.is?(name: :chrome, version: "&gt;= 4", platform: [:osx, :windows], languages: :it)
169
+ # =&gt; false
197
170
  </code></p>
198
171
 
199
- <p>Finally, Brauser support dynamic query operator to write simple queries without using concatenation.</p>
172
+ <p>Name, platform and languages can be either symbols or array of symbols. Version must be a query in the form is <code>OPERATOR VALUE &amp;&amp; ..</code>,
173
+ where <code>OPERATOR</code> is one of <code>["&lt;", "&lt;=", "=", "==", "&gt;=", "&gt;"]</code> and value specifies the version.</p>
200
174
 
201
- <p>You construct the method just using operator specified above, separating method name and method arguments with a <code>_</code>.</p>
175
+ <h3 id="adding-new-browsers-platform-and-languages">Adding new browsers, platform and languages.</h3>
202
176
 
203
- <p>For the version, use the expression form but use symbol operators and replace <code>.</code> with <code>_</code> and <code>&amp;&amp;</code> with <code>and</code>.</p>
177
+ <p>To add new browsers, simply call <code>::Brauser::Definitions.register(:browser, :id, ...)</code>.</p>
204
178
 
205
- <p>Example:</p>
206
-
207
- <p>```ruby
208
- # These expressions are equivalent.
209
- browser.is(:chrome).version(“&lt; 2 &amp;&amp; &gt; 1.2”).on(:osx).result
210
- browser.is_chrome_v_lt_2_and_gt_1_2_on_osx.result</p>
211
-
212
- <h1 id="these-expressions-are-equivalent">These expressions are equivalent.</h1>
213
- <p>browser.is(:chrome).version(“&lt; 2 &amp;&amp; &gt; 1.2”).on?(:osx)
214
- browser.is_chrome_v_lt_2_and_gt_1_2_on_osx?
215
- ```</p>
216
-
217
- <h3 id="adding-new-browsers">Adding new browsers</h3>
218
-
219
- <p>To add new browsers, simply call <code>::Brauser::Browser.add(:browsers, ...)</code>.</p>
220
-
221
- <p>This methods accepts a single instance or an array of instances of the <code>::Brauser::Definition</code> class.</p>
179
+ <p>The first argument can be <code>:browser</code>, <code>:platform</code> or <code>:language</code>.
180
+ The second argument is the id of the definition.
181
+ The remaining argument will be passed to the definition constructor.</p>
222
182
 
223
183
  <p>For example, for Google Chrome the call should be:</p>
224
184
 
225
185
  <p><code>ruby
226
- Brauser::Browsers.add(:browsers, ::Brauser::Definition.new(:chrome, "Chrome", /((chrome)|(chromium))/i, /(.+Chrom[a-z]+\/)([a-z0-9.]+)/i))
227
- </code></p>
228
-
229
- <h3 id="adding-new-platforms">Adding new platforms</h3>
230
-
231
- <p>To add new platforms, simply call <code>::Brauser::Browser.add(:platforms, ...)</code>.</p>
232
-
233
- <p>This methods accepts a single instance or an array of instances of the <code>::Brauser::Definition</code> class.</p>
234
-
235
- <p>For example, for Mac OS X the call should be:</p>
236
-
237
- <p><code>ruby
238
- Brauser::Browsers.add(:platforms, ::Brauser::Definition.new(:osx, /mac|macintosh|mac os x/i, "Apple MacOS X"))
239
- </code></p>
240
-
241
- <h3 id="adding-new-languages">Adding new languages</h3>
242
-
243
- <p>To add new languages, simply call <code>::Brauser::Browser.add(:languages, ...)</code>.</p>
244
-
245
- <p>This methods accepts a single instance or an array of instances of the <code>::Brauser::Definition</code> class.</p>
246
-
247
- <p>For example, for Italian the call should be:</p>
248
-
249
- <p><code>ruby
250
- Brauser::Browsers.add(:languages, ::Brauser::Definition.new(:it, "Italian"))
186
+ Brauser::Definitions.register(:browsers, :chrome, "Chrome", /((chrome)|(chromium))/i, /(.+Chrom[a-z]+\/)([a-z0-9.]+)/i)
251
187
  </code></p>
252
188
 
253
189
  <h2 id="contributing-to-brauser">Contributing to brauser</h2>
@@ -270,9 +206,9 @@ Brauser::Browsers.add(:languages, ::Brauser::Definition.new(:it, "Italian"))
270
206
  </div></div>
271
207
 
272
208
  <div id="footer">
273
- Generated on Thu May 22 12:11:27 2014 by
209
+ Generated on Mon Sep 29 16:43:31 2014 by
274
210
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
275
- 0.8.7.4 (ruby-2.1.2).
211
+ 0.8.7.4 (ruby-2.1.3).
276
212
  </div>
277
213
 
278
214
  </body>