strongspace 0.3.5 → 0.3.8
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.
- checksums.yaml +7 -0
- data/README.markdown +21 -20
- data/lib/strongspace/commands/auth.rb +8 -1
- data/lib/strongspace/commands/help.rb +1 -0
- data/lib/strongspace/commands/keys.rb +2 -3
- data/lib/strongspace/commands/spaces.rb +6 -6
- data/lib/strongspace/helpers.rb +84 -6
- data/lib/strongspace/plugin.rb +13 -1
- data/lib/strongspace/version.rb +1 -1
- metadata +173 -190
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: a2beb6946e69b01021510f76d3118d5899db4f22
         | 
| 4 | 
            +
              data.tar.gz: 9eb21fda02ddc730e86478910f0d30424f518b47
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: ec8f9d8a64340d759f66474fb7b9ea5b92d578e88362e2cc218549c27c5a1650486606dc96c67c25d1ccb4c2df3a4b297f8ae8daccfbb0533b27e21a720d61c0
         | 
| 7 | 
            +
              data.tar.gz: b2398b0408a91f0a417bf542ced61542e5233bbd650402d1ba8c2bc1eb9cc8ff97675749f1c2f2cd937ed18494f18ac1b384c12c21cda4ab9992ad9c82d8bfce
         | 
    
        data/README.markdown
    CHANGED
    
    | @@ -18,33 +18,34 @@ Run via command line: | |
| 18 18 | 
             
            `strongspace help` or `ss help`
         | 
| 19 19 |  | 
| 20 20 | 
             
                === General Commands
         | 
| 21 | 
            -
                help | 
| 22 | 
            -
                version | 
| 21 | 
            +
                help                                          # show this usage
         | 
| 22 | 
            +
                version                                       # show the gem version
         | 
| 23 23 |  | 
| 24 | 
            -
                upload <local_path> <remote_path> | 
| 25 | 
            -
                download <remote_path> | 
| 26 | 
            -
                mkdir <remote_path> | 
| 27 | 
            -
                delete <remote_path> | 
| 24 | 
            +
                upload <local_path> <remote_path>             # upload a file
         | 
| 25 | 
            +
                download <remote_path>                        # download a file from Strongspace to the current directory
         | 
| 26 | 
            +
                mkdir <remote_path>                           # create a folder on Strongspace
         | 
| 27 | 
            +
                delete <remote_path>                          # delete a file or recursively delete a folder on Strongspace
         | 
| 28 | 
            +
                quota                                         # Show the filesystem quota information
         | 
| 28 29 |  | 
| 29 30 | 
             
                === SSH Keys
         | 
| 30 | 
            -
                keys | 
| 31 | 
            -
                keys:add [<keyfile_path>] | 
| 32 | 
            -
                keys:generate | 
| 33 | 
            -
                keys:remove <id> | 
| 34 | 
            -
                keys:clear | 
| 31 | 
            +
                keys                                          # show your user's public keys
         | 
| 32 | 
            +
                keys:add [<keyfile_path>]                     # Add an public key or generate a new SSH keypair and add
         | 
| 33 | 
            +
                keys:generate                                 # Generate a new SSH keypair
         | 
| 34 | 
            +
                keys:remove <id>                              # remove a key by id
         | 
| 35 | 
            +
                keys:clear                                    # remove all keys
         | 
| 35 36 |  | 
| 36 37 | 
             
                === Spaces
         | 
| 37 | 
            -
                spaces | 
| 38 | 
            -
                spaces:create <name> [type] | 
| 39 | 
            -
                spaces:delete <name> [type] | 
| 40 | 
            -
                spaces:snapshots <name> | 
| 41 | 
            -
                spaces:create_snapshot <name | 
| 42 | 
            -
                spaces:delete_snapshot <name | 
| 38 | 
            +
                spaces                                        # show your user's spaces
         | 
| 39 | 
            +
                spaces:create <name> [type]                   # add a new space. type => (normal,public,backup)
         | 
| 40 | 
            +
                spaces:delete <name> [type]                   # remove a space by and destroy its data
         | 
| 41 | 
            +
                spaces:snapshots <name>                       # show a space's snapshots
         | 
| 42 | 
            +
                spaces:create_snapshot <name> [snapshot_name] # take a space of a space - snapshot_name defaults to current date/time.
         | 
| 43 | 
            +
                spaces:delete_snapshot <name> <snapshot_name> # remove a snapshot from a space
         | 
