castanaut 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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