rchive 0.0.1

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/rchive.rb +59 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8bb94cb1c24f1b0f5fba6f75977879287f5526be
4
+ data.tar.gz: 36f99d0ffd210a1f2365c184002757a2a942d72e
5
+ SHA512:
6
+ metadata.gz: a49cb4fcc48dee6b5834680f5a926719de801e6042bf4e1b5d781bed353f09f5b6a7f1c0f74cc85e5e7acd39a9060b2524d49ef0290147f08057df3cd54661fc
7
+ data.tar.gz: 5a16c3dc3010d9e8f1d678840d853977740273d868f82a61bf29070afe774ba2fa7853f84b2d278795b11462191a286d24fb077cab419e0d1c52f6ce09707e1a
data/lib/rchive.rb ADDED
@@ -0,0 +1,59 @@
1
+ require 'httparty'
2
+ require 'open-uri'
3
+ require 'nokogiri'
4
+ require 'pry'
5
+
6
+ class Rchive
7
+
8
+ attr_accessor :images, :csss, :doc, :url
9
+
10
+ def initialize( url )
11
+ base_url = URI.parse( url )
12
+ @base_url = base_url.scheme + '://' + base_url.host
13
+ @url = url
14
+ @doc = doc
15
+ end
16
+
17
+ def doc
18
+ Nokogiri::HTML(open( @url ))
19
+ end
20
+
21
+ def csss
22
+ styles = ''
23
+ @doc.css('[rel="stylesheet"]').map do |l|
24
+ l.remove
25
+ if l['href'].index('http') == 0
26
+ styles += open( URI.encode(l['href'])).read
27
+ else
28
+ styles += open( @base_url + l['href']).read
29
+ end
30
+ end
31
+ style = Nokogiri::XML::Node.new "style", @doc
32
+ style['type'] = 'text/css'
33
+ style.content = styles
34
+ @doc.at_css('head') << style
35
+ end
36
+
37
+ def images
38
+ @doc.css('img').map do |img|
39
+ if img['src'].index('http') == 0
40
+ src = img['src']
41
+ elsif img['src'].index('/') == 0
42
+ src = @base_url + img['src']
43
+ else
44
+ src = @base_url + '/' + img['src']
45
+ end
46
+ binding.pry
47
+ image = open( src )
48
+ content_type = image.content_type
49
+ img.attributes['src'].value = 'data:'+ content_type +';base64,' + Base64.encode64(image.read)
50
+ end
51
+ end
52
+
53
+ def save
54
+ self.csss
55
+ self.images
56
+ File.open( 'tmp.html' , 'w') { |f| f.write(@doc.to_html) }
57
+ end
58
+
59
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rchive
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jesse Shawl
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-09 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: It's like wget, for archiving web sites.
14
+ email: jesse@jshawl.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/rchive.rb
20
+ homepage: http://rubygems.org/gems/rchive
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.2.2
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: rchive
44
+ test_files: []