gman 5.0.1 → 5.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2aebb6fcc1beb8c6e31d4aa63b150e0d67014e84
4
- data.tar.gz: 33a80c330a374a7a0cd6deaba97ae9f3bbbb6fc1
3
+ metadata.gz: 6c14780a8da17be7dbcd93d3f1623da401aa5124
4
+ data.tar.gz: 82aecc0617942671dd7beec7601ddef10a1b9262
5
5
  SHA512:
6
- metadata.gz: 13559a95833ea8b189fc9d02ba7dfd009842567af1ebc6f0c2ad68b87b8180bbe3c4418cb13234f173fb82152353349be7d14ec2c4fccc1b78935e1d8bb6619e
7
- data.tar.gz: cd14de9bd1895da601d8abb09fe11d7c0fe2b9fc907cc15a2c20ba4c61d83968d2d9b9e49884229715c5cec5548297eb179de914812627793426f4e4d04b06e8
6
+ metadata.gz: e1431c5933b0eb033945732d265640da90b59e2f420b4f97bc7a84158f1793ea489a630b371702bfe9a5342e9c06f4839daeeee3fafc521588628d83cecddd93
7
+ data.tar.gz: 2e03f15a543f54d5a56b1abc6646c86496a1e72d9e4f42a5f862c18725df6f50f17a90704f76da0b8efb31eeecbb492eb2992ec714a39e480d892a22067b2cc5
data/Gemfile CHANGED
@@ -1,7 +1,2 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
-
4
- group :development, :test do
5
- gem 'net-dns'
6
- gem 'ruby-prof'
7
- end
@@ -1462,28 +1462,79 @@ hel.fi
1462
1462
  lounaispaikka.fi
1463
1463
 
1464
1464
  // German Federal
1465
+ 60jahresozialstaat.de
1466
+ a9digital.de
1467
+ adele-esf.de
1468
+ agrowetter.de
1469
+ agrowetter.eu
1470
+ allianz-fuer-arbeitskraefte.de
1471
+ allianz-fuer-fachkraefte.de
1472
+ allianz-für-arbeitskräfte.de
1473
+ allianz-für-fachkräfte.de
1474
+ alpenflugwetter.com
1475
+ alpenflugwetter.de
1476
+ alpenflugwetter.eu
1477
+ alpenwetter.eu
1478
+ altersvorsorgemachtschule.com
1479
+ altersvorsorgemachtschule.de
1480
+ altersvorsorgemachtschule.info
1481
+ altersvorsorgemachtschule.net
1482
+ altersvorsorgemachtschule.org
1483
+ arb-5.de
1484
+ arbeit-4-null.de
1485
+ arbeit-4-punkt-null.de
1486
+ arbeit-psyche.de
1487
+ arbeitderzukunft.de
1488
+ arbeiten-4-0.de
1489
+ arbeiten4null.de
1490
+ arbeiten4punktnull.de
1491
+ arbeitenbis67.de
1492
+ arbeitenviernull.de
1493
+ arbeitenvierpunktnull.de
1465
1494
  arbeitsagentur.de
1495
+ arbeitsmarktreform.de
1496
+ arbeitsministerium.eu
1497
+ arbeitsschutz-forschung.de
1498
+ arbeitvierpunktnull.de
1499
+ armutsbericht.de
1466
1500
  auswaertiges-amt.de
1501
+ aviation-weather.eu
1502
+ ba-reform.de
1467
1503
  badv.bund.de
1468
1504
  bafa.de
1469
1505
  bafg.de
1470
1506
  bafza.de
1471
1507
  bag.bund.de
1508
+ ballonwetter.de
1509
+ ballonwetter.eu
1472
1510
  bam.de
1473
1511
  bamf.de
1474
1512
  bast.de
1513
+ bauminister.de
1475
1514
  baw.de
1476
1515
  bbk.bund.de
1477
1516
  bbr.bund.de
1517
+ behindern-ist-heilbar.de
1518
+ beirat-raumentwicklung.de
1519
+ beschaeftigtebeteiligen.de
1520
+ beschaeftigung-aelterer.de
1521
+ beschäftigtebeteiligen.de
1522
+ beschäftigung-gestalten.de
1478
1523
  bev.bund.de
