poet 0.2 → 0.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/.travis.yml +4 -0
 - data/History.txt +6 -0
 - data/README.md +19 -5
 - data/bin/poet +7 -34
 - data/features/bootstrapping.feature +31 -0
 - data/features/permissions.feature +1 -2
 - data/features/running.feature +5 -5
 - data/features/selective_files.feature +3 -3
 - data/features/step_definitions/permissions_steps.rb +1 -0
 - data/features/support/env.rb +2 -0
 - data/lib/poet.rb +68 -0
 - data/lib/poet/version.rb +1 -1
 - metadata +13 -10
 
    
        data/.travis.yml
    ADDED
    
    
    
        data/History.txt
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,9 +1,23 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            [](http://travis-ci.org/awendt/poet)
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            # Wanna split up your `~/.ssh/config` into several files?
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 5 
     | 
    
         
            +
            1. `gem install poet`
         
     | 
| 
      
 6 
     | 
    
         
            +
            2. `poet --bootstrap`
         
     | 
| 
      
 7 
     | 
    
         
            +
            3. Organize files in `~/.ssh/config.d/ssh_config` any way you want. Just remember to re-run `poet` afterwards.
         
     | 
| 
       6 
8 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 9 
     | 
    
         
            +
            Poet won't touch your existing ssh_config.
         
     | 
| 
      
 10 
     | 
    
         
            +
            If you want to play with it, pass a different filename to the "-o" option.
         
     | 
| 
      
 11 
     | 
    
         
            +
            Or move your existing config out of the way.
         
     | 
| 
       8 
12 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
      
 13 
     | 
    
         
            +
            Stanzas under `~/.ssh/config.d/` with an extension of .disabled are ignored by Poet.
         
     | 
| 
      
 14 
     | 
    
         
            +
            Every now and then, when you do need it, run `poet --with CONFIG` to explicitly include
         
     | 
| 
      
 15 
     | 
    
         
            +
            `CONFIG.disabled` in your generated ssh_config. You can even include several by running several
         
     | 
| 
      
 16 
     | 
    
         
            +
            `--with` options or using `--with CONFIG1,CONFIG2`.
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            ## Note on Patches/Pull Requests
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            * Fork the project.
         
     | 
| 
      
 21 
     | 
    
         
            +
            * Make your feature addition or bug fix.
         
     | 
| 
      
 22 
     | 
    
         
            +
            * Add tests for it. This is important so I don't break it in a future version unintentionally.
         
     | 
| 
      
 23 
     | 
    
         
            +
            * Send me a pull request. Bonus points for topic branches.
         
     | 
    
        data/bin/poet
    CHANGED
    
    | 
         @@ -1,14 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/usr/bin/env ruby
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            require 'optparse'
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            MAGIC_LINE = "# Generated by #{File.basename(__FILE__)}"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'poet'
         
     | 
| 
       6 
5 
     | 
    
         | 
| 
       7 
6 
     | 
    
         
             
            options = {
         
     | 
| 
       8 
     | 
    
         
            -
              :ssh_config => File.expand_path('~/.ssh/config'),
         
     | 
| 
      
 7 
     | 
    
         
            +
              :ssh_config => ENV['POET_OUTPUT'] || File.expand_path('~/.ssh/config'),
         
     | 
| 
       9 
8 
     | 
    
         
             
              :verbose => false,
         
     | 
| 
       10 
9 
     | 
    
         
             
              :with => [],
         
     | 
| 
       11 
     | 
    
         
            -
              :dir => File.expand_path('~/.ssh/config.d')
         
     | 
| 
      
 10 
     | 
    
         
            +
              :dir => ENV['POET_GLOBDIR'] || File.expand_path('~/.ssh/config.d')
         
     | 
| 
       12 
11 
     | 
    
         
             
            }
         
     | 
| 
       13 
12 
     | 
    
         | 
| 
       14 
13 
     | 
    
         
             
            optparse = OptionParser.new do|opts|
         
     | 
| 
         @@ -25,6 +24,9 @@ optparse = OptionParser.new do|opts| 
     | 
|
| 
       25 
24 
     | 
    
         
             
              opts.on('-v', '--verbose', 'Be verbose') do
         
     | 
| 
       26 
25 
     | 
    
         
             
                options[:verbose] = true
         
     | 
| 
       27 
26 
     | 
    
         
             
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
              opts.on('--bootstrap [FILE]', '') do |file|
         
     | 
| 
      
 28 
     | 
    
         
            +
                options[:bootstrap] = File.expand_path(file || options[:ssh_config])
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
       28 
30 
     | 
    
         
             
              opts.on('-w', '--with CONFIG', 'Include an otherwise disabled config file') do |file|
         
     | 
| 
       29 
31 
     | 
    
         
             
                options[:with] += file.split(',')
         
     | 
| 
       30 
32 
     | 
    
         
             
                options[:with].each{|file| puts "Including #{file} even if disabled..."}
         
     | 
| 
         @@ -32,33 +34,4 @@ optparse = OptionParser.new do|opts| 
     | 
|
| 
       32 
34 
     | 
    
         
             
            end
         
     | 
| 
       33 
35 
     | 
    
         
             
            optparse.parse!
         
     | 
| 
       34 
36 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
              $stderr.puts "#{options[:dir]} does not exist or is not a directory"
         
     | 
| 
       37 
     | 
    
         
            -
              Process.exit!(1)
         
     | 
| 
       38 
     | 
    
         
            -
            end
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
            if File.exists?(options[:ssh_config]) && File.new(options[:ssh_config]).gets == "#{MAGIC_LINE}\n"
         
     | 
| 
       41 
     | 
    
         
            -
              puts "Found generated ssh_config under #{options[:ssh_config]}. Overwriting..."
         
     | 
| 
       42 
     | 
    
         
            -
            elsif File.exists?(options[:ssh_config])
         
     | 
| 
       43 
     | 
    
         
            -
              $stderr.puts "Found hand-crafted ssh_config under #{options[:ssh_config]}. Please move it out of the way or specify a different output file with the -o option."
         
     | 
| 
       44 
     | 
    
         
            -
              Process.exit!(2)
         
     | 
| 
       45 
     | 
    
         
            -
            end
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
            files = Dir["#{options[:dir]}/**"].reject do |file|
         
     | 
| 
       48 
     | 
    
         
            -
              file =~ /\.disabled$/ && !options[:with].include?("#{File.basename(file, '.disabled')}")
         
     | 
| 
       49 
     | 
    
         
            -
            end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
            files -= [options[:ssh_config]]
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
            entries = []
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
            files.sort.each do |file|
         
     | 
| 
       56 
     | 
    
         
            -
              entries << File.read(file)
         
     | 
| 
       57 
     | 
    
         
            -
            end
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
            File.open(options[:ssh_config], 'w', 0600) do |ssh_config|
         
     | 
| 
       60 
     | 
    
         
            -
              ssh_config.puts(MAGIC_LINE)
         
     | 
| 
       61 
     | 
    
         
            -
              ssh_config.puts("# DO NOT EDIT THIS FILE")
         
     | 
| 
       62 
     | 
    
         
            -
              ssh_config.puts("# Create or modify files under #{options[:dir]} instead")
         
     | 
| 
       63 
     | 
    
         
            -
              ssh_config.puts(entries.join("\n"))
         
     | 
| 
       64 
     | 
    
         
            -
            end
         
     | 
| 
      
 37 
     | 
    
         
            +
            Poet.application(options).run
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: Bootstrapping
         
     | 
| 
      
 2 
     | 
    
         
            +
              Scenario: User wants help to get started
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "ssh_config" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                """
         
     | 
| 
      
 5 
     | 
    
         
            +
                Host home
         
     | 
| 
      
 6 
     | 
    
         
            +
                  StrictHostKeyChecking ask
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                Host *.amazonaws.com
         
     | 
| 
      
 9 
     | 
    
         
            +
                  StrictHostKeyChecking no
         
     | 
| 
      
 10 
     | 
    
         
            +
                """
         
     | 
| 
      
 11 
     | 
    
         
            +
                When I run `poet --bootstrap --dir ./config.d`
         
     | 
| 
      
 12 
     | 
    
         
            +
                Then the exit status should be 0
         
     | 
| 
      
 13 
     | 
    
         
            +
                And a directory named "config.d" should exist
         
     | 
| 
      
 14 
     | 
    
         
            +
                And a file named "config.d/ssh_config" should exist
         
     | 
| 
      
 15 
     | 
    
         
            +
                And the file "config.d/ssh_config" should contain "Host home"
         
     | 
| 
      
 16 
     | 
    
         
            +
                And the file "ssh_config" should contain "# Generated by poet"
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              Scenario: Bootstrapping a second time
         
     | 
| 
      
 19 
     | 
    
         
            +
                Given a file named "ssh_config" with:
         
     | 
| 
      
 20 
     | 
    
         
            +
                """
         
     | 
| 
      
 21 
     | 
    
         
            +
                Host home
         
     | 
| 
      
 22 
     | 
    
         
            +
                  StrictHostKeyChecking ask
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                Host *.amazonaws.com
         
     | 
| 
      
 25 
     | 
    
         
            +
                  StrictHostKeyChecking no
         
     | 
| 
      
 26 
     | 
    
         
            +
                """
         
     | 
| 
      
 27 
     | 
    
         
            +
                When I run `poet --bootstrap --dir ./config.d`
         
     | 
| 
      
 28 
     | 
    
         
            +
                Then the exit status should be 0
         
     | 
| 
      
 29 
     | 
    
         
            +
                When I run `poet --bootstrap --dir ./config.d`
         
     | 
| 
      
 30 
     | 
    
         
            +
                Then the output from "poet --bootstrap --dir ./config.d" should contain "You're already good to go"
         
     | 
| 
      
 31 
     | 
    
         
            +
                And the exit status should not be 0
         
     | 
    
        data/features/running.feature
    CHANGED
    
    | 
         @@ -5,7 +5,7 @@ Feature: Running the program 
     | 
|
| 
       5 
5 
     | 
    
         
             
                Host te.st
         
     | 
| 
       6 
6 
     | 
    
         
             
                  User me
         
     | 
| 
       7 
7 
     | 
    
         
             
                """
         
     | 
| 
       8 
     | 
    
         
            -
                When I run `poet 
     | 
| 
      
 8 
     | 
    
         
            +
                When I run `poet`
         
     | 
| 
       9 
9 
     | 
    
         
             
                Then the exit status should be 0
         
     | 
| 
       10 
10 
     | 
    
         
             
                And the file "ssh_config" should contain "Host te.st"
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
         @@ -14,8 +14,8 @@ Feature: Running the program 
     | 
|
| 
       14 
14 
     | 
    
         
             
                """
         
     | 
| 
       15 
15 
     | 
    
         
             
                This is absolutely vital information
         
     | 
| 
       16 
16 
     | 
    
         
             
                """
         
     | 
| 
       17 
     | 
    
         
            -
                When I run `poet  
     | 
| 
       18 
     | 
    
         
            -
                Then the output from "poet  
     | 
| 
      
 17 
     | 
    
         
            +
                When I run `poet -o important`
         
     | 
| 
      
 18 
     | 
    
         
            +
                Then the output from "poet -o important" should contain "Found hand-crafted ssh_config"
         
     | 
| 
       19 
19 
     | 
    
         
             
                And the exit status should not be 0
         
     | 
| 
       20 
20 
     | 
    
         
             
                And the file "important" should contain "This is absolutely vital information"
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
         @@ -25,6 +25,6 @@ Feature: Running the program 
     | 
|
| 
       25 
25 
     | 
    
         
             
                Host te.st
         
     | 
| 
       26 
26 
     | 
    
         
             
                  User me
         
     | 
| 
       27 
27 
     | 
    
         
             
                """
         
     | 
| 
       28 
     | 
    
         
            -
                When I run `poet --dir missing 
     | 
| 
       29 
     | 
    
         
            -
                Then the output from "poet --dir missing 
     | 
| 
      
 28 
     | 
    
         
            +
                When I run `poet --dir missing`
         
     | 
| 
      
 29 
     | 
    
         
            +
                Then the output from "poet --dir missing" should contain "missing does not exist"
         
     | 
| 
       30 
30 
     | 
    
         
             
                And the exit status should not be 0
         
     | 
| 
         @@ -10,7 +10,7 @@ Feature: Selectively whitelist files 
     | 
|
| 
       10 
10 
     | 
    
         
             
                Host always
         
     | 
| 
       11 
11 
     | 
    
         
             
                  User me
         
     | 
| 
       12 
12 
     | 
    
         
             
                """
         
     | 
| 
       13 
     | 
    
         
            -
                When I run `poet 
     | 
| 
      
 13 
     | 
    
         
            +
                When I run `poet`
         
     | 
| 
       14 
14 
     | 
    
         
             
                Then the file "ssh_config" should contain "Host always"
         
     | 
| 
       15 
15 
     | 
    
         
             
                But the file "ssh_config" should not contain "Host sometimes"
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
         @@ -25,7 +25,7 @@ Feature: Selectively whitelist files 
     | 
|
| 
       25 
25 
     | 
    
         
             
                Host always
         
     | 
| 
       26 
26 
     | 
    
         
             
                  User me
         
     | 
| 
       27 
27 
     | 
    
         
             
                """
         
     | 
| 
       28 
     | 
    
         
            -
                When I run `poet  
     | 
| 
      
 28 
     | 
    
         
            +
                When I run `poet -w sometimes`
         
     | 
| 
       29 
29 
     | 
    
         
             
                Then the file "ssh_config" should contain "Host always"
         
     | 
| 
       30 
30 
     | 
    
         
             
                And the file "ssh_config" should contain "Host sometimes"
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
         @@ -40,6 +40,6 @@ Feature: Selectively whitelist files 
     | 
|
| 
       40 
40 
     | 
    
         
             
                Host almost_never
         
     | 
| 
       41 
41 
     | 
    
         
             
                  User me
         
     | 
| 
       42 
42 
     | 
    
         
             
                """
         
     | 
| 
       43 
     | 
    
         
            -
                When I run `poet  
     | 
| 
      
 43 
     | 
    
         
            +
                When I run `poet -w sometimes,almost_never`
         
     | 
| 
       44 
44 
     | 
    
         
             
                Then the file "ssh_config" should contain "Host almost_never"
         
     | 
| 
       45 
45 
     | 
    
         
             
                And the file "ssh_config" should contain "Host sometimes"
         
     | 
    
        data/features/support/env.rb
    CHANGED
    
    
    
        data/lib/poet.rb
    CHANGED
    
    | 
         @@ -1 +1,69 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "poet/version"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Poet
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              MAGIC_LINE = "# Generated by #{File.basename(__FILE__, '.rb')}"
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              class << self
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                def application(options={})
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @application ||= Poet::Application.new(options)
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
                    
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              class Application
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                attr_reader :options
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                def initialize(options={})
         
     | 
| 
      
 20 
     | 
    
         
            +
                  @options = options
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                def bootstrap
         
     | 
| 
      
 24 
     | 
    
         
            +
                  if File.directory?(options[:dir])
         
     | 
| 
      
 25 
     | 
    
         
            +
                    $stderr.puts "You're already good to go."
         
     | 
| 
      
 26 
     | 
    
         
            +
                    Process.exit!(3)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
                  FileUtils.mkdir_p(options[:dir])
         
     | 
| 
      
 29 
     | 
    
         
            +
                  FileUtils.mv(options[:bootstrap], options[:dir])
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                def run
         
     | 
| 
      
 33 
     | 
    
         
            +
                  bootstrap if options.has_key?(:bootstrap)
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                  if !File.directory?(options[:dir])
         
     | 
| 
      
 36 
     | 
    
         
            +
                    $stderr.puts "#{options[:dir]} does not exist or is not a directory"
         
     | 
| 
      
 37 
     | 
    
         
            +
                    Process.exit!(1)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  if File.exists?(options[:ssh_config]) && File.new(options[:ssh_config]).gets == "#{MAGIC_LINE}\n"
         
     | 
| 
      
 41 
     | 
    
         
            +
                    puts "Found generated ssh_config under #{options[:ssh_config]}. Overwriting..."
         
     | 
| 
      
 42 
     | 
    
         
            +
                  elsif File.exists?(options[:ssh_config])
         
     | 
| 
      
 43 
     | 
    
         
            +
                    $stderr.puts "Found hand-crafted ssh_config under #{options[:ssh_config]}. Please move it out of the way or specify a different output file with the -o option."
         
     | 
| 
      
 44 
     | 
    
         
            +
                    Process.exit!(2)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                  files = Dir["#{options[:dir]}/**"].reject do |file|
         
     | 
| 
      
 48 
     | 
    
         
            +
                    file =~ /\.disabled$/ && !options[:with].include?("#{File.basename(file, '.disabled')}")
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  files -= [options[:ssh_config]]
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                  entries = []
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                  files.sort.each do |file|
         
     | 
| 
      
 56 
     | 
    
         
            +
                    entries << File.read(file)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                  File.open(options[:ssh_config], 'w', 0600) do |ssh_config|
         
     | 
| 
      
 60 
     | 
    
         
            +
                    ssh_config.puts(MAGIC_LINE)
         
     | 
| 
      
 61 
     | 
    
         
            +
                    ssh_config.puts("# DO NOT EDIT THIS FILE")
         
     | 
| 
      
 62 
     | 
    
         
            +
                    ssh_config.puts("# Create or modify files under #{options[:dir]} instead")
         
     | 
| 
      
 63 
     | 
    
         
            +
                    ssh_config.puts(entries.join("\n"))
         
     | 
| 
      
 64 
     | 
    
         
            +
                  end
         
     | 
| 
      
 65 
     | 
    
         
            +
                end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
         
     | 
| 
      
 67 
     | 
    
         
            +
              end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/poet/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: poet
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: '0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: '0.3'
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,11 +9,11 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012-04- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-04-11 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: cucumber
         
     | 
| 
       16 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &70282917431800 !ruby/object:Gem::Requirement
         
     | 
| 
       17 
17 
     | 
    
         
             
                none: false
         
     | 
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
19 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -21,10 +21,10 @@ dependencies: 
     | 
|
| 
       21 
21 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :development
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *70282917431800
         
     | 
| 
       25 
25 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       26 
26 
     | 
    
         
             
              name: aruba
         
     | 
| 
       27 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &70282917431300 !ruby/object:Gem::Requirement
         
     | 
| 
       28 
28 
     | 
    
         
             
                none: false
         
     | 
| 
       29 
29 
     | 
    
         
             
                requirements:
         
     | 
| 
       30 
30 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -32,10 +32,10 @@ dependencies: 
     | 
|
| 
       32 
32 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       33 
33 
     | 
    
         
             
              type: :development
         
     | 
| 
       34 
34 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       35 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *70282917431300
         
     | 
| 
       36 
36 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       37 
37 
     | 
    
         
             
              name: rake
         
     | 
| 
       38 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &70282917430840 !ruby/object:Gem::Requirement
         
     | 
| 
       39 
39 
     | 
    
         
             
                none: false
         
     | 
| 
       40 
40 
     | 
    
         
             
                requirements:
         
     | 
| 
       41 
41 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -43,7 +43,7 @@ dependencies: 
     | 
|
| 
       43 
43 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       44 
44 
     | 
    
         
             
              type: :development
         
     | 
| 
       45 
45 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       46 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *70282917430840
         
     | 
| 
       47 
47 
     | 
    
         
             
            description: Split your longish ~/.ssh/config into files in ~/.ssh/config.d/ and let
         
     | 
| 
       48 
48 
     | 
    
         
             
              poet join them for you.
         
     | 
| 
       49 
49 
     | 
    
         
             
            email:
         
     | 
| 
         @@ -54,12 +54,14 @@ extensions: [] 
     | 
|
| 
       54 
54 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       55 
55 
     | 
    
         
             
            files:
         
     | 
| 
       56 
56 
     | 
    
         
             
            - .gitignore
         
     | 
| 
      
 57 
     | 
    
         
            +
            - .travis.yml
         
     | 
| 
       57 
58 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       58 
59 
     | 
    
         
             
            - History.txt
         
     | 
| 
       59 
60 
     | 
    
         
             
            - MIT-LICENSE
         
     | 
| 
       60 
61 
     | 
    
         
             
            - README.md
         
     | 
| 
       61 
62 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       62 
63 
     | 
    
         
             
            - bin/poet
         
     | 
| 
      
 64 
     | 
    
         
            +
            - features/bootstrapping.feature
         
     | 
| 
       63 
65 
     | 
    
         
             
            - features/permissions.feature
         
     | 
| 
       64 
66 
     | 
    
         
             
            - features/running.feature
         
     | 
| 
       65 
67 
     | 
    
         
             
            - features/selective_files.feature
         
     | 
| 
         @@ -82,7 +84,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       82 
84 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       83 
85 
     | 
    
         
             
                  segments:
         
     | 
| 
       84 
86 
     | 
    
         
             
                  - 0
         
     | 
| 
       85 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 87 
     | 
    
         
            +
                  hash: 62288698588282443
         
     | 
| 
       86 
88 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       87 
89 
     | 
    
         
             
              none: false
         
     | 
| 
       88 
90 
     | 
    
         
             
              requirements:
         
     | 
| 
         @@ -91,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       91 
93 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       92 
94 
     | 
    
         
             
                  segments:
         
     | 
| 
       93 
95 
     | 
    
         
             
                  - 0
         
     | 
| 
       94 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 96 
     | 
    
         
            +
                  hash: 62288698588282443
         
     | 
| 
       95 
97 
     | 
    
         
             
            requirements: []
         
     | 
| 
       96 
98 
     | 
    
         
             
            rubyforge_project: poet
         
     | 
| 
       97 
99 
     | 
    
         
             
            rubygems_version: 1.8.11
         
     | 
| 
         @@ -99,6 +101,7 @@ signing_key: 
     | 
|
| 
       99 
101 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       100 
102 
     | 
    
         
             
            summary: Poet concatenates stanzas
         
     | 
| 
       101 
103 
     | 
    
         
             
            test_files:
         
     | 
| 
      
 104 
     | 
    
         
            +
            - features/bootstrapping.feature
         
     | 
| 
       102 
105 
     | 
    
         
             
            - features/permissions.feature
         
     | 
| 
       103 
106 
     | 
    
         
             
            - features/running.feature
         
     | 
| 
       104 
107 
     | 
    
         
             
            - features/selective_files.feature
         
     |