weblicate 0.0.4 → 0.0.5

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.rdoc CHANGED
@@ -6,6 +6,8 @@ Weblicate creates a copy of a web page, complete with third party assets, to be
6
6
  When given a HAR file, weblicate writes all assets to local disk. It appends a domain to the end of all
7
7
  URLs so you can simulate external requests from sites like doubleclick and google.
8
8
 
9
+ HAR, (or HTTP Archive) files are a great way to pass around information about web pages. Firebug lets you export them.
10
+
9
11
  == Installation
10
12
 
11
13
  You need Ruby and RubyGems installed
@@ -16,17 +18,22 @@ You need Ruby and RubyGems installed
16
18
 
17
19
  Running the following command:
18
20
 
19
- weblicate www.cnn.com.har usa.weblicate.info
21
+ weblicate www.cnn.com.har
20
22
 
21
23
  generates the following output:
22
24
 
23
- files-usa.weblicate.info # All files and assets for the page
24
- hosts-usa.weblicate.info # Entries that can be added to your local hosts file
25
- vhosts-usa.weblicate.info # Apache vhosts entries for all domains
25
+ www.cnn.com-files # All files and assets for the page
26
+ www.cnn.com-hosts # Entries that can be added to your local hosts file
27
+ www.cnn.com-vhosts # Apache vhosts entries for all domains
28
+
29
+ By default, weblicate appends '.localhost' to all domains. You can over ride
30
+ this if you want you weblicant to be accessible to the greater internet.
31
+
32
+ weblicate www.cnn.com.har yourdomain.com
26
33
 
27
- You also get these in case you want the outside world to be able to see your weblicant:
34
+ Weblicate generates a script that creates the domains. It Works For Me.
28
35
 
29
- dns-usa.weblicate.info # A script to create DNS entries (on Slicehost.com)
36
+ www.cnn.com-dns # A script to create DNS entries (on Slicehost.com)
30
37
 
31
38
  == Copyright
32
39
 
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
7
  gem.name = "weblicate"
8
- gem.version = '0.0.4'
8
+ gem.version = '0.0.5'
9
9
  gem.summary = %Q{Replicate a website}
10
10
  gem.description = %Q{Replicate a website based on a HAR file}
11
11
  gem.email = "mike@bailey.net.au"
data/bin/weblicate CHANGED
@@ -8,10 +8,10 @@ dest_domain = ARGV[1] || nil
8
8
  a = Har.new harfile, :dest_domain => dest_domain
9
9
  a.get_files
10
10
 
11
- files_dir = a.har_title + '-files'
12
- vhosts_file = a.har_title + '-vhosts'
13
- hosts_file = a.har_title + '-hosts'
14
- dns_script = a.har_title + '-dns'
11
+ files_dir = a.name + '-files'
12
+ vhosts_file = a.name + '-vhosts'
13
+ hosts_file = a.name + '-hosts'
14
+ dns_script = a.name + '-dns'
15
15
 
16
16
  File.open(vhosts_file, 'w') { |file| file.write(a.vhosts) }
17
17
  File.open(hosts_file, 'w') { |file| file.write(a.hosts_file) }
@@ -21,7 +21,7 @@ puts <<-EOF
21
21
 
22
22
  Now run these commands...
23
23
 
24
- rsync -avz #{files_dir}/ #{a.dest_domain}:/var/www/weblicate/
24
+ rsync -avz #{files_dir}/ #{a.dest_domain}:/var/www/weblicate/#{a.name}/
25
25
  scp #{vhosts_file} #{a.dest_domain}:/etc/apache2/sites-enabled/
26
26
  cat #{hosts_file} >> /etc/hosts # For access from workstation
27
27
 
data/lib/weblicate/har.rb CHANGED
@@ -8,8 +8,7 @@ require 'net/http'
8
8
 
9
9
  class Har
10
10
 
11
- attr_accessor :dest_domain
12
- attr_reader :har_file, :har_title
11
+ attr_accessor :dest_domain, :name
13
12
 
14
13
  def initialize(harfile, options={})
15
14
  @dest_domain = options[:dest_domain] || 'localhost'
@@ -19,8 +18,7 @@ class Har
19
18
  else
20
19
  contents = harfile
21
20
  end
22
- @har_file = harfile
23
- @har_title = File.basename(harfile, '.har')
21
+ @name = File.basename(harfile, '.har')
24
22
  @har = JSON.parse(contents)
25
23
  end
26
24
 
@@ -55,9 +53,13 @@ class Har
55
53
 
56
54
  def save_file(url, contents)
57
55
  uri = URI.parse(url)
58
- dest = File.join("#{@har_title}-files", uri.host+'.'+@dest_domain, uri.path)
56
+ dest = File.join("#{@name}-files", uri.host+'.'+@dest_domain, uri.path)
59
57
  dest << 'index.html' if dest[-1,1] == '/'
60
- FileUtils.mkdir_p File.dirname dest
58
+ begin
59
+ FileUtils.mkdir_p File.dirname dest
60
+ rescue
61
+ puts "Error! Could not create #{File.dirname dest}"
62
+ end
61
63
  File.open(dest, "w") { |file| file.write contents }
62
64
  rescue
63
65
  puts "Failed to parse url (#{url})"
@@ -68,8 +70,8 @@ class Har
68
70
  <<-EOF
69
71
  <VirtualHost *:80>
70
72
  ServerName #{host}.#{@dest_domain}
71
- DocumentRoot /var/www/weblicate/#{host}.#{@dest_domain}
72
- <Directory /var/www/weblicate/#{host}.#{@dest_domain}>
73
+ DocumentRoot /var/www/weblicate/#{@name}/#{host}.#{@dest_domain}
74
+ <Directory /var/www/weblicate/#{@name}/#{host}.#{@dest_domain}>
73
75
  Order allow,deny
74
76
  Allow from all
75
77
  </Directory>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weblicate
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mike Bailey