sniffles 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/Gemfile +2 -8
- data/Guardfile +1 -1
- data/README.md +12 -13
- data/lib/sniffles.rb +9 -9
- data/lib/sniffles/html.rb +3 -3
- data/lib/sniffles/sniffers/advertising/adsense.rb +8 -14
- data/lib/sniffles/sniffers/advertising/kontera.rb +6 -6
- data/lib/sniffles/sniffers/analytics/chartbeat.rb +7 -7
- data/lib/sniffles/sniffers/analytics/facebook_insights.rb +7 -7
- data/lib/sniffles/sniffers/analytics/google_analytics.rb +8 -8
- data/lib/sniffles/sniffers/analytics/kissmetrics.rb +7 -7
- data/lib/sniffles/sniffers/analytics/mixpanel.rb +7 -7
- data/lib/sniffles/sniffers/analytics/quantcast.rb +6 -6
- data/lib/sniffles/sniffers/cms/cscart.rb +6 -6
- data/lib/sniffles/sniffers/{advertising/gumgum.rb → cms/ghost.rb} +8 -8
- data/lib/sniffles/sniffers/cms/invision.rb +9 -9
- data/lib/sniffles/sniffers/cms/joomla.rb +7 -7
- data/lib/sniffles/sniffers/cms/movabletype.rb +8 -8
- data/lib/sniffles/sniffers/cms/mybb.rb +6 -6
- data/lib/sniffles/sniffers/cms/phpbb.rb +7 -7
- data/lib/sniffles/sniffers/cms/shopify.rb +7 -7
- data/lib/sniffles/sniffers/cms/tumblr.rb +7 -7
- data/lib/sniffles/sniffers/cms/vanilla.rb +8 -8
- data/lib/sniffles/sniffers/cms/vbulletin.rb +10 -10
- data/lib/sniffles/sniffers/cms/wordpress.rb +12 -12
- data/lib/sniffles/sniffers/{advertising/admeld.rb → cms/xcart.rb} +3 -2
- data/lib/sniffles/sniffers/cms/zencart.rb +6 -6
- data/lib/sniffles/sniffers/javascript/jquery.rb +6 -6
- data/lib/sniffles/text.rb +4 -4
- data/lib/sniffles/version.rb +1 -1
- data/sniffles.gemspec +2 -2
- data/spec/cassettes/beenverified_com.yml +644 -784
- data/spec/cassettes/blackhatworld_com.yml +2298 -3292
- data/spec/cassettes/blog_mixpanel_com.yml +1351 -0
- data/spec/cassettes/community_invisionpower_com.yml +836 -2771
- data/spec/cassettes/cxxvi_com.yml +311 -0
- data/spec/cassettes/demo-store_prestashop_com.yml +897 -813
- data/spec/cassettes/demo_cs-cart_com.yml +2996 -1146
- data/spec/cassettes/demo_oscommerce_com.yml +136 -408
- data/spec/cassettes/digital-photography-school_com.yml +656 -0
- data/spec/cassettes/downlopedia_com.yml +1262 -1321
- data/spec/cassettes/drupal.yml +1540 -1507
- data/spec/cassettes/exprodirect_com.yml +1888 -0
- data/spec/cassettes/facebook_insights.yml +544 -474
- data/spec/cassettes/flatpress_org_home_blog.yml +287 -317
- data/spec/cassettes/foursquare_com.yml +1901 -348
- data/spec/cassettes/geomagik_com.yml +475 -0
- data/spec/cassettes/ghost_org.yml +207 -0
- data/spec/cassettes/google_blogspot_com.yml +574 -1059
- data/spec/cassettes/guistyles_com.yml +705 -1292
- data/spec/cassettes/installatron_com.yml +286 -0
- data/spec/cassettes/invisionmodding_com.yml +1124 -2442
- data/spec/cassettes/joomla.yml +280 -0
- data/spec/cassettes/kissmetrics_com.yml +165 -0
- data/spec/cassettes/lancelhoff_com.yml +637 -0
- data/spec/cassettes/magento.yml +459 -459
- data/spec/cassettes/metafilter_com.yml +1449 -1230
- data/spec/cassettes/movabletype_com_blog.yml +175 -1221
- data/spec/cassettes/ocbfashionjewelry_com.yml +588 -0
- data/spec/cassettes/pandoramoa_com.yml +290 -608
- data/spec/cassettes/pearsonified_com.yml +433 -435
- data/spec/cassettes/phpbb_com.yml +438 -416
- data/spec/cassettes/sitefinity_com.yml +443 -418
- data/spec/cassettes/sixflags_com.yml +560 -1014
- data/spec/cassettes/soulemama_typepad_com.yml +2378 -2581
- data/spec/cassettes/stackoverflow_com.yml +4762 -0
- data/spec/cassettes/staff_tumblr_com.yml +1956 -1658
- data/spec/cassettes/topix_com.yml +1748 -1417
- data/spec/cassettes/wellmedicated_com.yml +801 -0
- data/spec/cassettes/wordpress_com.yml +238 -863
- data/spec/cassettes/xenforo_com.yml +1143 -1933
- data/spec/sniffles/html_spec.rb +6 -6
- data/spec/sniffles/sniffers/advertising/adsense_spec.rb +7 -8
- data/spec/sniffles/sniffers/advertising/buysellads_spec.rb +5 -5
- data/spec/sniffles/sniffers/advertising/casale_spec.rb +5 -5
- data/spec/sniffles/sniffers/advertising/kontera_spec.rb +6 -6
- data/spec/sniffles/sniffers/advertising/thedeck_spec.rb +5 -5
- data/spec/sniffles/sniffers/advertising/tribalfusion_spec.rb +5 -5
- data/spec/sniffles/sniffers/analytics/chartbeat_spec.rb +3 -3
- data/spec/sniffles/sniffers/analytics/clicky_spec.rb +3 -3
- data/spec/sniffles/sniffers/analytics/facebook_insights_spec.rb +6 -6
- data/spec/sniffles/sniffers/analytics/google_analytics_spec.rb +7 -19
- data/spec/sniffles/sniffers/analytics/kissmetrics_spec.rb +5 -5
- data/spec/sniffles/sniffers/analytics/mixpanel_spec.rb +9 -9
- data/spec/sniffles/sniffers/analytics/quantcast_spec.rb +7 -7
- data/spec/sniffles/sniffers/cms/cscart_spec.rb +8 -8
- data/spec/sniffles/sniffers/cms/ghost_spec.rb +18 -0
- data/spec/sniffles/sniffers/cms/invision_spec.rb +9 -9
- data/spec/sniffles/sniffers/cms/joomla_spec.rb +9 -9
- data/spec/sniffles/sniffers/cms/movabletype_spec.rb +8 -8
- data/spec/sniffles/sniffers/cms/mybb_spec.rb +9 -9
- data/spec/sniffles/sniffers/cms/phpbb_spec.rb +8 -8
- data/spec/sniffles/sniffers/cms/shopify_spec.rb +9 -9
- data/spec/sniffles/sniffers/cms/tumblr_spec.rb +7 -7
- data/spec/sniffles/sniffers/cms/vanilla_spec.rb +9 -9
- data/spec/sniffles/sniffers/cms/vbulletin_spec.rb +11 -17
- data/spec/sniffles/sniffers/cms/wordpress_spec.rb +12 -12
- data/spec/sniffles/sniffers/cms/xcart_spec.rb +18 -0
- data/spec/sniffles/sniffers/cms/zencart_spec.rb +9 -9
- data/spec/sniffles/sniffers/javascript/jquery_spec.rb +8 -8
- data/spec/sniffles/sniffers_spec.rb +1 -1
- data/spec/sniffles_spec.rb +17 -17
- data/spec/spec_helper.rb +7 -3
- data/spec/support/helpers.rb +2 -2
- metadata +39 -39
- data/lib/sniffles/sniffers/cms/posterous.rb +0 -28
- data/spec/cassettes/blog_posterous_com.yml +0 -5015
- data/spec/cassettes/demo_forum-software_org_mybb.yml +0 -385
- data/spec/cassettes/forum-software_org_vanilla.yml +0 -223
- data/spec/cassettes/humemes_com.yml +0 -496
- data/spec/cassettes/joomla_org.yml +0 -733
- data/spec/cassettes/orangecrushbeads_com.yml +0 -751
- data/spec/cassettes/shop_angrybirds_com.yml +0 -455
- data/spec/cassettes/softpedia_com.yml +0 -3196
- data/spec/cassettes/squidoo_com.yml +0 -532
- data/spec/cassettes/tmz_com.yml +0 -2927
- data/spec/cassettes/vbulletin_com.yml +0 -2983
- data/spec/cassettes/wundergroud_com.yml +0 -907
- data/spec/sniffles/sniffers/advertising/admeld_spec.rb +0 -17
- data/spec/sniffles/sniffers/advertising/gumgum_spec.rb +0 -18
- data/spec/sniffles/sniffers/cms/posterous_spec.rb +0 -18
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sniffles/sniffers/cms/movabletype'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Movabletype do
|
5
|
-
describe "#output" do
|
5
|
+
describe "#output" do
|
6
6
|
context "movabletype", :vcr => { :cassette_name => "movabletype_com_blog" } do
|
7
|
-
let(:movabletype) { described_class.new(page_body("http://www.movabletype.com/blog
|
8
|
-
|
7
|
+
let(:movabletype) { described_class.new(page_body("http://www.movabletype.com/blog.html")) }
|
8
|
+
|
9
9
|
it { movabletype.output[:found].should eq true }
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
context "not movabletype" do
|
13
13
|
let(:blank) { described_class.new(empty_html_doc) }
|
14
|
-
|
14
|
+
|
15
15
|
it { blank.output[:found].should eq false }
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sniffles/sniffers/cms/mybb'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Mybb do
|
5
|
-
describe "#output" do
|
6
|
-
context "mybb", :vcr => { :cassette_name => "
|
7
|
-
let(:mybb) { described_class.new(page_body("http://
|
8
|
-
|
5
|
+
describe "#output" do
|
6
|
+
context "mybb", :vcr => { :cassette_name => "installatron_com" } do
|
7
|
+
let(:mybb) { described_class.new(page_body("http://livedemo.installatron.com/1388287564mybb/")) }
|
8
|
+
|
9
9
|
it { mybb.output[:found].should eq true }
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
context "not mybb" do
|
13
13
|
let(:blank) { described_class.new(empty_html_doc) }
|
14
|
-
|
14
|
+
|
15
15
|
it { blank.output[:found].should eq false }
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sniffles/sniffers/cms/phpbb'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Phpbb do
|
5
|
-
describe "#output" do
|
5
|
+
describe "#output" do
|
6
6
|
context "phpBB forum", :vcr => { :cassette_name => "phpbb_com" } do
|
7
|
-
let(:phpbb) { described_class.new(page_body("
|
8
|
-
|
7
|
+
let(:phpbb) { described_class.new(page_body("https://www.phpbb.com/styles/demo/3.0/board/index.php?style=3")) }
|
8
|
+
|
9
9
|
it { phpbb.output[:found].should eq true }
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
context "Not a phpBB Forum" do
|
13
13
|
let(:blank) { described_class.new(empty_html_doc) }
|
14
|
-
|
14
|
+
|
15
15
|
it { blank.output[:found].should eq false }
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sniffles/sniffers/cms/shopify'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Shopify do
|
5
|
-
describe "#output" do
|
6
|
-
context "shopify", :vcr => { :cassette_name => "
|
7
|
-
let(:shopify) { described_class.new(page_body("http://
|
8
|
-
|
5
|
+
describe "#output" do
|
6
|
+
context "shopify", :vcr => { :cassette_name => "cxxvi_com" } do
|
7
|
+
let(:shopify) { described_class.new(page_body("http://cxxvi.com/")) }
|
8
|
+
|
9
9
|
it { shopify.output[:found].should eq true }
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
context "not shopify" do
|
13
13
|
let(:blank) { described_class.new(empty_html_doc) }
|
14
|
-
|
14
|
+
|
15
15
|
it { blank.output[:found].should eq false }
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sniffles/sniffers/cms/tumblr'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Tumblr do
|
5
|
-
describe "#output" do
|
5
|
+
describe "#output" do
|
6
6
|
context "tumblr", :vcr => { :cassette_name => "staff_tumblr_com" } do
|
7
7
|
let(:tumblr) { described_class.new(page_body("http://staff.tumblr.com")) }
|
8
|
-
|
8
|
+
|
9
9
|
it { tumblr.output[:found].should eq true }
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
context "not tumblr" do
|
13
13
|
let(:blank) { described_class.new(empty_html_doc) }
|
14
|
-
|
14
|
+
|
15
15
|
it { blank.output[:found].should eq false }
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sniffles/sniffers/cms/vanilla'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Vanilla do
|
5
|
-
describe "#output" do
|
6
|
-
context "vanilla", :vcr => { :cassette_name => "
|
7
|
-
let(:vanilla) { described_class.new(page_body("http://
|
8
|
-
|
5
|
+
describe "#output" do
|
6
|
+
context "vanilla", :vcr => { :cassette_name => "geomagik_com" } do
|
7
|
+
let(:vanilla) { described_class.new(page_body("http://www.geomagik.com/forum/")) }
|
8
|
+
|
9
9
|
it { vanilla.output[:found].should eq true }
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
context "not vanilla" do
|
13
13
|
let(:blank) { described_class.new(empty_html_doc) }
|
14
|
-
|
14
|
+
|
15
15
|
it { blank.output[:found].should eq false }
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -1,27 +1,21 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sniffles/sniffers/cms/vbulletin'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Vbulletin do
|
5
|
-
describe "#output" do
|
6
|
-
context "vbulletin w/ meta generator", :vcr => { :cassette_name => "
|
7
|
-
let(:vbulletin) { described_class.new(page_body("
|
8
|
-
|
5
|
+
describe "#output" do
|
6
|
+
context "vbulletin w/ meta generator and JS", :vcr => { :cassette_name => "blackhatworld_com" } do
|
7
|
+
let(:vbulletin) { described_class.new(page_body("http://www.blackhatworld.com/")) }
|
8
|
+
|
9
9
|
it { vbulletin.output[:found].should eq true }
|
10
|
-
it { vbulletin.output[:version].should eq "4.1
|
11
|
-
it { vbulletin.output[:feed].should eq "
|
12
|
-
end
|
13
|
-
|
14
|
-
context "vbulletin w/ JS initialization", :vcr => { :cassette_name => "blackhatworld_com" } do
|
15
|
-
let(:vbulletin) { described_class.new(page_body("http://www.blackhatworld.com/index.php")) }
|
16
|
-
|
10
|
+
it { vbulletin.output[:version].should eq "4.2.1" }
|
11
|
+
it { vbulletin.output[:feed].should eq "http://www.blackhatworld.com/blackhat-seo/external.php?type=RSS2" }
|
17
12
|
it { vbulletin.output[:found].should eq true }
|
18
13
|
end
|
19
|
-
|
14
|
+
|
20
15
|
context "not vbulletin" do
|
21
16
|
let(:blank) { described_class.new(empty_html_doc) }
|
22
|
-
|
17
|
+
|
23
18
|
it { blank.output[:found].should eq false }
|
24
19
|
end
|
25
|
-
|
26
20
|
end
|
27
|
-
end
|
21
|
+
end
|
@@ -1,27 +1,27 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sniffles/sniffers/cms/wordpress'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Wordpress do
|
5
5
|
describe "#output" do
|
6
6
|
context "feed, theme, pingback", :vcr => { :cassette_name => 'pearsonified_com' } do
|
7
7
|
let(:wp) { described_class.new(page_body("http://www.pearsonified.com/")) }
|
8
|
-
|
8
|
+
|
9
9
|
it { wp.output[:found].should eq true }
|
10
10
|
it { wp.output[:feed].should eq "http://feeds.feedburner.com/pearsonified" }
|
11
11
|
it { wp.output[:theme].should eq "thesis_17" }
|
12
12
|
it { wp.output[:pingback].should eq "http://www.pearsonified.com/xmlrpc.php" }
|
13
13
|
end
|
14
|
-
|
15
|
-
context "version", :vcr => { :cassette_name => '
|
16
|
-
let(:wp) { described_class.new(page_body("http://
|
17
|
-
|
18
|
-
it { wp.output[:version].should eq "
|
19
|
-
end
|
20
|
-
|
14
|
+
|
15
|
+
context "version", :vcr => { :cassette_name => 'wellmedicated_com' } do
|
16
|
+
let(:wp) { described_class.new(page_body("http://wellmedicated.com/")) }
|
17
|
+
|
18
|
+
it { wp.output[:version].should eq "3.1.4" }
|
19
|
+
end
|
20
|
+
|
21
21
|
context "not wordpress" do
|
22
22
|
let(:blank) { described_class.new(empty_html_doc) }
|
23
|
-
|
23
|
+
|
24
24
|
it { blank.output[:found].should eq false }
|
25
25
|
end
|
26
26
|
end
|
27
|
-
end
|
27
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../../../lib/sniffles/sniffers/cms/xcart')
|
3
|
+
|
4
|
+
describe Sniffles::Sniffers::Xcart do
|
5
|
+
describe "#output" do
|
6
|
+
context "xcart", :vcr => { :cassette_name => 'exprodirect_com' } do
|
7
|
+
let(:xcart) { described_class.new(page_body("http://www.exprodirect.com/")) }
|
8
|
+
|
9
|
+
it { xcart.output[:found].should eq true }
|
10
|
+
end
|
11
|
+
|
12
|
+
context "not xcart" do
|
13
|
+
let(:blank) { described_class.new(empty_html_doc) }
|
14
|
+
|
15
|
+
it { blank.output[:found].should eq false }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sniffles/sniffers/cms/zencart'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Zencart do
|
5
|
-
describe "#output" do
|
6
|
-
context "zencart", :vcr => { :cassette_name => "
|
7
|
-
let(:zencart) { described_class.new(page_body("http://
|
8
|
-
|
5
|
+
describe "#output" do
|
6
|
+
context "zencart", :vcr => { :cassette_name => "ocbfashionjewelry_com" } do
|
7
|
+
let(:zencart) { described_class.new(page_body("http://ocbfashionjewelry.com/")) }
|
8
|
+
|
9
9
|
it { zencart.output[:found].should eq true }
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
context "not zencart" do
|
13
13
|
let(:blank) { described_class.new(empty_html_doc) }
|
14
|
-
|
14
|
+
|
15
15
|
it { blank.output[:found].should eq false }
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "spec_helper"
|
2
|
+
require 'sniffles/sniffers/javascript/jquery'
|
3
3
|
|
4
4
|
describe Sniffles::Sniffers::Jquery do
|
5
|
-
describe "#output" do
|
6
|
-
context "jquery", :vcr => { :cassette_name => "
|
7
|
-
let(:jquery) { described_class.new(page_body("http://
|
8
|
-
|
5
|
+
describe "#output" do
|
6
|
+
context "jquery", :vcr => { :cassette_name => "blog_mixpanel_com" } do
|
7
|
+
let(:jquery) { described_class.new(page_body("http://blog.mixpanel.com/")) }
|
8
|
+
|
9
9
|
it { jquery.output[:found].should eq true }
|
10
10
|
end
|
11
11
|
|
12
12
|
context "no jquery" do
|
13
13
|
let(:blank) { described_class.new(empty_html_doc) }
|
14
|
-
|
14
|
+
|
15
15
|
it { blank.output[:found].should eq false }
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
data/spec/sniffles_spec.rb
CHANGED
@@ -1,47 +1,47 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Sniffles do
|
4
|
-
describe "#sniff", :vcr => { :cassette_name => "
|
5
|
-
let(:
|
6
|
-
|
4
|
+
describe "#sniff", :vcr => { :cassette_name => "blog_mixpanel_com" } do
|
5
|
+
let(:blog) { page_body("http://blog.mixpanel.com/") }
|
6
|
+
|
7
7
|
context "one sniffer" do
|
8
|
-
it { subject.sniff(
|
8
|
+
it { subject.sniff(blog, :mixpanel).should eq :mixpanel => { :found => true } }
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
context "using multiple sniffers" do
|
12
|
-
it { subject.sniff(
|
12
|
+
it { subject.sniff(blog, :jquery, :mixpanel).should include(:jquery, :mixpanel) }
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
context "using groups" do
|
16
|
-
it { subject.sniff(
|
16
|
+
it { subject.sniff(blog, :analytics).should include(:mixpanel, :google_analytics) }
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
context "w/o supplying groups or sniffers" do
|
20
|
-
it { subject.sniff(
|
20
|
+
it { subject.sniff(blog).count.should eq SNIFFER_COUNT }
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
context "using a non-existent sniffer" do
|
24
24
|
it "should raise an error" do
|
25
|
-
expect { subject.sniff(
|
25
|
+
expect { subject.sniff(blog, :fake_ass_sniffer) }.to raise_error(Sniffles::UnknownSniffer, "fake_ass_sniffer not found!")
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
describe "#group?" do
|
31
31
|
context "group exists" do
|
32
32
|
it { subject.group?(:cms).should be true }
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
context "group doesn't exist" do
|
36
36
|
it { subject.group?(:wordpress).should be false }
|
37
37
|
end
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
describe "#sniffer?" do
|
41
41
|
context "sniffer exists" do
|
42
42
|
it { subject.sniffer?(:wordpress).should be true }
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
context "sniffer doesn't exist" do
|
46
46
|
it { subject.sniffer?(:cms).should be false }
|
47
47
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
|
-
require
|
2
|
-
|
1
|
+
require 'bundler/setup'
|
2
|
+
Bundler.setup(:default, :test)
|
3
|
+
|
4
|
+
require 'sniffles'
|
3
5
|
require 'vcr'
|
4
6
|
|
7
|
+
require 'support/helpers'
|
8
|
+
require 'rspec/autorun'
|
9
|
+
|
5
10
|
VCR.configure do |c|
|
6
11
|
c.cassette_library_dir = 'spec/cassettes'
|
7
12
|
c.hook_into :typhoeus
|
@@ -12,5 +17,4 @@ RSpec.configure do |config|
|
|
12
17
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
13
18
|
config.run_all_when_everything_filtered = true
|
14
19
|
config.filter_run :focus
|
15
|
-
config.extend VCR::RSpec::Macros
|
16
20
|
end
|
data/spec/support/helpers.rb
CHANGED
@@ -4,9 +4,9 @@ SNIFFER_COUNT = Dir.glob(File.dirname(__FILE__) + "/../../lib/sniffles/sniffers/
|
|
4
4
|
SNIFFER_GROUP_COUNT = Dir.glob(File.dirname(__FILE__) + "/../../lib/sniffles/sniffers/**").count
|
5
5
|
|
6
6
|
def page_body(url)
|
7
|
-
Typhoeus::Request.get(url).body
|
7
|
+
Typhoeus::Request.get(url, headers: { 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.68 Safari/537.36'}).body
|
8
8
|
end
|
9
9
|
|
10
10
|
def empty_html_doc
|
11
11
|
"<html><head></head><body></body></html>"
|
12
|
-
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sniffles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ezekiel Templin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.6.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.6.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.9.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.9.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: typhoeus
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.3.3
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.3.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: vcr
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.
|
61
|
+
version: 2.8.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.
|
68
|
+
version: 2.8.0
|
69
69
|
description: Sniffles helps you detect which popular CMS, analytics, and advertising
|
70
70
|
platforms a website is running.
|
71
71
|
email:
|
@@ -74,10 +74,10 @@ executables: []
|
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
-
- .gitignore
|
78
|
-
- .rspec
|
79
|
-
- .rvmrc
|
80
|
-
- .travis.yml
|
77
|
+
- ".gitignore"
|
78
|
+
- ".rspec"
|
79
|
+
- ".rvmrc"
|
80
|
+
- ".travis.yml"
|
81
81
|
- Gemfile
|
82
82
|
- Guardfile
|
83
83
|
- LICENSE
|
@@ -87,11 +87,9 @@ files:
|
|
87
87
|
- lib/sniffles.rb
|
88
88
|
- lib/sniffles/html.rb
|
89
89
|
- lib/sniffles/sniffers.rb
|
90
|
-
- lib/sniffles/sniffers/advertising/admeld.rb
|
91
90
|
- lib/sniffles/sniffers/advertising/adsense.rb
|
92
91
|
- lib/sniffles/sniffers/advertising/buysellads.rb
|
93
92
|
- lib/sniffles/sniffers/advertising/casale.rb
|
94
|
-
- lib/sniffles/sniffers/advertising/gumgum.rb
|
95
93
|
- lib/sniffles/sniffers/advertising/kontera.rb
|
96
94
|
- lib/sniffles/sniffers/advertising/thedeck.rb
|
97
95
|
- lib/sniffles/sniffers/advertising/tribalfusion.rb
|
@@ -108,6 +106,7 @@ files:
|
|
108
106
|
- lib/sniffles/sniffers/cms/cscart.rb
|
109
107
|
- lib/sniffles/sniffers/cms/drupal.rb
|
110
108
|
- lib/sniffles/sniffers/cms/flatpress.rb
|
109
|
+
- lib/sniffles/sniffers/cms/ghost.rb
|
111
110
|
- lib/sniffles/sniffers/cms/invision.rb
|
112
111
|
- lib/sniffles/sniffers/cms/joomla.rb
|
113
112
|
- lib/sniffles/sniffers/cms/magento.rb
|
@@ -115,7 +114,6 @@ files:
|
|
115
114
|
- lib/sniffles/sniffers/cms/mybb.rb
|
116
115
|
- lib/sniffles/sniffers/cms/oscommerce.rb
|
117
116
|
- lib/sniffles/sniffers/cms/phpbb.rb
|
118
|
-
- lib/sniffles/sniffers/cms/posterous.rb
|
119
117
|
- lib/sniffles/sniffers/cms/prestashop.rb
|
120
118
|
- lib/sniffles/sniffers/cms/shopify.rb
|
121
119
|
- lib/sniffles/sniffers/cms/sitefinity.rb
|
@@ -124,6 +122,7 @@ files:
|
|
124
122
|
- lib/sniffles/sniffers/cms/vanilla.rb
|
125
123
|
- lib/sniffles/sniffers/cms/vbulletin.rb
|
126
124
|
- lib/sniffles/sniffers/cms/wordpress.rb
|
125
|
+
- lib/sniffles/sniffers/cms/xcart.rb
|
127
126
|
- lib/sniffles/sniffers/cms/xenforo.rb
|
128
127
|
- lib/sniffles/sniffers/cms/zencart.rb
|
129
128
|
- lib/sniffles/sniffers/javascript/jquery.rb
|
@@ -132,49 +131,48 @@ files:
|
|
132
131
|
- sniffles.gemspec
|
133
132
|
- spec/cassettes/beenverified_com.yml
|
134
133
|
- spec/cassettes/blackhatworld_com.yml
|
135
|
-
- spec/cassettes/
|
134
|
+
- spec/cassettes/blog_mixpanel_com.yml
|
136
135
|
- spec/cassettes/community_invisionpower_com.yml
|
136
|
+
- spec/cassettes/cxxvi_com.yml
|
137
137
|
- spec/cassettes/demo-store_prestashop_com.yml
|
138
138
|
- spec/cassettes/demo_cs-cart_com.yml
|
139
|
-
- spec/cassettes/demo_forum-software_org_mybb.yml
|
140
139
|
- spec/cassettes/demo_oscommerce_com.yml
|
140
|
+
- spec/cassettes/digital-photography-school_com.yml
|
141
141
|
- spec/cassettes/downlopedia_com.yml
|
142
142
|
- spec/cassettes/drupal.yml
|
143
|
+
- spec/cassettes/exprodirect_com.yml
|
143
144
|
- spec/cassettes/facebook_insights.yml
|
144
145
|
- spec/cassettes/flatpress_org_home_blog.yml
|
145
|
-
- spec/cassettes/forum-software_org_vanilla.yml
|
146
146
|
- spec/cassettes/foursquare_com.yml
|
147
|
+
- spec/cassettes/geomagik_com.yml
|
148
|
+
- spec/cassettes/ghost_org.yml
|
147
149
|
- spec/cassettes/google_blogspot_com.yml
|
148
150
|
- spec/cassettes/guistyles_com.yml
|
149
|
-
- spec/cassettes/
|
151
|
+
- spec/cassettes/installatron_com.yml
|
150
152
|
- spec/cassettes/invisionmodding_com.yml
|
151
|
-
- spec/cassettes/
|
153
|
+
- spec/cassettes/joomla.yml
|
154
|
+
- spec/cassettes/kissmetrics_com.yml
|
155
|
+
- spec/cassettes/lancelhoff_com.yml
|
152
156
|
- spec/cassettes/magento.yml
|
153
157
|
- spec/cassettes/metafilter_com.yml
|
154
158
|
- spec/cassettes/movabletype_com_blog.yml
|
155
|
-
- spec/cassettes/
|
159
|
+
- spec/cassettes/ocbfashionjewelry_com.yml
|
156
160
|
- spec/cassettes/pandoramoa_com.yml
|
157
161
|
- spec/cassettes/pearsonified_com.yml
|
158
162
|
- spec/cassettes/phpbb_com.yml
|
159
|
-
- spec/cassettes/shop_angrybirds_com.yml
|
160
163
|
- spec/cassettes/sitefinity_com.yml
|
161
164
|
- spec/cassettes/sixflags_com.yml
|
162
|
-
- spec/cassettes/softpedia_com.yml
|
163
165
|
- spec/cassettes/soulemama_typepad_com.yml
|
164
|
-
- spec/cassettes/
|
166
|
+
- spec/cassettes/stackoverflow_com.yml
|
165
167
|
- spec/cassettes/staff_tumblr_com.yml
|
166
|
-
- spec/cassettes/tmz_com.yml
|
167
168
|
- spec/cassettes/topix_com.yml
|
168
|
-
- spec/cassettes/
|
169
|
+
- spec/cassettes/wellmedicated_com.yml
|
169
170
|
- spec/cassettes/wordpress_com.yml
|
170
|
-
- spec/cassettes/wundergroud_com.yml
|
171
171
|
- spec/cassettes/xenforo_com.yml
|
172
172
|
- spec/sniffles/html_spec.rb
|
173
|
-
- spec/sniffles/sniffers/advertising/admeld_spec.rb
|
174
173
|
- spec/sniffles/sniffers/advertising/adsense_spec.rb
|
175
174
|
- spec/sniffles/sniffers/advertising/buysellads_spec.rb
|
176
175
|
- spec/sniffles/sniffers/advertising/casale_spec.rb
|
177
|
-
- spec/sniffles/sniffers/advertising/gumgum_spec.rb
|
178
176
|
- spec/sniffles/sniffers/advertising/kontera_spec.rb
|
179
177
|
- spec/sniffles/sniffers/advertising/thedeck_spec.rb
|
180
178
|
- spec/sniffles/sniffers/advertising/tribalfusion_spec.rb
|
@@ -191,6 +189,7 @@ files:
|
|
191
189
|
- spec/sniffles/sniffers/cms/cscart_spec.rb
|
192
190
|
- spec/sniffles/sniffers/cms/drupal_spec.rb
|
193
191
|
- spec/sniffles/sniffers/cms/flatpress_spec.rb
|
192
|
+
- spec/sniffles/sniffers/cms/ghost_spec.rb
|
194
193
|
- spec/sniffles/sniffers/cms/invision_spec.rb
|
195
194
|
- spec/sniffles/sniffers/cms/joomla_spec.rb
|
196
195
|
- spec/sniffles/sniffers/cms/magento_spec.rb
|
@@ -198,7 +197,6 @@ files:
|
|
198
197
|
- spec/sniffles/sniffers/cms/mybb_spec.rb
|
199
198
|
- spec/sniffles/sniffers/cms/oscommerce_spec.rb
|
200
199
|
- spec/sniffles/sniffers/cms/phpbb_spec.rb
|
201
|
-
- spec/sniffles/sniffers/cms/posterous_spec.rb
|
202
200
|
- spec/sniffles/sniffers/cms/prestashop_spec.rb
|
203
201
|
- spec/sniffles/sniffers/cms/shopify_spec.rb
|
204
202
|
- spec/sniffles/sniffers/cms/sitefinity_spec.rb
|
@@ -207,6 +205,7 @@ files:
|
|
207
205
|
- spec/sniffles/sniffers/cms/vanilla_spec.rb
|
208
206
|
- spec/sniffles/sniffers/cms/vbulletin_spec.rb
|
209
207
|
- spec/sniffles/sniffers/cms/wordpress_spec.rb
|
208
|
+
- spec/sniffles/sniffers/cms/xcart_spec.rb
|
210
209
|
- spec/sniffles/sniffers/cms/xenforo_spec.rb
|
211
210
|
- spec/sniffles/sniffers/cms/zencart_spec.rb
|
212
211
|
- spec/sniffles/sniffers/javascript/jquery_spec.rb
|
@@ -224,18 +223,19 @@ require_paths:
|
|
224
223
|
- lib
|
225
224
|
required_ruby_version: !ruby/object:Gem::Requirement
|
226
225
|
requirements:
|
227
|
-
- -
|
226
|
+
- - ">="
|
228
227
|
- !ruby/object:Gem::Version
|
229
228
|
version: '0'
|
230
229
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
231
230
|
requirements:
|
232
|
-
- -
|
231
|
+
- - ">="
|
233
232
|
- !ruby/object:Gem::Version
|
234
233
|
version: '0'
|
235
234
|
requirements: []
|
236
235
|
rubyforge_project:
|
237
|
-
rubygems_version: 2.0
|
236
|
+
rubygems_version: 2.2.0
|
238
237
|
signing_key:
|
239
238
|
specification_version: 4
|
240
239
|
summary: Detect the platforms and libraries a website is running.
|
241
240
|
test_files: []
|
241
|
+
has_rdoc:
|