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.
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 656 657 |
# File 'lib/ruby-macrodroid/triggers.rb', line 617 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
659 660 661 662 663 |
# File 'lib/ruby-macrodroid/triggers.rb', line 659 def match?(detail={time: $env[:time]}, model=nil) time() == detail[:time] end |
#set_env ⇒ Object
sets the environmental conditions for this trigger to fire
667 668 669 |
# File 'lib/ruby-macrodroid/triggers.rb', line 667 def set_env() $env[:time] = time() end |
#to_pc ⇒ Object
671 672 673 |
# File 'lib/ruby-macrodroid/triggers.rb', line 671 def to_pc() "time.is? '%s'" % self.to_s.gsub(',', ' or') end |
#to_s(colour: false) ⇒ Object Also known as: to_summary
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 702 703 |
# File 'lib/ruby-macrodroid/triggers.rb', line 675 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 |