plist4r 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
 - data/lib/plist4r/docs/InfoPlistExample.rdoc +3 -3
 - data/lib/plist4r/docs/LaunchdPlistExample.rdoc +3 -3
 - data/lib/plist4r/plist_type/launchd.rb +20 -15
 - data/plist4r.gemspec +1 -1
 - metadata +2 -2
 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1.1. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.1.3
         
     | 
| 
         @@ -11,19 +11,19 @@ In this example, we edit an Apple Info.plist, to modify a couple of the keys and 
     | 
|
| 
       11 
11 
     | 
    
         
             
              # block method
         
     | 
| 
       12 
12 
     | 
    
         
             
              info_plist = Plist4r.open "/Applications/MyApp.app/Contents/Info.plist" do
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                # plist attributes
         
     | 
| 
      
 14 
     | 
    
         
            +
                # plist file attributes
         
     | 
| 
       15 
15 
     | 
    
         
             
                filename    # => "/Applications/MyApp.app/Contents/Info.plist"
         
     | 
| 
       16 
16 
     | 
    
         
             
                file_format # => :xml
         
     | 
| 
       17 
17 
     | 
    
         
             
                plist_type  # => :info
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
                # read
         
     | 
| 
      
 19 
     | 
    
         
            +
                # read plist keys
         
     | 
| 
       20 
20 
     | 
    
         
             
                c_f_bundle_executable # => "MyApp"
         
     | 
| 
       21 
21 
     | 
    
         
             
                c_f_bundle_icon_file  # => "Icon"
         
     | 
| 
       22 
22 
     | 
    
         
             
                c_f_bundle_identifier # => "com.mydomain.MyApp"
         
     | 
| 
       23 
23 
     | 
    
         
             
                c_f_bundle_name       # => "MyApp"
         
     | 
| 
       24 
24 
     | 
    
         
             
                c_f_bundle_signature  # => "????"
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                # write
         
     | 
| 
      
 26 
     | 
    
         
            +
                # write plist keys
         
     | 
| 
       27 
27 
     | 
    
         
             
                c_f_bundle_signature "MYAP"
         
     | 
| 
       28 
28 
     | 
    
         
             
                store "LSUIElement" true
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
         @@ -11,19 +11,19 @@ In this example, we edit an Apple Launchd plist, to modify a couple of the keys 
     | 
|
| 
       11 
11 
     | 
    
         
             
              # block method
         
     | 
| 
       12 
12 
     | 
    
         
             
              launchd_plist = Plist4r.open "/Library/LaunchDaemons/com.mydomain.MyApp.plist" do
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                # plist attributes
         
     | 
| 
      
 14 
     | 
    
         
            +
                # plist file attributes
         
     | 
| 
       15 
15 
     | 
    
         
             
                filename    # => "/Library/LaunchDaemons/com.mydomain.MyApp.plist"
         
     | 
| 
       16 
16 
     | 
    
         
             
                file_format # => :xml
         
     | 
| 
       17 
17 
     | 
    
         
             
                plist_type  # => :launchd
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
                # read
         
     | 
| 
      
 19 
     | 
    
         
            +
                # read plist keys
         
     | 
| 
       20 
20 
     | 
    
         
             
                label             # => "com.mydomain.Myapp"
         
     | 
| 
       21 
21 
     | 
    
         
             
                program_arguments # => ["/Applications/MyApp.app/Contents/MacOS/MyApp"]
         
     | 
| 
       22 
22 
     | 
    
         
             
                queue_directories # => ["/dir/to/watch/1","/dir/to/watch/2","etc..."]
         
     | 
| 
       23 
23 
     | 
    
         
             
                run_at_load    # => false
         
     | 
| 
       24 
24 
     | 
    
         
             
                start_on_mount # => false
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                # write
         
     | 
| 
      
 26 
     | 
    
         
            +
                # write plist keys
         
     | 
| 
       27 
27 
     | 
    
         
             
                run_at_load true
         
     | 
| 
       28 
28 
     | 
    
         
             
                store "StartOnMount" true
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
         @@ -26,6 +26,11 @@ module Plist4r 
     | 
|
| 
       26 
26 
     | 
    
         
             
                                           SoftResourceLimits, HardResourceLimits MachServices Socket ]
         
     | 
| 
       27 