1479
1524
  bfarm.de
1480
1525
  bfb-bund.de
1481
1526
  bfn.de
1482
1527
  bfs.de
1483
1528
  bfu-web.de
1529
+ bildungspaket-bmas.de
1530
+ bitvlotse.de
1484
1531
  bka.de
1485
1532
  bkg.bund.de
1533
+ bma.de
1534
+ bmas-alleinerziehende.de
1486
1535
  bmas.de
1536
+ bmas.eu
1537
+ bmas.mobi
1487
1538
  bmbf.de
1488
1539
  bmel.de
1489
1540
  bmfsfj.de
@@ -1491,27 +1542,52 @@ bmg.bund.de
1491
1542
  bmi.bund.de
1492
1543
  bmjv.de
1493
1544
  bmub.de
1545
+ bmvbs.de
1494
1546
  bmvg.de
1495
1547
  bmvi.de
1548
+ bmvi.eu
1549
+ bmvi.info
1550
+ bmvi.net
1551
+ bmvi.org
1496
1552
  bmwi.de
1497
1553
  bmz.de
1498
1554
  bnd.de
1499
1555
  bpatg.de
1556
+ breitbandatlas.de
1557
+ briefing4aviation.com
1558
+ briefing4aviation.de
1559
+ briefing4aviation.eu
1560
+ briefing4pilot.com
1561
+ briefing4pilot.de
1562
+ briefing4pilot.eu
1500
1563
  bsh.de
1501
1564
  bsi.bund.de
1502
1565
  bstu.bund.de
1503
1566
  bsu-bund.de
1504
1567
  bundesarbeitsgericht.de
1568
+ bundesarbeitsministerium.de
1569
+ bundesarbeitsministerium.eu
1505
1570
  bundesarchiv.de
1506
1571
  bundesausgleichsamt.de
1507
1572
  bundesbank.de
1573
+ bundesbauminister.com
1574
+ bundesbauminister.de
1575
+ bundesbauminister.net
1576
+ bundesbauminister.org
1577
+ bundesbauministerium.com
1578
+ bundesbauministerium.de
1579
+ bundesbauministerium.net
1580
+ bundesbauministerium.org
1508
1581
  bundesfinanzhof.de
1509
1582
  bundesfinanzministerium.de
1510
1583
  bundesgerichtshof.de
1584
+ bundesinfrastrukturministerium.de
1511
1585
  bundesjustizamt.de
1512
1586
  bundeskanzleramt.de
1513
1587
  bundeskanzlerin.de
1514
1588
  bundeskartellamt.de
1589
+ bundesministerium-fuer-arbeit-und-soziales.eu
1590
+ bundesministerium-fuer-stadtentwicklung.de
1515
1591
  bundesnetzagentur.de
1516
1592
  bundespolizei.de
1517
1593
  bundespraesident.de
@@ -1521,41 +1597,309 @@ bundesrechnungshof.de
1521
1597
  bundesregierung.de
1522
1598
  bundessortenamt.de
1523
1599
  bundessozialgericht.de
1600
+ bundessozialministerium.de
1601
+ bundessozialministerium.eu
1524
1602
  bundessprachenamt.de
1525
1603
  bundestag.de
1526
1604
  bundesverfassungsgericht.de
1605
+ bundesverkehrsminister.com
1606
+ bundesverkehrsminister.de
1607
+ bundesverkehrsminister.net
1608
+ bundesverkehrsminister.org
1609
+ bundesverkehrsministerium.com
1610
+ bundesverkehrsministerium.de
1611
+ bundesverkehrsministerium.net
1612
+ bundesverkehrsministerium.org
1527
1613
  bundesversicherungsamt.de
1528
1614
  bundesverwaltungsgericht.de
1529
1615
  bundeswehr-karriere.de
1530
1616
  bva.bund.de
1531
1617
  bvl.bund.de
1618
+ bvwp2015.de
1532
1619
  bzga.de
1533
1620
  bzst.bund.de
