airstream 0.3.2 → 0.3.4

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/bin/airstream CHANGED
@@ -70,23 +70,24 @@ begin
70
70
  exit 68
71
71
  end
72
72
 
73
+ io = Airstream::Io.new
74
+ io.quiet = options[:quiet]
75
+ io.verbose = options[:verbose]
73
76
  server = Airstream::Server.new(options[:reciever])
74
77
 
75
78
  puts "=> Ctrl-C to exit airstream"
76
79
  ARGV.each do |file|
77
80
 
78
81
  server.allow_local_httpd = options[:use_local_httpd]
79
- puts "sending video file #{file}" if options[:verbose]
82
+ io.info "sending video file #{file}"
80
83
  server.video = file
81
84
 
82
- print "loading " unless options[:quiet]
83
- "|/-\\".chars.cycle.each do |c|
84
- print c unless options[:quiet]
85
- sleep(0.2)
86
- print "\b" unless options[:quiet]
87
- break unless server.loading?
85
+ io.print "loading"
86
+ while server.loading?
87
+ io.print "."
88
+ sleep(0.7)
88
89
  end
89
- puts "done" unless options[:quiet]
90
+ io.puts " done"
90
91
 
91
92
  video_title = File.basename(file, '.mp4')
92
93
  pbar_options = {
@@ -94,14 +95,20 @@ begin
94
95
  total: server.video_duration,
95
96
  format: '%t |%b%i| %p%%'
96
97
  }
98
+
99
+ io.hide_input
97
100
  pbar = ProgressBar.create(pbar_options)
98
101
  while (elapsed_time=server.video_position) < server.video_duration
102
+ io.catch_input
103
+ break if io.quit? || io.skip?
99
104
  pbar.progress = elapsed_time
100
105
  formatted_time = Time.at(elapsed_time).gmtime.strftime('%R:%S')
101
106
  pbar.title = "#{video_title} #{formatted_time}"
102
- sleep 1.0
107
+ sleep 0.5
103
108
  end
109
+ io.show_input
104
110
  pbar.finish
111
+ break if io.quit?
105
112
  end
106
113
 
107
114
  rescue Airplay::Protocol::InvalidMediaError
data/lib/airstream.rb CHANGED
@@ -11,6 +11,7 @@ module Airstream
11
11
  end
12
12
 
13
13
  require 'airstream/version.rb'
14
+ require 'airstream/io.rb'
14
15
  require 'airstream/network.rb'
15
16
  require 'airstream/node.rb'
16
17
  require 'airstream/video.rb'
@@ -0,0 +1,46 @@
1
+
2
+ require 'io/wait'
3
+
4
+ module Airstream
5
+ class Io
6
+ attr_writer :quiet, :verbose
7
+ attr_reader :key
8
+
9
+ def print(msg)
10
+ STDOUT.print msg unless @quiet
11
+ end
12
+
13
+ def puts(msg)
14
+ STDOUT.puts msg unless @quiet
15
+ end
16
+
17
+ def info(msg)
18
+ STDOUT.puts msg if @verbose
19
+ end
20
+
21
+ def hide_input
22
+ `stty raw -echo`
23
+ end
24
+
25
+ def show_input
26
+ `stty -raw echo`
27
+ end
28
+
29
+ def catch_input
30
+ @key = nil
31
+ if STDIN.ready?
32
+ @key = STDIN.getc
33
+ end
34
+ rescue
35
+ show_input
36
+ end
37
+
38
+ def quit?
39
+ @key == "q"
40
+ end
41
+
42
+ def skip?
43
+ @key == "s"
44
+ end
45
+ end
46
+ end
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Airstream
3
- VERSION = '0.3.2'
3
+ VERSION = '0.3.4'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: airstream
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-07 00:00:00.000000000 Z
12
+ date: 2012-11-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: airplay
@@ -43,6 +43,38 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rack
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: webrick
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
46
78
  - !ruby/object:Gem::Dependency
47
79
  name: rake
48
80
  requirement: !ruby/object:Gem::Requirement
@@ -72,6 +104,7 @@ files:
72
104
  - bin/airimg
73
105
  - lib/airstream.rb
74
106
  - lib/airstream/version.rb
107
+ - lib/airstream/io.rb
75
108
  - lib/airstream/network.rb
76
109
  - lib/airstream/node.rb
77
110
  - lib/airstream/video.rb