Class: TimerTrigger
- Inherits:
-
Trigger
- Object
- MacroObject
- Trigger
- TimerTrigger
- Defined in:
- lib/ruby-macrodroid/triggers.rb
Overview
Category: Date/Time
Instance Attribute Summary
Attributes inherited from Trigger
Attributes inherited from MacroObject
Instance Method Summary collapse
-
#initialize(h = {}) ⇒ TimerTrigger
constructor
A new instance of TimerTrigger.
- #match?(detail = {time: $env[:time]}, model = nil) ⇒ Boolean
-
#set_env ⇒ Object
sets the environmental conditions for this trigger to fire.
- #to_pc ⇒ Object
- #to_s(colour: false) ⇒ Object (also: #to_summary)
Methods inherited from MacroObject
Constructor Details
#initialize(h = {}) ⇒ TimerTrigger
Returns a new instance of TimerTrigger.
657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 |
# File 'lib/ruby-macrodroid/triggers.rb', line 657 def initialize(h={}) puts 'TimerTrigger h: ' + h.inspect if $debug if h[:days] then days = [false] * 7 h[:days].split(/, */).each do |x| r = Date::DAYNAMES.grep /#{x}/i i = Date::DAYNAMES.index(r.first) days[i-1] = true end h[:days_of_week] = days end if h[:time] then t = Time.parse(h[:time]) h[:hour], h[:minute] = t.hour, t.min end #puts ('h: ' + h.inspect).debug @options = { alarm_id: uuid(), days_of_week: [false, false, false, false, false, false, false], minute: 10, hour: 7, use_alarm: false } #super(options.merge filter(options, h)) super(@options.merge h) end |
Instance Method Details
#match?(detail = {time: $env[:time]}, model = nil) ⇒ Boolean
699 700 701 702 703 |
# File 'lib/ruby-macrodroid/triggers.rb', line 699 def match?(detail={time: $env[:time]}, model=nil) time() == detail[:time] end |
#set_env ⇒ Object
sets the environmental conditions for this trigger to fire
707 708 709 |
# File 'lib/ruby-macrodroid/triggers.rb', line 707 def set_env() $env[:time] = time() end |
#to_pc ⇒ Object
711 712 713 |
# File 'lib/ruby-macrodroid/triggers.rb', line 711 def to_pc() "time.is? '%s'" % self.to_s.gsub(',', ' or') end |
#to_s(colour: false) ⇒ Object Also known as: to_summary
715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 |
# File 'lib/ruby-macrodroid/triggers.rb', line 715 def to_s(colour: false) dow = @h[:days_of_week] wd = Date::ABBR_DAYNAMES a = (wd[1..-1] << wd.first) a2 = dow.map.with_index.to_a start = a2.find {|x,i| x}.last r = a2[start..-1].take_while {|x,i| x == true} r2 = a2[start..-1].select {|x,i| x} days = if r == r2 then x1, x2 = a2[start].last, a2[r.length-1].last if (x2 - x1) >= 2 then "%s-%s" % [a[x1],a[x2]] else a.zip(dow).select {|_,b| b}.map(&:first).join(', ') end else a.zip(dow).select {|_,b| b}.map(&:first).join(', ') end time = Time.parse("%s:%s" % [@h[:hour], @h[:minute]]).strftime("%H:%M") "%s %s" % [time, days] end |