1621
+ chancen-mit-erfahrung.de
1622
+ climatemonitoring.de
1623
+ climatemonitoring.eu
1624
+ climateservice.eu
1625
+ climateservices.de
1626
+ climateservices.eu
1627
+ cmsaf.eu
1628
+ csr-preis-bund.de
1629
+ csr-unternehmenswerte.de
1630
+ csrindeutschland.de
1631
+ csringermany.de
1632
+ csrmadeingermany.de
1633
+ d-klip.de
1634
+ das-bildungspaket.de
1635
+ das-demographie-netzwerk.de
1636
+ das-halbe-leben.com
1637
+ das-halbe-leben.net
1638
+ das-jobcenter.de
1639
+ das-rentenpaket.de
1640
+ das-rentenreformpaket.de
1641
+ dashalbeleben.de
1642
+ dates-esf-test.de
1643
+ dates-esf.de
1644
+ demograf.de
1645
+ der-demograf.de
1646
+ der-mindestlohn-gilt.de
1647
+ der-mindestlohn-kommt.de
1648
+ der-mindestlohn-wirkt.de
1649
+ der-mindestlohn.de
1534
1650
  destatis.de
1651
+ deutscher-klimaatlas.de
1652
+ deutscher-wetterdienst.com
1653
+ deutscher-wetterdienst.de
1654
+ deutscher-wetterdienst.eu
1655
+ deutsches-klimaportal.de
1656
+ deutschland-wird-inklusiv.de
1657
+ die-rente.com
1658
+ die-rente.info
1659
+ die-rente.net
1660
+ die-rente.org
1661
+ digitaleautobahn.de
1662
+ digitales-testfeld-autobahn.de
1663
+ digitalestestfeld.de
1535
1664
  dimdi.de
1536
1665
  dpma.de
1666
+ dta9.de
1667
+ dwd-shop.de
1668
+ dwd-shop.eu
1669
+ dwd.bund.de
1537
1670
  dwd.de
1671
+ dwd.eu
1538
1672
  eba.bund.de
1673
+ einfach-leichte-sprache.de
1674
+ einfachteilhaben.de
1675
+ einfachteilhaben.mobi
1676
+ einsatzfuerarbeit.de
1677
+ einsatzfürarbeit.de
1678
+ energie-fuer-morgen.de
1679
+ equal.de
1680
+ esa-cloud-cci.eu
1681
+ esa-cloud-cci.info
1682
+ esa-cloud-cci.net
1683
+ esa-cloud-cci.org
1684
+ esf-foerderung.de
1685
+ esf-in-deutschland.de
1686
+ esf-meine-geschichte.de
1687
+ esf-programm.de
1688
+ esf.de
1689
+ fachkraefte-allianz.de
1690
+ fachkraefteoffensive.de
1691
+ fachkraeftewoche.de
1692
+ fachkräfte-allianz.de
1693
+ fachkräfteoffensive.de
1694
+ fachkräftewoche.de
1539
1695
  fli.bund.de
1696
+ flugmet.de
1697
+ flugmet.eu
1698
+ flugwetter-beratung.de
1699
+ flugwetter.de
1700
+ flugwetter.eu
1701
+ foerdern-und-fordern.info
1702
+ fondsheimkinder.de
1703
+ fuereinlebenswertesland.de
1704
+ fördern-und-fordern.info
1705
+ füreinlebenswertesland.de
1706
+ gcos.de
1707
+ gda-psyche.de
1708
+ gemeinsam-einfach-machen.de
1540
1709
  generalbundesanwalt.de
1710
+ generationenarbeit.de
1711
+ generationpraktikum.de
1712
+ gesundheitswetter.eu
1713
+ gisc-offenbach.eu
1714
+ globalisierungsfonds.de
1715
+ gruan.org
1716
+ gsnmc.eu
1717
+ gute-arbeit-alleinerziehende.de
1718
+ hartziv.de
1719
+ heimkinder-fonds.de
1720
+ hinzuverdienstrechner.de
1721
+ ida.de
1722
+ infrastrukturministerium.de
1723
+ initiative-für-fachkraefte.de
1724
+ initiative-für-fachkräfte.de
1725
+ initiative-neue-qualitaet-der-arbeit.de
1726
+ inklusionslandkarte.de
1727
+ inqa-bestellservice.de
1728
+ inqa-check.de
1729
+ inqa-ddn.de
1730
+ inqa-demografie.de
1731
+ inqa-demographie-netzwerk.de
1732
+ inqa-demographie.de
1733
+ inqa-epoxibewertung.de
1734
+ inqa-kmu.de
1735
+ inqa-mittelstand.de
1736
+ inqa-pflege.de
1737
+ inqa-produktion.de
1738
+ inqa-stress.de
1739
+ inqa.de
1541
1740
  iud.bundeswehr.de
