deb-s3 0.4.0 → 0.5.0
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/README.md +41 -9
 - data/lib/deb/s3.rb +1 -1
 - data/lib/deb/s3/cli.rb +75 -43
 - metadata +2 -2
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -43,7 +43,7 @@ $ bundle install 
     | 
|
| 
       43 
43 
     | 
    
         
             
            Now to upload a package, simply use:
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
            ```console
         
     | 
| 
       46 
     | 
    
         
            -
            $ deb-s3 upload my-deb-package-1.0.0_amd64.deb 
     | 
| 
      
 46 
     | 
    
         
            +
            $ deb-s3 upload --bucket my-bucket my-deb-package-1.0.0_amd64.deb
         
     | 
| 
       47 
47 
     | 
    
         
             
            >> Examining package file my-deb-package-1.0.0_amd64.deb
         
     | 
| 
       48 
48 
     | 
    
         
             
            >> Retrieving existing package manifest
         
     | 
| 
       49 
49 
     | 
    
         
             
            >> Uploading package and new manifests to S3
         
     | 
| 
         @@ -56,26 +56,58 @@ $ deb-s3 upload my-deb-package-1.0.0_amd64.deb --bucket my-bucket 
     | 
|
| 
       56 
56 
     | 
    
         | 
| 
       57 
57 
     | 
    
         
             
            ```
         
     | 
| 
       58 
58 
     | 
    
         
             
            Usage:
         
     | 
| 
       59 
     | 
    
         
            -
              deb-s3 upload  
     | 
| 
      
 59 
     | 
    
         
            +
              deb-s3 upload FILES
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
61 
     | 
    
         
             
            Options:
         
     | 
| 
       62 
     | 
    
         
            -
              - 
     | 
| 
      
 62 
     | 
    
         
            +
              -a, [--arch=ARCH]              # The architecture of the package in the APT repository.
         
     | 
| 
      
 63 
     | 
    
         
            +
                  [--sign=SIGN]              # Sign the Release file. Use --sign with your key ID to use a specific key.
         
     | 
| 
      
 64 
     | 
    
         
            +
              -p, [--preserve-versions]      # Whether to preserve other versions of a package in the repository when uploading one.
         
     | 
| 
      
 65 
     | 
    
         
            +
              -b, [--bucket=BUCKET]          # The name of the S3 bucket to upload to.
         
     | 
| 
       63 
66 
     | 
    
         
             
              -c, [--codename=CODENAME]      # The codename of the APT repository.
         
     | 
| 
       64 
67 
     | 
    
         
             
                                             # Default: stable
         
     | 
| 
       65 
     | 
    
         
            -
              - 
     | 
| 
      
 68 
     | 
    
         
            +
              -m, [--component=COMPONENT]    # The component of the APT repository.
         
     | 
| 
       66 
69 
     | 
    
         
             
                                             # Default: main
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
      
 70 
     | 
    
         
            +
                  [--access-key=ACCESS_KEY]  # The access key for connecting to S3.
         
     | 
| 
      
 71 
     | 
    
         
            +
                                             # Default: $AMAZON_ACCESS_KEY_ID
         
     | 
| 
      
 72 
     | 
    
         
            +
                  [--secret-key=SECRET_KEY]  # The secret key for connecting to S3.
         
     | 
| 
      
 73 
     | 
    
         
            +
                                             # Default: $AMAZON_SECRET_ACCESS_KEY
         
     | 
| 
      
 74 
     | 
    
         
            +
                  [--endpoint=ENDPOINT]      # The region endpoint for connecting to S3.
         
     | 
| 
       68 
75 
     | 
    
         
             
              -v, [--visibility=VISIBILITY]  # The access policy for the uploaded files. Can be public, private, or authenticated.
         
     | 
| 
       69 
76 
     | 
    
         
             
                                             # Default: public
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            Uploads the given files to a S3 bucket as an APT repository.
         
     | 
| 
      
 79 
     | 
    
         
            +
            ```
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            You can also verify an existing APT repository on S3 using the `verify` command:
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            ```console
         
     | 
| 
      
 84 
     | 
    
         
            +
            deb-s3 verify -b my-bucket
         
     | 
| 
      
 85 
     | 
    
         
            +
            >> Retrieving existing manifests
         
     | 
