castanaut 1.0.0 → 1.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.
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: castanaut
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 1
8
+ - 0
9
+ version: 1.1.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Joseph Pearson
@@ -9,11 +14,11 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2008-02-23 00:00:00 +11:00
17
+ date: 2010-02-26 00:00:00 +11:00
13
18
  default_executable:
14
19
  dependencies: []
15
20
 
16
- description: Castanaut lets you write executable scripts for your screencasts. With a simple dictionary of stage directions, you can create complex interactions with a variety of applications. Currently, and for the foreseeable future, Castanaut supports Mac OS X 10.5 only.
21
+ description: Castanaut lets you write executable scripts for screencasts.
17
22
  email: joseph@inventivelabs.com.au
18
23
  executables:
19
24
  - castanaut
@@ -23,43 +28,41 @@ extra_rdoc_files:
23
28
  - Copyright.txt
24
29
  - History.txt
25
30
  - README.txt
26
- - bin/castanaut
27
31
  files:
28
32
  - Copyright.txt
29
33
  - History.txt
30
- - Manifest.txt
31
34
  - README.txt
32
- - Rakefile
33
35
  - bin/castanaut
34
36
  - cbin/osxautomation
35
- - lib/castanaut.rb
36
37
  - lib/castanaut/exceptions.rb
37
38
  - lib/castanaut/keys.rb
38
39
  - lib/castanaut/main.rb
39
40
  - lib/castanaut/movie.rb
41
+ - lib/castanaut/os/mac_os_x.rb
42
+ - lib/castanaut/os/mac_os_x_legacy.rb
40
43
  - lib/castanaut/plugin.rb
44
+ - lib/castanaut.rb
41
45
  - lib/plugins/ishowu.rb
46
+ - lib/plugins/ishowuhd.rb
47
+ - lib/plugins/keystack.rb
42
48
  - lib/plugins/mousepose.rb
43
49
  - lib/plugins/safari.rb
50
+ - lib/plugins/snapz_pro.rb
51
+ - lib/plugins/terminal.rb
52
+ - lib/plugins/textmate.rb
44
53
  - scripts/coords.js
45
54
  - scripts/gebys.js
46
- - tasks/ann.rake
47
- - tasks/annotations.rake
48
- - tasks/doc.rake
49
- - tasks/gem.rake
50
- - tasks/manifest.rake
51
- - tasks/post_load.rake
52
- - tasks/rubyforge.rake
53
- - tasks/setup.rb
54
- - tasks/spec.rake
55
- - tasks/svn.rake
56
- - tasks/test.rake
57
- - test/example_script.screenplay
58
- - test/googling.screenplay
55
+ - test/helper.rb
56
+ - test/main_test.rb
57
+ - test/movie_test.rb
59
58
  has_rdoc: true
60
- homepage: http://castanaut.rubyforge.org
59
+ homepage: http://gadgets.inventivelabs.com.au/castanaut
60
+ licenses: []
61
+
61
62
  post_install_message:
62
63
  rdoc_options:
64
+ - --title
65
+ - Castanaut
63
66
  - --main
64
67
  - README.txt
65
68
  require_paths:
@@ -68,20 +71,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
68
71
  requirements:
69
72
  - - ">="
70
73
  - !ruby/object:Gem::Version
74
+ segments:
75
+ - 0
71
76
  version: "0"
72
- version:
73
77
  required_rubygems_version: !ruby/object:Gem::Requirement
74
78
  requirements:
75
79
  - - ">="
76
80
  - !ruby/object:Gem::Version
81
+ segments:
82
+ - 0
77
83
  version: "0"
78
- version:
79
84
  requirements: []
80
85
 
81
- rubyforge_project: castanaut
82
- rubygems_version: 1.0.1
86
+ rubyforge_project:
87
+ rubygems_version: 1.3.6
83
88
  signing_key:
84
- specification_version: 2
85
- summary: Castanaut lets you write executable scripts for your screencasts
89
+ specification_version: 3
90
+ summary: Castanaut - automate your screencasts
86
91
  test_files: []
87
92
 