27 
     | 
    
         
             
                }
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                class InetdCompatibility < ArrayDict
         
     | 
| 
      
 31 
     | 
    
         
            +
                  ValidKeys = { :bool => %w[Wait] }
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       29 
34 
     | 
    
         
             
                # Set or return the plist key +inetdCompatibility+
         
     | 
| 
       30 
35 
     | 
    
         
             
                # @param [Hash <true,false>] value the 
         
     | 
| 
       31 
36 
     | 
    
         
             
                # The presence of this key specifies that the daemon expects to be run as if it were launched from inetd.
         
     | 
| 
         @@ -41,20 +46,21 @@ module Plist4r 
     | 
|
| 
       41 
46 
     | 
    
         
             
                # # return inetdCompatibility
         
     | 
| 
       42 
47 
     | 
    
         
             
                # launchd_plist.inetd_compatibility => hash or nil
         
     | 
| 
       43 
48 
     | 
    
         
             
                #
         
     | 
| 
       44 
     | 
    
         
            -
                def inetd_compatibility value=nil
         
     | 
| 
      
 49 
     | 
    
         
            +
                def inetd_compatibility value=nil, &blk
         
     | 
| 
       45 
50 
     | 
    
         
             
                  key = "inetdCompatibility"
         
     | 
| 
       46 
51 
     | 
    
         
             
                  case value
         
     | 
| 
       47 
     | 
    
         
            -
                  when  
     | 
| 
       48 
     | 
    
         
            -
                    if  
     | 
| 
       49 
     | 
    
         
            -
                      @hash[key] =  
     | 
| 
      
 52 
     | 
    
         
            +
                  when nil
         
     | 
| 
      
 53 
     | 
    
         
            +
                    if block_given?
         
     | 
| 
      
 54 
     | 
    
         
            +
                      @hash[key] = ::Plist4r::OrderedHash.new
         
     | 
| 
      
 55 
     | 
    
         
            +
                      @hash[key] = InetdCompatibility.new(@hash[key],&blk).to_hash
         
     | 
| 
       50 
56 
     | 
    
         
             
                    else
         
     | 
| 
       51 
     | 
    
         
            -
                       
     | 
| 
      
 57 
     | 
    
         
            +
                      @hash[key]
         
     | 
| 
       52 
58 
     | 
    
         
             
                    end
         
     | 
| 
       53 
     | 
    
         
            -
                  when nil
         
     | 
| 
       54 
     | 
    
         
            -
                    @hash[key]
         
     | 
| 
       55 
59 
     | 
    
         
             
                  else
         
     | 
| 
       56 
     | 
    
         
            -
                    raise "Invalid value: #{method_name} #{value.inspect}. Should be: #{method_name}  
     | 
| 
      
 60 
     | 
    
         
            +
                    raise "Invalid value: #{method_name} #{value.inspect}. Should be: #{method_name} { wait true|false }"
         
     | 
| 
       57 
61 
     | 
    
         
             
                  end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
       58 
64 
     | 
    
         
             
                end
         
     | 
| 
       59 
65 
     | 
    
         | 
| 
       60 
66 
     | 
    
         
             
                class KeepAlive < ArrayDict
         
     | 
| 
         @@ -119,7 +125,6 @@ module Plist4r 
     | 
|
| 
       119 
125 
     | 
    
         
             
                    @hash[key] = value
         
     | 
| 
       120 
126 
     | 
    
         
             
                  when nil
         
     | 
| 
       121 
127 
     | 
    
         
             
                    if block_given?
         
     | 
| 
       122 
     | 
    
         
            -
                      puts KeepAlive.new(@hash[key],&blk).to_hash
         
     | 
| 
       123 
128 
     | 
    
         
             
                      @hash[key] = ::Plist4r::OrderedHash.new
         
     | 
| 
       124 
129 
     | 
    
         
             
                      @hash[key] = KeepAlive.new(@hash[key],&blk).to_hash
         
     | 
| 
       125 
130 
     | 
    
         
             
                    else
         
     | 
| 
         @@ -296,7 +301,7 @@ module Plist4r 
     | 
|
| 
       296 
301 
     | 
    
         
             
                def soft_resource_limits value=nil, &blk
         
     | 
| 
       297 
302 
     | 
    
         
             
                  key = "SoftResourceLimits"
         
     | 
| 
       298 
