Class: Slideshow::Fetch

Inherits:
Object
  • Object
show all
Includes:
LogUtils::Logging
Defined in:
lib/slideshow/commands/fetch.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Fetch

Returns a new instance of Fetch.

[View source]

10
11
12
# File 'lib/slideshow/commands/fetch.rb', line 10

def initialize( config )
  @config  = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.


14
15
16
# File 'lib/slideshow/commands/fetch.rb', line 14

def config
  @config
end

Instance Method Details

#fetch(shortcut_or_source) ⇒ Object

[View source]

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/slideshow/commands/fetch.rb', line 24

def fetch( shortcut_or_source )

  logger.debug "fetch >#{shortcut_or_source}<"
  
  ## check for builtin shortcut (assume no / or \) 
  if shortcut_or_source.index( '/' ).nil? && shortcut_or_source.index( '\\' ).nil?
    shortcut = shortcut_or_source
    sources = config.map_fetch_shortcut( shortcut )

    if sources.empty?
      puts "** Error: No mapping found for shortcut '#{shortcut}'."
      return
    end
    puts "  Mapping fetch shortcut '#{shortcut}' to: #{sources.join(',')}"
  else
    sources = [shortcut_or_source]  # pass arg through unmapped
  end

  sources.each do |source|
    
    ## if manifest includes .plugin assume it's a plugin
    if source.include?( '.txt.plugin' ) || source.include?( '.plugin.txt' )
      fetch_plugin( source )
    elsif source.include?( '.txt.quick' ) || source.include?( '.quick.txt' )
      fetch_quick( source )
    else # otherwise assume it's a template pack
      fetch_template( source )
    end

  end

end

#fetch_allObject

[View source]

17
18
19
20
21
# File 'lib/slideshow/commands/fetch.rb', line 17

def fetch_all
  config.default_fetch_shortcuts.each do |shortcut|
    fetch( shortcut )
  end
end

#fetch_plugin(src) ⇒ Object

[View source]

87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/slideshow/commands/fetch.rb', line 87

def fetch_plugin( src )
  uri = URI.parse( src )
  logger.debug "scheme: #{uri.scheme}, host: #{uri.host}, port: #{uri.port}, path: #{uri.path}"
  
  # downcase basename w/ extension (remove .txt)
  pakname = File.basename( uri.path ).downcase.gsub('.txt','').gsub('.plugin','')
  pakpath = File.expand_path( "#{config.config_dir}/plugins/#{pakname}" )

  logger.debug "pakname >#{pakname}<"
  logger.debug "pakpath >#{pakpath}<"
 
  Pakman::Fetcher.new.fetch_pak( src, pakpath )
end

#fetch_quick(src) ⇒ Object

[View source]

73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/slideshow/commands/fetch.rb', line 73

def fetch_quick( src )
  uri = URI.parse( src )
  logger.debug "scheme: #{uri.scheme}, host: #{uri.host}, port: #{uri.port}, path: #{uri.path}"
  
  # downcase basename w/ extension (remove .txt)
  pakname = File.basename( uri.path ).downcase.gsub('.txt','')
  pakpath = File.expand_path( "#{config.config_dir}/templates/#{pakname}" )

  logger.debug "pakname >#{pakname}<"
  logger.debug "pakpath >#{pakpath}<"
 
  Pakman::Fetcher.new.fetch_pak( src, pakpath )
end

#fetch_template(src) ⇒ Object

[View source]

58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/slideshow/commands/fetch.rb', line 58

def fetch_template( src )
  # src = 'http://github.com/geraldb/slideshow/raw/d98e5b02b87ee66485431b1bee8fb6378297bfe4/code/templates/fullerscreen.txt'
  # src = 'http://github.com/geraldb/sandbox/raw/13d4fec0908fbfcc456b74dfe2f88621614b5244/s5blank/s5blank.txt'
  uri = URI.parse( src )
  logger.debug "scheme: #{uri.scheme}, host: #{uri.host}, port: #{uri.port}, path: #{uri.path}"
  
  pakname = File.basename( uri.path ).downcase.gsub('.txt','')
  pakpath = File.expand_path( "#{config.config_dir}/templates/#{pakname}" )
  
  logger.debug "packname >#{pakname}<"
  logger.debug "pakpath >#{pakpath}<"

  Pakman::Fetcher.new.fetch_pak( src, pakpath )
end