tiny_http_parser 0.0.1 → 0.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: 940dd59c3555a0a4df74ae5c8cd09c02aeb0dc14
4
- data.tar.gz: 2d6e590dbc9498efce67a99fb9dd4d80754cb5a8
3
+ metadata.gz: 94ad9fb242a775a1deb3b2c0b0a959a40ab87e56
4
+ data.tar.gz: 14aee4f270796bfddfc418a6050f0643e1758922
5
5
  SHA512:
6
- metadata.gz: f4e01eae1592b96d23f6d1213537304d5941c4ff71b1c84a1201f6080a004b7a81687fdd1d8778e162df9a1598b2d4ed324dfc9133df86c6067123f42f493791
7
- data.tar.gz: bb463c1506930fe1f9ca86813673121cb210d562af995001753f55bd7989e47114049dfefbfddb464f09cafe71f9059dcb55f440d3f1487bb0d709cff453b1d2
6
+ metadata.gz: 64d768d5f3bde08ec3d41906266709d07246f10044c49d5b43d4158bf0c8c7dd1ea6d4f5d8303633a4d6db41eca0b41e6848253763ea03e9007f0a23d32b5554
7
+ data.tar.gz: ce889124e1005b0fa1aa704ef216ff53e9cc2491a1ba9a9ae6f9bba359d7f1fa8afa38ca76cadb292ca25fa4166bdd80b5c57e6619cadd9f5939d744b3da69fb
data/README.md CHANGED
@@ -21,7 +21,7 @@ Or install it yourself as:
21
21
  require 'tiny_parser'
22
22
 
23
23
  fetcher = FetcherFromEnum.new ['http://ya.ru','http://google.com']
24
- fetcher.on_content_get do |content|
24
+ fetcher.on_content_get do |url, content, http_client|
25
25
  puts '[+]'+ content.slice(0, 10)
26
26
  end
27
27
 
@@ -2,6 +2,7 @@ require "tiny_http_parser/version"
2
2
  require 'tiny_http_parser/fetcher_base'
3
3
  require 'tiny_http_parser/fetcher_from_enum'
4
4
  require 'tiny_http_parser/proxy_circular_list'
5
+ require 'tiny_http_parser/repeatable_element'
5
6
 
6
7
  module TinyHttpParser
7
8
  # Your code goes here...
@@ -34,6 +34,7 @@ class FetcherBase
34
34
  end
35
35
 
36
36
  def perform
37
+ before_start if defined? before_start
37
38
  raise 'no on_content_get block given' unless @content_block
38
39
  http_client = HTTPClient.new
39
40
  http_client = HTTPClient.new(get_proxy) if proxy_set?
@@ -46,7 +47,7 @@ class FetcherBase
46
47
  rescue Exception => e
47
48
  @exception_raised_block.call(e,url,http_client) if @exception_raised_block
48
49
  else
49
- @content_block.call content
50
+ @content_block.call url, content, http_client
50
51
  end
51
52
  http_client = HTTPClient.new(get_proxy) if proxy_set?
52
53
  end
@@ -3,15 +3,12 @@ require_relative 'fetcher_base'
3
3
  class FetcherFromEnum < FetcherBase
4
4
 
5
5
  def initialize enumerable
6
- @enumerable = enumerable.to_a
7
- @counter = 0
6
+ @data = RepeatableElement.new enumerable
8
7
  end
9
8
 
10
9
  def parse_url
11
- return nil if @counter >= @enumerable.length
12
- result = @enumerable[@counter]
13
- @counter += 1
14
- result
10
+ return nil unless item = @data.next
11
+ item
15
12
  end
16
13
 
17
14
  end
@@ -0,0 +1,26 @@
1
+ class RepeatableElement
2
+
3
+ @max_get = 3
4
+
5
+ def initialize elements
6
+ @elements = elements.map {|e| [e, 0] }
7
+ @index = 0
8
+ end
9
+
10
+ def next
11
+ reorganize_elements if @index >= @elements.length
12
+ return nil if @elements.length == 0
13
+ result = @elements[@index][0]
14
+ @elements[@index][1] += 1
15
+ @index +=1
16
+ result
17
+ end
18
+
19
+ private
20
+
21
+ def reorganize_elements
22
+ @index = 0
23
+ @elements = []
24
+ end
25
+
26
+ end
@@ -1,3 +1,3 @@
1
1
  module TinyHttpParser
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiny_http_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - gingray
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-15 00:00:00.000000000 Z
11
+ date: 2015-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -83,6 +83,7 @@ files:
83
83
  - lib/tiny_http_parser/fetcher_base.rb
84
84
  - lib/tiny_http_parser/fetcher_from_enum.rb
85
85
  - lib/tiny_http_parser/proxy_circular_list.rb
86
+ - lib/tiny_http_parser/repeatable_element.rb
86
87
  - lib/tiny_http_parser/version.rb
87
88
  - tiny_http_parser.gemspec
88
89
  homepage: ''