cloudapp 0.0.5 → 0.0.6
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/Gemfile.lock +1 -1
- data/README.md +13 -12
- data/bin/cloudapp +32 -19
- data/cloudapp.gemspec +3 -1
- data/lib/cloudapp/identity.rb +14 -0
- data/lib/cloudapp.rb +1 -1
- data/spec/cloudapp/identity_spec.rb +27 -0
- metadata +23 -21
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -18,26 +18,27 @@ goal of `cloudapp` is to be simple and Unix-friendly. | |
| 18 18 |  | 
| 19 19 | 
             
            ### Installation
         | 
| 20 20 |  | 
| 21 | 
            -
            Installation is done via RubyGems: `gem install cloudapp | 
| 21 | 
            +
            Installation is done via RubyGems: `gem install cloudapp`
         | 
| 22 22 |  | 
| 23 23 | 
             
            ### Usage
         | 
| 24 24 |  | 
| 25 | 
            -
             - Bookmark a link: `cloudapp  | 
| 26 | 
            -
             - Share a file: `cloudapp  | 
| 25 | 
            +
             - Bookmark a link: `cloudapp bookmark http://getcloudapp.com`
         | 
| 26 | 
            +
             - Share a file: `cloudapp upload screenshot.png`
         | 
| 27 27 | 
             
             - List newest drops: `cloudapp list [--count=5]`
         | 
| 28 28 |  | 
| 29 29 | 
             
            ### Wish List
         | 
| 30 30 |  | 
| 31 31 | 
             
            Some baseic features that should be added:
         | 
| 32 32 |  | 
| 33 | 
            -
             -  | 
| 33 | 
            +
             - Share several files: `cloudapp upload *.png`
         | 
| 34 34 |  | 
| 35 35 | 
             
            A little more flare would be swell.
         | 
| 36 36 |  | 
| 37 | 
            -
             -  | 
| 38 | 
            -
             -  | 
| 39 | 
            -
             -  | 
| 40 | 
            -
             -  | 
| 37 | 
            +
             - Download a drop: `cloudapp download http://cl.ly/abc123`
         | 
| 38 | 
            +
             - List specific columns: `cloudapp list --columns=name,views,link`
         | 
| 39 | 
            +
             - Handle input from STDIN: `pbpaste | cloudapp bookmark -`
         | 
| 40 | 
            +
             - Archive and share several files: `cloudapp upload --archive *.png`
         | 
| 41 | 
            +
             - Encrypt and share a file: `cloudapp upload --encrypt launch_codes.txt`
         | 
| 41 42 | 
             
             - Download and decrypt and encrypted drop: `cloudapp download http://cl.ly/abc123 def456`
         | 
| 42 43 |  | 
| 43 44 | 
             
            While we're dreaming, what could you do if it kept a local copy of all your
         | 
| @@ -69,10 +70,10 @@ Cloud.app preference: | |
| 69 70 | 
             
            defaults write com.linebreak.CloudAppMacOSX CLUploadShouldCopyExternallyUploadedItems -bool YES
         | 
| 70 71 | 
             
            ```
         | 
| 71 72 |  | 
| 72 | 
            -
            Now the link to every new drop shared with your | 
| 73 | 
            -
            than the Mac app--will be copied to your Mac's | 
| 74 | 
            -
            [stand-alone version][stand-alone] of Cloud.app | 
| 75 | 
            -
            [the Mac App Store version][mas], use the domain
         | 
| 73 | 
            +
            Now after restarting Cloud.app, the link to every new drop shared with your
         | 
| 74 | 
            +
            account--even using a tool other than the Mac app--will be copied to your Mac's
         | 
| 75 | 
            +
            clipboard. If you're using the [stand-alone version][stand-alone] of Cloud.app
         | 
| 76 | 
            +
            and not [the Mac App Store version][mas], use the domain
         | 
| 76 77 | 
             
            `com.linebreak.CloudAppMacOSXSparkle`.
         | 
| 77 78 |  | 
| 78 79 | 
             
            [stand-alone]: http://getcloudapp.com/download
         | 
    
        data/bin/cloudapp
    CHANGED
    
    | @@ -7,12 +7,12 @@ require 'main' | |
| 7 7 | 
             
            # causes main to not require it.
         | 
| 8 8 | 
             
            require 'yaml'
         | 
| 9 9 |  | 
| 10 | 
            +
            require 'cloudapp/identity'
         | 
| 10 11 | 
             
            require 'cloudapp/drop_service'
         | 
| 11 | 
            -
            require 'ostruct'
         | 
| 12 12 |  | 
| 13 13 | 
             
            Main do
         | 
| 14 14 | 
             
              def identity
         | 
| 15 | 
            -
                 | 
| 15 | 
            +
                CloudApp::Identity.from_config config
         | 
| 16 16 | 
             
              end
         | 
| 17 17 |  | 
| 18 18 | 
             
              def service
         | 
| @@ -23,26 +23,39 @@ Main do | |
| 23 23 |  | 
| 24 24 | 
             
              config email: 'arthur@dent.com', password: 'towel'
         | 
| 25 25 |  | 
| 26 | 
            -
               | 
| 26 | 
            +
              def run
         | 
| 27 | 
            +
                puts 'TODO: show help here'
         | 
| 28 | 
            +
              end
         | 
| 27 29 |  | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 30 | 
            +
              # Bookmark a link: `cloudapp bookmark http://getcloudapp.com`
         | 
