browscapper 0.0.1 → 0.1.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ede4118b2f3bcec3b30148e6bac3265215ca7c31
4
+ data.tar.gz: aa5ba1d31e8fae077eb4dd933f21e96d71d6ebb3
5
+ SHA512:
6
+ metadata.gz: d943570726015c59daf03b4fb53e3addfe266350bf4802827eee56bf01f1df472c33bc9b831fea74bbb6b65eba03e70df30292989f700f56ceafc683e07b6252
7
+ data.tar.gz: ceece896924cd926fd69aa2943060d421374728688e85a91a250786ce7b4939171dd8008c4d67621c0e657af3d778574e753a7b071c99fdb853ff7a543127211
data/.gitignore CHANGED
@@ -10,3 +10,5 @@ Thumbs.db
10
10
  pkg/
11
11
  doc/
12
12
  Gemfile.lock
13
+ Gemfile.local
14
+ Guardfile.local
data/Gemfile CHANGED
@@ -1,3 +1,20 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ gem "rdoc", "~> 3.12"
6
+ gem "rake", "~> 10.0"
7
+ gem "minitest"
8
+ gem "minitest-reporters"
9
+ gem "guard-minitest"
10
+ gem "simplecov"
11
+
12
+ if RbConfig::CONFIG['host_os'] =~ /^darwin/
13
+ gem "rb-fsevent"
14
+ gem "growl"
15
+ end
16
+
17
+ if File.exists?('Gemfile.local')
18
+ instance_eval File.read('Gemfile.local')
19
+ end
20
+
data/Guardfile ADDED
@@ -0,0 +1,17 @@
1
+
2
+ guard 'minitest', :test_folders => 'test', :test_file_patterns => '*_tests.rb' do
3
+ watch(%r|^test/(.+)_tests\.rb|)
4
+
5
+ watch(%r|^lib/(.+)\.rb$|) do |m|
6
+ "test/#{m[1]}_tests.rb"
7
+ end
8
+
9
+ watch(%r|^test/test_helper\.rb|) do
10
+ "test"
11
+ end
12
+ end
13
+
14
+ if File.exists?('Guardfile.local')
15
+ instance_eval File.read('Guardfile.local')
16
+ end
17
+
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 J Smith <dark.panda@gmail.com>
1
+ Copyright (c) 2014 J Smith <dark.panda@gmail.com>
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.rdoc CHANGED
@@ -38,6 +38,10 @@ rake task thusly:
38
38
 
39
39
  rake browscapper:dump IN=browscap.ini OUT=browscap.dump
40
40
 
41
+ You can also convert between formats using the `browscapper:convert` task:
42
+
43
+ rake browscapper:convert IN=browscap.dump OUT=browscap.yml
44
+
41
45
  == License
42
46
 
43
47
  See the MIT-LICENSE file for details.
data/Rakefile CHANGED
@@ -1,23 +1,16 @@
1
1
  # -*- ruby -*-
2
2
 
3
3
  require 'rubygems'
4
-
5
- gem 'rdoc', '~> 3.12'
6
-
7
4
  require 'rubygems/package_task'
8
5
  require 'rake/testtask'
9
6
  require 'rdoc/task'
10
7
  require 'bundler/gem_tasks'
11
8
 
12
- if RUBY_VERSION >= '1.9'
13
- begin
14
- gem 'psych'
15
- rescue Exception => e
16
- # it's okay, fall back on the bundled psych
17
- end
18
- end
9
+ $:.push File.expand_path(File.dirname(__FILE__), 'lib')
19
10
 
20
- $:.push 'lib'
11
+ FileList['lib/tasks/*.rake'].each do |task|
12
+ import task
13
+ end
21
14
 
22
15
  version = Browscapper::VERSION
23
16
 
@@ -36,20 +29,3 @@ Rake::RDocTask.new do |t|
36
29
  t.rdoc_files.include('README.rdoc', 'MIT-LICENSE', 'lib/**/*.rb')
37
30
  end
38
31
 