1542
1741
  jki.bund.de
1742
+ job-drei-null.de
1743
+ job3punkt0.de
1744
+ job3punktnull.de
1745
+ jobcenterreform.de
1746
+ jobcenterservice.de
1747
+ jobcentersuche.de
1748
+ jobdreipunktnull.de
1749
+ jobsohnebarrieren.de
1750
+ jugendinarbeit.de
1543
1751
  kba.de
1544
1752
  kfw-foerderbank.de
1545
1753
  kkr.bund.de
1754
+ klimadaten.eu
1755
+ klimadeutschland.de
1756
+ klimagutachten.eu
1757
+ klimamonitoring.de
1758
+ klimaservices.de
1759
+ klimaueberwachung.de
1760
+ klimaueberwachung.eu
1761
+ kliwas.de
1546
1762
  kulturstaatsminister.de
1547
1763
  lba.de
1764
+ lebenslagen-in-deutschland.de
1765
+ leitfadeninklusion.de
1766
+ lohntarifpaket.de
1548
1767
  mad.bundeswehr.de
1768
+ medizinwetter.eu
1769
+ mein-comeback.info
1770
+ mein-microkredit.com
1771
+ mein-microkredit.eu
1772
+ mein-mikrokredit.com
1773
+ mein-mikrokredit.eu
1774
+ mein-mikrokredit.org
1775
+ meincomeback.de
1776
+ meinmicrocredit.com
1777
+ meinmicrocredit.de
1778
+ meinmicrocredit.eu
1779
+ meinmicrokredit.de
1780
+ meinmicrokredit.org
1781
+ meinmikrocredit.com
1782
+ meinmikrocredit.de
1783
+ meinmikrocredit.eu
1784
+ meinmikrokredit.de
1785
+ met4aviation.com
1786
+ met4aviation.de
1787
+ met4aviation.eu
1788
+ met4pilot.com
1789
+ met4pilot.de
1790
+ met4pilot.eu
1791
+ meteoalarm.de
1792
+ metlis.eu
1793
+ mindestlohn-gilt.de
1794
+ mindestlohn-kommt.de
1795
+ mindestlohn-wirkt.de
1796
+ mitneuemmut.de
1797
+ mks-dialog.de
1798
+ mo-ro.net
1799
+ mo-ro.org
1800
+ monitoring-esf.de
1549
1801
  mri.bund.de
1802
+ naturgefahrenforschung.de
1803
+ netzallianz-digitales-deutschland.de
1804
+ netzallianzdeutschland.de
1805
+ netzwerk-alleinerziehende.de
1806
+ neue-qualitaet-der-arbeit.de
1807
+ neuekulturderarbeit.de
1808
+ neues-jobcenter.de
1809
+ oberpruefungsamt.de
1810
+ ohnedichkeinwir.de
1811
+ ombudsrad.de
1812
+ ombudsrat.de
1813
+ ombudsrat.info
1814
+ ombudsrat.net
1815
+ ombudsrat.org
1816
+ pc-met.eu
1817
+ pcmet.com
1818
+ pcmet.de
1550
1819
  pei.de
1820
+ pollenflugvorhersage.eu
1821
+ projekt-persoenliches-budget.de
1822
+ psyga-check.de
1551
1823
  ptb.de
1824
+ punktereform.de
1825
+ radwegdeutscheeinheit.de
1826
+ raps-benchmark.de
1827
+ rccra6.org
1828
+ rentenpaket.de
1829
+ rentenreformpaket.de
1552
1830
  rki.de
