gman 5.0.1 → 5.0.2

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 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