Class: MacroDroid
- Inherits:
-
Object
- Object
- MacroDroid
- Defined in:
- lib/ruby-macrodroid.rb
Instance Attribute Summary collapse
-
#geofences ⇒ Object
readonly
Returns the value of attribute geofences.
-
#macros ⇒ Object
readonly
Returns the value of attribute macros.
Instance Method Summary collapse
- #add(macro) ⇒ Object
- #build_h ⇒ Object
- #export_json ⇒ Object (also: #to_json)
-
#initialize(obj = nil, debug: false) ⇒ MacroDroid
constructor
A new instance of MacroDroid.
- #to_h ⇒ Object
-
#to_pc ⇒ Object
returns pseudocode.
- #to_s ⇒ Object
- #to_summary ⇒ Object
Constructor Details
#initialize(obj = nil, debug: false) ⇒ MacroDroid
Returns a new instance of MacroDroid.
724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 |
# File 'lib/ruby-macrodroid.rb', line 724 def initialize(obj=nil, debug: false) @debug = debug @geofences = {} if obj then raw_s, _ = RXFHelper.read(obj) s = raw_s.strip if s[0] == '{' then import_json(s) elsif s[0] == '<' import_xml(s) @h = build_h else puts 's: ' + s.inspect if @debug if s =~ /m(?:acro)?:\s/ then puts 'before RowX.new' if @debug s2 = s.gsub(/^g:/,'geofence:').gsub(/^m:/,'macro:')\ .gsub(/^t:/,'trigger:').gsub(/^a:/,'action:')\ .gsub(/^c:/,'constraint:').gsub(/^#.*/,'') raw_macros, raw_geofences = s2.split(/(?=^macro:)/,2).reverse if raw_geofences then geoxml = RowX.new(raw_geofences).to_xml geodoc = Rexle.new(geoxml) geofences = geodoc.root.xpath('item/geofence') @geofences = fetch_geofences(geofences) if geofences.any? end xml = RowX.new(raw_macros).to_xml import_rowxml(xml) elsif s =~ /^# / xml = pc_to_xml(s) import_xml(xml) else raise MacroDroidError, 'invalid input' end @h = build_h end else @h = build_h() @macros = [] end end |
Instance Attribute Details
#geofences ⇒ Object (readonly)
Returns the value of attribute geofences.
722 723 724 |
# File 'lib/ruby-macrodroid.rb', line 722 def geofences @geofences end |
#macros ⇒ Object (readonly)
Returns the value of attribute macros.
722 723 724 |
# File 'lib/ruby-macrodroid.rb', line 722 def macros @macros end |
Instance Method Details
#add(macro) ⇒ Object
792 793 794 |
# File 'lib/ruby-macrodroid.rb', line 792 def add(macro) @macros << macro end |
#build_h ⇒ Object
796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 |
# File 'lib/ruby-macrodroid.rb', line 796 def build_h() puts 'inside Macro#build_h' if @debug { cell_tower_groups: [], cell_towers_ignore: [], drawer_configuration: { drawer_items: [], background_color: -1, header_color: 12692882, left_side: false, swipe_area_color: -7829368, swipe_area_height: 20, swipe_area_offset: 40, swipe_area_opacity: 80, swipe_area_width: 14, visible_swipe_area_width: 0 }, variables: [], user_icons: [], geofence_data: { geofence_map: {} }, macro_list: [] } end |
#export_json ⇒ Object Also known as: to_json
824 825 826 827 828 |
# File 'lib/ruby-macrodroid.rb', line 824 def export_json() to_h.to_json end |
#to_h ⇒ Object
833 834 835 836 837 838 839 840 841 842 843 |
# File 'lib/ruby-macrodroid.rb', line 833 def to_h() h = { geofence_data: { geofence_map: @geofences.map {|key, value| [key, value.to_h] }.to_h }, macro_list: @macros.map(&:to_h) } @h.merge(h).to_camel_case end |
#to_pc ⇒ Object
returns pseudocode
847 848 849 |
# File 'lib/ruby-macrodroid.rb', line 847 def to_pc() @macros.map(&:to_pc).join("\n\n") end |
#to_s ⇒ Object
851 852 853 854 855 856 857 858 859 860 861 862 |
# File 'lib/ruby-macrodroid.rb', line 851 def to_s() lines = [] if @geofences.any? then lines << @geofences.map {|_, value| 'g: ' + value.to_s}.join("\n\n") + "\n" end lines << @macros.map(&:to_s).join("\n") lines.join("\n") end |
#to_summary ⇒ Object
864 865 866 |
# File 'lib/ruby-macrodroid.rb', line 864 def to_summary() @macros.map(&:to_summary).join("\n") end |