1831
+ rth-offenbach.eu
1832
+ seewis.de
1833
+ segelflugwetter.de
1834
+ segelflugwetter.eu
1835
+ selberhandeln.de
1836
+ sgb2-kennzahlen.de
1837
+ sgb2-reform.de
1838
+ sgb2.com
1839
+ sgb2.eu
1840
+ sgb2.info
1841
+ sgb2.net
1842
+ sgb2.org
1843
+ sgbii-kennzahlen.de
1844
+ sgbii.com
1845
+ sgbii.eu
1846
+ sgbii.net
1847
+ sgbii.org
1848
+ sgbzwei.com
1849
+ sgbzwei.de
1850
+ sgbzwei.eu
1851
+ sgbzwei.info
1852
+ sgbzwei.net
1853
+ sgbzwei.org
1854
+ sozialbeirat.de
1855
+ soziale-entschaedigung.de
1856
+ sozialministerium.eu
1857
+ sozialpolitische-informationen.de
1858
+ sozialversicherungswahlen.de
1859
+ sozialwahl2011.de
1860
+ tagderjobcenter.de
1861
+ technisches-referendariat.de
1862
+ teilzeit-info.de
1863
+ the-unseen.org
1864
+ tln-mobility.eu
1865
+ trivis.de
1553
1866
  umweltbundesamt.de
1867
+ un-behindertenrechtskonvention.de
1868
+ un-koordinierungsstelle.de
1869
+ uniohneabi.de
1870
+ unsere-rente.com
1871
+ unsere-rente.info
1872
+ unternehmens-wert-mensch.de
1873
+ unternehmensservice-demografie.de
1874
+ unternehmensservice-demographie.de
1875
+ usd-portal.de
1876
+ uv-index.de
1877
+ uv-index.eu
1878
+ vereint-fuer-gemeinsame-bildung.de
1879
+ vereint-für-gemeinsame-bildung.de
1880
+ vereintaktiv.de
1554
1881
  verfassungsschutz.de
1882
+ verkehrsminister.de
1883
+ verkehrsministerium.de
1884
+ vier-punkt-null.de
1555
1885
  vti.bund.de
1886
+ was-ist-gute-arbeit.de
1887
+ we-are-open.info
1888
+ wettergefahren.de
1889
+ wettergefahren.eu
1890
+ wetterlexikon.eu
1891
+ wetterwarnungen.eu
1892
+ wiewerdenwirarbeiten.de
1893
+ wiewollenwirarbeiten.de
1894
+ willkommenindeutschland.info
1556
1895
  wsv.de
1896
+ xenos-de.de
1897
+ yes-we-are-open.info
1898
+ yesweareopen.de
1899
+ zielvereinbarungsregister.de
1557
1900
  zivit.de
1558
1901
  zoll.de
1902
+ zukunftbreitband.de
1559
1903
 
1560
1904
  // German Municipalities
1561
1905
  aachen.de
@@ -5605,6 +5949,7 @@ townofberwick.org
5605
5949
  townofblanchard.us
5606
5950
  townofchatham.org
5607
5951
  townoffranklinton.com
5952
+ townofgoldenmeadow.com
5608
5953
  townoflivingston.com
5609
5954
  townoflockport.com
5610
5955
  townofwelsh.com
@@ -6566,6 +6911,7 @@ boonslick.org
6566
6911
  boonville-mo.org
6567
6912
  brentwoodmo.org
6568
6913
  bridgetonmo.com
6914
+ buffalomissouri.us
6569
6915
  byrnesmill.org
6570
6916
  cabool.org
6571
6917
  camdentoncity.com
@@ -6784,6 +7130,7 @@ willowspringsmo.com
6784
7130
  wrightcity.org
6785
7131
 
6786
7132
  // usagovMP
7133
+ gov.mp
6787
7134
  mymarianas.com
6788
7135
 
6789
7136
  // usagovMS
@@ -6897,6 +7244,7 @@ beaverheadcounty.org
6897
7244
  bozeman.net
6898
7245
  browningmontana.com
6899
7246
  cartercountymt.info
7247
+ cfcwesternmontana.org
6900
7248
  cityofcolstrip.com
