Class: RTV::Switcher

Inherits:
Object
  • Object
show all
Defined in:
lib/rtv.rb

Constant Summary collapse

Usage =
'RTV - a command line ruby tv guide

USAGE

tv [ELEMENT] ...

ELEMENT kann folgende Werte enthalten:

TIME            Sendezeit im Format HH oder HH:MM (maximal eine TIME sinnvoll)
DATE            Datum im Format DD.MM
CHANNEL         Sender aus der Liste in doc/senderliste.txt
PATTERN         Suchbegriff (darf kein Sendername sein, siehe b))
KEY:VALUE       Schlüssel und Wert für Konfigurationsoptionen
DESCRIPTION     Beschreibung, feste Zeichenkette "-d"
HELP            Hilfe, feste Zeichenkette "help" (gibt diese Seite aus)


EXAMPLES

tv                      Aktuelle Sendungen für ausgewählte Sender
tv 20                   Heute 20 Uhr alle Sendungen für ausgewählte Sender
tv 24.12.               Alle Sendungen an Heilig Abend für ausgewählte Sender
tv pro7 sat1            Aktuelle Sendungen von nur Pro7 und Sat.1
tv simpsons             Alle Sendungen über Die Simpsons für alle Sender
tv redundanz:true       Zeigt alle Infos an. (Nützlich für grep)
tv -d                   Aktuelle Sendungen für ausgewählte Sender mit Beschreibung
tv help                 Gibt diese Seite aus

Beliebige sinnvolle Kombinationen in beliebiger Reihenfolge sind möglich:
tv pro7 -d 20 11.07. sat1 - Alle Sendungen auf Pro7 und Sat.1 um 20 Uhr am 11.07. mit Beschreibung'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSwitcher

Returns a new instance of Switcher.



257
258
259
# File 'lib/rtv.rb', line 257

def initialize
  @uri_options = {}
end

Instance Attribute Details

#configObject

Returns the value of attribute config.



224
225
226
# File 'lib/rtv.rb', line 224

def config
  @config
end

Instance Method Details

#uri_options(args) ⇒ Object



261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
# File 'lib/rtv.rb', line 261

def uri_options args
  set_defaults

  tmp_channel = @config[:senderfilter]
  @config[:senderfilter] = []

  args.each do |arg|
    case arg.downcase

      # Konfigurationenmodus
    when /(\w+):(\w+)/
      @config.update YAML.load("--- :" + $1 + ": " + $2)

      # Hilfemodus
    when "help"
      raise UsageException, Usage

      # Beschreibungmodus
    when "-d"
      @config[:desc] = true

      # Datummodus
    when /^\d{1,2}\.\d{1,2}\.$/
      @uri_options[:date] = arg + Time.now.year.to_s

      # Stundenmodus
    when /^\d{1,2}(?:\d{2})?$/
      @uri_options[:time] = arg

      # Channelname oder -alias
    when *Channel
      @config[:senderfilter] << arg.downcase

      # Suchmodus
    else
      @uri_options.update({:search => arg, :format => 'search', :time => 'all', :date => 'all', :slotIndex => 'all'})
      @config[:senderfilter] = Channel
    end
  end

  # when channels are specified, use them only
  @config[:senderfilter] = tmp_channel if @config[:senderfilter].empty?

  @uri_options
end