flashsdk 1.0.18.pre → 1.0.20.pre

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/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem 'sprout', '>= 1.1.4.pre'
3
+ gem 'sprout', '>= 1.1.8.pre'
4
4
 
5
5
  group :development do
6
6
  gem "shoulda"
data/Gemfile.lock CHANGED
@@ -2,13 +2,13 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  archive-tar-minitar (0.5.2)
5
- mocha (0.9.8)
5
+ mocha (0.9.10)
6
6
  rake
7
7
  open4 (1.0.1)
8
8
  rake (0.8.7)
9
9
  rubyzip (0.9.4)
10
10
  shoulda (2.11.3)
11
- sprout (1.1.4.pre)
11
+ sprout (1.1.10.pre)
12
12
  archive-tar-minitar (= 0.5.2)
13
13
  bundler (>= 0.9.19)
14
14
  open4 (>= 0.9.6)
@@ -21,4 +21,4 @@ PLATFORMS
21
21
  DEPENDENCIES
22
22
  mocha
23
23
  shoulda
24
- sprout (>= 1.1.4.pre)
24
+ sprout (>= 1.1.8.pre)
data/POSTINSTALL.rdoc CHANGED
@@ -35,6 +35,9 @@ Next Steps:
35
35
  ++++++++++++++++++++++++++++++++
36
36
  Issues or Questions?
37
37
 
38
+ Troubleshooting at:
39
+ http://projectsprouts.org/troubleshooting.html
40
+
38
41
  Email us at:
39
42
  projectsprouts@googlegroups.com
40
43
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.18.pre
1
+ 1.0.20.pre
@@ -63,6 +63,7 @@ module Sprout
63
63
  class UnixSystem
64
64
 
65
65
  def open_flashplayer_with exe, swf