6901
7249
  cityofcolumbiafalls.org
6902
7250
  cityofcutbank.org
@@ -7961,6 +8309,7 @@ merchantville.com
7961
8309
  metuchennj.org
7962
8310
  middletownnj.org
7963
8311
  middletownship.com
8312
+ milfordnj.org
7964
8313
  millstone.nj.us
7965
8314
  millstoneboro.org
7966
8315
  milltownnj.org
@@ -8154,6 +8503,7 @@ wanaqueborough.com
8154
8503
  wantagetwp.com
8155
8504
  warrennj.org
8156
8505
  washington-twp-warren.org
8506
+ washington-twp.org
8157
8507
  washingtonboro-nj.org
8158
8508
  washtwpmorris.org
8159
8509
  watchungnj.com
@@ -8432,6 +8782,7 @@ alleganyco.com
8432
8782
  altamontvillage.org
8433
8783
  amherst.ny.us
8434
8784
  amityville.com
8785
+ angelica-ny.com
8435
8786
  ardsleyvillage.com
8436
8787
  argyleny.com
8437
8788
  arkport.com
@@ -10272,6 +10623,7 @@ townofbriarcliffe.us
10272
10623
  townofcampobello.com
10273
10624
  townofedistobeach.com
10274
10625
  townofgraycourt.net
10626
+ townofheathsprings.org
10275
10627
  townofhollywood.org
10276
10628
  townofhoneapath.com
10277
10629
  townofirmosc.com
@@ -11139,6 +11491,7 @@ proctorvermont.com
11139
11491
  putneyvt.org
11140
11492
  richfordvt.com
11141
11493
  richmondvt.com
11494
+ riptonvt.org
11142
11495
  rochestervermont.org
11143
11496
  rockbf.org
11144
11497
  royaltonvt.com
@@ -30,5 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.add_development_dependency( "pry" )
31
31
  s.add_development_dependency( "parallel" )
32
32
  s.add_development_dependency( "mechanize" )
33
+ s.add_development_dependency( "addressable" )
34
+ s.add_development_dependency( "ruby-prof" )
33
35
 
34
36
  end
@@ -16,7 +16,7 @@ class Gman
16
16
  # returns an instance of our custom public suffix list
17
17
  # list behaves like PublicSuffix::List but is limited to our whitelisted domains
18
18
  def list
19
- @list ||= PublicSuffix::List::parse(list_contents)
19
+ @@list ||= PublicSuffix::List::parse(list_contents)
20
20
  end
21
21
 
22
22
  def config_path
@@ -29,7 +29,7 @@ class Gman
29
29
  end
30
30
 
31
31
  def list_contents
32
- @list_contents ||= File.new(list_path, "r:utf-8").read
32
+ @@list_contents ||= File.new(list_path, "r:utf-8").read
33
33
  end
34
34
  end
35
35
 
@@ -37,21 +37,25 @@ class Gman
37
37
  #
38
38
  # Returns boolean true if a government domain
39
39
  def valid?
40
- # Ensure it's a valid domain
41
- return false unless domain && domain.valid?
40
+ return @valid if defined? @valid
42
41
 
43
- # Ensure non-edu
44
- return false if Swot::is_academic?(domain)
42
+ @valid = begin
43
+ # Ensure it's a valid domain
44
+ return false unless domain && domain.valid?
45
45
 
46
- # Check for locality by regex
47
- return true if locality?
46
+ # Ensure non-edu
47
+ return false if Swot::is_academic?(domain)
48
48
 
49
- # check using public suffix's standard logic
50
- rule = Gman.list.find(to_s)
49
+ # Check for locality by regex
50
+ return true if locality?
51
51
 
52
- # domain is on the domain list and
53
- # domain is not explicitly blacklisted and
54
- # domain matches a standard public suffix list rule
55
- !rule.nil? && rule.type != :exception && rule.allow?(".#{domain}")
52
+ # check using public suffix's standard logic
53
+ rule = Gman.list.find(to_s)
54
+
55
+ # domain is on the domain list and
56
+ # domain is not explicitly blacklisted and
57
+ # domain matches a standard public suffix list rule
58
+ !rule.nil? && rule.type != :exception && rule.allow?(".#{domain}")
59
+ end
56
60
  end