data/Manifest.txt DELETED
@@ -1,31 +0,0 @@
1
- Copyright.txt
2
- History.txt
3
- Manifest.txt
4
- README.txt
5
- Rakefile
6
- bin/castanaut
7
- cbin/osxautomation
8
- lib/castanaut.rb
9
- lib/castanaut/exceptions.rb
10
- lib/castanaut/keys.rb
11
- lib/castanaut/main.rb
12
- lib/castanaut/movie.rb
13
- lib/castanaut/plugin.rb
14
- lib/plugins/ishowu.rb
15
- lib/plugins/mousepose.rb
16
- lib/plugins/safari.rb
17
- scripts/coords.js
18
- scripts/gebys.js
19
- tasks/ann.rake
20
- tasks/annotations.rake
21
- tasks/doc.rake
22
- tasks/gem.rake
23
- tasks/manifest.rake
24
- tasks/post_load.rake
25
- tasks/rubyforge.rake
26
- tasks/setup.rb
27
- tasks/spec.rake
28
- tasks/svn.rake
29
- tasks/test.rake
30
- test/example_script.screenplay
31
- test/googling.screenplay
data/Rakefile DELETED
@@ -1,25 +0,0 @@
1
- # Look in the tasks/setup.rb file for the various options that can be
2
- # configured in this Rakefile. The .rake files in the tasks directory
3
- # are where the options are used.
4
-
5
- load 'tasks/setup.rb'
6
-
7
- ensure_in_path 'lib'
8
- require 'castanaut'
9
-
10
- task :default => 'spec:run'
11
-
12
- PROJ.name = 'castanaut'
13
- PROJ.authors = 'Joseph Pearson'
14
- PROJ.email = 'joseph@inventivelabs.com.au'
15
- PROJ.url = 'http://castanaut.rubyforge.org'
16
- PROJ.version = Castanaut::VERSION
17
-
18
- PROJ.rubyforge_name = 'castanaut'
19
- PROJ.rdoc_remote_dir = 'doc'
20
-
21
- PROJ.exclude += ['^spec\/*', '^test\/*']
22
-
23
- PROJ.spec_opts << '--color'
24
-
25
- # EOF
data/tasks/ann.rake DELETED
@@ -1,77 +0,0 @@
1
- # $Id$
2
-
3
- begin
4
- require 'bones/smtp_tls'
5
- rescue LoadError
6
- require 'net/smtp'
7
- end
8
- require 'time'
9
-
10
- namespace :ann do
11
-
12
- desc "Create an announcement file"
13
- task :announcement do
14
- File.open('announcement.txt','w') do |fd|
15
- fd.puts("#{PROJ.name} version #{PROJ.version}")
16
- fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
17
- fd.puts(" #{PROJ.url}") if PROJ.url
18
- fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
19
- fd.puts
20
- fd.puts("== DESCRIPTION")
21
- fd.puts
22
- fd.puts(PROJ.description)
23
- fd.puts
24
- fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
25
- fd.puts
26
- PROJ.ann_paragraphs.each do |p|
27
- fd.puts "== #{p.upcase}"
28
- fd.puts
29
- fd.puts paragraphs_of('README.txt', p).join("\n\n")
30
- fd.puts
31
- end
32
- fd.puts PROJ.ann_text if PROJ.ann_text
33
- end
34
- end
35
-
36
- desc "Send email announcement"
37
- task :email => :announcement do
38
- from = PROJ.ann_email[:from] || PROJ.email
39
- to = Array(PROJ.ann_email[:to])
40
-
41
- ### build a mail header for RFC 822
42
- rfc822msg = "From: #{from}\n"
43
- rfc822msg << "To: #{to.join(',')}\n"
44
- rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
45
- rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
46
- rfc822msg << "\n"
47
- rfc822msg << "Date: #{Time.new.rfc822}\n"
48
- rfc822msg << "Message-Id: "
49
- rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{PROJ.ann_email[:domain]}>\n\n"
50
- rfc822msg << File.read('announcement.txt')
51
-
52
- params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
53
- PROJ.ann_email[key]
54
- end
55
-
56
- params[3] = PROJ.email if params[3].nil?
57
-
58
- if params[4].nil?
59
- STDOUT.write "Please enter your e-mail password (#{params[3]}): "
60
- params[4] = STDIN.gets.chomp
61
- end
62
-
63
- ### send email
64
- Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
65
- end
66
-
67
- task :clobber_announcement do
68
- rm 'announcement.txt' rescue nil
69
- end
70
- end # namespace :ann
71
-
72
- desc 'Alias to ann:announcement'
73
- task :ann => 'ann:announcement'
74
-
75
- task :clobber => %w(ann:clobber_announcement)
76
-
77
- # EOF
@@ -1,22 +0,0 @@
1
- # $Id$
2
-
3
- if HAVE_BONES
4
-
5
- desc "Enumerate all annotations"
6
- task :notes do
7
- Bones::AnnotationExtractor.enumerate(
8
- PROJ, PROJ.annotation_tags.join('|'), :tag => true)
9
- end
10
-
11
- namespace :notes do
12
- PROJ.annotation_tags.each do |tag|
13
- desc "Enumerate all #{tag} annotations"
14
- task tag.downcase.to_sym do
15
- Bones::AnnotationExtractor.enumerate(PROJ, tag)
16
- end
17
- end
18
- end
19
-
20
- end # if HAVE_BONES
21
-
22
- # EOF
data/tasks/doc.rake DELETED
@@ -1,49 +0,0 @@
1
- # $Id$
2
-
3
- require 'rake/rdoctask'
4
-
5
- namespace :doc do
6
-
7
- desc 'Generate RDoc documentation'
8
- Rake::RDocTask.new do |rd|
9
- rd.main = PROJ.rdoc_main
10
- rd.rdoc_dir = PROJ.rdoc_dir
11
-
12
- incl = Regexp.new(PROJ.rdoc_include.join('|'))
13
- excl = Regexp.new(PROJ.rdoc_exclude.join('|'))
14
- files = PROJ.files.find_all do |fn|
15
- case fn
16
- when excl; false
17
- when incl; true
18
- else false end
19
- end
20
- rd.rdoc_files.push(*files)
21
-
22
- title = "#{PROJ.name}-#{PROJ.version} Documentation"
23
- title = "#{PROJ.rubyforge_name}'s " + title if PROJ.rubyforge_name != title
24
-
25
- rd.options << "-t #{title}"
26
- rd.options.concat(PROJ.rdoc_opts)
27
- end
28
-
29
- desc 'Generate ri locally for testing'
30
- task :ri => :clobber_ri do
31
- sh "#{RDOC} --ri -o ri ."
32
- end
33
-
34
- desc 'Remove ri products'
35
- task :clobber_ri do
36
- rm_r 'ri' rescue nil
37
- end
38
-
39
- end # namespace :doc
40
-
41
- desc 'Alias to doc:rdoc'
42
- task :doc => 'doc:rdoc'
43
-
44
- desc 'Remove all build products'
45
- task :clobber => %w(doc:clobber_rdoc doc:clobber_ri)
46
-
47
- remove_desc_for_task %w(doc:clobber_rdoc doc:clobber_ri)
48
-
49
- # EOF
data/tasks/gem.rake DELETED
@@ -1,110 +0,0 @@
1
- # $Id$
2
-
3
- require 'rake/gempackagetask'
4
-
5
- namespace :gem do
6
-
7
- PROJ.spec = Gem::Specification.new do |s|
8
- s.name = PROJ.name
9
- s.version = PROJ.version
10
- s.summary = PROJ.summary
11
- s.authors = Array(PROJ.authors)
12
- s.email = PROJ.email
13
- s.homepage = Array(PROJ.url).first
14
- s.rubyforge_project = PROJ.rubyforge_name
15
- s.post_install_message = PROJ.post_install_message
16
-
17
- s.description = PROJ.description
18
-
19
- PROJ.dependencies.each do |dep|
20
- s.add_dependency(*dep)
21
- end
22
-
23
- s.files = PROJ.files
24
- s.executables = PROJ.executables.map {|fn| File.basename(fn)}
25
- s.extensions = PROJ.files.grep %r/extconf\.rb$/
26
-
27
- s.bindir = 'bin'
28
- dirs = Dir["{#{PROJ.libs.join(',')}}"]
29
- s.require_paths = dirs unless dirs.empty?
30
-
31
- incl = Regexp.new(PROJ.rdoc_include.join('|'))
32
- excl = PROJ.rdoc_exclude.dup.concat %w[\.rb$ ^(\.\/|\/)?ext]
33
- excl = Regexp.new(excl.join('|'))
34
- rdoc_files = PROJ.files.find_all do |fn|
35
- case fn
36
- when excl; false
37
- when incl; true
38
- else false end
39
- end
40
- s.rdoc_options = PROJ.rdoc_opts + ['--main', PROJ.rdoc_main]
41
- s.extra_rdoc_files = rdoc_files
42
- s.has_rdoc = true
43
-
44
- if test ?f, PROJ.test_file
45
- s.test_file = PROJ.test_file
46
- else
47
- s.test_files = PROJ.tests.to_a
48
- end
49
-
50
- # Do any extra stuff the user wants
51
- # spec_extras.each do |msg, val|
52
- # case val
53
- # when Proc
54
- # val.call(s.send(msg))
55
- # else
56
- # s.send "#{msg}=", val
57
- # end
58
- # end
59
- end
60
-
61
- desc 'Show information about the gem'
62
- task :debug do
63
- puts PROJ.spec.to_ruby
64
- end
65
-
66
- pkg = Rake::PackageTask.new(PROJ.name, PROJ.version) do |pkg|
67
- pkg.need_tar = PROJ.need_tar
68
- pkg.need_zip = PROJ.need_zip
69
- pkg.package_files += PROJ.spec.files
70
- end
71
- Rake::Task['gem:package'].instance_variable_set(:@full_comment, nil)
72
-
73
- gem_file = if PROJ.spec.platform == Gem::Platform::RUBY
74
- "#{pkg.package_name}.gem"
75
- else
76
- "#{pkg.package_name}-#{PROJ.spec.platform}.gem"
77
- end
78
-
79
- desc "Build the gem file #{gem_file}"
80
- task :package => "#{pkg.package_dir}/#{gem_file}"
81
-
82
- file "#{pkg.package_dir}/#{gem_file}" => [pkg.package_dir] + PROJ.spec.files do
83
- when_writing("Creating GEM") {
84
- Gem::Builder.new(PROJ.spec).build
85
- verbose(true) {
86
- mv gem_file, "#{pkg.package_dir}/#{gem_file}"
87
- }
88
- }
89
- end
90
-
91
- desc 'Install the gem'
92
- task :install => [:clobber, :package] do
93
- sh "#{SUDO} #{GEM} install pkg/#{PROJ.spec.full_name}"
94
- end
95
-
96
- desc 'Uninstall the gem'
97
- task :uninstall do
98
- sh "#{SUDO} #{GEM} uninstall -v '#{PROJ.version}' -x #{PROJ.name}"
99
- end
100
-
101
- end # namespace :gem
102
-
103
- desc 'Alias to gem:package'
104
- task :gem => 'gem:package'
105
-
106
- task :clobber => 'gem:clobber_package'
107
-
108
- remove_desc_for_task %w(gem:clobber_package)
109
-
110
- # EOF
data/tasks/manifest.rake DELETED
@@ -1,50 +0,0 @@
1
- # $Id$
2
-
3
- require 'find'
4
-
5
- namespace :manifest do
6
-
7
- desc 'Verify the manifest'
8
- task :check do
9
- fn = 'Manifest.tmp'
10
- files = manifest_files
11
-
12
- File.open(fn, 'w') {|fp| fp.puts files}
13
- lines = %x(#{DIFF} -du Manifest.txt #{fn}).split("\n")
14
- if HAVE_FACETS_ANSICODE and ENV.has_key?('TERM')
15
- lines.map! do |line|
16
- case line
17
- when %r/^(-{3}|\+{3})/; nil
18
- when %r/^@/; Console::ANSICode.blue line
19
- when %r/^\+/; Console::ANSICode.green line
20
- when %r/^\-/; Console::ANSICode.red line
21
- else line end
22
- end
23
- end
24
- puts lines.compact
25
- rm fn rescue nil
26
- end
27
-
28
- desc 'Create a new manifest'
29
- task :create do
30
- fn = 'Manifest.txt'
31
- files = manifest_files
32
- unless test(?f, fn)
33
- files << fn
34
- files.sort!
35
- end
36
- File.open(fn, 'w') {|fp| fp.puts files}
37
- end
38
-
39
- task :assert do
40
- files = manifest_files
41
- manifest = File.read('Manifest.txt').split($/)
42
- raise RuntimeError, "Manifest.txt is out of date" unless files == manifest
43
- end
44
-
45
- end # namespace :manifest
46
-
47
- desc 'Alias to manifest:check'
48
- task :manifest => 'manifest:check'
49
-
50
- # EOF
data/tasks/post_load.rake DELETED
@@ -1,18 +0,0 @@
1
- # $Id$
2
-
3
- # This file does not define any rake tasks. It is used to load some project
4
- # settings if they are not defined by the user.
5
-
6
- unless PROJ.changes
7
- PROJ.changes = paragraphs_of('History.txt', 0..1).join("\n\n")
8
- end
9
-
10
- unless PROJ.description
11
- PROJ.description = paragraphs_of('README.txt', 'description').join("\n\n")
12
- end
13
-
14
- unless PROJ.summary
15
- PROJ.summary = PROJ.description.split('.').first
16
- end
17
-
18
- # EOF
data/tasks/rubyforge.rake DELETED
@@ -1,57 +0,0 @@
1
- # $Id$
2
-
3
- if PROJ.rubyforge_name && HAVE_RUBYFORGE
4
-
5
- require 'rubyforge'
6
- require 'rake/contrib/sshpublisher'
7
-
8
- namespace :gem do
9
- desc 'Package and upload to RubyForge'
10
- task :release => [:clobber, :package] do |t|
11
- v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
12
- abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
13
- pkg = "pkg/#{PROJ.spec.full_name}"
14
-
15
- if $DEBUG then
16
- puts "release_id = rf.add_release #{PROJ.rubyforge_name.inspect}, #{PROJ.name.inspect}, #{PROJ.version.inspect}, \"#{pkg}.tgz\""
17
- puts "rf.add_file #{PROJ.rubyforge_name.inspect}, #{PROJ.name.inspect}, release_id, \"#{pkg}.gem\""
18
- end
19
-
20
- rf = RubyForge.new
21
- puts 'Logging in'
22
- rf.login
23
-
24
- c = rf.userconfig
25
- c['release_notes'] = PROJ.description if PROJ.description
26
- c['release_changes'] = PROJ.changes if PROJ.changes
27
- c['preformatted'] = true
28
-
29
- files = [(PROJ.need_tar ? "#{pkg}.tgz" : nil),
30
- (PROJ.need_zip ? "#{pkg}.zip" : nil),
31
- "#{pkg}.gem"].compact
32
-
33
- puts "Releasing #{PROJ.name} v. #{PROJ.version}"
34
- rf.add_release PROJ.rubyforge_name, PROJ.name, PROJ.version, *files
35
- end
36
- end # namespace :gem
37
-
38
-
39
- namespace :doc do
40
- desc "Publish RDoc to RubyForge"
41
- task :release => %w(doc:clobber_rdoc doc:rdoc) do
42
- config = YAML.load(
43
- File.read(File.expand_path('~/.rubyforge/user-config.yml'))
44
- )
45
-
46
- host = "#{config['username']}@rubyforge.org"
47
- remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge_name}/"
48
- remote_dir << PROJ.rdoc_remote_dir if PROJ.rdoc_remote_dir
49
- local_dir = PROJ.rdoc_dir
50
-
51
- Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
52
- end
53
- end # namespace :doc
54
-
55
- end # if HAVE_RUBYFORGE
56
-
57
- # EOF