drophunter 0.2.0 → 0.3.0

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: a9b3ca7dd5c29382c1d37894b5dacc1de5065a35
4
- data.tar.gz: 5644b665b3abcff059a014ea00fc0dfc9a436729
3
+ metadata.gz: beec06cbf8c6bf2d65f374e48007143296485888
4
+ data.tar.gz: c8ad303da7b5cbd8afc4173311b143198e5dc916
5
5
  SHA512:
6
- metadata.gz: 91e00cd35089483cf5af170501abdb2d8273867eef91ba8db670bc3b2b3cd007abea5ce2fc27883a032f7f88cfb10b174456fd4de3a728910df5fddeb6a21d5e
7
- data.tar.gz: b06dd8a1fb2216ab9865a975533159e2cb98fdd7287c45821af90ccbc97eed2b8a65108f41787ba22881a4a8b77b3feeee09dbac55b670dc5590f3b8b1a71a73
6
+ metadata.gz: fb39bc5b824fe6a5cdfe35f3228248c48d66ebc29a23f52dc6a48d898f92a93e2797754418b443cc21d80df9aa623922c461548f7c51ade68d572cbc473214ca
7
+ data.tar.gz: a712abdcbcbbeb990f450828ee6b5d07a58cf79a8fcd6f7885fed993e551029b87a8613ead42c7cb93c22ec9183d0db460f77a3e94d058bf1b5258e717fa74ca
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
  /tmp/
10
10
  *.png
11
11
  *.gem
12
+ .DS_Store
13
+
@@ -3,4 +3,4 @@ require "drophunter/version"
3
3
  module Drophunter
4
4
  end
5
5
 
6
- require "drophunter/runner"
6
+ require "drophunter/worker"
@@ -1,13 +1,11 @@
1
1
  module Drophunter
2
2
  module FileTypes
3
3
  class Image < Struct.new(:content, :id)
4
- def find_and_save
4
+ def find_and_save(saver)
5
5
  if image_element
6
6
  puts "#{id} is OK"
7
7
 
8
- open("#{id}.png", "wb") do |file|
9
- file << open(image_element.attr("src")).read
10
- end
8
+ saver.save(id, image_element.attr("src"))
11
9
  else
12
10
  puts "#{id} is not a Droplr image"
13
11
  end
@@ -1,12 +1,14 @@
1
+ require "drophunter/savers/local"
2
+
1
3
  module Drophunter
2
4
  class Page < Struct.new(:id)
3
5
  BASE_URL = "http://d.pr/i/"
4
6
 
5
- def save(something)
7
+ def save(something, saver)
6
8
  puts "Downloading #{url}"
7
9
 
8
10
  begin
9
- something.new(Nokogiri::HTML(open(url)), id).find_and_save
11
+ something.new(Nokogiri::HTML(open(url)), id).find_and_save(saver)
10
12
  rescue *error_messages.keys => error
11
13
  puts error_messages[error.class]
12
14
  end
@@ -0,0 +1,11 @@
1
+ module Drophunter
2
+ module Savers
3
+ class Local
4
+ def save(id, url)
5
+ open("#{id}.png", "wb") do |file|
6
+ file << open(url).read
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Drophunter
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,6 +1,7 @@
1
1
  require "open-uri"
2
2
  require "nokogiri"
3
3
  require "drophunter/page"
4
+ require "drophunter/savers/local"
4
5
  require "drophunter/file_types/image"
5
6
 
6
7
  module Drophunter
@@ -11,10 +12,10 @@ module Drophunter
11
12
  send("#{strategy || :default}_strategy")
12
13
  end
13
14
 
14
- private
15
-
16
15
  def save_file(id)
17
- Drophunter::Page.new(id).save(Drophunter::FileTypes::Image)
16
+ default_saver = Drophunter::Savers::Local.new
17
+
18
+ Drophunter::Page.new(id).save(Drophunter::FileTypes::Image, default_saver)
18
19
  end
19
20
 
20
21
  def default_strategy
@@ -23,14 +24,12 @@ module Drophunter
23
24
  end
24
25
  end
25
26
 
26
- def random_strategy
27
+ def random_strategy(&block)
27
28
  Enumerator.new do |enumerator|
28
29
  loop do
29
30
  enumerator.yield(4.times.map { ALLOWED_CHARS[Random.rand(0..ALLOWED_CHARS.length)] }.join)
30
31
  end
31
- end.each do |id|
32
- save_file(id)
33
- end
32
+ end.each { |id| block.call(id) }
34
33
  end
35
34
  end
36
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drophunter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Airat Shigapov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-04 00:00:00.000000000 Z
11
+ date: 2015-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -105,6 +105,7 @@ files:
105
105
  - lib/drophunter.rb
106
106
  - lib/drophunter/file_types/image.rb
107
107
  - lib/drophunter/page.rb
108
+ - lib/drophunter/savers/local.rb
108
109
  - lib/drophunter/version.rb
109
110
  - lib/drophunter/worker.rb
110
111
  homepage: http://github.com/airatshigapov/drophunter
@@ -127,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
128
  version: '0'
128
129
  requirements: []
129
130
  rubyforge_project:
130
- rubygems_version: 2.4.5
131
+ rubygems_version: 2.4.5.1
131
132
  signing_key:
132
133
  specification_version: 4
133
134
  summary: drophunter