Class: Jdepp::CLI::Feedback

Inherits:
Object
  • Object
show all
Defined in:
lib/jdepp/cli/feedback.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(enabled_tags = [], output = $stderr) ⇒ Feedback

Returns a new instance of Feedback.



11
12
13
14
# File 'lib/jdepp/cli/feedback.rb', line 11

def initialize(enabled_tags=[], output=$stderr)
   @enabled_tags = Set.new([:error]) | enabled_tags
   @output = output
end

Instance Attribute Details

#enabled_tagsObject (readonly)

Returns the value of attribute enabled_tags.



8
9
10
# File 'lib/jdepp/cli/feedback.rb', line 8

def enabled_tags
  @enabled_tags
end

#outputObject (readonly)

Returns the value of attribute output.



9
10
11
# File 'lib/jdepp/cli/feedback.rb', line 9

def output
  @output
end

Instance Method Details

#actionObject



44
45
46
# File 'lib/jdepp/cli/feedback.rb', line 44

def action
   add_tag(:action)
end

#action?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/jdepp/cli/feedback.rb', line 40

def action?
   @enabled_tags.member?(:action)
end

#add_tag(tag) ⇒ Object



16
17
18
# File 'lib/jdepp/cli/feedback.rb', line 16

def add_tag(tag)
   @enabled_tags.add(tag)
end

#delete_tag(tag) ⇒ Object



20
21
22
# File 'lib/jdepp/cli/feedback.rb', line 20

def delete_tag(tag)
   @enabled_tags.delete(tag)
end

#dry_runObject



28
29
30
# File 'lib/jdepp/cli/feedback.rb', line 28

def dry_run
   add_tag(:dry_run)
end

#dry_run?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/jdepp/cli/feedback.rb', line 24

def dry_run?
   @enabled_tags.member?(:dry_run)
end

#puts_if(relevant_tags, &msg) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/jdepp/cli/feedback.rb', line 56

def puts_if(relevant_tags, &msg)
   if relevant_tags.is_a?(Array) then
      relevant_tags = Set.new(relevant_tags)
   elsif not relevant_tags.is_a?(Set) then
      relevant_tags = Set.new([relevant_tags])
   end
   tags = relevant_tags.intersection(@enabled_tags)
   if tags.length > 0 then
      @output.puts("#{prefix tags}#{msg.call()}")
   end
   nil
end

#quietObject



48
49
50
51
52
53
54
# File 'lib/jdepp/cli/feedback.rb', line 48

def quiet
   preserve_dry = dry_run
   @enabled_tags = Set.new([:error])
   if preserve_dry then
      dry_run
   end
end

#system(cmds) ⇒ Object



69
70
71
72
73
74
75
76
# File 'lib/jdepp/cli/feedback.rb', line 69

def system(cmds)
   puts_if([:dry_run, :verbose, :action]) { cmds }
   if not self.dry_run? then
      Kernel::system(cmds)
   else
      nil
   end
end

#verboseObject



36
37
38
# File 'lib/jdepp/cli/feedback.rb', line 36

def verbose
   add_tag(:verbose)
end

#verbose?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/jdepp/cli/feedback.rb', line 32

def verbose?
   @enabled_tags.member?(:verbose)
end