| 43 44 |  | 
| 44 45 | 
             
                === Plugins
         | 
| 45 | 
            -
                plugins | 
| 46 | 
            -
                plugins:install <url> | 
| 47 | 
            -
                plugins:uninstall <url/name> | 
| 46 | 
            +
                plugins                                       # list installed plugins
         | 
| 47 | 
            +
                plugins:install <url>                         # install the plugin from the specified git url
         | 
| 48 | 
            +
                plugins:uninstall <url/name>                  # remove the specified plugin
         | 
| 48 49 |  | 
| 49 50 |  | 
| 50 51 | 
             
            Plugins
         | 
| @@ -45,7 +45,14 @@ module Strongspace::Command | |
| 45 45 | 
             
                    to = URI.escape(args[0][0..1]) + URI.escape(URI.escape(args[0][2..-1])).gsub('&', '%26')
         | 
| 46 46 | 
             
                    url = "#{host}/login/#{client.login_token['login_token']}?to=#{to}"
         | 
| 47 47 | 
             
                  end
         | 
| 48 | 
            -
                   | 
| 48 | 
            +
                  if running_on_a_mac?
         | 
| 49 | 
            +
                    `open "#{url}"`
         | 
| 50 | 
            +
                  elsif running_on_windows?
         | 
| 51 | 
            +
                    require 'win32ole'
         | 
| 52 | 
            +
                    shell = WIN32OLE.new('Shell.Application')
         | 
| 53 | 
            +
                    shell.shellExecute(url, '', '', 'open', 3)
         | 
| 54 | 
            +
                  end
         | 
| 55 | 
            +
             | 
| 49 56 | 
             
                end
         | 
| 50 57 |  | 
| 51 58 | 
             
                def user    # :nodoc:
         | 
| @@ -37,6 +37,7 @@ module Strongspace::Command | |
| 37 37 | 
             
                    group.command 'download <remote_path>',      'download a file from Strongspace to the current directory'
         | 
| 38 38 | 
             
                    group.command 'mkdir <remote_path>',      'create a folder on Strongspace'
         | 
| 39 39 | 
             
                    group.command 'delete <remote_path>',      'delete a file or recursively delete a folder on Strongspace'
         | 
| 40 | 
            +
                    group.command 'quota',      'Show the filesystem quota information'
         | 
| 40 41 | 
             
                  end
         | 
| 41 42 |  | 
| 42 43 | 
             
                  group 'SSH Keys' do |group|
         | 
| @@ -21,17 +21,16 @@ module Strongspace::Command | |
| 21 21 | 
             
                end
         | 
| 22 22 |  | 
| 23 23 | 
             
                def generate_for_gui
         | 
| 24 | 
            -
                  return unless running_on_a_mac?
         | 
| 25 24 | 
             
                  FileUtils.mkdir "#{credentials_folder}" unless File.exist? "#{credentials_folder}"
         | 
| 26 25 |  | 
| 27 26 |  | 
| 28 27 | 
             
                  File.open("#{credentials_folder}/known_hosts", "w") do |f|
         | 
| 29 | 
            -
                    f.write " | 
| 28 | 
            +
                    f.write "* ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArXBYAoHZWVzLfHNMlgteAbq20AaCVcE1qALqVjYZerIpa3rBjNlv2i/2O8ul3OmSfcQwQGPTnABLqz9cozAbxF01eDfqUiSABUDT6m1/lY1a0V7RGS46Y/KJMVbOb4mVpxDZOVwBQh/DYTu7R55vFc93lXpE+tZboqnuq+LvJIZDqzoGTHIUprRs3sNY8Xegnz+m68P+tV6iLkXMRk8Gh8/IIavN4mXYhWPVbCv6Gqo2XhiYVMrCqLZFKLG0W6uwWY/xOhUjWxKDZMlqhyU/YUsMB5BZc9/x0t+Sc82OL+Eh3IB5EUmmCWnhm/LKxjMIn2UNe48BQqwaU/gozVtVPQ==\n"
         | 
| 30 29 | 
             
                  end
         | 
| 31 30 |  | 
| 32 31 |  | 
| 33 32 | 
             
                  if !File.exist? "#{credentials_folder}/#{computername}.rsa"
         | 
| 34 | 
            -
                     | 
| 33 | 
            +
                    `#{ssh_keygen_binary} -f \"#{credentials_folder}/#{computername}.rsa\" -b 2048 -C \" Strongspace App - #{computername}\" -q -N ""` unless File.exist? "#{credentials_folder}/#{computername}.rsa"
         | 
