asproject 0.1.75 → 0.1.80

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+
5
+ version = "> 0"
6
+
7
+ if ARGV.size > 0 && ARGV[0][0]==95 && ARGV[0][-1]==95
8
+ if Gem::Version.correct?(ARGV[0][1..-2])
9
+ version = ARGV[0][1..-2]
10
+ ARGV.shift
11
+ end
12
+ end
13
+
14
+ require_gem 'asproject', version
15
+ require 'fcshs.rb'
16
+
17
+ #AsProject::FCSHS.new(ARGS.shift, ARGS.shift)
18
+ AsProject::FCSHS.new
@@ -32,6 +32,7 @@ require 'tasks/env_task'
32
32
  require 'tasks/remote_file_task'
33
33
  require 'tasks/flash_log'
34
34
  require 'tasks/mxmlc'
35
+ require 'tasks/fcsh'
35
36
  require 'tasks/mtasc'
36
37
  require 'tasks/hamtasc'
37
38
  require 'tasks/flash_player_trust'
@@ -2,7 +2,7 @@ module AsProject
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 76
5
+ TINY = 81
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -0,0 +1,72 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require "socket"
4
+
5
+ module AsProject
6
+
7
+ class FCSHS
8
+
9
+ def initialize(ip=nil, port=nil)
10
+ @ip = (ip.nil?) ? "127.0.0.1" : ip
11
+ @port = (port.nil?) ? 20569 : port
12
+
13
+ @compile_commands = Hash.new
14
+ @fcsh = nil
15
+ start_fcsh
16
+
17
+ @socket = TCPServer.new(@ip, @port)
18
+ @socket.setsockopt(Socket::SOL_SOCKET, Socket::TCP_NODELAY, true)
19
+ puts "fcsh server started on #{@ip}:#{@port}"
20
+ start
21
+ end
22
+
23
+ def start
24
+ while
25
+ session = @socket.accept
26
+ dir = session.gets
27
+ command = session.gets
28
+ execute(session, dir, command)
29
+ session.close
30
+ sleep 0.75
31
+ end
32
+ end
33
+
34
+ def execute(io, dir, command)
35
+ puts "[execute] #{command} at #{Dir.pwd} and #{dir}"
36
+ if(File.exists?(dir))
37
+ Dir.chdir(dir)
38
+ else
39
+ puts "Dir: #{dir} does not exist!?"
40
+ end
41
+ cmd = @compile_commands[command]
42
+ if(cmd.nil?)
43
+ cmd = CompileCommand.new(command)
44
+ @compile_commands[command] = cmd
45
+ cmd.index = @compile_commands.size
46
+ io.write(command)
47
+ @fcsh.write(command) do |f|
48
+ io.write f.read
49
+ end
50
+ else
51
+ msg = "compile #{cmd.index}"
52
+ @fcsh.write(msg + "\n")
53
+ io.write(msg)
54
+ end
55
+ end
56
+
57
+ def start_fcsh
58
+ @fcsh = IO.popen('fcsh', 'a')
59
+ end
60
+ end
61
+
62
+ class CompileCommand
63
+ attr_accessor :index,
64
+ :command
65
+
66
+ def initialize(command)
67
+ @command = command
68
+ end
69
+ end
70
+ end
71
+
72
+ AsProject::FCSHS.new
@@ -0,0 +1,37 @@
1
+
2
+ require 'socket'
3
+
4
+ module AsProject
5
+
6
+ # TODO: Add new task as a clean dependency
7
+ # That will call the fcshs and tell it to release
8
+ # all in-memory compilations
9
+ class FCSH < MXMLC
10
+ attr_accessor :ip,
11
+ :port
12
+
13
+ def initialize(name=:fcsh)
14
+ @ip = (ip.nil?) ? "127.0.0.1" : ip
15
+ @port = (port.nil?) ? 20569 : port
16
+ super(name)
17
+ end
18
+
19
+ def execute(cmd, args, retries=0)
20
+ retries = retries+1
21
+ if(retries > 3)
22
+ puts "fcsh task was unable to connect to fcshs, please try starting this service by opening a new terminal and typing 'fcshs' (without quotes)"
23
+ return
24
+ end
25
+ begin
26
+ @socket = TCPSocket.open(@ip, @port) do |s|
27
+ s.puts Dir.pwd
28
+ s.puts "#{cmd} #{args}"
29
+ puts s.read
30
+ end
31
+ rescue StandardError
32
+ IO.popen("fcshs &", "r")
33
+ execute(cmd, args, retries)
34
+ end
35
+ end
36
+ end
37
+ end
@@ -40,7 +40,8 @@ module AsProject
40
40
  @win_extracted_file = "sa_flashplayer_9_debug.exe"