| 31 | 
            +
              mode :bookmark do
         | 
| 32 | 
            +
                argument('url') { cast :uri }
         | 
| 31 33 |  | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
                    puts response.fetch 'url'
         | 
| 35 | 
            -
                  end
         | 
| 34 | 
            +
                def url
         | 
| 35 | 
            +
                  params[:url].value
         | 
| 36 36 | 
             
                end
         | 
| 37 37 |  | 
| 38 | 
            -
                 | 
| 39 | 
            -
             | 
| 40 | 
            -
                  argument('file') { cast :pathname }
         | 
| 38 | 
            +
                def run
         | 
| 39 | 
            +
                  Formatador.display "Bookmarking #{ url }..."
         | 
| 41 40 |  | 
| 42 | 
            -
                   | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 41 | 
            +
                  response = service.create url: url
         | 
| 42 | 
            +
                  Formatador.display_line response.fetch 'url'
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              # Upload a file: `cloudapp upload screenshot.png`
         | 
| 47 | 
            +
              mode :upload do
         | 
| 48 | 
            +
                argument('file') { cast :pathname }
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                def file
         | 
| 51 | 
            +
                  params[:file].value
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                def run
         | 
| 55 | 
            +
                  Formatador.display "Uploading #{ file }..."
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  response = service.create path: file
         | 
| 58 | 
            +
                  Formatador.display_line response.fetch 'url'
         | 
| 46 59 | 
             
                end
         | 
| 47 60 | 
             
              end
         | 
| 48 61 |  | 
| @@ -58,7 +71,7 @@ Main do | |
| 58 71 | 
             
                  count = params[:count].value
         | 
| 59 72 | 
             
                  drops = service.drops count
         | 
| 60 73 |  | 
| 61 | 
            -
                  name_width  = drops.map {|drop| drop['name'].size }.max
         | 
| 74 | 
            +
                  name_width  = drops.map {|drop| drop['name'].to_s.size }.max
         | 
| 62 75 | 
             
                  views_width = [ 5, drops.map {|drop| drop['view_counter'].to_s.size }.max ].max
         | 
| 63 76 | 
             
                  link_width  = drops.map {|drop| drop['url'].size }.max
         | 
| 64 77 |  | 
| @@ -68,7 +81,7 @@ Main do | |
| 68 81 | 
             
                  Formatador.display_line header
         | 
| 69 82 |  | 
| 70 83 | 
             
                  lines = drops.map do |drop|
         | 
