micro_spider 0.1.20 → 0.1.21

Sign up to get free protection for your applications and to get access to all the features.
data/lib/micro_spider.rb CHANGED
@@ -234,6 +234,14 @@ class MicroSpider
234
234
  excretion
235
235
  end
236
236
 
237
+ def reset
238
+ return unless completed?
239
+ @paths = visited_paths.to_a
240
+ @excretion = { status: 'inprogress', results: [] }
241
+ @visited_paths = Set.new
242
+ @current_location = nil
243
+ end
244
+
237
245
  # Spider can create custom action when it is crawling.
238
246
  # @param name [String] the name of action
239
247
  # @param block [Proc] the actions
@@ -34,6 +34,16 @@ module SpiderCore
34
34
  fields(display, pattern, opts.merge(kind: :xpath), &block)
35
35
  end
36
36
 
37
+ def foreach(pattern, opts = {}, &block)
38
+ return unless block_given?
39
+ kind = opts[:kind] || :css
40
+ actions << lambda {
41
+ scan_all(kind, pattern).each do |element|
42
+ yield(element)
43
+ end
44
+ }
45
+ end
46
+
37
47
  protected
38
48
 
39
49
  def action_for(action, action_opts = {}, opts = {}, &block)
@@ -1,3 +1,3 @@
1
1
  module SpiderCore
2
- VERSION = "0.1.20"
2
+ VERSION = "0.1.21"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: micro_spider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20
4
+ version: 0.1.21
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-13 00:00:00.000000000 Z
12
+ date: 2014-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capybara