41
41
  @osx_url = "http://download.macromedia.com/pub/flashplayer/updaters/9/sa_flashplayer_9_all_debug_ub.dmg"
42
42
  @osx_mounted_path = "Adobe Flash Player Standalone"
43
- @osx_extracted_file = "Flash\ Player.app"
43
+ # @osx_extracted_file = "Flash\ Player.app"
44
+ @osx_extracted_file = "Flash\ Player.app/Contents/MacOS/standalone"
44
45
  @unix_url = nil
45
46
  @unix_extracted_file = nil
46
47
  else
@@ -68,24 +69,25 @@ module AsProject
68
69
  File.open(log_file, 'w') do |f|
69
70
  f.write('')
70
71
  end
71
-
72
72
  thread = nil
73
+ @osx_process = nil
73
74
  if(Logger.debug)
74
75
  thread = ThreadMock.new
75
76
  elsif(@user_task.is_a?(OSXRemoteFileTask) && !Logger.debug)
77
+ @osx_process = true
76
78
  thread = run_osx
77
79
  else
78
80
  thread = run_other
79
81
  end
80
-
81
82
  read_log(thread, log_file)
82
83
  end
83
84
 
84
85
  def run_osx
85
- Thread.new {
86
- system(%{open -a "#{extracted_file_path}" ./#{clean_path(@swf)}})
87
- }
88
- # return OSXPlayerThread.new
86
+ @osx_process = extracted_file_path
87
+ app = "#{clean_path(extracted_file_path)}"
88
+ swf = "#{clean_path(@swf)}"
89
+ msg = "open -a #{app} ./#{swf}"
90
+ `#{msg}`
89
91
  end
90
92
 
91
93
  def run_other
@@ -94,6 +96,17 @@ module AsProject
94
96
  }
95
97
  end
96
98
 
99
+ def player_alive?(thread)
100
+ if(@osx_process)
101
+ processes = `ps -A`
102
+ match = processes.match(/#{@osx_process}/)
103
+ return !match.nil?
104
+ else
105
+ return thread.alive?
106
+ end
107
+
108
+ end
109
+
97
110
  def read_log(player_thread, log_file)
98
111
  index = 0
99
112
 
@@ -101,7 +114,7 @@ module AsProject
101
114
  raise UsageError.new('Unable to find the trace output log file in the expected location: ' + log_file)
102
115
  end
103
116
 
104
- while(player_thread.alive?)
117
+ while(player_alive?(player_thread))
105
118
  sleep(0.2)
106
119
  incr = 0
107
120
 
@@ -110,6 +123,7 @@ module AsProject
110
123
  incr = incr + 1
111
124
  if(incr > index)
112
125
  puts "[trace] #{line}"
126
+ $stdout.flush
113
127
  index = index + 1
114
128
  end
115
129
  end
@@ -38,7 +38,6 @@ module AsProject
38
38
  end
39
39
 
40
40
  def define
41
-
42
41
  @external_library_path = add_path_list(@external_library_path) if @external_library_path.size > 0
43
42
  @library_path = add_path_list(@library_path) if @library_path.size > 0
44
43
  @source_path = add_path_list(@source_path) if @source_path.size > 0
@@ -50,7 +49,7 @@ module AsProject
50
49
  add_path(File.dirname(@input))
51
50
 
52
51
  file @output do |t|
53
- sh(%{#{target} #{option_list.join(' ')}})
52
+ execute(@target, option_list.join(' '))
54
53
  end
55
54
 
56
55
  CLEAN.add(@output)
@@ -62,6 +61,10 @@ module AsProject
62
61
  task @name => [@output]
63
62
  end
64
63
 
64
+ def execute(cmd, args)
65
+ sh(%{#{cmd} #{args}})
66
+ end
67
+
65
68
  def sp
66
69
  return @source_path
67
70
  end
@@ -68,7 +68,7 @@ spec = Gem::Specification.new do |s|
68
68
  s.require_path = 'lib'
69
69
 
70
70
  s.bindir = 'bin' # Use these for applications.
71
- s.executables = ['asproject', 'asclass']
71
+ s.executables = ['asproject', 'asclass', 'fcshs']
72
72
  s.default_executable = 'asproject'
73
73
 
74
74
  s.author = "Luke Bayes"
@@ -1,18 +1,54 @@
1
- #! rake
2
- #
3
- # Rakefile for MXMLC development
4
- # execute rake -T anywhere forward of this directory to see available tasks
5
- # Tasks are executed from the command prompt like:
6
- # rake deploy
7
- # rake clean
8
-
9
- # The test task accepts additional optional arguments as follows:
10
- #
11
- # rake test / Create TestSuites and run AllTests
12
- # rake test SomeClass / Run only the specified TestCase
13
- # rake test SomeClass.testSomeMethod / Run only the specified TestCase and test method
14
-
15
- #require_gem 'asproject'
16
- #load 'asproject'
17
-
18
- #load_rake_tasks
1
+
2
+ require 'rubygems'
3
+ require 'asproject'
4
+
5
+ ############################################
6
+ # Launch the Application using Flash Player 9
7
+
8
+ desc "Compile and run main application"
9
+ task :run => :compile_main
10
+ task :default => :run
11
+
12
+ AsProject::FlashPlayer.new(:run) do |t|
13
+ t.version = 9
14
+ t.swf = 'bin/<%= project_name %>Application.swf'
15
+ end
16
+
17
+ ############################################
18
+ # Launch the Test Suites using Flash Player 9
19
+
20
+ desc "Compile and run test suites"
21
+ task :test => [:compile_tests]
22
+
23
+ AsProject::FlashPlayer.new(:test) do |t|
24
+ t.version = 9
25
+ t.swf = 'bin/<%= project_name %>Runner.swf'
26
+ end
27
+
28
+ ############################################
29
+ # Compile your Application using HAMTASC
30
+
31
+ AsProject::MXMLC.new(:compile_main) do |t|
32
+ t.default_background_color = '#FFFFFF'
33
+ t.default_frame_rate = 24
34
+ t.default_size = "600 400"
35
+ t.input = 'src/<%= project_name %>.as'
36
+ t.output = 'bin/<%= project_name %>Application.swf'
37
+ t.warnings = true
38
+ end
39
+
40
+ ############################################
41
+ # Compile your Application using HAMTASC
42
+
43
+ AsProject::MXMLC.new(:compile_tests) do |t|
44
+ t.default_background_color = '#FFFFFF'
45
+ t.default_frame_rate = 24
46
+ t.default_size = "800 450"
47
+ t.input = 'test/<%= project_name %>Runner.as'
48
+ t.output = 'bin/<%= project_name %>Runner.swf'
49
+ t.warnings = true
50
+ t.source_path << 'src'
51
+ t.source_path << 'assets/img/skins'
52
+ # t.source_path << 'lib/asunit'
53
+ t.source_path << 'test'
54
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: asproject
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.75
7
- date: 2007-03-12 00:00:00 -07:00
6
+ version: 0.1.80
7
+ date: 2007-03-18 00:00:00 -07:00
8
8
  summary: AsProject is a tool set that simplifies the process of beginning and growing a new ActionScript project.
9
9
  require_paths:
10
10
  - lib
@@ -35,7 +35,6 @@ files:
35
35
  - lib
36
36
  - Manifest.txt
37
37
  - MIT-LICENSE.txt
38
- - pkg
39
38
  - rakefile.rb
40
39
  - README.txt
41
40
  - setup.rb
@@ -44,6 +43,7 @@ files:
44
43
  - TODO.txt
45
44
  - bin/asclass
46
45
  - bin/asproject
46
+ - bin/fcshs
47
47
  - lib/asclass.rb
48
48
  - lib/asclass_arguments.rb
49
49
  - lib/asproject
@@ -52,6 +52,7 @@ files:
52
52
  - lib/asproject_base.rb
53
53
  - lib/asproject_utils.rb
54
54
  - lib/eclipse_project.rb
55
+ - lib/fcshs.rb
55
56
  - lib/path_finder.rb
56
57
  - lib/platform.rb
57
58
  - lib/project.rb
@@ -60,6 +61,7 @@ files:
60
61
  - lib/test_suite_generator.rb
61
62
  - lib/asproject/version.rb
62
63
  - lib/tasks/env_task.rb
64
+ - lib/tasks/fcsh.rb
63
65
  - lib/tasks/flash_log.rb
64
66
  - lib/tasks/flash_player.rb
65
67
  - lib/tasks/flash_player_trust.rb
@@ -283,6 +285,7 @@ extra_rdoc_files: []
283
285
  executables:
284
286
  - asproject
285
287
  - asclass
288
+ - fcshs
286
289
  extensions: []
287
290
 
288
291
  requirements: []