303 
     | 
    
         
             
                  if blk
         
     | 
| 
       299 
     | 
    
         
            -
                    @hash[key]  
     | 
| 
      
 304 
     | 
    
         
            +
                    @hash[key] = ::Plist4r::OrderedHash.new
         
     | 
| 
       300 
305 
     | 
    
         
             
                    @hash[key] = ResourceLimits.new(@hash[key],&blk).to_hash
         
     | 
| 
       301 
306 
     | 
    
         
             
                  else
         
     | 
| 
       302 
307 
     | 
    
         
             
                    @hash[key]
         
     | 
| 
         @@ -361,7 +366,7 @@ module Plist4r 
     | 
|
| 
       361 
366 
     | 
    
         
             
                def hard_resource_limits value=nil, &blk
         
     | 
| 
       362 
367 
     | 
    
         
             
                  key = "HardResourceLimits"
         
     | 
| 
       363 
368 
     | 
    
         
             
                  if blk
         
     | 
| 
       364 
     | 
    
         
            -
                    @hash[key]  
     | 
| 
      
 369 
     | 
    
         
            +
                    @hash[key] = ::Plist4r::OrderedHash.new
         
     | 
| 
       365 
370 
     | 
    
         
             
                    @hash[key] = ResourceLimits.new(@hash[key],&blk).to_hash
         
     | 
| 
       366 
371 
     | 
    
         
             
                  else
         
     | 
| 
       367 
372 
     | 
    
         
             
                    @hash[key]
         
     | 
| 
         @@ -428,7 +433,7 @@ module Plist4r 
     | 
|
| 
       428 
433 
     | 
    
         
             
                def mach_services value=nil, &blk
         
     | 
| 
       429 
434 
     | 
    
         
             
                  key = "MachServices"
         
     | 
| 
       430 
435 
     | 
    
         
             
                  if blk
         
     | 
| 
       431 
     | 
    
         
            -
                    @hash[key]  
     | 
| 
      
 436 
     | 
    
         
            +
                    @hash[key] = ::Plist4r::OrderedHash.new
         
     | 
| 
       432 
437 
     | 
    
         
             
                    @hash[key] = MachServices.new(@hash[key],&blk).to_hash
         
     | 
| 
       433 
438 
     | 
    
         
             
                  else
         
     | 
| 
       434 
439 
     | 
    
         
             
                    @hash[key]
         
     | 
| 
         @@ -661,8 +666,8 @@ module Plist4r 
     | 
|
| 
       661 
666 
     | 
    
         
             
                def socket index_or_key=nil, index=nil, &blk
         
     | 
| 
       662 
667 
     | 
    
         
             
                  key = "Sockets"
         
     | 
| 
       663 
668 
     | 
    
         
             
                  if blk
         
     | 
| 
       664 
     | 
    
         
            -
                    @hash[key]  
     | 
| 
       665 
     | 
    
         
            -
                    sockets = Sockets.new(@hash[key]) 
     | 
| 
      
 669 
     | 
    
         
            +
                    @hash[key] = ::Plist4r::OrderedHash.new
         
     | 
| 
      
 670 
     | 
    
         
            +
                    sockets = Sockets.new(@hash[key])
         
     | 
| 
       666 
671 
     | 
    
         | 
| 
       667 
672 
     | 
    
         
             
                    case index_or_key
         
     | 
| 
       668 
673 
     | 
    
         
             
                    when nil
         
     | 
| 
         @@ -680,7 +685,7 @@ module Plist4r 
     | 
|
| 
       680 
685 
     | 
    
         
             
                    else
         
     | 
| 
       681 
686 
     | 
    
         
             
                      raise "Invalid socket key: #{method_name} #{index_or_key.inspect}. Should be: #{method_name} <socket_key> &blk"
         
     | 
| 
       682 
687 
     | 
    
         
             
                    end
         
     | 
| 
       683 
     | 
    
         
            -
                    @hash[key] = sockets
         
     | 
| 
      
 688 
     | 
    
         
            +
                    @hash[key] = sockets.to_hash
         
     | 
| 
       684 
689 
     | 
    
         
             
                  else
         
     | 
| 
       685 
690 
     | 
    
         
             
                    @hash[key]
         
     | 
| 
       686 
691 
     | 
    
         
             
                  end
         
     | 
    
        data/plist4r.gemspec
    CHANGED