66
+ player_open = false
66
67
  trap("INT") {
67
68
  close_flashplayer
68
69
  @player_thread.kill
@@ -71,8 +72,17 @@ module Sprout
71
72
  @player_thread = Thread.new {
72
73
  require 'open4'
73
74
  @player_pid, stdin, stdout, stderr = Open4.popen4("#{exe} #{swf}")
75
+ player_open = true
74
76
  stdout.read
75
77
  }
78
+
79
+ # Wait until the player process has actually
80
+ # openned...
81
+ while !player_open
82
+ sleep 0.1
83
+ end
84
+
85
+ @player_thread
76
86
  end
77
87
 
78
88
  private
@@ -7,17 +7,22 @@ module FlashPlayer
7
7
  attr_accessor :pkg_name
8
8
  attr_accessor :pkg_version
9
9
 
10
+ attr_accessor :stdout
11
+ attr_accessor :stderr
12
+
10
13
  ##
11
14
  # This is the Rake::Task constructor
12
15
  # signature...
13
16
  def initialize task_name, rake_application
14
17
  super
15
- @logger = $stdout
16
18
  @mm_config = MMConfig.new
17
19
  @reader = LogFile.new
18
20
  @trust_config = Trust.new
19
21
  @process = nil
20
22
  @input = task_name
23
+ @stdout = $stdout
24
+ @stderr = $stderr
25
+ @logger = $stdout
21
26
 
22
27
  @pkg_name = FlashPlayer::NAME
23
28
  @pkg_version = FlashPlayer::VERSION
@@ -30,8 +35,13 @@ module FlashPlayer
30
35
  update_mm_config
31
36
  update_trust_config_with input
32
37
  end
33
- player_thread = launch_player_with input
34
- tail_flashlog player_thread
38
+
39
+ if use_fdb?
40
+ launch_fdb_and_player_with input
41
+ else
42
+ player_thread = launch_player_with input
43
+ tail_flashlog player_thread
44
+ end
35
45
  end
36
46
 
37
47
  def logger=(logger)
@@ -47,6 +57,46 @@ module FlashPlayer
47
57
 
48
58
  private
49
59
 
60
+ def use_fdb?
61
+ # Check as string b/c this is
62
+ # how the boolean value comes
63
+ # accross the command line input.
64
+ ENV['USE_FDB'].to_s == 'true'
65
+ end
66
+
67
+ def launch_fdb_and_player_with input
68
+ # Keep getting a fatal lock error which I believe
69
+ # is being caused by the FlashPlayer and FDB attempting
70
+ # to write to stdout simultaneously.
71
+ # Trying to give fdb a fake stream until after the
72
+ # player is launched...
73
+ fake_out = Sprout::OutputBuffer.new
74
+ fake_err = Sprout::OutputBuffer.new
75
+
76
+ fdb_instance = FlashSDK::FDB.new
77
+ fdb_instance.stdout = fake_out
78
+ fdb_instance.stderr = fake_err
79
+ fdb_instance.execute false
80
+ fdb_instance.run
81
+ player_thread = launch_player_with input
82
+
83
+ # Emit whatever messages have been passed:
84
+ stdout.puts fake_out.read
85
+ stdout.flush
86
+ stderr.puts fake_err.read
87
+ stdout.flush
88
+ # Replace the fdb instance streams with
89
+ # the real ones:
90
+ fdb_instance.stdout = stdout
91
+ fdb_instance.stderr = stderr
92
+
93
+ # Let the user interact with fdb:
94
+ fdb_instance.handle_user_input
95
+
96
+ fdb_instance.wait
97
+ player_thread.join if player_thread.alive?
98
+ end
99
+
50
100
  def execute_safely
51
101
  begin
52
102
  Thread.abort_on_exception = true
data/lib/flashsdk/fcsh.rb CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  module FlashSDK
3
3
 
4
- class FCSH < Sprout::Daemon
4
+ class FCSH < Sprout::Executable::Session
5
5
 
6
6
  ##
7
7
  # The the Ruby file that will load the expected
@@ -61,6 +61,16 @@ module FlashSDK
61
61
  # Exit FCSH
62
62
  add_action :quit
63
63
 
64
+
65
+ def system_execute binary, params
66
+ params ||= ''
67
+ ##
68
+ # Combine stdout and stderr for FCSH
69
+ # so that they both arrive on stdout
70
+ params << ' 2<&1'
71
+ super binary, params
72
+ end
73
+
64
74
  end
65
75
  end
66
76
 
@@ -41,7 +41,7 @@ module FlashSDK
41
41
  Sprout.stdout.puts "FCSH socket open with: #{fcsh.pkg_name} and #{fcsh.pkg_version}, waiting for connections on port #{port}"
42
42
  Sprout.stdout.puts ""
43
43
 
44
- # Start up the FCSH Daemon:
44
+ # Start up the FCSH Session:
45
45
  fcsh.execute false
46
46
 
47
47
  # Create a readable IO pipe:
@@ -72,6 +72,8 @@ module FlashSDK
72
72
  fcsh.send method
73
73
  end
74
74
 
75
+ fcsh.wait_for_prompt
76
+
75
77
  if method == "clear"
76
78
  clear_requests
77
79
  end
@@ -111,7 +113,10 @@ module FlashSDK
111
113
  session.close
112
114
  end
113
115
  end
114
- Sprout.stdout.puts "[FCSH] Compilation complete in #{(Time.now - start).seconds} seconds."
116
+
117
+ if command.match /^mxmlc|^compc/
118
+ Sprout.stdout.puts "[FCSH] complete in #{(Time.now - start).seconds} seconds."
119
+ end
115
120
  end
116
121
 
117
122
  private
@@ -137,7 +142,7 @@ module FlashSDK
137
142
  # indices.
138
143
 
139
144
  new_requests = {}
140
- @requests.each_key do |key|
145
+ @requests.each do |item|
141
146
  new_requests["removed-item"] = "removed-item"
142
147
  end
143
148
  @requests = new_requests
data/lib/flashsdk/fdb.rb CHANGED
@@ -12,7 +12,7 @@ module FlashSDK
12
12
  # SWF manually on the desktop or the browser - as long
13
13
  # as you run it in a Debug Flash Player.
14
14
  #
15
- class FDB < Sprout::Daemon
15
+ class FDB < Sprout::Executable::Session
16
16
 
17
17
  set :default_prefix, '-'
18
18
 
@@ -28,7 +28,7 @@ module FlashSDK
28
28
  # The default executable target
29
29
  set :executable, :fdb
30
30
 
31
- set :prompt, /^\(fdb\) |\(y or n\) /
31
+ set :prompt, /^\(fdb\) |\(y or n\) |Waiting for Player to connect/
32
32
 
33
33
  ##
34
34
  # Print a backtrace of all stack frames
@@ -765,3 +765,8 @@ def fdb *args, &block
765
765
  fdb_tool
766
766
  end
767
767
 
768
+ desc "Make subsequent FlashPlayer task(s) use FDB"
769
+ task :fdb do
770
+ ENV['USE_FDB'] = 'true'
771
+ end
772
+
@@ -76,6 +76,20 @@ module FlashSDK
76
76
  #
77
77
  set :executable, :mxmlc
78
78
 
79
+ def execute
80
+ start = Time.now
81
+ super
82
+ duration = (Time.now - start).seconds
83
+ Sprout.stdout.puts "[MXMLC] Compilation complete in #{duration} seconds." unless use_fcsh?
84
+ end
85
+
86
+ def use_fcsh?
87
+ # Check as string b/c this is
88
+ # how the boolean value comes
89
+ # accross the command line input.
90
+ ENV['USE_FCSH'].to_s == 'true'
91
+ end
92
+
79
93
  end
80
94
  end
81
95
 
File without changes
@@ -25,10 +25,10 @@ class AMXMLCTest < Test::Unit::TestCase
25
25
  end
26
26
 
27
27
  should "compile a swf" do
28
- insert_fake_executable File.join(fixtures, 'sdk', 'mxmlc')
29
28
  FileUtils.mkdir_p File.dirname(@expected_output)
30
29
 
31
30
  amxmlc = FlashSDK::AMXMLC.new
31
+ amxmlc.binary_path = File.join fixtures, 'sdk', 'mxmlc'
32
32
  amxmlc.input = @input
33
33
  amxmlc.output = @expected_output
34
34
  amxmlc.execute
@@ -6,28 +6,42 @@ class FCSHSocketTest < Test::Unit::TestCase
6
6
  context "a new fcsh server" do
7
7
 
8
8
  setup do
9
+ # Uncomment to see output:
9
10
  #Sprout.stdout = $stdout
10
11
  #Sprout.stderr = $stderr
12
+
11
13
  @input = File.join(fixtures, 'mxmlc', 'simple', 'SomeFile.as')
14
+ @test_port = 12543
12
15
  end
13
16
 
14
17
  should "be instantiable" do
18
+ service_ready = false
19
+ # Create the remote side of the connection:
15
20
  t = Thread.new do
16
21
  Thread.current.abort_on_exception = true
17
22
  server = FlashSDK::FCSHSocket.new
23
+ server.port = @test_port
24
+ service_ready = true
18
25
  server.listen
19
26
  end
20
27
 
21
- sleep(3)
28
+ # Wait for the remote connection to exist
29
+ while !service_ready
30
+ sleep 0.1
31
+ end
32
+
33
+ sleep 2.0
22
34
 
23
35
  mxmlc = FlashSDK::MXMLC.new
24
36
  mxmlc.input = @input
25
37
 
26
38
  client = FlashSDK::FCSHSocket.new
39
+ client.port = @test_port
27
40
  client.execute "mxmlc #{mxmlc.to_shell}"
28
41
  FileUtils.touch @input
29
42
  client.execute "mxmlc #{mxmlc.to_shell}"
30
43
  client.execute "quit"
44
+
31
45
  t.join
32
46
  end
33
47
  end
@@ -31,7 +31,7 @@ class FCSHTest < Test::Unit::TestCase
31
31
  fcsh.wait
32
32
 
33
33
  expected_error_message = '1 Error: Syntax error: expecting rightbrace before end of program'
34
- assert_matches /#{expected_error_message}/, Sprout.stderr.read
34
+ assert_matches /#{expected_error_message}/, Sprout.stdout.read
35
35
  end
36
36
 
37
37
  should "spin up FCSH" do
@@ -6,9 +6,11 @@ class FDBTest < Test::Unit::TestCase
6
6
  context "a new fdb task" do
7
7
 
8
8
  setup do
9
+ path = File.join fixtures, 'sdk', 'fdb'
10
+ FlashSDK::FDB.any_instance.stubs(:binary_path).returns path
11
+
9
12
  #Sprout.stdout = $stdout
10
13
  #Sprout.stderr = $stderr
11
- insert_fake_executable File.join(fixtures, 'sdk', 'fdb')
12
14
  end
13
15
 
14
16
  should "execute without shell params" do
@@ -37,7 +39,7 @@ class FDBTest < Test::Unit::TestCase
37
39
 
38
40
  # NOTE: If this call raises, then the
39
41
  # Executable.update_rake_task_name method
40
- # must have changed, and the Daemon override
42
+ # must have changed, and the Session override
41
43
  # is no longer preventing non-File tasks
42
44
  # from being added to the CLEAN collection.
43
45
  #
@@ -14,14 +14,18 @@ class TaskTest < Test::Unit::TestCase
14
14
  @swf = File.join(fixtures, 'flashplayer', 'AsUnit Runner.swf')
15
15
  @missing_home = File.join(fixtures, 'missing_folder')
16
16
  @config_path = File.join(@missing_home, 'fp_config', 'mm.cfg')
17
+
18
+ Sprout.stdout = $stdout
19
+ Sprout.stderr = $stderr
17
20
  end
18
21
 
19
22
  teardown do
20
23
  remove_file @missing_home
24
+ ENV['USE_FDB'] = 'false'
21
25
  end
22
26
 
23
- =begin
24
27
  ## THIS METHOD WAS COMMENTED OUT....
28
+ =begin
25
29
  should "wait for SWF even if clean system" do
26
30
  # No creation of expected FlashPlayer folders...
27
31
 
@@ -30,6 +34,8 @@ class TaskTest < Test::Unit::TestCase
30
34
  FlashPlayer::MMConfig.any_instance.stubs(:config_path).returns @config_path
31
35
  FlashPlayer::MMConfig.any_instance.stubs(:user_confirmation?).returns false
32
36
 
37
+ ENV['USE_FDB'] = 'true'
38
+
33
39
  as_a_mac_system do
34
40
  t = flashplayer @swf
35
41
  t.invoke
@@ -27,8 +27,8 @@ class MXMLCTest < Test::Unit::TestCase
27
27
  end
28
28
 
29
29
  should "compile a swf" do
30
- insert_fake_executable File.join(fixtures, 'sdk', 'mxmlc')
31
30
  mxmlc = FlashSDK::MXMLC.new
31
+ mxmlc.binary_path = File.join fixtures, 'sdk', 'mxmlc'
32
32
  mxmlc.input = @input
33
33
  mxmlc.execute
34
34
  assert_file @expected_output
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 0
8
- - 18
8
+ - 20
9
9
  - pre
10
- version: 1.0.18.pre
10
+ version: 1.0.20.pre
11
11
  platform: ruby
12
12
  authors:
13
13
  - Luke Bayes
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-31 00:00:00 -08:00
18
+ date: 2011-01-18 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -28,9 +28,9 @@ dependencies:
28
28
  segments:
29
29
  - 1
30
30
  - 1
31
- - 4
31
+ - 8
32
32
  - pre
33
- version: 1.1.4.pre
33
+ version: 1.1.8.pre
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: *id001
@@ -195,6 +195,9 @@ post_install_message: |+
195
195
  ++++++++++++++++++++++++++++++++
196
196
  Issues or Questions?
197
197
 
198
+ Troubleshooting at:
199
+ http://projectsprouts.org/troubleshooting.html
200
+
198
201
  Email us at:
199
202
  projectsprouts@googlegroups.com
200
203