| 35 34 | 
             
                    args[0] = "#{credentials_folder}/#{computername}.rsa.pub"
         | 
| 36 35 | 
             
                    begin
         | 
| 37 36 | 
             
                      add
         | 
| @@ -148,11 +148,11 @@ module Strongspace::Command | |
| 148 148 | 
             
                    </dict>
         | 
| 149 149 | 
             
                    </plist>"
         | 
| 150 150 |  | 
| 151 | 
            -
                    file = File.new( | 
| 151 | 
            +
                    file = File.new(scheduled_launch_file(space_name), "w+")
         | 
| 152 152 | 
             
                    file.puts plist
         | 
| 153 153 | 
             
                    file.close
         | 
| 154 154 |  | 
| 155 | 
            -
                    r = `launchctl load -S aqua '#{ | 
| 155 | 
            +
                    r = `launchctl load -S aqua '#{scheduled_launch_file(space_name)}'`
         | 
| 156 156 | 
             
                    if r.strip.ends_with?("Already loaded")
         | 
| 157 157 | 
             
                      error "This task is aready scheduled, unload before scheduling again"
         | 
| 158 158 | 
             
                      return
         | 
| @@ -175,9 +175,9 @@ module Strongspace::Command | |
| 175 175 | 
             
                  end
         | 
| 176 176 |  | 
| 177 177 | 
             
                  if running_on_a_mac?
         | 
| 178 | 
            -
                    if File.exist?  | 
| 179 | 
            -
                      `launchctl unload '#{ | 
| 180 | 
            -
                      FileUtils.rm( | 
| 178 | 
            +
                    if File.exist? scheduled_launch_file(space_name)
         | 
| 179 | 
            +
                      `launchctl unload '#{scheduled_launch_file(space_name)}'`
         | 
| 180 | 
            +
                      FileUtils.rm(scheduled_launch_file(space_name))
         | 
| 181 181 | 
             
                    end
         | 
| 182 182 | 
             
                  else  # Assume we're running on linux/unix
         | 
| 183 183 | 
             
                    CronEdit::Crontab.Remove "strongspace-snapshots-#{space_name}"
         | 
| @@ -187,7 +187,7 @@ module Strongspace::Command | |
| 187 187 |  | 
| 188 188 |  | 
| 189 189 | 
             
                private
         | 
| 190 | 
            -
                def  | 
| 190 | 
            +
                def scheduled_launch_file(space_name)
         | 
| 191 191 | 
             
                  "#{launchd_agents_folder}/com.strongspace.Snapshots.#{space_name}.plist"
         | 
| 192 192 | 
             
                end
         | 
| 193 193 |  | 
    
        data/lib/strongspace/helpers.rb
    CHANGED
    
    | @@ -6,7 +6,7 @@ module Strongspace | |
| 6 6 | 
             
                end
         | 
| 7 7 |  | 
| 8 8 | 
             
                def self.home_directory
         | 
| 9 | 
            -
                  running_on_windows? ? ENV[' | 
| 9 | 
            +
                  running_on_windows? ? ENV['APPDATA'] : ENV['HOME']
         | 
| 10 10 | 
             
                end
         | 
| 11 11 |  | 
| 12 12 | 
             
                def home_directory
         | 
| @@ -14,7 +14,7 @@ module Strongspace | |
| 14 14 | 
             
                end
         | 
| 15 15 |  | 
| 16 16 | 
             
                def self.support_directory
         | 
| 17 | 
            -
                  running_on_windows? ? "#{home_directory} | 
| 17 | 
            +
                  running_on_windows? ? "#{home_directory}\\Strongspace" : "#{home_directory}/Library/Strongspace"
         | 
| 18 18 | 
             
                end
         | 
| 19 19 |  | 
| 20 20 | 
             
                def support_directory
         | 
| @@ -41,14 +41,32 @@ module Strongspace | |
| 41 41 | 
             
                  "#{credentials_folder}/#{computername}.rsa"
         | 
| 42 42 | 
             
                end
         | 
| 43 43 |  | 
| 44 | 
            +
                def ssh_keygen_binary
         | 
| 45 | 
            +
                  return "/usr/bin/ssh-keygen" if running_on_a_mac?
         | 
| 46 | 
            +
                  return "#{support_directory}/bin/ssh-keygen.exe" if running_on_windows?
         | 
| 47 | 
            +
                  return "ssh-keygen"
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                def ssh_binary
         | 
| 51 | 
            +
                  return "/usr/bin/ssh" if running_on_a_mac?
         | 
| 52 | 
            +
                  return "#{support_directory}/bin/ssh.exe".to_cygpath if running_on_windows?
         | 
| 53 | 
            +
                  return "ssh"
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 44 56 | 
             
                def computername
         | 
| 45 57 | 
             
                  n = File.read(credentials_file).split("\n")[2]
         | 
| 46 58 |  | 
| 47 59 | 
             
                  if n.blank?
         | 
| 48 | 
            -
                     | 
| 60 | 
            +
                    if running_on_a_mac?
         | 
| 61 | 
            +
                      @computername ||= `system_profiler  SPSoftwareDataType | grep "Computer Name"`.split(":").last.nice_slug
         | 
| 62 | 
            +
                    elsif running_on_windows?
         | 
| 63 | 
            +
                      @computername ||= ENV['COMPUTERNAME'].nice_slug
         | 
| 64 | 
            +
                    else
         | 
| 65 | 
            +
                      @computername ||= `hostname`.strip.nice_slug
         | 
| 66 | 
            +
                    end
         | 
| 49 67 |  | 
| 50 | 
            -
                    if @computername. | 
| 51 | 
            -
                      @computername =  | 
| 68 | 
            +
                    if @computername.length < 3
         | 
| 69 | 
            +
                      @computername = ENV['USER'].nice_slug
         | 
| 52 70 | 
             
                    end
         | 
| 53 71 |  | 
| 54 72 | 
             
                    File.open(credentials_file, 'a') do |f|
         | 
| @@ -332,4 +350,64 @@ unless String.method_defined?(:underscore) | |
| 332 350 | 
             
                  self.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').gsub(/([a-z\d])([A-Z])/,'\1_\2').tr("-", "_").downcase
         | 
| 333 351 | 
             
                end
         | 
| 334 352 | 
             
              end
         | 
| 335 | 
            -
            end
         | 
| 353 | 
            +
            end
         | 
| 354 | 
            +
             | 
| 355 | 
            +
            unless String.method_defined?(:nice_slug)
         | 
| 356 | 
            +
              class String
         | 
| 357 | 
            +
                def nice_slug
         | 
| 358 | 
            +
                  str = self.dup
         | 
| 359 | 
            +
                  accents = {
         | 
| 360 | 
            +
                  ['á','à','â','ä','ã'] => 'a',
         | 
| 361 | 
            +
                  ['Ã','Ä','Â','À','Á'] => 'A',
         | 
| 362 | 
            +
                  ['é','è','ê','ë'] => 'e',
         | 
| 363 | 
            +
                  ['Ë','É','È','Ê'] => 'E',
         | 
| 364 | 
            +
                  ['í','ì','î','ï'] => 'i',
         | 
| 365 | 
            +
                  ['Í','Î','Ì','Ï'] => 'I',
         | 
| 366 | 
            +
                  ['ó','ò','ô','ö','õ'] => 'o',
         | 
| 367 | 
            +
                  ['Õ','Ö','Ô','Ò','Ó'] => 'O',
         | 
| 368 | 
            +
                  ['ú','ù','û','ü'] => 'u',
         | 
| 369 | 
            +
                  ['Ú','Û','Ù','Ü'] => 'U',
         | 
| 370 | 
            +
                  ['ç'] => 'c', ['Ç'] => 'C',
         | 
| 371 | 
            +
                  ['ñ'] => 'n', ['Ñ'] => 'N'
         | 
| 372 | 
            +
                  }
         | 
| 373 | 
            +
                  accents.each do |ac,rep|
         | 
| 374 | 
            +
                    ac.each do |s|
         | 
| 375 | 
            +
                      str = str.gsub(s, rep)
         | 
| 376 | 
            +
                    end
         | 
| 377 | 
            +
                  end
         | 
| 378 | 
            +
                  str = str.gsub(/[^a-zA-Z0-9\. ]/,"")
         | 
| 379 | 
            +
                  str = str.gsub(/[ ]+/," ")
         | 
| 380 | 
            +
                  str = str.gsub(/[_]/,"-")
         | 
| 381 | 
            +
                end
         | 
| 382 | 
            +
              end
         | 
| 383 | 
            +
            end
         | 
| 384 | 
            +
             | 
| 385 | 
            +
            unless String.method_defined?(:to_cygpath)
         | 
| 386 | 
            +
              class String
         | 
| 387 | 
            +
                def to_cygpath
         | 
| 388 | 
            +
                  return self unless Strongspace::Command::running_on_windows?
         | 
| 389 | 
            +
                  r = "/cygdrive/#{self[0..0].downcase}/#{self[3..-1]}".gsub("\\", "/")
         | 
| 390 | 
            +
                  return r
         | 
| 391 | 
            +
                end
         | 
| 392 | 
            +
              end
         | 
| 393 | 
            +
            end
         | 
| 394 | 
            +
             | 
| 395 | 
            +
            unless String.method_defined?(:from_cygpath)
         | 
| 396 | 
            +
              class String
         | 
| 397 | 
            +
                def from_cygpath
         | 
| 398 | 
            +
                  if self.starts_with? "/cygdrive" and Strongspace::Command::running_on_windows?
         | 
| 399 | 
            +
                    return "#{self[10..10]}:\\#{self[12..-1].gsub("/","\\")}"
         | 
| 400 | 
            +
                  end
         | 
| 401 | 
            +
                  return self
         | 
| 402 | 
            +
                end
         | 
| 403 | 
            +
              end
         | 
| 404 | 
            +
            end
         | 
| 405 | 
            +
             | 
| 406 | 
            +
            unless String.method_defined?(:normalize_pathslash)
         | 
| 407 | 
            +
              class String
         | 
| 408 | 
            +
                def normalize_pathslash
         | 
| 409 | 
            +
                  return self.gsub("/", "\\") if Strongspace::Command::running_on_windows?
         | 
| 410 | 
            +
                  return self
         | 
| 411 | 
            +
                end
         | 
| 412 | 
            +
              end
         | 
| 413 | 
            +
            end
         | 
    
        data/lib/strongspace/plugin.rb
    CHANGED
    
    | @@ -30,8 +30,20 @@ module Strongspace | |
| 30 30 |  | 
| 31 31 | 
             
                def self.load_default_gem_plugins
         | 
| 32 32 | 
             
                  begin
         | 
| 33 | 
            -
                    require 'strongspace-rsync'
         | 
| 33 | 
            +
                    require File.dirname(__FILE__) + '/../../../strongspace-rsync/lib/strongspace-rsync'
         | 
| 34 34 | 
             
                  rescue Exception => e
         | 
| 35 | 
            +
                    begin
         | 
| 36 | 
            +
                      require 'strongspace-rsync'
         | 
| 37 | 
            +
                    rescue Exception => e
         | 
| 38 | 
            +
                    end
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
                  begin
         | 
| 41 | 
            +
                    require File.dirname(__FILE__) + '/../../../strongspace-web/lib/strongspace-web'
         | 
| 42 | 
            +
                  rescue Exception => e
         | 
| 43 | 
            +
                    begin
         | 
| 44 | 
            +
                      require 'strongspace-web'
         | 
| 45 | 
            +
                    rescue Exception => ee
         | 
| 46 | 
            +
                    end
         | 
| 35 47 | 
             
                  end
         | 
| 36 48 | 
             
                end
         | 
| 37 49 |  | 
    
        data/lib/strongspace/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,210 +1,205 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: strongspace
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version | 
| 4 | 
            -
               | 
| 5 | 
            -
              prerelease: 
         | 
| 6 | 
            -
              segments: 
         | 
| 7 | 
            -
              - 0
         | 
| 8 | 
            -
              - 3
         | 
| 9 | 
            -
              - 5
         | 
| 10 | 
            -
              version: 0.3.5
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.3.8
         | 
| 11 5 | 
             
            platform: ruby
         | 
| 12 | 
            -
            authors: | 
| 6 | 
            +
            authors:
         | 
| 13 7 | 
             
            - Strongspace
         | 
| 14 8 | 
             
            autorequire: 
         | 
| 15 9 | 
             
            bindir: bin
         | 
| 16 10 | 
             
            cert_chain: []
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
            dependencies: 
         | 
| 21 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 11 | 
            +
            date: 2016-05-03 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 22 14 | 
             
              name: rake
         | 
| 23 | 
            -
               | 
| 24 | 
            -
             | 
| 25 | 
            -
                 | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 29 | 
            -
                    hash: 3
         | 
| 30 | 
            -
                    segments: 
         | 
| 31 | 
            -
                    - 0
         | 
| 32 | 
            -
                    version: "0"
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - '>='
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 33 20 | 
             
              type: :development
         | 
| 34 | 
            -
              version_requirements: *id001
         | 
| 35 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 36 | 
            -
              name: ZenTest
         | 
| 37 21 | 
             
              prerelease: false
         | 
| 38 | 
            -
               | 
| 39 | 
            -
                 | 
| 40 | 
            -
                 | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - '>='
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: ZenTest
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - '>='
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 47 34 | 
             
              type: :development
         | 
| 48 | 
            -
              version_requirements: *id002
         | 
| 49 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 50 | 
            -
              name: autotest-growl
         | 
| 51 35 | 
             
              prerelease: false
         | 
| 52 | 
            -
               | 
| 53 | 
            -
                 | 
| 54 | 
            -
                 | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - '>='
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: autotest-growl
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - '>='
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0'
         | 
| 61 48 | 
             
              type: :development
         | 
| 62 | 
            -
              version_requirements: *id003
         | 
| 63 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 64 | 
            -
              name: rspec
         | 
| 65 49 | 
             
              prerelease: false
         | 
| 66 | 
            -
               | 
| 67 | 
            -
                 | 
| 68 | 
            -
                 | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - '>='
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: rspec
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 69 59 | 
             
                - - ~>
         | 
| 70 | 
            -
                  - !ruby/object:Gem::Version | 
| 71 | 
            -
                    hash: 27
         | 
| 72 | 
            -
                    segments: 
         | 
| 73 | 
            -
                    - 1
         | 
| 74 | 
            -
                    - 3
         | 
| 75 | 
            -
                    - 0
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 76 61 | 
             
                    version: 1.3.0
         | 
| 77 62 | 
             
              type: :development
         | 
| 78 | 
            -
              version_requirements: *id004
         | 
| 79 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 80 | 
            -
              name: webmock
         | 
| 81 63 | 
             
              prerelease: false
         | 
| 82 | 
            -
               | 
| 83 | 
            -
                 | 
| 84 | 
            -
                requirements: 
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 85 66 | 
             
                - - ~>
         | 
| 86 | 
            -
                  - !ruby/object:Gem::Version | 
| 87 | 
            -
                     | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: 1.3.0
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: webmock
         | 
| 71 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                requirements:
         | 
| 73 | 
            +
                - - ~>
         | 
| 74 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 92 75 | 
             
                    version: 1.5.0
         | 
| 93 76 | 
             
              type: :development
         | 
| 94 | 
            -
              version_requirements: *id005
         | 
| 95 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 96 | 
            -
              name: sinatra
         | 
| 97 77 | 
             
              prerelease: false
         | 
| 98 | 
            -
               | 
| 99 | 
            -
                 | 
| 100 | 
            -
                 | 
| 101 | 
            -
             | 
| 102 | 
            -
             | 
| 103 | 
            -
             | 
| 104 | 
            -
             | 
| 105 | 
            -
             | 
| 106 | 
            -
             | 
| 78 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - ~>
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                    version: 1.5.0
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: sinatra
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - '>='
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: '0'
         | 
| 107 90 | 
             
              type: :development
         | 
| 108 | 
            -
              version_requirements: *id006
         | 
| 109 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 110 | 
            -
              name: sinatra-reloader
         | 
| 111 91 | 
             
              prerelease: false
         | 
| 112 | 
            -
               | 
| 113 | 
            -
                 | 
| 114 | 
            -
                 | 
| 115 | 
            -
             | 
| 116 | 
            -
             | 
| 117 | 
            -
             | 
| 118 | 
            -
             | 
| 119 | 
            -
             | 
| 120 | 
            -
             | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - '>='
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: '0'
         | 
| 97 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 98 | 
            +
              name: sinatra-reloader
         | 
| 99 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 | 
            +
                requirements:
         | 
| 101 | 
            +
                - - '>='
         | 
| 102 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            +
                    version: '0'
         | 
| 121 104 | 
             
              type: :development
         | 
| 122 | 
            -
              version_requirements: *id007
         | 
| 123 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 124 | 
            -
              name: hoptoad_notifier
         | 
| 125 105 | 
             
              prerelease: false
         | 
| 126 | 
            -
               | 
| 127 | 
            -
                 | 
| 128 | 
            -
                 | 
| 106 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 | 
            +
                requirements:
         | 
| 108 | 
            +
                - - '>='
         | 
| 109 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            +
                    version: '0'
         | 
| 111 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 112 | 
            +
              name: hoptoad_notifier
         | 
| 113 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 | 
            +
                requirements:
         | 
| 129 115 | 
             
                - - ~>
         | 
| 130 | 
            -
                  - !ruby/object:Gem::Version | 
| 131 | 
            -
                     | 
| 132 | 
            -
                    segments: 
         | 
| 133 | 
            -
                    - 2
         | 
| 134 | 
            -
                    - 4
         | 
| 135 | 
            -
                    version: "2.4"
         | 
| 116 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            +
                    version: '2.4'
         | 
| 136 118 | 
             
              type: :development
         | 
| 137 | 
            -
               | 
| 138 | 
            -
             | 
| 119 | 
            +
              prerelease: false
         | 
| 120 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            +
                requirements:
         | 
| 122 | 
            +
                - - ~>
         | 
| 123 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            +
                    version: '2.4'
         | 
| 125 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 139 126 | 
             
              name: open4
         | 
| 127 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 | 
            +
                requirements:
         | 
| 129 | 
            +
                - - '>='
         | 
| 130 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            +
                    version: '0'
         | 
| 132 | 
            +
              type: :runtime
         | 
| 140 133 | 
             
              prerelease: false
         | 
| 141 | 
            -
               | 
| 142 | 
            -
                 | 
| 143 | 
            -
                 | 
| 144 | 
            -
             | 
| 145 | 
            -
             | 
| 146 | 
            -
             | 
| 147 | 
            -
             | 
| 148 | 
            -
             | 
| 149 | 
            -
             | 
| 134 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 | 
            +
                requirements:
         | 
| 136 | 
            +
                - - '>='
         | 
| 137 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 138 | 
            +
                    version: '0'
         | 
| 139 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 140 | 
            +
              name: POpen4
         | 
| 141 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 142 | 
            +
                requirements:
         | 
| 143 | 
            +
                - - '>='
         | 
| 144 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 145 | 
            +
                    version: '0'
         | 
| 150 146 | 
             
              type: :runtime
         | 
| 151 | 
            -
              version_requirements: *id009
         | 
| 152 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 153 | 
            -
              name: cronedit
         | 
| 154 147 | 
             
              prerelease: false
         | 
| 155 | 
            -
               | 
| 156 | 
            -
                 | 
| 157 | 
            -
                 | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 162 | 
            -
             | 
| 163 | 
            -
             | 
| 148 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 149 | 
            +
                requirements:
         | 
| 150 | 
            +
                - - '>='
         | 
| 151 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 152 | 
            +
                    version: '0'
         | 
| 153 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 154 | 
            +
              name: cronedit
         | 
| 155 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 156 | 
            +
                requirements:
         | 
| 157 | 
            +
                - - '>='
         | 
| 158 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 159 | 
            +
                    version: '0'
         | 
| 164 160 | 
             
              type: :runtime
         | 
| 165 | 
            -
              version_requirements: *id010
         | 
| 166 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 167 | 
            -
              name: rest-client
         | 
| 168 161 | 
             
              prerelease: false
         | 
| 169 | 
            -
               | 
| 170 | 
            -
                 | 
| 171 | 
            -
                 | 
| 172 | 
            -
             | 
| 173 | 
            -
             | 
| 174 | 
            -
             | 
| 175 | 
            -
             | 
| 176 | 
            -
             | 
| 177 | 
            -
             | 
| 178 | 
            -
             | 
| 162 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 163 | 
            +
                requirements:
         | 
| 164 | 
            +
                - - '>='
         | 
| 165 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 166 | 
            +
                    version: '0'
         | 
| 167 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 168 | 
            +
              name: rest-client
         | 
| 169 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 170 | 
            +
                requirements:
         | 
| 171 | 
            +
                - - '='
         | 
| 172 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 179 173 | 
             
                    version: 1.6.1
         | 
| 180 174 | 
             
              type: :runtime
         | 
| 181 | 
            -
              version_requirements: *id011
         | 
| 182 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 183 | 
            -
              name: json_pure
         | 
| 184 175 | 
             
              prerelease: false
         | 
| 185 | 
            -
               | 
| 186 | 
            -
                 | 
| 187 | 
            -
                 | 
| 188 | 
            -
             | 
| 189 | 
            -
             | 
| 190 | 
            -
             | 
| 191 | 
            -
             | 
| 192 | 
            -
             | 
| 193 | 
            -
             | 
| 194 | 
            -
             | 
| 195 | 
            -
             | 
| 176 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 177 | 
            +
                requirements:
         | 
| 178 | 
            +
                - - '='
         | 
| 179 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 180 | 
            +
                    version: 1.6.1
         | 
| 181 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 182 | 
            +
              name: json_pure
         | 
| 183 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 184 | 
            +
                requirements:
         | 
| 185 | 
            +
                - - '='
         | 
| 186 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 187 | 
            +
                    version: 1.8.3
         | 
| 196 188 | 
             
              type: :runtime
         | 
| 197 | 
            -
               | 
| 189 | 
            +
              prerelease: false
         | 
| 190 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 191 | 
            +
                requirements:
         | 
| 192 | 
            +
                - - '='
         | 
| 193 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 194 | 
            +
                    version: 1.8.3
         | 
| 198 195 | 
             
            description: Client library and command line tool for Strongspace.
         | 
| 199 196 | 
             
            email: support@strongspace.com
         | 
| 200 | 
            -
            executables: | 
| 197 | 
            +
            executables:
         | 
| 201 198 | 
             
            - strongspace
         | 
| 202 199 | 
             
            - ss
         | 
| 203 200 | 
             
            extensions: []
         | 
| 204 | 
            -
             | 
| 205 201 | 
             
            extra_rdoc_files: []
         | 
| 206 | 
            -
             | 
| 207 | 
            -
            files: 
         | 
| 202 | 
            +
            files:
         | 
| 208 203 | 
             
            - bin/as_installed/ss
         | 
| 209 204 | 
             
            - bin/as_installed/strongspace
         | 
| 210 205 | 
             
            - bin/ss
         | 
| @@ -229,39 +224,27 @@ files: | |
| 229 224 | 
             
            - spec/auth_spec.rb
         | 
| 230 225 | 
             
            - spec/base.rb
         | 
| 231 226 | 
             
            - spec/client_spec.rb
         | 
| 232 | 
            -
            has_rdoc: true
         | 
| 233 227 | 
             
            homepage: http://github.com/expandrive/strongspace
         | 
| 234 228 | 
             
            licenses: []
         | 
| 235 | 
            -
             | 
| 229 | 
            +
            metadata: {}
         | 
| 236 230 | 
             
            post_install_message: 
         | 
| 237 231 | 
             
            rdoc_options: []
         | 
| 238 | 
            -
             | 
| 239 | 
            -
            require_paths: 
         | 
| 232 | 
            +
            require_paths:
         | 
| 240 233 | 
             
            - lib
         | 
| 241 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement | 
| 242 | 
            -
               | 
| 243 | 
            -
               | 
| 244 | 
            -
             | 
| 245 | 
            -
             | 
| 246 | 
            -
             | 
| 247 | 
            -
             | 
| 248 | 
            -
             | 
| 249 | 
            -
             | 
| 250 | 
            -
             | 
| 251 | 
            -
              none: false
         | 
| 252 | 
            -
              requirements: 
         | 
| 253 | 
            -
              - - ">="
         | 
| 254 | 
            -
                - !ruby/object:Gem::Version 
         | 
| 255 | 
            -
                  hash: 3
         | 
| 256 | 
            -
                  segments: 
         | 
| 257 | 
            -
                  - 0
         | 
| 258 | 
            -
                  version: "0"
         | 
| 234 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 235 | 
            +
              requirements:
         | 
| 236 | 
            +
              - - '>='
         | 
| 237 | 
            +
                - !ruby/object:Gem::Version
         | 
| 238 | 
            +
                  version: '0'
         | 
| 239 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 240 | 
            +
              requirements:
         | 
| 241 | 
            +
              - - '>='
         | 
| 242 | 
            +
                - !ruby/object:Gem::Version
         | 
| 243 | 
            +
                  version: '0'
         | 
| 259 244 | 
             
            requirements: []
         | 
| 260 | 
            -
             | 
| 261 245 | 
             
            rubyforge_project: 
         | 
| 262 | 
            -
            rubygems_version:  | 
| 246 | 
            +
            rubygems_version: 2.0.14.1
         | 
| 263 247 | 
             
            signing_key: 
         | 
| 264 | 
            -
            specification_version:  | 
| 248 | 
            +
            specification_version: 4
         | 
| 265 249 | 
             
            summary: Client library and CLI for Strongspace.
         | 
| 266 250 | 
             
            test_files: []
         | 
| 267 | 
            -
             |