57
61
  end
@@ -22,11 +22,13 @@ class Gman
22
22
  # e.g., United States = US, United Kingdom = GB
23
23
  def alpha2
24
24
  return unless domain
25
- alpha2 = domain.tld.split('.').last
26
- if ALPHA2_MAP[alpha2.to_sym]
27
- ALPHA2_MAP[alpha2.to_sym]
28
- else
29
- alpha2
25
+ @alpha2 ||= begin
26
+ alpha2 = domain.tld.split('.').last
27
+ if ALPHA2_MAP[alpha2.to_sym]
28
+ ALPHA2_MAP[alpha2.to_sym]
29
+ else
30
+ alpha2
31
+ end
30
32
  end
31
33
  end
32
34
 
@@ -36,8 +38,11 @@ class Gman
36
38
  # Gman.new("foo.gov").country.name => "United States"
37
39
  # Gman.new("foo.gov").country.currency => "USD"
38
40
  def country
39
- @country ||= IsoCountryCodes.find(alpha2) if alpha2
40
- rescue IsoCountryCodes::UnknownCodeError
41
- nil
41
+ return @country if defined? @country
42
+ @country ||= begin
43
+ IsoCountryCodes.find(alpha2) if alpha2
44
+ rescue IsoCountryCodes::UnknownCodeError
45
+ nil
46
+ end
42
47
  end
43
48
  end
@@ -7,7 +7,7 @@ class Gman
7
7
  COMMENT_REGEX = /\/\/[\/\s]*(.*)$/i
8
8
 
9
9
  def initialize(list)
10
- @list = list
10
+ @list = list.reject { |group, domains| domains.compact.empty? }
11
11
  end
12
12
 
13
13
  def groups
@@ -94,7 +94,8 @@ class Gman
94
94
  end
95
95
 
96
96
  def matches
97
- @matches ||= domain.to_s.match(LOCALITY_REGEX)
97
+ return @matches if defined? @matches
98
+ @matches = domain.to_s.match(LOCALITY_REGEX)
98
99
  end
99
100
 
100
101
  def self.dotgov_list_path
@@ -102,10 +103,11 @@ class Gman
102
103
  end
103
104
 
104
105
  def self.dotgov_list
105
- @dotgov_list ||= CSV.read(dotgov_list_path, :headers => true)
106
+ @@dotgov_list ||= CSV.read(dotgov_list_path, :headers => true)
106
107
  end
107
108
 
108
109
  def dotgov_listing
109
- @dotgov_listing ||= Gman.dotgov_list.find { |d| d["Domain Name"].downcase == "#{domain.sld}.gov" } if dotgov?
110
+ return @dotgov_listing if defined? @dotgov_listing
111
+ @dotgov_listing = Gman.dotgov_list.find { |d| d["Domain Name"].downcase == "#{domain.sld}.gov" } if dotgov?
110
112
  end
111
113
  end
@@ -2,8 +2,8 @@
2
2
  # Only used in development and not loaded by default
3
3
  require 'yaml'
4
4
  require 'open-uri'
5
- require 'net/dns'
6
- require 'net/dns/resolver'
5
+ require 'resolv'
6
+ require 'logger'
7
7
  require_relative '../gman'
8
8
  require_relative './domain_list'
9
9
 
@@ -119,18 +119,16 @@ class Gman
119
119
  end
120
120
 
121
121
  def resolver
122
- @resolver ||= begin
123
- resolver = Net::DNS::Resolver.new
124
- resolver.nameservers = ["8.8.8.8","8.8.4.4"]
125
- resolver
126
- end
122
+ @resolver ||= Resolv::DNS.new(:nameserver => ["8.8.8.8","8.8.4.4"])
127
123
  end
128
124
 
129
125
  # Verifies that the given domain has an MX record, and thus is valid
130
126
  def domain_resolves?(domain)