39
- desc "Converts a browscap file to another format"
40
- task "browscapper:dump" do
41
- require File.join(File.dirname(__FILE__), %w{ lib browscapper })
42
-
43
- if !ENV['IN'] || !ENV['OUT']
44
- puts "Usage: IN=browscap OUT=browscap.dump"
45
- puts
46
- puts "Converts a browscap file to a ruby Marshal'd format. These files"
47
- puts "are much quicker to load than CSV or INI files."
48
- exit
49
- end
50
-
51
- Browscapper.load(ENV['IN'])
52
- File.open(ENV['OUT'], 'wb') do |fp|
53
- fp.write(Marshal.dump(Browscapper.entries))
54
- end
55
- end
data/browscapper.gemspec CHANGED
@@ -11,6 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.description = "A browscap file parser and matcher."
12
12
  s.summary = s.description
13
13
  s.email = "dark.panda@gmail.com"
14
+ s.license = "MIT"
14
15
  s.extra_rdoc_files = [
15
16
  "README.rdoc"
16
17
  ]
@@ -20,9 +21,6 @@ Gem::Specification.new do |s|
20
21
  s.homepage = "http://github.com/dark-panda/browscapper"
21
22
  s.require_paths = ["lib"]
22
23
 
23
- s.add_dependency("rdoc")
24
- s.add_dependency("rake", ["~> 0.9"])
25
- s.add_dependency("minitest")
26
24
  s.add_dependency("inifile")
27
25
  end
28
26
 
data/lib/browscapper.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # encoding: BINARY
2
2
 
3
+ require 'browscapper/version'
4
+
3
5
  module Browscapper
4
6
  autoload :UserAgent, 'browscapper/user_agent'
5
7
  autoload :Reader, 'browscapper/reader'
@@ -30,6 +32,7 @@ module Browscapper
30
32
 
31
33
  @file = file
32
34
  @entries = reader.load(file)
35
+ clear_cache
33
36
  self
34
37
  end
35
38
 
@@ -10,9 +10,9 @@ module Browscapper
10
10
  end
11
11
 
12
12
  pattern.downcase!
13
- pattern.gsub!(/([\^\$\(\)\[\]\.\-])/, "\\\\\\1")
13
+ pattern.gsub!(/([\^\$\(\)\[\]\.\-\+])/, "\\\\\\1")
14
14
  pattern.gsub!('?', '.')
15
- pattern.gsub!('*', '.*?')
15
+ pattern.gsub!(/\*+/, '.*?')
16
16
 
17
17
  Regexp.new("^#{pattern}$")
18
18
  end
@@ -47,7 +47,7 @@ module Browscapper
47
47
  entry.browser
48
48
  end
49
49
 
50
- entry.pattern = pattern_to_regexp(entry.user_agent.to_s)
50
+ entry.pattern = pattern_to_regexp(entry.property_name.to_s)
51
51
 
52
52
  if entries[entry.parent]
53
53
  entry.merge!(entries[entry.parent])
@@ -8,7 +8,7 @@ module Browscapper
8
8
  :parent, :user_agent, :comment, :browser, :version, :major_version,
9
9
  :minor_version, :platform, :platform_version, :alpha, :beta, :win16, :win32, :win64,
10
10
  :frames, :iframes, :tables, :cookies, :background_sounds, :vbscript,
11
- :javascript, :java_applets, :activex_controls, :banned, :mobile_device,
11
+ :javascript, :java_applets, :activex_controls, :banned, :mobile_device, :tablet,
12
12
  :syndication_reader, :crawler, :css_version, :aol_version, :user_agent_id,
13
13
  :css, :cdf, :aol, :device_name, :device_maker, :rendering_engine_name,
14
14
  :rendering_engine_version, :rendering_engine_description
@@ -23,6 +23,7 @@ module Browscapper
23
23
  attr_accessor :pattern
24
24
 
25
25
  MAP = {
26
+ 'propertyname' => :property_name,
26
27
  'useragent' => :user_agent,
27
28
  'version' => :version,
28
29
  'majorver' => :major_version,
@@ -43,7 +44,8 @@ module Browscapper
43
44
  'supportscss' => :css,
44
45
  'renderingengine_name' => :rendering_engine_name,
45
46
  'renderingengine_version' => :rendering_engine_version,
46
- 'renderingengine_description' => :rendering_engine_description
47
+ 'renderingengine_description' => :rendering_engine_description,
48
+ 'istablet' => :tablet
47
49
  }
48
50
 
