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.
615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 |
# File 'lib/ruby-macrodroid/triggers.rb', line 615 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
657 658 659 660 661 |
# File 'lib/ruby-macrodroid/triggers.rb', line 657 def match?(detail={time: $env[:time]}, model=nil) time() == detail[:time] end |
#set_env ⇒ Object
sets the environmental conditions for this trigger to fire
665 666 667 |
# File 'lib/ruby-macrodroid/triggers.rb', line 665 def set_env() $env[:time] = time() end |
#to_pc ⇒ Object
669 670 671 |
# File 'lib/ruby-macrodroid/triggers.rb', line 669 def to_pc() "time.is? '%s'" % self.to_s.gsub(',', ' or') end |
#to_s(colour: false) ⇒ Object Also known as: to_summary
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 698 699 700 701 |
# File 'lib/ruby-macrodroid/triggers.rb', line 673 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 |