| 71 | 
            -
                    [ drop['name'].ljust(name_width),
         | 
| 84 | 
            +
                    [ drop['name'].to_s.ljust(name_width),
         | 
| 72 85 | 
             
                      drop['url'],
         | 
| 73 86 | 
             
                      drop['view_counter'].to_s.center(views_width)
         | 
| 74 87 | 
             
                    ].join ' '
         | 
    
        data/cloudapp.gemspec
    CHANGED
    
    | @@ -13,7 +13,7 @@ Gem::Specification.new do |s| | |
| 13 13 | 
             
              ## If your rubyforge_project name is different, then edit it and comment out
         | 
| 14 14 | 
             
              ## the sub! line in the Rakefile
         | 
| 15 15 | 
             
              s.name              = 'cloudapp'
         | 
| 16 | 
            -
              s.version           = '0.0. | 
| 16 | 
            +
              s.version           = '0.0.6'
         | 
| 17 17 | 
             
              s.date              = '2012-02-06'
         | 
| 18 18 | 
             
              s.rubyforge_project = 'cloudapp'
         | 
| 19 19 |  | 
| @@ -72,6 +72,7 @@ Gem::Specification.new do |s| | |
| 72 72 | 
             
                lib/cloudapp.rb
         | 
| 73 73 | 
             
                lib/cloudapp/digestable_typhoeus.rb
         | 
| 74 74 | 
             
                lib/cloudapp/drop_service.rb
         | 
| 75 | 
            +
                lib/cloudapp/identity.rb
         | 
| 75 76 | 
             
                spec/cassettes/CloudApp_DropService/_create/creates_a_bookmark.yml
         | 
| 76 77 | 
             
                spec/cassettes/CloudApp_DropService/_create/creates_a_bookmark_with_a_name.yml
         | 
| 77 78 | 
             
                spec/cassettes/CloudApp_DropService/_create/creates_a_file.yml
         | 
| @@ -79,6 +80,7 @@ Gem::Specification.new do |s| | |
| 79 80 | 
             
                spec/cassettes/CloudApp_DropService/_drops/returns_a_list_of_drops.yml
         | 
| 80 81 | 
             
                spec/cassettes/CloudApp_DropService/_drops/returns_a_list_of_trashed_drops.yml
         | 
| 81 82 | 
             
                spec/cloudapp/drop_service_spec.rb
         | 
| 83 | 
            +
                spec/cloudapp/identity_spec.rb
         | 
| 82 84 | 
             
                spec/helper.rb
         | 
| 83 85 | 
             
                spec/support/files/favicon.ico
         | 
| 84 86 | 
             
                spec/support/stub_class_or_module.rb
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            module CloudApp
         | 
| 2 | 
            +
              class Identity
         | 
| 3 | 
            +
                attr_accessor :email, :password
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                def initialize(email, password)
         | 
| 6 | 
            +
                  @email    = email
         | 
| 7 | 
            +
                  @password = password
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                def self.from_config(config)
         | 
| 11 | 
            +
                  new(config.fetch(:email), config.fetch(:password))
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
            end
         | 
    
        data/lib/cloudapp.rb
    CHANGED
    
    
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            require 'helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'cloudapp/identity'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe CloudApp::Identity do
         | 
| 6 | 
            +
              let(:email)    { 'arthur@dent.com' }
         | 
| 7 | 
            +
              let(:password) { 'towel' }
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              describe '.initialize' do
         | 
| 10 | 
            +
                it 'accepts an email and password' do
         | 
| 11 | 
            +
                  identity = CloudApp::Identity.new email, password
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  identity.email   .should eq(email)
         | 
| 14 | 
            +
                  identity.password.should eq(password)
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              describe '.from_config' do
         | 
| 19 | 
            +
                let(:config) {{ email: email, password: password }}
         | 
| 20 | 
            +
                subject      { CloudApp::Identity.from_config config }
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                it 'returns an identity' do
         | 
| 23 | 
            +
                  subject.email   .should eq(email)
         | 
| 24 | 
            +
                  subject.password.should eq(password)
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cloudapp
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.6
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -13,7 +13,7 @@ date: 2012-02-06 00:00:00.000000000 Z | |
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: addressable
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &70198765957800 !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: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *70198765957800
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: faraday
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &70198765956240 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ~>
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: 0.8.0.rc2
         | 
| 33 33 | 
             
              type: :runtime
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *70198765956240
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: formatador
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &70198765954800 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ! '>='
         | 
| @@ -43,10 +43,10 @@ dependencies: | |
| 43 43 | 
             
                    version: '0'
         | 
| 44 44 | 
             
              type: :runtime
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *70198765954800
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: leadlight
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &70198765953100 !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ! '>='
         | 
| @@ -54,10 +54,10 @@ dependencies: | |
| 54 54 | 
             
                    version: '0'
         | 
| 55 55 | 
             
              type: :runtime
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *70198765953100
         | 
| 58 58 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 59 59 | 
             
              name: main
         | 
| 60 | 
            -
              requirement: & | 
| 60 | 
            +
              requirement: &70198765952100 !ruby/object:Gem::Requirement
         | 
| 61 61 | 
             
                none: false
         | 
| 62 62 | 
             
                requirements:
         | 
| 63 63 | 
             
                - - ! '>='
         | 
| @@ -65,10 +65,10 @@ dependencies: | |
| 65 65 | 
             
                    version: '0'
         | 
| 66 66 | 
             
              type: :runtime
         | 
| 67 67 | 
             
              prerelease: false
         | 
| 68 | 
            -
              version_requirements: * | 
| 68 | 
            +
              version_requirements: *70198765952100
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: typhoeus
         | 
| 71 | 
            -
              requirement: & | 
| 71 | 
            +
              requirement: &70198765950700 !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                none: false
         | 
| 73 73 | 
             
                requirements:
         | 
| 74 74 | 
             
                - - ! '>='
         | 
| @@ -76,10 +76,10 @@ dependencies: | |
| 76 76 | 
             
                    version: '0'
         | 
| 77 77 | 
             
              type: :runtime
         | 
| 78 78 | 
             
              prerelease: false
         | 
| 79 | 
            -
              version_requirements: * | 
| 79 | 
            +
              version_requirements: *70198765950700
         | 
| 80 80 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 81 81 | 
             
              name: rake
         | 
| 82 | 
            -
              requirement: & | 
| 82 | 
            +
              requirement: &70198765949360 !ruby/object:Gem::Requirement
         | 
| 83 83 | 
             
                none: false
         | 
| 84 84 | 
             
                requirements:
         | 
| 85 85 | 
             
                - - ! '>='
         | 
| @@ -87,10 +87,10 @@ dependencies: | |
| 87 87 | 
             
                    version: '0'
         | 
| 88 88 | 
             
              type: :development
         | 
| 89 89 | 
             
              prerelease: false
         | 
| 90 | 
            -
              version_requirements: * | 
| 90 | 
            +
              version_requirements: *70198765949360
         | 
| 91 91 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 92 92 | 
             
              name: rspec
         | 
| 93 | 
            -
              requirement: & | 
| 93 | 
            +
              requirement: &70198765948420 !ruby/object:Gem::Requirement
         | 
| 94 94 | 
             
                none: false
         | 
| 95 95 | 
             
                requirements:
         | 
| 96 96 | 
             
                - - ! '>='
         | 
| @@ -98,10 +98,10 @@ dependencies: | |
| 98 98 | 
             
                    version: '0'
         | 
| 99 99 | 
             
              type: :development
         | 
| 100 100 | 
             
              prerelease: false
         | 
| 101 | 
            -
              version_requirements: * | 
| 101 | 
            +
              version_requirements: *70198765948420
         | 
| 102 102 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 103 103 | 
             
              name: vcr
         | 
| 104 | 
            -
              requirement: & | 
| 104 | 
            +
              requirement: &70198765946860 !ruby/object:Gem::Requirement
         | 
| 105 105 | 
             
                none: false
         | 
| 106 106 | 
             
                requirements:
         | 
| 107 107 | 
             
                - - ~>
         | 
| @@ -109,10 +109,10 @@ dependencies: | |
| 109 109 | 
             
                    version: 2.0.0.rc1
         | 
| 110 110 | 
             
              type: :development
         | 
| 111 111 | 
             
              prerelease: false
         | 
| 112 | 
            -
              version_requirements: * | 
| 112 | 
            +
              version_requirements: *70198765946860
         | 
| 113 113 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 114 114 | 
             
              name: webmock
         | 
| 115 | 
            -
              requirement: & | 
| 115 | 
            +
              requirement: &70198765945220 !ruby/object:Gem::Requirement
         | 
| 116 116 | 
             
                none: false
         | 
| 117 117 | 
             
                requirements:
         | 
| 118 118 | 
             
                - - ! '>='
         | 
| @@ -120,7 +120,7 @@ dependencies: | |
| 120 120 | 
             
                    version: '0'
         | 
| 121 121 | 
             
              type: :development
         | 
| 122 122 | 
             
              prerelease: false
         | 
| 123 | 
            -
              version_requirements: * | 
| 123 | 
            +
              version_requirements: *70198765945220
         | 
| 124 124 | 
             
            description: Experience all the pleasures of sharing with CloudApp now in your terminal.
         | 
| 125 125 | 
             
            email: larry@marburger.cc
         | 
| 126 126 | 
             
            executables:
         | 
| @@ -140,6 +140,7 @@ files: | |
| 140 140 | 
             
            - lib/cloudapp.rb
         | 
| 141 141 | 
             
            - lib/cloudapp/digestable_typhoeus.rb
         | 
| 142 142 | 
             
            - lib/cloudapp/drop_service.rb
         | 
| 143 | 
            +
            - lib/cloudapp/identity.rb
         | 
| 143 144 | 
             
            - spec/cassettes/CloudApp_DropService/_create/creates_a_bookmark.yml
         | 
| 144 145 | 
             
            - spec/cassettes/CloudApp_DropService/_create/creates_a_bookmark_with_a_name.yml
         | 
| 145 146 | 
             
            - spec/cassettes/CloudApp_DropService/_create/creates_a_file.yml
         | 
| @@ -147,6 +148,7 @@ files: | |
| 147 148 | 
             
            - spec/cassettes/CloudApp_DropService/_drops/returns_a_list_of_drops.yml
         | 
| 148 149 | 
             
            - spec/cassettes/CloudApp_DropService/_drops/returns_a_list_of_trashed_drops.yml
         | 
| 149 150 | 
             
            - spec/cloudapp/drop_service_spec.rb
         | 
| 151 | 
            +
            - spec/cloudapp/identity_spec.rb
         | 
| 150 152 | 
             
            - spec/helper.rb
         | 
| 151 153 | 
             
            - spec/support/files/favicon.ico
         | 
| 152 154 | 
             
            - spec/support/stub_class_or_module.rb
         |