49
51
  def initialize(hash = {})
@@ -1,6 +1,6 @@
1
1
  # encoding: BINARY
2
2
 
3
3
  module Browscapper
4
- VERSION = "0.0.1"
4
+ VERSION = "0.1.0"
5
5
  end
6
6
 
@@ -0,0 +1,60 @@
1
+
2
+ desc "Converts a browscap file to the Marshal format"
3
+ task "browscapper:dump" do
4
+ require 'browscapper'
5
+
6
+ if !ENV['IN'] || !ENV['OUT']
7
+ puts "Usage: IN=browscap OUT=browscap.dump"
8
+ puts
9
+ puts "Converts a browscap file to a ruby Marshal'd format. These files"
10
+ puts "are much quicker to load than CSV or INI files."
11
+ exit
12
+ end
13
+
14
+ Browscapper.load(ENV['IN'])
15
+ File.open(ENV['OUT'], 'wb') do |fp|
16
+ fp.write(Marshal.dump(Browscapper.entries))
17
+ end
18
+ end
19
+
20
+ desc "Converts a browscap file to another format"
21
+ task "browscapper:convert" do
22
+ require 'browscapper'
23
+
24
+ if !ENV['IN'] || !ENV['OUT']
25
+ puts "Usage: IN=browscap OUT=output.ext"
26
+ puts
27
+ puts "Converts a browscap file to another format. The output format"
28
+ puts "is based on the output extension, which can be one of yml, yaml,"
29
+ puts "csv, ini or dump. The \"dump\" extension uses the Marshal format."
30
+ exit
31
+ end
32
+
33
+ Browscapper.load(ENV['IN'])
34
+
35
+ case ENV['OUT']
36
+ when /\.dump$/i
37
+ File.open(ENV['OUT'], 'wb:BINARY') do |fp|
38
+ fp.write(Marshal.dump(Browscapper.entries))
39
+ end
40
+
41
+ when /\.ya?ml$/i
42
+ File.open(ENV['OUT'], 'wb:BINARY') do |fp|
43
+ fp.write(YAML.dump(Browscaper.entries))
44
+ end
45
+
46
+ when /\.csv$/i
47
+ Browscapper.load(ENV['IN'])
48
+ Browscapper::CSVReader::CSV_ENGINE.open(ENV['OUT'], 'wb:BINARY') do |csv|
49
+ keys = Browscapper.entries['DefaultProperties'].to_hash.keys
50
+ csv << keys
51
+ Browscapper.entries.each do |k, v|
52
+ hash = v.to_hash
53
+
54
+ csv << keys.collect { |kk|
55
+ hash[kk]
56
+ }
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,52 @@
1
+
2
+ # encoding: BINARY
3
+
4
+ $: << File.dirname(__FILE__)
5
+ require 'test_helper'
6
+ require 'benchmark'
7
+
8
+ class Browscapper::ReaderTests < MiniTest::Unit::TestCase
9
+ include Browscapper::Reader
10
+
11
+ def test_pattern_to_regexp
12
+ assert_equal(
13
+ /^mozilla\/5\.0 \(foo.*?\) \+http:\/\/example\.com chrome.*?\/..$/,
14
+ pattern_to_regexp("Mozilla/5.0 (Foo*) +http://example.com Chrome*/??")
15
+ )
16
+ end
17
+
18
+ if ENV['BENCH']
19
+ def test_csv
20
+ Benchmark.bmbm do |bmbm|
21
+ bmbm.report('csv') do
22
+ Browscapper.load('vendor/browscap.csv')
23
+ end
24
+ end
25
+ end
26
+
27
+ def test_yaml
28
+ Benchmark.bmbm do |bmbm|
29
+ bmbm.report('yaml') do
30
+ Browscapper.load('vendor/browscap.yml')
31
+ end
32
+ end
33
+ end
34
+
35
+ def test_ini
36
+ Benchmark.bmbm do |bmbm|
37
+ bmbm.report('ini') do
38
+ Browscapper.load('vendor/browscap.ini')
39
+ end
40
+ end
41
+ end
42
+
43
+ def test_marshal
44
+ Benchmark.bmbm do |bmbm|
45
+ bmbm.report('marshal') do
46
+ Browscapper.load('vendor/browscap.dump')
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+
@@ -1,10 +1,7 @@
1
1
  # encoding: BINARY
