tugboat 0.0.6 → 0.0.7
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/CHANGELOG.md +10 -0
- data/lib/tugboat/middleware/ask_for_credentials.rb +1 -0
- data/lib/tugboat/middleware/list_droplets.rb +14 -7
- data/lib/tugboat/middleware/list_images.rb +7 -2
- data/lib/tugboat/version.rb +1 -1
- data/spec/cli/droplets_cli_spec.rb +15 -1
- data/spec/cli/images_cli_spec.rb +38 -0
- data/spec/fixtures/show_droplets_empty.json +4 -0
- data/spec/fixtures/show_images_empty.json +4 -0
- metadata +6 -2
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,13 @@ | |
| 1 | 
            +
            ## 0.0.7 (unreleased)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            IMPROVEMENTS:
         | 
| 4 | 
            +
              - [Pete](https://github.com/petems) made it clearer to the user
         | 
| 5 | 
            +
              if they don't have any droplets or images. [GH-48], [GH-49]
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            BUG FIXES:
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              - Fix the initial check for authorization after `authorize` [GH-41]
         | 
| 10 | 
            +
             | 
| 1 11 | 
             
            ## 0.0.6 (June 25, 2013)
         | 
| 2 12 |  | 
| 3 13 | 
             
            FEATURES:
         | 
| @@ -5,15 +5,22 @@ module Tugboat | |
| 5 5 | 
             
                  def call(env)
         | 
| 6 6 | 
             
                    ocean = env["ocean"]
         | 
| 7 7 |  | 
| 8 | 
            -
                    ocean.droplets.list.droplets | 
| 8 | 
            +
                    droplet_list = ocean.droplets.list.droplets
         | 
| 9 9 |  | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
                       | 
| 13 | 
            -
             | 
| 14 | 
            -
                       | 
| 10 | 
            +
                    if droplet_list.empty?
         | 
| 11 | 
            +
                      say "You don't appear to have any droplets.", :red
         | 
| 12 | 
            +
                      say "Try creating one with #{GREEN}\`tugboat create\`"
         | 
| 13 | 
            +
                    else
         | 
| 14 | 
            +
                      droplet_list.each do |droplet|
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                        if droplet.status == "active"
         | 
| 17 | 
            +
                          status_color = GREEN
         | 
| 18 | 
            +
                        else
         | 
| 19 | 
            +
                          status_color = RED
         | 
| 20 | 
            +
                        end
         | 
| 15 21 |  | 
| 16 | 
            -
             | 
| 22 | 
            +
                        say "#{droplet.name} (ip: #{droplet.ip_address}, status: #{status_color}#{droplet.status}#{CLEAR}, region: #{droplet.region_id}, id: #{droplet.id})"
         | 
| 23 | 
            +
                      end
         | 
| 17 24 | 
             
                    end
         | 
| 18 25 |  | 
| 19 26 | 
             
                    @app.call(env)
         | 
| @@ -9,8 +9,13 @@ module Tugboat | |
| 9 9 | 
             
                    end
         | 
| 10 10 |  | 
| 11 11 | 
             
                    say "My Images:"
         | 
| 12 | 
            -
                    my_images.images | 
| 13 | 
            -
             | 
| 12 | 
            +
                    my_images_list = my_images.images
         | 
| 13 | 
            +
                    if my_images_list.empty?
         | 
| 14 | 
            +
                      say "No images found"
         | 
| 15 | 
            +
                    else
         | 
| 16 | 
            +
                      my_images_list.each do |image|
         | 
| 17 | 
            +
                        say "#{image.name} (id: #{image.id}, distro: #{image.distribution})"
         | 
| 18 | 
            +
                      end
         | 
| 14 19 | 
             
                    end
         | 
| 15 20 |  | 
| 16 21 | 
             
                    if env["user_show_global_images"]
         | 
    
        data/lib/tugboat/version.rb
    CHANGED
    
    
| @@ -4,7 +4,7 @@ describe Tugboat::CLI do | |
| 4 4 | 
             
              include_context "spec"
         | 
| 5 5 |  | 
| 6 6 | 
             
              describe "droplets" do
         | 
| 7 | 
            -
                it "shows a list" do
         | 
| 7 | 
            +
                it "shows a list when droplets exist" do
         | 
| 8 8 | 
             
                  stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
         | 
| 9 9 | 
             
                       to_return(:status => 200, :body => fixture("show_droplets"))
         | 
| 10 10 |  | 
| @@ -18,6 +18,20 @@ foo (ip: 33.33.33.10, status: \e[32mactive\e[0m, region: 1, id: 100823) | |
| 18 18 |  | 
| 19 19 | 
             
                  expect(a_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}")).to have_been_made
         | 
| 20 20 | 
             
                end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                it "returns an error when no droplets exist" do
         | 
| 23 | 
            +
                  stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
         | 
| 24 | 
            +
                       to_return(:status => 200, :body => fixture("show_droplets_empty"))
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  @cli.droplets
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  expect($stdout.string).to eq <<-eos
         | 
| 29 | 
            +
            You don't appear to have any droplets.
         | 
| 30 | 
            +
            Try creating one with \e[32m`tugboat create`
         | 
| 31 | 
            +
                  eos
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  expect(a_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}")).to have_been_made
         | 
| 34 | 
            +
                end
         | 
| 21 35 | 
             
              end
         | 
| 22 36 |  | 
| 23 37 | 
             
            end
         | 
    
        data/spec/cli/images_cli_spec.rb
    CHANGED
    
    | @@ -19,6 +19,44 @@ NLP Final (id: 478, distro: Ubuntu) | |
| 19 19 | 
             
                  expect(a_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images")).to have_been_made
         | 
| 20 20 | 
             
                end
         | 
| 21 21 |  | 
| 22 | 
            +
                it "acknowledges when my images are empty" do
         | 
| 23 | 
            +
                  stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images").
         | 
| 24 | 
            +
                  to_return(:status => 200, :body => fixture("show_images_empty"))
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  @cli.images
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  expect($stdout.string).to eq <<-eos
         | 
| 29 | 
            +
            My Images:
         | 
| 30 | 
            +
            No images found
         | 
| 31 | 
            +
                  eos
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  expect(a_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images")).to have_been_made
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                it "acknowledges when my images are empty and also shows a global list" do
         | 
| 37 | 
            +
                  stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images").
         | 
| 38 | 
            +
                       to_return(:status => 200, :body => fixture("show_images_empty"))
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                  stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=global").
         | 
| 41 | 
            +
                       to_return(:status => 200, :body => fixture("show_images_global"))
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  @cli.options = @cli.options.merge(:global => true)
         | 
| 44 | 
            +
                  @cli.images
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                  expect($stdout.string).to eq <<-eos
         | 
| 47 | 
            +
            My Images:
         | 
| 48 | 
            +
            No images found
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            Global Images:
         | 
| 51 | 
            +
            NYTD Backup 1-18-2012 (id: 466, distro: Ubuntu)
         | 
| 52 | 
            +
            NLP Final (id: 478, distro: Ubuntu)
         | 
| 53 | 
            +
            Global Final (id: 479, distro: Ubuntu)
         | 
| 54 | 
            +
                  eos
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                  expect(a_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images")).to have_been_made
         | 
| 57 | 
            +
                  expect(a_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=global")).to have_been_made
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
             | 
| 22 60 | 
             
                it "shows a global list" do
         | 
| 23 61 | 
             
                  stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images").
         | 
| 24 62 | 
             
                       to_return(:status => 200, :body => fixture("show_images"))
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tugboat
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.7
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013- | 
| 12 | 
            +
            date: 2013-08-02 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: thor
         | 
| @@ -227,8 +227,10 @@ files: | |
| 227 227 | 
             
            - spec/fixtures/show_droplet.json
         | 
| 228 228 | 
             
            - spec/fixtures/show_droplet_inactive.json
         | 
| 229 229 | 
             
            - spec/fixtures/show_droplets.json
         | 
| 230 | 
            +
            - spec/fixtures/show_droplets_empty.json
         | 
| 230 231 | 
             
            - spec/fixtures/show_droplets_inactive.json
         | 
| 231 232 | 
             
            - spec/fixtures/show_images.json
         | 
| 233 | 
            +
            - spec/fixtures/show_images_empty.json
         | 
| 232 234 | 
             
            - spec/fixtures/show_images_global.json
         | 
| 233 235 | 
             
            - spec/fixtures/show_keys.json
         | 
| 234 236 | 
             
            - spec/fixtures/show_regions.json
         | 
| @@ -294,8 +296,10 @@ test_files: | |
| 294 296 | 
             
            - spec/fixtures/show_droplet.json
         | 
| 295 297 | 
             
            - spec/fixtures/show_droplet_inactive.json
         | 
| 296 298 | 
             
            - spec/fixtures/show_droplets.json
         | 
| 299 | 
            +
            - spec/fixtures/show_droplets_empty.json
         | 
| 297 300 | 
             
            - spec/fixtures/show_droplets_inactive.json
         | 
| 298 301 | 
             
            - spec/fixtures/show_images.json
         | 
| 302 | 
            +
            - spec/fixtures/show_images_empty.json
         | 
| 299 303 | 
             
            - spec/fixtures/show_images_global.json
         | 
| 300 304 | 
             
            - spec/fixtures/show_keys.json
         | 
| 301 305 | 
             
            - spec/fixtures/show_regions.json
         |