win32-captureie 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/History.txt +3 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +45 -0
  4. data/README.txt +49 -0
  5. data/Rakefile +4 -0
  6. data/TODO.txt +78 -0
  7. data/bin/prtie +62 -0
  8. data/config/hoe.rb +72 -0
  9. data/config/requirements.rb +17 -0
  10. data/lib/win32/capture_ie/base.rb +4 -0
  11. data/lib/win32/capture_ie/bitmap.rb +115 -0
  12. data/lib/win32/capture_ie/browser.rb +119 -0
  13. data/lib/win32/capture_ie/cli/base.rb +7 -0
  14. data/lib/win32/capture_ie/cli/prt_ie.rb +100 -0
  15. data/lib/win32/capture_ie/commands/base.rb +39 -0
  16. data/lib/win32/capture_ie/commands/prt_ie.rb +66 -0
  17. data/lib/win32/capture_ie/ffi/base.rb +22 -0
  18. data/lib/win32/capture_ie/ffi/gdi32.rb +165 -0
  19. data/lib/win32/capture_ie/ffi/struct.rb +246 -0
  20. data/lib/win32/capture_ie/ffi/user32.rb +101 -0
  21. data/lib/win32/capture_ie/ffi.rb +3 -0
  22. data/lib/win32/capture_ie/screen_captor.rb +131 -0
  23. data/lib/win32/capture_ie/version.rb +11 -0
  24. data/lib/win32/capture_ie/window.rb +47 -0
  25. data/lib/win32/capture_ie.rb +92 -0
  26. data/script/destroy +14 -0
  27. data/script/destroy.cmd +1 -0
  28. data/script/generate +14 -0
  29. data/script/generate.cmd +1 -0
  30. data/script/rdoc_filter.rb +75 -0
  31. data/script/txt2html +74 -0
  32. data/script/txt2html.cmd +1 -0
  33. data/setup.rb +1585 -0
  34. data/spec/spec.opts +1 -0
  35. data/spec/spec_helper.rb +7 -0
  36. data/spec/win32/capture_ie_spec.rb +11 -0
  37. data/tasks/deployment.rake +34 -0
  38. data/tasks/deployment2.rake +90 -0
  39. data/tasks/environment.rake +7 -0
  40. data/tasks/helper/rake.rb +58 -0
  41. data/tasks/helper/rake_sh_filter.rb +23 -0
  42. data/tasks/helper/util.rb +19 -0
  43. data/tasks/helper.rb +3 -0
  44. data/tasks/rspec.rake +21 -0
  45. data/tasks/website.rake +17 -0
  46. metadata +95 -0
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,7 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '../spec_helper.rb'
2
+
3
+ # Time to add your specs!
4
+ # http://rspec.rubyforge.org/
5
+ describe "Place your specs here" do
6
+
7
+ it "find this spec in spec directory" do
8
+ violated "Be sure to write your specs"
9
+ end
10
+
11
+ end
@@ -0,0 +1,34 @@
1
+ desc 'Release the website and new gem version'
2
+ task :deploy => [:check_version, :website, :release] do
3
+ puts "Remember to create SVN tag:"
4
+ puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
+ "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
+ puts "Suggested comment:"
7
+ puts "Tagging release #{CHANGES}"
8
+ end
9
+
10
+ desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
+ task :local_deploy => [:website_generate, :install_gem]
12
+
13
+ task :check_version do
14
+ unless ENV['VERSION']
15
+ puts 'Must pass a VERSION=x.y.z release version'
16
+ exit
17
+ end
18
+ unless ENV['VERSION'] == VERS
19
+ puts "Please update your version.rb to match the release version, currently #{VERS}"
20
+ exit
21
+ end
22
+ end
23
+
24
+ desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
+ task :install_gem_no_doc => [:clean, :package] do
26
+ sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
+ end
28
+
29
+ namespace :manifest do
30
+ desc 'Recreate Manifest.txt to include ALL files'
31
+ task :refresh do
32
+ `rake check_manifest | patch -p0 > Manifest.txt`
33
+ end
34
+ end
@@ -0,0 +1,90 @@
1
+ require "tasks/helper"
2
+ require "rake/contrib/rubyforgepublisher"
3
+
4
+ task :check_version do
5
+ histver = File.read("History.txt")[/^== (\d+\.\d+\.\d+)/, 1]
6
+ unless ENV['VERSION'] == histver
7
+ puts "Please update your History.txt to match the release version, currently #{histver}"
8
+ exit
9
+ end
10
+ end
11
+
12
+ #
13
+ # new task
14
+ #
15
+
16
+ desc 'Uninstall the gem package'
17
+ task_for_windows :uninstall_gem do
18
+ sh "gem.bat uninstall #{ENV['GEMOPTS']} #{GEM_NAME}"
19
+ end
20
+
21
+
22
+ #
23
+ # overwrite hoe defined tasks.
24
+ #
25
+
26
+ remove_tasks(:clobber_docs, :docs, :redocs)
27
+ Rake::RDocTask.new(:docs) do |rd|
28
+ rd.main = "README.txt"
29
+ rd.rdoc_dir = RDOC_DIR
30
+ files = File.read("Manifest.txt").split.grep(/^(lib|bin)|txt$/)
31
+ files -= ['Manifest.txt']
32
+ rd.rdoc_files.push(*files)
33
+
34
+ rd.options << "-t #{GEM_NAME}-#{VERS} Documentation"
35
+ rd.options << '--charset=UTF-8'
36
+ end
37
+
38
+ # remove HTML comment and so on.
39
+ task :docs do
40
+ ruby "script/rdoc_filter.rb #{RDOC_DIR}/**/*.html"
41
+ end
42
+
43
+
44
+ task_for_windows :install_gem do
45
+ sh "gem.bat install #{ENV['GEMOPTS']} pkg/*.gem"
46
+ end
47
+
48
+ override_task :install_gem_no_doc do
49
+ sh "gem.bat install #{ENV['GEMOPTS']} --no-rdoc --no-ri pkg/*.gem"
50
+ end
51
+
52
+ task_for_windows :ridocs do
53
+ sh "rdoc.bat --ri -o ri ."
54
+ end
55
+
56
+ task_for_windows :publish_docs do
57
+ Rake::RubyForgePublisher.new(RUBYFORGE_PROJECT, @rubyforge_username).upload
58
+ end
59
+
60
+ # rake publish_docs SCP=pscp
61
+ if ENV["SCP"] and ENV["SCP"] != "scp"
62
+ add_sh_filter_for(/\Ascp /) {|cmd|
63
+ cmd[0].sub!(/\Ascp/, ENV["SCP"])
64
+ cmd[0].sub!(/-rq/, "-r")
65
+ cmd
66
+ }
67
+ end
68
+
69
+
70
+ task :create_news do
71
+ subject, title, body, urls = hoe.announcement
72
+ open(NEWS_FILE, "w") do |w|
73
+ w.puts subject
74
+ w.puts "#{title}\n\n#{body}\n\n"
75
+ w.puts "--"
76
+ w.puts "Home URL: #{HOMEPATH}"
77
+ w.puts "Project URL: #{DOWNLOAD_PATH}"
78
+ end
79
+ puts File.read(NEWS_FILE)
80
+ end
81
+
82
+ override_task :post_news do
83
+ subject, body = File.read(NEWS_FILE).split(/\n/, 2)
84
+ require 'rubyforge'
85
+ rf = RubyForge.new
86
+ rf.login
87
+ rf.post_news(RUBYFORGE_PROJECT, subject, body)
88
+ puts "Posted to rubyforge `#{subject}'."
89
+ rm_f NEWS_FILE
90
+ end
@@ -0,0 +1,7 @@
1
+ task :ruby_env do
2
+ RUBY_APP = if RUBY_PLATFORM =~ /java/
3
+ "jruby"
4
+ else
5
+ "ruby"
6
+ end unless defined? RUBY_APP
7
+ end
@@ -0,0 +1,58 @@
1
+ require "rubygems"
2
+ require "rake"
3
+
4
+ def tasks
5
+ Rake.application.instance_eval { @tasks }
6
+ end
7
+
8
+ def current_scope
9
+ Rake.application.instance_eval { @scope.last }
10
+ end
11
+
12
+ def task_defined?(task_name)
13
+ Rake::Task.task_defined?(task_name)
14
+ end
15
+
16
+ def remove_tasks(*task_names)
17
+ task_names.flatten.each do |task_name|
18
+ remove_task(task_name)
19
+ end
20
+ end
21
+
22
+ def remove_task(task_name)
23
+ tasks.delete(task_name.to_s)
24
+ end
25
+
26
+ def lookup_task(task_name)
27
+ Rake::Task[task_name] rescue nil
28
+ end
29
+
30
+ def rakecall(task_name)
31
+ lookup_task(task_name).invoke
32
+ end
33
+
34
+ def override_task(task_args, &block)
35
+ task_name, deps = Rake.application.resolve_args(task_args)
36
+ original = lookup_task(task_name)
37
+ orgproc = lambda {} # nop
38
+ if original
39
+ Rake.application.last_comment = original.comment
40
+ deps |= original.prerequisites
41
+ orgproc = lambda{ original.execute }
42
+ end
43
+
44
+ remove_task(task_name)
45
+ Rake::Task.define_task(task_name => deps) do |t|
46
+ block.call(t, orgproc)
47
+ end
48
+ end
49
+
50
+ def task_for_windows(task_args, &block)
51
+ override_task(task_args) do |t, org|
52
+ if windows?
53
+ block.call(t)
54
+ else
55
+ org.call
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,23 @@
1
+ module FileUtils
2
+ SHELL_COMMAND_FILTER = []
3
+
4
+ alias sh_original sh
5
+ def sh(*cmd, &block)
6
+ cmd = SHELL_COMMAND_FILTER.inject(cmd){|c,filter| filter.call(c) or c }
7
+ sh_original(*cmd, &block)
8
+ end
9
+
10
+ def add_sh_filter(&block)
11
+ SHELL_COMMAND_FILTER << block
12
+ end
13
+
14
+ def add_sh_filter_for(pattern, &block)
15
+ add_sh_filter {|cmd|
16
+ if cmd[0] =~ pattern
17
+ block.call(cmd)
18
+ else
19
+ cmd
20
+ end
21
+ }
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ def windows?
2
+ RUBY_PLATFORM =~ /win/
3
+ end
4
+
5
+ def with_temporary_rename(from, to)
6
+ mv from, to
7
+ yield
8
+ ensure
9
+ mv to, from
10
+ end
11
+
12
+ def has_dot?
13
+ if windows?
14
+ v = `dot -V 2>&1` rescue nil
15
+ v and v =~ /Graphviz/
16
+ else
17
+ `which dot` =~ /\/dot/
18
+ end
19
+ end
data/tasks/helper.rb ADDED
@@ -0,0 +1,3 @@
1
+ require "tasks/helper/util"
2
+ require "tasks/helper/rake"
3
+ require "tasks/helper/rake_sh_filter"
data/tasks/rspec.rake ADDED
@@ -0,0 +1,21 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ require 'spec'
6
+ end
7
+ begin
8
+ require 'spec/rake/spectask'
9
+ rescue LoadError
10
+ puts <<-EOS
11
+ To use rspec for testing you must install rspec gem:
12
+ gem install rspec
13
+ EOS
14
+ exit(0)
15
+ end
16
+
17
+ desc "Run the specs under spec/models"
18
+ Spec::Rake::SpecTask.new do |t|
19
+ t.spec_opts = ['--options', "spec/spec.opts"]
20
+ t.spec_files = FileList['spec/**/*_spec.rb']
21
+ end
@@ -0,0 +1,17 @@
1
+ desc 'Generate website files'
2
+ task :website_generate => :ruby_env do
3
+ (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
4
+ sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
5
+ end
6
+ end
7
+
8
+ desc 'Upload website files to rubyforge'
9
+ task :website_upload do
10
+ host = "#{rubyforge_username}@rubyforge.org"
11
+ remote_dir = "/var/www/gforge-projects/#{PATH}/"
12
+ local_dir = 'website'
13
+ sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
14
+ end
15
+
16
+ desc 'Generate and upload website files'
17
+ task :website => [:website_generate, :website_upload, :publish_docs]
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
4
+ name: win32-captureie
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.1.0
7
+ date: 2007-11-23 00:00:00 +09:00
8
+ summary: Win32::CaptureIE - Capture web pages using Internet Explorer
9
+ require_paths:
10
+ - lib
11
+ email: miyamuko@gmail.com
12
+ homepage: http://win32-captureie.rubyforge.org
13
+ rubyforge_project: win32-captureie
14
+ description: Win32::CaptureIE - Capture web pages using Internet Explorer
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - MIYAMUKO Katsuyuki
31
+ files:
32
+ - History.txt
33
+ - License.txt
34
+ - Manifest.txt
35
+ - README.txt
36
+ - Rakefile
37
+ - TODO.txt
38
+ - bin/prtie
39
+ - config/hoe.rb
40
+ - config/requirements.rb
41
+ - lib/win32/capture_ie.rb
42
+ - lib/win32/capture_ie/base.rb
43
+ - lib/win32/capture_ie/bitmap.rb
44
+ - lib/win32/capture_ie/browser.rb
45
+ - lib/win32/capture_ie/cli/base.rb
46
+ - lib/win32/capture_ie/cli/prt_ie.rb
47
+ - lib/win32/capture_ie/commands/base.rb
48
+ - lib/win32/capture_ie/commands/prt_ie.rb
49
+ - lib/win32/capture_ie/ffi.rb
50
+ - lib/win32/capture_ie/ffi/base.rb
51
+ - lib/win32/capture_ie/ffi/gdi32.rb
52
+ - lib/win32/capture_ie/ffi/struct.rb
53
+ - lib/win32/capture_ie/ffi/user32.rb
54
+ - lib/win32/capture_ie/screen_captor.rb
55
+ - lib/win32/capture_ie/version.rb
56
+ - lib/win32/capture_ie/window.rb
57
+ - script/destroy
58
+ - script/destroy.cmd
59
+ - script/generate
60
+ - script/generate.cmd
61
+ - script/rdoc_filter.rb
62
+ - script/txt2html
63
+ - script/txt2html.cmd
64
+ - setup.rb
65
+ - spec/spec.opts
66
+ - spec/spec_helper.rb
67
+ - spec/win32/capture_ie_spec.rb
68
+ - tasks/deployment.rake
69
+ - tasks/deployment2.rake
70
+ - tasks/environment.rake
71
+ - tasks/helper.rb
72
+ - tasks/helper/rake.rb
73
+ - tasks/helper/rake_sh_filter.rb
74
+ - tasks/helper/util.rb
75
+ - tasks/rspec.rake
76
+ - tasks/website.rake
77
+ test_files: []
78
+
79
+ rdoc_options:
80
+ - --main
81
+ - README.txt
82
+ extra_rdoc_files:
83
+ - History.txt
84
+ - License.txt
85
+ - Manifest.txt
86
+ - README.txt
87
+ - TODO.txt
88
+ executables:
89
+ - prtie
90
+ extensions: []
91
+
92
+ requirements: []
93
+
94
+ dependencies: []
95
+