131
- resolver.search(domain).header.anCount > 0 ||
132
- resolver.search(domain, Net::DNS::NS).header.anCount > 0 ||
133
- resolver.search(domain, Net::DNS::MX).header.anCount > 0
127
+ domain = Addressable::URI.new(:host => domain).normalize.host
128
+ resolver.getresource(domain, Resolv::DNS::Resource::IN::NS) ||
129
+ resolver.getresource(domain, Resolv::DNS::Resource::IN::MX)
130
+ rescue Resolv::ResolvError
131
+ false
134
132
  end
135
133
  end
136
134
  end
@@ -1,3 +1,3 @@
1
1
  class Gman
2
- VERSION = '5.0.1'
2
+ VERSION = '5.0.2'
3
3
  end
@@ -0,0 +1,11 @@
1
+ #!/bin/bash
2
+ #Runs all vendor scripts except script/vendor-nl
3
+
4
+ for file in script/vendor-*; do
5
+ if [ "$file" != "script/vendor-nl" ]; then
6
+ echo "*************************************"
7
+ echo "Vendoring $file"
8
+ echo "*************************************"
9
+ "$file"
10
+ fi
11
+ done
@@ -7,7 +7,7 @@ require './lib/gman/importer'
7
7
 
8
8
  url = "https://raw.githubusercontent.com/robbi5/german-gov-domains/master/data/domains.csv"
9
9
 
10
- domains = open(url).read.force_encoding("iso-8859-1").encode("UTF-8")
10
+ domains = open(url).read.encode("UTF-8")
11
11
  domains = CSV.parse(domains, :headers => true)
12
12
  domains = domains.map { |row| row["Domain Name"] }
13
13
 
@@ -4,7 +4,7 @@
4
4
  require 'fileutils'
5
5
 
6
6
  FileUtils.rm_rf("almanak.overheid.nl")
7
- domains = `wget -r -np https://almanak.overheid.nl/
7
+ domains = `wget -q -r -nc -np https://almanak.overheid.nl/
8
8
  grep @ -rI almanak.overheid.nl/|cut -f 2 -d @|cut -f 1 -d '"'|grep \\.nl$|sort|uniq`
9
9
 
10
10
  Gman.import("Netherlands" => domains.split("\n"))
@@ -12,11 +12,24 @@
12
12
 
13
13
  require './lib/gman/importer'
14
14
 
15
- source = "https://raw.githubusercontent.com/GSA/govt-urls/master/government-urls.yaml"
16
15
  blacklist = ["usagovQUASI"]
16
+ source = "https://raw.githubusercontent.com/GSA/govt-urls/master/government-urls-hierarchical-list.txt"
17
17
 
18
18
  data = open(source).read
19
- domains = YAML.load(data)
20
- domains.reject! { |group,domain| blacklist.include?(group) }
19
+ data = data.split("__________________________________________________________________________")
20
+ data = data.last.strip
21
+ data = data.split(/\r?\n/).reject { |r| r.empty? }
22
+
23
+ domains = {}
24
+ group = ""
25
+ data.each do |row|
26
+ if row =~ /^\w/
27
+ group = row
28
+ domains[group] = []
29
+ else
30
+ domains[group].push row.sub("\.\t", "").strip
31
+ end
32
+ end
21
33
 
34
+ domains.reject! { |group,domain| blacklist.include?(group) }
22
35
  Gman.import(domains)
@@ -19,8 +19,6 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
19
19
  require_relative "../lib/gman"
20
20
  require_relative "../lib/gman/domain_list"
21
21
 
22
- require 'net/dns'
23
- require 'net/dns/resolver'
24
22
  require './lib/gman/importer'
25
23
 
26
24
  def test_bin(*args)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gman
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.1
4
+ version: 5.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Balter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-31 00:00:00.000000000 Z
11
+ date: 2015-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: swot
@@ -164,6 +164,34 @@ dependencies:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: addressable
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: ruby-prof
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
167
195
  description: A ruby gem to check if the owner of a given email address is working
168
196
  for THE MAN.
169
197
  email: ben.balter@github.com
@@ -202,6 +230,7 @@ files:
202
230
  - script/profile
203
231
  - script/prune
204
232
  - script/release
233
+ - script/vendor
205
234
  - script/vendor-federal-de
206
235
  - script/vendor-gov-list
207
236
  - script/vendor-municipal-de