| 
      
 86 
     | 
    
         
            +
            >> Checking for missing packages in: stable/main i386
         
     | 
| 
      
 87 
     | 
    
         
            +
            >> Checking for missing packages in: stable/main amd64
         
     | 
| 
      
 88 
     | 
    
         
            +
            >> Checking for missing packages in: stable/main all
         
     | 
| 
      
 89 
     | 
    
         
            +
            ```
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
            ```
         
     | 
| 
      
 92 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 93 
     | 
    
         
            +
              deb-s3 verify
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
            Options:
         
     | 
| 
      
 96 
     | 
    
         
            +
              -f, [--fix-manifests]          # Whether to fix problems in manifests when verifying.
         
     | 
| 
      
 97 
     | 
    
         
            +
              -b, [--bucket=BUCKET]          # The name of the S3 bucket to upload to.
         
     | 
| 
      
 98 
     | 
    
         
            +
              -c, [--codename=CODENAME]      # The codename of the APT repository.
         
     | 
| 
      
 99 
     | 
    
         
            +
                                             # Default: stable
         
     | 
| 
      
 100 
     | 
    
         
            +
              -m, [--component=COMPONENT]    # The component of the APT repository.
         
     | 
| 
      
 101 
     | 
    
         
            +
                                             # Default: main
         
     | 
| 
       70 
102 
     | 
    
         
             
                  [--access-key=ACCESS_KEY]  # The access key for connecting to S3.
         
     | 
| 
       71 
103 
     | 
    
         
             
                                             # Default: $AMAZON_ACCESS_KEY_ID
         
     | 
| 
       72 
104 
     | 
    
         
             
                  [--secret-key=SECRET_KEY]  # The secret key for connecting to S3.
         
     | 
| 
       73 
105 
     | 
    
         
             
                                             # Default: $AMAZON_SECRET_ACCESS_KEY
         
     | 