2
2
 
3
- $: << './lib'
4
-
5
- require 'rubygems'
6
- require 'minitest/autorun'
7
- require './lib/browscapper'
3
+ $: << File.dirname(__FILE__)
4
+ require 'test_helper'
8
5
 
9
6
  class BrowscapperTest < MiniTest::Unit::TestCase
10
7
  FIREFOX_ON_OSX = Browscapper::UserAgent.new({
@@ -18,8 +15,8 @@ class BrowscapperTest < MiniTest::Unit::TestCase
18
15
  :cookies => true,
19
16
  :crawler => false,
20
17
  :css_version => 3,
21
- :device_name => "unknown",
22
- :device_maker => "unknown",
18
+ :device_name => "Macintosh",
19
+ :device_maker => "Apple Inc",
23
20
  :frames => true,
24
21
  :iframes => true,
25
22
  :java_applets => true,
@@ -29,16 +26,17 @@ class BrowscapperTest < MiniTest::Unit::TestCase
29
26
  :mobile_device => false,
30
27
  :parent => "Firefox 3.6",
31
28
  :platform => "MacOSX",
32
- :platform_version => "unknown",
29
+ :platform_version => 10.6,
33
30
  :rendering_engine_name => "Gecko",
34
- :rendering_engine_version => "unknown",
31
+ :rendering_engine_version => "1.9.2",
35
32
  :rendering_engine_description => "For Firefox, Camino, K-Meleon, SeaMonkey, Netscape, and other Gecko-based browsers.",
36
33
  :syndication_reader => false,
37
34
  :tables => true,
38
- :user_agent => "Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9.2*) Gecko/* Firefox/3.6*",
35
+ :tablet => false,
36
+ :user_agent => "Mozilla/5.0 (*Mac OS X 10.6*) Gecko/* Firefox/3.6*",
39
37
  :user_agent_id => nil,
40
38
  :vbscript => false,
41
- :version => "3.6",
39
+ :version => 3.6,
42
40
  :win16 => false,
43
41
  :win32 => false,
44
42
  :win64 => false,
@@ -47,7 +45,7 @@ class BrowscapperTest < MiniTest::Unit::TestCase
47
45
  FIREFOX_ON_OSX.pattern = /^mozilla\/5\.0 \(macintosh; .*; .*mac os x.*; .*; rv:1\.9\.2.*\) gecko\/.* firefox\/3\.6.*$/
48
46
 
49
47
  def test_browscap_ini
50
- Browscapper.load(File.join('vendor', 'browscap.dump'))
48
+ Browscapper.load(File.join('vendor', 'browscap.ini'))
51
49
  match = Browscapper.match('Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8')
52
50
 
53
51
  FIREFOX_ON_OSX.each do |k, v|
@@ -0,0 +1,26 @@
1
+
2
+ # encoding: BINARY
3
+
4
+ if RUBY_VERSION >= '1.9'
5
+ require 'simplecov'
6
+
7
+ SimpleCov.command_name('Unit Tests')
8
+ SimpleCov.start do
9
+ add_filter '/test/'
10
+ end
11
+ end
12
+
13
+ require 'rubygems'
14
+ require 'minitest/autorun'
15
+
16
+ if RUBY_VERSION >= '1.9'
17
+ require 'minitest/reporters'
18
+ end
19
+
20
+ require File.join(File.dirname(__FILE__), *%w{ .. lib browscapper })
21
+
22
+ if RUBY_VERSION >= '1.9'
23
+ MiniTest::Reporters.use!(MiniTest::Reporters::SpecReporter.new)
24
+ end
25
+
26
+
@@ -0,0 +1,106 @@
1
+ ;;; Provided courtesy of http://browscap.org/
2
+ ;;; Created on Wednesday, November 19, 2014 at 09:12 PM UTC
3
+ ;;; Keep up with the latest goings-on with the project:
4
+ ;;; Follow us on Twitter <https://twitter.com/browscap>, or...
5
+ ;;; Like us on Facebook <https://facebook.com/browscap>, or...
6
+ ;;; Collaborate on GitHub <https://github.com/browscap>, or...
7
+ ;;; Discuss on Google Groups <https://groups.google.com/forum/#!forum/browscap>.
8
+
9
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Version
10
+
11
+ [GJK_Browscap_Version]
12
+ Version=5036
13
+ Released=Wed, 19 Nov 2014 21:12:38 +0000
14
+ Format=php
15
+ Type=FULL
16
+
17
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties
18
+
19
+ [DefaultProperties]
20
+ Comment="DefaultProperties"
21
+ Browser="DefaultProperties"
22
+ Browser_Type=unknown
23
+ Browser_Bits=0
24
+ Browser_Maker="unknown"
25
+ Browser_Modus="unknown"
26
+ Version=0.0
27
+ MajorVer=0
28
+ MinorVer=0
29
+ Platform="unknown"
30
+ Platform_Version=unknown
31
+ Platform_Description="unknown"
32
+ Platform_Bits=0
33
+ Platform_Maker="unknown"
34
+ Alpha=false
35
+ Beta=false
36
+ Win16=false
37
+ Win32=false
38
+ Win64=false
39
+ Frames=false
40
+ IFrames=false
41
+ Tables=false
42
+ Cookies=false
43
+ BackgroundSounds=false
44
+ JavaScript=false
45
+ VBScript=false
46
+ JavaApplets=false
47
+ ActiveXControls=false
48
+ isMobileDevice=false
49
+ isTablet=false
50
+ isSyndicationReader=false
51
+ Crawler=false
52
+ CssVersion=0
53
+ AolVersion=0
54
+ Device_Name="unknown"
55
+ Device_Maker="unknown"
56
+ Device_Type=unknown
57
+ Device_Pointing_Method=unknown
58
+ Device_Code_Name="unknown"
59
+ Device_Brand_Name="unknown"
60
+ RenderingEngine_Name="unknown"
61
+ RenderingEngine_Version=unknown
62
+ RenderingEngine_Description="unknown"
63
+ RenderingEngine_Maker="unknown"
64
+
65
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.6
66
+
67
+ [Firefox 3.6]
68
+ Parent="DefaultProperties"
69
+ Comment="Firefox 3.6"
70
+ Browser="Firefox"
71
+ Browser_Type=Browser
72
+ Browser_Maker="Mozilla Foundation"
73
+ Version=3.6
74
+ MajorVer=3
75
+ MinorVer=6
76
+ Win32=true
77
+ Frames=true
78
+ IFrames=true
79
+ Tables=true
80
+ Cookies=true
81
+ JavaScript=true
82
+ JavaApplets=true
83
+ CssVersion=3
84
+ Device_Name="PC"
85
+ Device_Maker="Various"
86
+ Device_Type=Desktop
87
+ Device_Pointing_Method=mouse
88
+ RenderingEngine_Name="Gecko"
89
+ RenderingEngine_Version=1.9.2
90
+ RenderingEngine_Description="For Firefox, Camino, K-Meleon, SeaMonkey, Netscape, and other Gecko-based browsers."
91
+ RenderingEngine_Maker="Mozilla Foundation"
92
+
93
+ [Mozilla/5.0 (*Mac OS X 10.6*) Gecko/* Firefox/3.6*]
94
+ Parent="Firefox 3.6"
95
+ Browser_Bits=32
96
+ Platform="MacOSX"
97
+ Platform_Version=10.6
98
+ Platform_Description="Mac OS X"
99
+ Platform_Bits=32
100
+ Platform_Maker="Apple Inc"
101
+ Win32=false
102
+ Device_Name="Macintosh"
103
+ Device_Maker="Apple Inc"
104
+ Device_Code_Name="Macintosh"
105
+ Device_Brand_Name="Apple"
106
+
metadata CHANGED
@@ -1,79 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browscapper
3
3
  version: !ruby/object:Gem::Version
4
- version: !binary |-
5
- MC4wLjE=
6
- prerelease:
4
+ version: 0.1.0
7
5
  platform: ruby
8
6
  authors:
9
7
  - J Smith
10
8
  autorequire:
11
9
  bindir: bin
12
10
  cert_chain: []
13
- date: 2012-09-29 00:00:00.000000000 Z
11
+ date: 2014-12-02 00:00:00.000000000 Z
14
12
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rdoc
17
- requirement: !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ! '>='
29
- - !ruby/object:Gem::Version
30
- version: '0'
31
- - !ruby/object:Gem::Dependency
32
- name: rake
33
- requirement: !ruby/object:Gem::Requirement
34
- none: false
35
- requirements:
36
- - - ~>
37
- - !ruby/object:Gem::Version
38
- version: '0.9'
39
- type: :runtime
40
- prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ~>
45
- - !ruby/object:Gem::Version
46
- version: '0.9'
47
- - !ruby/object:Gem::Dependency
48
- name: minitest
49
- requirement: !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :runtime
56
- prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ! '>='
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
13
  - !ruby/object:Gem::Dependency
64
14
  name: inifile
65
15
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
16
  requirements:
68
- - - ! '>='
17
+ - - ">="
69
18
  - !ruby/object:Gem::Version
70
19
  version: '0'
71
20
  type: :runtime
72
21
  prerelease: false
73
22
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
23
  requirements:
76
- - - ! '>='
24
+ - - ">="
77
25
  - !ruby/object:Gem::Version
78
26
  version: '0'
79
27
  description: A browscap file parser and matcher.
@@ -83,8 +31,9 @@ extensions: []
83
31
  extra_rdoc_files:
84
32
  - README.rdoc
85
33
  files:
86
- - .gitignore
34
+ - ".gitignore"
87
35
  - Gemfile
36
+ - Guardfile
88
37
  - MIT-LICENSE
89
38
  - README.rdoc
90
39
  - Rakefile
@@ -97,32 +46,36 @@ files:
97
46
  - lib/browscapper/reader/yaml_reader.rb
98
47
  - lib/browscapper/user_agent.rb
99
48
  - lib/browscapper/version.rb
49
+ - lib/tasks/dump.rake
50
+ - test/browscapper/reader_tests.rb
100
51
  - test/browscapper_tests.rb
101
- - test/reader_tests.rb
52
+ - test/test_helper.rb
53
+ - vendor/browscap.ini
102
54
  homepage: http://github.com/dark-panda/browscapper
103
- licenses: []
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
104
58
  post_install_message:
105
59
  rdoc_options: []
106
60
  require_paths:
107
61
  - lib
108
62
  required_ruby_version: !ruby/object:Gem::Requirement
109
- none: false
110
63
  requirements:
111
- - - ! '>='
64
+ - - ">="
112
65
  - !ruby/object:Gem::Version
113
66
  version: '0'
114
67
  required_rubygems_version: !ruby/object:Gem::Requirement
115
- none: false
116
68
  requirements:
117
- - - ! '>='
69
+ - - ">="
118
70
  - !ruby/object:Gem::Version
119
71
  version: '0'
120
72
  requirements: []
121
73
  rubyforge_project:
122
- rubygems_version: 1.8.24
74
+ rubygems_version: 2.2.2
123
75
  signing_key:
124
- specification_version: 3
76
+ specification_version: 4
125
77
  summary: A browscap file parser and matcher.
126
78
  test_files:
79
+ - test/browscapper/reader_tests.rb
127
80
  - test/browscapper_tests.rb
128
- - test/reader_tests.rb
81
+ - test/test_helper.rb
data/test/reader_tests.rb DELETED
@@ -1,37 +0,0 @@
1
-
2
- # encoding: BINARY
3
-
4
- $: << './lib'
5
-
6
- require 'rubygems'
7
- require 'minitest/autorun'
8
- require 'minitest/benchmark' if ENV['BENCH']
9
- require './lib/browscapper'
10
- require 'benchmark'
11
-
12
- class ReaderTests < MiniTest::Unit::TestCase
13
- def bench_csv
14
- assert_performance_constant do |n|
15
- Browscapper.load('vendor/browscap.csv')
16
- end
17
- end
18
-
19
- def bench_yaml
20
- assert_performance_constant do |n|
21
- Browscapper.load('vendor/browscap.yml')
22
- end
23
- end
24
-
25
- def bench_ini
26
- assert_performance_constant do |n|
27
- Browscapper.load('vendor/browscap.ini')
28
- end
29
- end
30
-
31
- def bench_marshal
32
- assert_performance_constant do |n|
33
- Browscapper.load('vendor/browscap.dump')
34
- end
35
- end
36
- end
37
-