yahoo-group-data 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +4 -0
 - data/lib/yahoo-group-data/version.rb +1 -1
 - data/lib/yahoo-group-data.rb +4 -4
 - data/test/test_yahoo_group_data.rb +10 -2
 - metadata +11 -11
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -17,6 +17,8 @@ p = g.post_email 
     | 
|
| 
       17 
17 
     | 
    
         
             
            s = g.subscribe_email
         
     | 
| 
       18 
18 
     | 
    
         
             
            u = g.unsubscribe_email
         
     | 
| 
       19 
19 
     | 
    
         
             
            o = g.unsubscribe_email
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            json = g.to_json
         
     | 
| 
       20 
22 
     | 
    
         
             
            ```
         
     | 
| 
       21 
23 
     | 
    
         | 
| 
       22 
24 
     | 
    
         
             
            ### Available instance methods
         
     | 
| 
         @@ -28,6 +30,7 @@ These should be relatively self-explanatory. Where the data is unnavailable (for 
     | 
|
| 
       28 
30 
     | 
    
         
             
            - not_found?
         
     | 
| 
       29 
31 
     | 
    
         
             
            - private?
         
     | 
| 
       30 
32 
     | 
    
         
             
            - age_restricted?
         
     | 
| 
      
 33 
     | 
    
         
            +
            - no_data? (true if any of the above are true, othersise false. Here for convenience)
         
     | 
| 
       31 
34 
     | 
    
         | 
| 
       32 
35 
     | 
    
         
             
            #### String values
         
     | 
| 
       33 
36 
     | 
    
         | 
| 
         @@ -39,6 +42,7 @@ These should be relatively self-explanatory. Where the data is unnavailable (for 
     | 
|
| 
       39 
42 
     | 
    
         
             
            - unsubscribe_email
         
     | 
| 
       40 
43 
     | 
    
         
             
            - language
         
     | 
| 
       41 
44 
     | 
    
         
             
            - category
         
     | 
| 
      
 45 
     | 
    
         
            +
            - to_json
         
     | 
| 
       42 
46 
     | 
    
         | 
| 
       43 
47 
     | 
    
         
             
            #### Other values
         
     | 
| 
       44 
48 
     | 
    
         | 
    
        data/lib/yahoo-group-data.rb
    CHANGED
    
    | 
         @@ -106,6 +106,10 @@ class YahooGroupData 
     | 
|
| 
       106 
106 
     | 
    
         
             
            		Yajl::Encoder.encode(data_hash)
         
     | 
| 
       107 
107 
     | 
    
         
             
            	end
         
     | 
| 
       108 
108 
     | 
    
         | 
| 
      
 109 
     | 
    
         
            +
            	def no_data?
         
     | 
| 
      
 110 
     | 
    
         
            +
            		private? or age_restricted? or not_found?
         
     | 
| 
      
 111 
     | 
    
         
            +
            	end
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
       109 
113 
     | 
    
         
             
            	private
         
     | 
| 
       110 
114 
     | 
    
         | 
| 
       111 
115 
     | 
    
         
             
            	def matches_private?
         
     | 
| 
         @@ -119,10 +123,6 @@ class YahooGroupData 
     | 
|
| 
       119 
123 
     | 
    
         
             
            		@matches_age_restricted ||= (doc.xpath('/html/body/div[3]/div/div/div/h4').size > 0 and doc.xpath('/html/body/div[3]/div/div/div/h4').first.inner_html.strip.match(/You've reached an Age-Restricted Area/i)) ? true : false
         
     | 
| 
       120 
124 
     | 
    
         
             
            	end
         
     | 
| 
       121 
125 
     | 
    
         | 
| 
       122 
     | 
    
         
            -
            	def no_data?
         
     | 
| 
       123 
     | 
    
         
            -
            		private? or age_restricted? or not_found?
         
     | 
| 
       124 
     | 
    
         
            -
            	end
         
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
126 
     | 
    
         
             
            	# French:     jan,fév,mar,avr,mai,jun,jul,aoû,sep,oct,nov,déc
         
     | 
| 
       127 
127 
     | 
    
         
             
            	# German:     jan,feb,mrz,apr,mai,jun,jul,aug,sep,okt,nov,dez
         
     | 
| 
       128 
128 
     | 
    
         
             
            	# Portuguese: jan,fev,mar,abr,mai,jun,jul,ago,set,out,nov,dez
         
     | 
| 
         @@ -13,7 +13,6 @@ class YahooGroupDataTest < Test::Unit::TestCase 
     | 
|
| 
       13 
13 
     | 
    
         
             
            				to_return(:status => 200, :body => File.read("test/yahoo_pages/#{original_group['id']}.html"), :headers => {})
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            			g = YahooGroupData.new(original_group["url"])
         
     | 
| 
       16 
     | 
    
         
            -
            			puts original_group["url"]
         
     | 
| 
       17 
16 
     | 
    
         
             
            			data = Yajl::Parser.parse(g.to_json)
         
     | 
| 
       18 
17 
     | 
    
         | 
| 
       19 
18 
     | 
    
         
             
            			assert_equal original_group['private'], data['private']
         
     | 
| 
         @@ -32,6 +31,16 @@ class YahooGroupDataTest < Test::Unit::TestCase 
     | 
|
| 
       32 
31 
     | 
    
         
             
            		end
         
     | 
| 
       33 
32 
     | 
    
         
             
            	end
         
     | 
| 
       34 
33 
     | 
    
         | 
| 
      
 34 
     | 
    
         
            +
            	def test_no_data
         
     | 
| 
      
 35 
     | 
    
         
            +
            		YAML.load_file('test/groups.yml')["groups"].each do |original_group|
         
     | 
| 
      
 36 
     | 
    
         
            +
            			stub_request(:get, original_group["url"]).
         
     | 
| 
      
 37 
     | 
    
         
            +
            				to_return(:status => 200, :body => File.read("test/yahoo_pages/#{original_group['id']}.html"), :headers => {})
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            			g = YahooGroupData.new(original_group["url"])
         
     | 
| 
      
 40 
     | 
    
         
            +
            			assert_equal g.no_data?, (original_group['private'] || original_group['not_found'] || original_group['age_restricted'])
         
     | 
| 
      
 41 
     | 
    
         
            +
            		end
         
     | 
| 
      
 42 
     | 
    
         
            +
            	end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
       35 
44 
     | 
    
         
             
            	def test_initialize_with_invalid_params
         
     | 
| 
       36 
45 
     | 
    
         
             
            		assert_raise(ArgumentError)  { YahooGroupData.new }
         
     | 
| 
       37 
46 
     | 
    
         
             
            	end
         
     | 
| 
         @@ -65,7 +74,6 @@ class YahooGroupDataTest < Test::Unit::TestCase 
     | 
|
| 
       65 
74 
     | 
    
         
             
            	# then runs the assertions on each one.
         
     | 
| 
       66 
75 
     | 
    
         
             
            	def test_data_extraction
         
     | 
| 
       67 
76 
     | 
    
         
             
            		YAML.load_file('test/groups.yml')["groups"].each do |g_data|
         
     | 
| 
       68 
     | 
    
         
            -
            			puts "fetching #{g_data["url"]}"
         
     | 
| 
       69 
77 
     | 
    
         
             
            			stub_request(:get, g_data["url"]).
         
     | 
| 
       70 
78 
     | 
    
         
             
            			to_return(:status => 200, :body => File.read("test/yahoo_pages/#{g_data['id']}.html"), :headers => {})
         
     | 
| 
       71 
79 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: yahoo-group-data
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -13,7 +13,7 @@ date: 2012-02-03 00:00:00.000000000 Z 
     | 
|
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: nokogiri
         
     | 
| 
       16 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &70321718153700 !ruby/object:Gem::Requirement
         
     | 
| 
       17 
17 
     | 
    
         
             
                none: false
         
     | 
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
19 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -21,10 +21,10 @@ dependencies: 
     | 
|
| 
       21 
21 
     | 
    
         
             
                    version: '1.5'
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *70321718153700
         
     | 
| 
       25 
25 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       26 
26 
     | 
    
         
             
              name: yajl-ruby
         
     | 
| 
       27 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &70321718153000 !ruby/object:Gem::Requirement
         
     | 
| 
       28 
28 
     | 
    
         
             
                none: false
         
     | 
| 
       29 
29 
     | 
    
         
             
                requirements:
         
     | 
| 
       30 
30 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -32,10 +32,10 @@ dependencies: 
     | 
|
| 
       32 
32 
     | 
    
         
             
                    version: '1.1'
         
     | 
| 
       33 
33 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       34 
34 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       35 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *70321718153000
         
     | 
| 
       36 
36 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       37 
37 
     | 
    
         
             
              name: curb
         
     | 
| 
       38 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &70321718151980 !ruby/object:Gem::Requirement
         
     | 
| 
       39 
39 
     | 
    
         
             
                none: false
         
     | 
| 
       40 
40 
     | 
    
         
             
                requirements:
         
     | 
| 
       41 
41 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -43,10 +43,10 @@ dependencies: 
     | 
|
| 
       43 
43 
     | 
    
         
             
                    version: '0.8'
         
     | 
| 
       44 
44 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       45 
45 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       46 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *70321718151980
         
     | 
| 
       47 
47 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       48 
48 
     | 
    
         
             
              name: webmock
         
     | 
| 
       49 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: &70321718151560 !ruby/object:Gem::Requirement
         
     | 
| 
       50 
50 
     | 
    
         
             
                none: false
         
     | 
| 
       51 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       52 
52 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -54,10 +54,10 @@ dependencies: 
     | 
|
| 
       54 
54 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       55 
55 
     | 
    
         
             
              type: :development
         
     | 
| 
       56 
56 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       57 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 57 
     | 
    
         
            +
              version_requirements: *70321718151560
         
     | 
| 
       58 
58 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       59 
59 
     | 
    
         
             
              name: simplecov
         
     | 
| 
       60 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 60 
     | 
    
         
            +
              requirement: &70321718151060 !ruby/object:Gem::Requirement
         
     | 
| 
       61 
61 
     | 
    
         
             
                none: false
         
     | 
| 
       62 
62 
     | 
    
         
             
                requirements:
         
     | 
| 
       63 
63 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -65,7 +65,7 @@ dependencies: 
     | 
|
| 
       65 
65 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       66 
66 
     | 
    
         
             
              type: :development
         
     | 
| 
       67 
67 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       68 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 68 
     | 
    
         
            +
              version_requirements: *70321718151060
         
     | 
| 
       69 
69 
     | 
    
         
             
            description: A lib to fetch public Yahoo group data
         
     | 
| 
       70 
70 
     | 
    
         
             
            email:
         
     | 
| 
       71 
71 
     | 
    
         
             
            - will@willj.net
         
     |