win32-captureie 0.1.0

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 (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
+