| 
       74 
     | 
    
         
            -
                  [--endpoint= 
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
      
 106 
     | 
    
         
            +
                  [--endpoint=ENDPOINT]      # The region endpoint for connecting to S3.
         
     | 
| 
      
 107 
     | 
    
         
            +
              -v, [--visibility=VISIBILITY]  # The access policy for the uploaded files. Can be public, private, or authenticated.
         
     | 
| 
      
 108 
     | 
    
         
            +
                                             # Default: public
         
     | 
| 
       77 
109 
     | 
    
         | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
      
 110 
     | 
    
         
            +
            Verifies that the files in the package manifests exist
         
     | 
| 
       79 
111 
     | 
    
         
             
            ```
         
     | 
| 
       80 
112 
     | 
    
         | 
| 
       81 
113 
     | 
    
         
             
            ## TODO
         
     | 
    
        data/lib/deb/s3.rb
    CHANGED
    
    
    
        data/lib/deb/s3/cli.rb
    CHANGED
    
    | 
         @@ -20,11 +20,16 @@ class Deb::S3::CLI < Thor 
     | 
|
| 
       20 
20 
     | 
    
         
             
                :aliases  => "-c",
         
     | 
| 
       21 
21 
     | 
    
         
             
                :desc     => "The codename of the APT repository."
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
              class_option : 
     | 
| 
      
 23 
     | 
    
         
            +
              class_option :component,
         
     | 
| 
       24 
24 
     | 
    
         
             
                :default  => "main",
         
     | 
| 
      
 25 
     | 
    
         
            +
                :type     => :string,
         
     | 
| 
      
 26 
     | 
    
         
            +
                :aliases  => "-m",
         
     | 
| 
      
 27 
     | 
    
         
            +
                :desc     => "The component of the APT repository."
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              class_option :section,
         
     | 
| 
       25 
30 
     | 
    
         
             
                :type     => :string,
         
     | 
| 
       26 
31 
     | 
    
         
             
                :aliases  => "-s",
         
     | 
| 
       27 
     | 
    
         
            -
                : 
     | 
| 
      
 32 
     | 
    
         
            +
                :hide     => true
         
     | 
| 
       28 
33 
     | 
    
         | 
| 
       29 
34 
     | 
    
         
             
              class_option :access_key,
         
     | 
| 
       30 
35 
     | 
    
         
             
                :default  => "$AMAZON_ACCESS_KEY_ID",
         
     | 
| 
         @@ -40,21 +45,21 @@ class Deb::S3::CLI < Thor 
     | 
|
| 
       40 
45 
     | 
    
         
             
                :type     => :string,
         
     | 
| 
       41 
46 
     | 
    
         
             
                :desc     => "The region endpoint for connecting to S3."
         
     | 
| 
       42 
47 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
               
     | 
| 
       44 
     | 
    
         
            -
                "Uploads the given FILE to a S3 bucket as an APT repository."
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
              option :arch,
         
     | 
| 
       47 
     | 
    
         
            -
                :type     => :string,
         
     | 
| 
       48 
     | 
    
         
            -
                :aliases  => "-a",
         
     | 
| 
       49 
     | 
    
         
            -
                :desc     => "The architecture of the package in the APT repository."
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
              option :visibility,
         
     | 
| 
      
 48 
     | 
    
         
            +
              class_option :visibility,
         
     | 
| 
       52 
49 
     | 
    
         
             
                :default  => "public",
         
     | 
| 
       53 
50 
     | 
    
         
             
                :type     => :string,
         
     | 
| 
       54 
51 
     | 
    
         
             
                :aliases  => "-v",
         
     | 
| 
       55 
52 
     | 
    
         
             
                :desc     => "The access policy for the uploaded files. " +
         
     | 
| 
       56 
53 
     | 
    
         
             
                             "Can be public, private, or authenticated."
         
     | 
| 
       57 
54 
     | 
    
         | 
| 
      
 55 
     | 
    
         
            +
              desc "upload FILES",
         
     | 
| 
      
 56 
     | 
    
         
            +
                "Uploads the given files to a S3 bucket as an APT repository."
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
              option :arch,
         
     | 
| 
      
 59 
     | 
    
         
            +
                :type     => :string,
         
     | 
| 
      
 60 
     | 
    
         
            +
                :aliases  => "-a",
         
     | 
| 
      
 61 
     | 
    
         
            +
                :desc     => "The architecture of the package in the APT repository."
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
       58 
63 
     | 
    
         
             
              option :sign,
         
     | 
| 
       59 
64 
     | 
    
         
             
                :type     => :string,
         
     | 
| 
       60 
65 
     | 
    
         
             
                :desc     => "Sign the Release file. Use --sign with your key ID to use " +
         
     | 
| 
         @@ -67,47 +72,57 @@ class Deb::S3::CLI < Thor 
     | 
|
| 
       67 
72 
     | 
    
         
             
                :desc     => "Whether to preserve other versions of a package " +
         
     | 
| 
       68 
73 
     | 
    
         
             
                             "in the repository when uploading one."
         
     | 
| 
       69 
74 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
              def upload( 
     | 
| 
       71 
     | 
    
         
            -
                 
     | 
| 
       72 
     | 
    
         
            -
                 
     | 
| 
      
 75 
     | 
    
         
            +
              def upload(*files)
         
     | 
| 
      
 76 
     | 
    
         
            +
                component = options[:component]
         
     | 
| 
      
 77 
     | 
    
         
            +
                if options[:section]
         
     | 
| 
      
 78 
     | 
    
         
            +
                  component = options[:section]
         
     | 
| 
      
 79 
     | 
    
         
            +
                  warn("===> WARNING: The --section/-s argument is deprecated, please use --component/-m.")
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                if files.nil? || files.empty?
         
     | 
| 
      
 83 
     | 
    
         
            +
                  error("You must specify at least one file to upload")
         
     | 
| 
      
 84 
     | 
    
         
            +
                end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                # make sure all the files exists
         
     | 
| 
      
 87 
     | 
    
         
            +
                if missing_file = files.detect { |f| !File.exists?(f) }
         
     | 
| 
      
 88 
     | 
    
         
            +
                  error("File '#{missing_file}' doesn't exist")
         
     | 
| 
      
 89 
     | 
    
         
            +
                end
         
     | 
| 
       73 
90 
     | 
    
         | 
| 
       74 
91 
     | 
    
         
             
                # configure AWS::S3
         
     | 
| 
       75 
92 
     | 
    
         
             
                configure_s3_client
         
     | 
| 
       76 
93 
     | 
    
         | 
| 
       77 
94 
     | 
    
         
             
                Deb::S3::Utils.signing_key = options[:sign]
         
     | 
| 
       78 
95 
     | 
    
         | 
| 
       79 
     | 
    
         
            -
                #  
     | 
| 
       80 
     | 
    
         
            -
                 
     | 
| 
       81 
     | 
    
         
            -
                 
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                when "private"
         
     | 
| 
       84 
     | 
    
         
            -
                  :private
         
     | 
| 
       85 
     | 
    
         
            -
                when "authenticated"
         
     | 
| 
       86 
     | 
    
         
            -
                  :authenticated_read
         
     | 
| 
       87 
     | 
    
         
            -
                else
         
     | 
| 
       88 
     | 
    
         
            -
                  error("Invalid visibility setting given. Can be public, private, or authenticated.")
         
     | 
| 
       89 
     | 
    
         
            -
                end
         
     | 
| 
      
 96 
     | 
    
         
            +
                # retrieve the existing manifests
         
     | 
| 
      
 97 
     | 
    
         
            +
                log("Retrieving existing manifests")
         
     | 
| 
      
 98 
     | 
    
         
            +
                release  = Deb::S3::Release.retrieve(options[:codename])
         
     | 
| 
      
 99 
     | 
    
         
            +
                manifests = {}
         
     | 
| 
       90 
100 
     | 
    
         | 
| 
       91 
     | 
    
         
            -
                 
     | 
| 
       92 
     | 
    
         
            -
                 
     | 
| 
      
 101 
     | 
    
         
            +
                # examine all the files
         
     | 
| 
      
 102 
     | 
    
         
            +
                files.collect { |f| Dir.glob(f) }.flatten.each do |file|
         
     | 
| 
      
 103 
     | 
    
         
            +
                  log("Examining package file #{File.basename(file)}")
         
     | 
| 
      
 104 
     | 
    
         
            +
                  pkg = Deb::S3::Package.parse_file(file)
         
     | 
| 
       93 
105 
     | 
    
         | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
      
 106 
     | 
    
         
            +
                  # copy over some options if they weren't given
         
     | 
| 
      
 107 
     | 
    
         
            +
                  arch = options[:arch] || pkg.architecture
         
     | 
| 
       96 
108 
     | 
    
         | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
      
 109 
     | 
    
         
            +
                  # validate we have them
         
     | 
| 
      
 110 
     | 
    
         
            +
                  error("No architcture given and unable to determine one for #{file}. " +
         
     | 
| 
      
 111 
     | 
    
         
            +
                        "Please specify one with --arch [i386,amd64].") unless arch
         
     | 
| 
       100 
112 
     | 
    
         | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
                manifest = Deb::S3::Manifest.retrieve(options[:codename], options[:section], arch)
         
     | 
| 
      
 113 
     | 
    
         
            +
                  # retrieve the manifest for the arch if we don't have it already
         
     | 
| 
      
 114 
     | 
    
         
            +
                  manifests[arch] ||= Deb::S3::Manifest.retrieve(options[:codename], component, arch)
         
     | 
| 
       104 
115 
     | 
    
         | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
      
 116 
     | 
    
         
            +
                  # add in the package
         
     | 
| 
      
 117 
     | 
    
         
            +
                  manifests[arch].add(pkg, options[:preserve_versions])
         
     | 
| 
      
 118 
     | 
    
         
            +
                end
         
     | 
| 
       107 
119 
     | 
    
         | 
| 
       108 
     | 
    
         
            -
                 
     | 
| 
       109 
     | 
    
         
            -
                 
     | 
| 
       110 
     | 
    
         
            -
                 
     | 
| 
      
 120 
     | 
    
         
            +
                # upload the manifest
         
     | 
| 
      
 121 
     | 
    
         
            +
                log("Uploading packages and new manifests to S3")
         
     | 
| 
      
 122 
     | 
    
         
            +
                manifests.each_value do |manifest|
         
     | 
| 
      
 123 
     | 
    
         
            +
                  manifest.write_to_s3 { |f| sublog("Transferring #{f}") }
         
     | 
| 
      
 124 
     | 
    
         
            +
                  release.update_manifest(manifest)
         
     | 
| 
      
 125 
     | 
    
         
            +
                end
         
     | 
| 
       111 
126 
     | 
    
         
             
                release.write_to_s3 { |f| sublog("Transferring #{f}") }
         
     | 
| 
       112 
127 
     | 
    
         | 
| 
       113 
128 
     | 
    
         
             
                log("Update complete.")
         
     | 
| 
         @@ -122,14 +137,20 @@ class Deb::S3::CLI < Thor 
     | 
|
| 
       122 
137 
     | 
    
         
             
                :desc     => "Whether to fix problems in manifests when verifying."
         
     | 
| 
       123 
138 
     | 
    
         | 
| 
       124 
139 
     | 
    
         
             
              def verify
         
     | 
| 
      
 140 
     | 
    
         
            +
                component = options[:component]
         
     | 
| 
      
 141 
     | 
    
         
            +
                if options[:section]
         
     | 
| 
      
 142 
     | 
    
         
            +
                  component = options[:section]
         
     | 
| 
      
 143 
     | 
    
         
            +
                  warn("===> WARNING: The --section/-s argument is deprecated, please use --component/-m.")
         
     | 
| 
      
 144 
     | 
    
         
            +
                end
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
       125 
146 
     | 
    
         
             
                configure_s3_client
         
     | 
| 
       126 
147 
     | 
    
         | 
| 
       127 
148 
     | 
    
         
             
                log("Retrieving existing manifests")
         
     | 
| 
       128 
149 
     | 
    
         
             
                release = Deb::S3::Release.retrieve(options[:codename])
         
     | 
| 
       129 
150 
     | 
    
         | 
| 
       130 
151 
     | 
    
         
             
                %w[i386 amd64 all].each do |arch|
         
     | 
| 
       131 
     | 
    
         
            -
                  log("Checking for missing packages in: #{options[:codename]}/#{options[: 
     | 
| 
       132 
     | 
    
         
            -
                  manifest = Deb::S3::Manifest.retrieve(options[:codename],  
     | 
| 
      
 152 
     | 
    
         
            +
                  log("Checking for missing packages in: #{options[:codename]}/#{options[:component]} #{arch}")
         
     | 
| 
      
 153 
     | 
    
         
            +
                  manifest = Deb::S3::Manifest.retrieve(options[:codename], component, arch)
         
     | 
| 
       133 
154 
     | 
    
         
             
                  missing_packages = []
         
     | 
| 
       134 
155 
     | 
    
         | 
| 
       135 
156 
     | 
    
         
             
                  manifest.packages.each do |p|
         
     | 
| 
         @@ -198,6 +219,17 @@ class Deb::S3::CLI < Thor 
     | 
|
| 
       198 
219 
     | 
    
         
             
                AWS::S3::DEFAULT_HOST.replace options[:endpoint] if options[:endpoint]
         
     | 
| 
       199 
220 
     | 
    
         | 
| 
       200 
221 
     | 
    
         
             
                Deb::S3::Utils.bucket = options[:bucket]
         
     | 
| 
       201 
     | 
    
         
            -
              end
         
     | 
| 
       202 
222 
     | 
    
         | 
| 
      
 223 
     | 
    
         
            +
                # make sure we have a valid visibility setting
         
     | 
| 
      
 224 
     | 
    
         
            +
                Deb::S3::Utils.access_policy = case options[:visibility]
         
     | 
| 
      
 225 
     | 
    
         
            +
                when "public"
         
     | 
| 
      
 226 
     | 
    
         
            +
                  :public_read
         
     | 
| 
      
 227 
     | 
    
         
            +
                when "private"
         
     | 
| 
      
 228 
     | 
    
         
            +
                  :private
         
     | 
| 
      
 229 
     | 
    
         
            +
                when "authenticated"
         
     | 
| 
      
 230 
     | 
    
         
            +
                  :authenticated_read
         
     | 
| 
      
 231 
     | 
    
         
            +
                else
         
     | 
| 
      
 232 
     | 
    
         
            +
                  error("Invalid visibility setting given. Can be public, private, or authenticated.")
         
     | 
| 
      
 233 
     | 
    
         
            +
                end
         
     | 
| 
      
 234 
     | 
    
         
            +
              end
         
     | 
| 
       203 
235 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: deb-s3
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.5.0
         
     | 
| 
       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-06- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-06-30 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: thor
         
     |