browscapper 0.0.1 → 0.1.0

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