Class: Gloo::Objs::EachDir

Inherits:
Object
  • Object
show all
Defined in:
lib/gloo/objs/ctrl/each_dir.rb

Constant Summary collapse

DIR =
'dir'.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(engine, iterator_obj) ⇒ EachDir


Create Iterator



17
18
19
20
# File 'lib/gloo/objs/ctrl/each_dir.rb', line 17

def initialize( engine, iterator_obj )
  @engine = engine
  @iterator_obj = iterator_obj
end

Class Method Details

.use_for?(iterator_obj) ⇒ Boolean

Use this iterator for each loop?

Returns:



30
31
32
33
34
# File 'lib/gloo/objs/ctrl/each_dir.rb', line 30

def self.use_for?( iterator_obj )
  return true if iterator_obj.find_child DIR

  return false
end

Instance Method Details

#runObject

Run for each directory.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/gloo/objs/ctrl/each_dir.rb', line 44

def run
  folder = @iterator_obj.in_value
  return unless folder

  unless Dir.exist?( folder )
    @engine.err "Folder does not exist: #{folder}"
  end

  Dir.glob( "#{folder}*" ).each do |f|
    if Dir.exist?( f )
      set_dir f
      @iterator_obj.run_do
    end
  end
end

#set_dir(f) ⇒ Object

Set the value of the dir.



63
64
65
66
67
68
# File 'lib/gloo/objs/ctrl/each_dir.rb', line 63

def set_dir( f )
  o = @iterator_obj.find_child DIR
  return unless o

  o.set_value f
end