aptly-api 0.9.1 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 380c5f11e70678a2475099bcd03210ec4181ad123d6094b7bdecc1f636e6b9af
4
- data.tar.gz: 810b109dcdae36be88317a858267b3d16b5f80e1fa1b4cff82e09f412e2e1a59
3
+ metadata.gz: ef67a756d6233d6522678531b0b0b221303a19120b14d80c834e62ad04b061f3
4
+ data.tar.gz: bc8c50900970fcd89e47302d43f49e9b6b3c6fd34d008e8f34b9c473c2a71856
5
5
  SHA512:
6
- metadata.gz: 2883165cc34396cbc478fd096f0d1ee4a18b26f799aab81d6fd48fb0d3be79404f00d3b349e4545028549e46ebe21f824d182965469d6307d8a2447008a6f41e
7
- data.tar.gz: 036bd6f29fb8cd1eb2f6bfae2a610168d18a42bc573213bee6a073eeda71de284425d32e7cc1e1729eceefdf160f54cd3a91723f5419a9a4e433e9eeca626629
6
+ metadata.gz: bf61c4b10714a527b5cf699ca9f9e77dd0cee51ce8e8a23f8d6f59b70bdb136091a1c3422ac1c39093038188fc5d6ccb4ca91c84fd7f42c08be48f3aa2b6f541
7
+ data.tar.gz: 1baed9a8971546a8c41a8101e56ec07e66a4d8a7eb801b1fcb5ac844afdd6f9ed7f8e0ef46bde5cfd5d75598b6915909c6420cdb7ea7d32f44e47b599fc19a0c
@@ -1,5 +1,17 @@
1
1
  # Change Log
2
2
 
3
+ ## [0.10.0]
4
+ ### Added
5
+ - `PublishedRepository#from_repositories` publishes repository sources
6
+ into the same prefix.
7
+ - `Aptly.repo` is a new shorthand for `Aptly::Repository.get` to get
8
+ a repository by name when writing code interactively in IRB, or to
9
+ write slightly less verbose code.
10
+
11
+ ### Fixed
12
+ - Documentation fixes.
13
+ - `Connection.HTTP_ACTIONS` is now properly marked private.
14
+
3
15
  ## [0.9.1]
4
16
  ### Fixed
5
17
  - Hint at needing `noRemove: 1` as param when loop adding files (default
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Harald Sitter <sitter@kde.org>
1
+ # Copyright (C) 2015-2018 Harald Sitter <sitter@kde.org>
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -26,18 +26,26 @@ require 'aptly/tmpname'
26
26
  # Aptly API
27
27
  module Aptly
28
28
  class << self
29
+ # Configures aptly in a block.
29
30
  def configure
30
31
  yield configuration
31
32
  end
32
33
 
34
+ # The global configuration instance.
33
35
  def configuration
34
36
  @configuration ||= Configuration.new
35
37
  end
36
38
 
39
+ # Convenience shorthand for {Repository#get}.
40
+ # @since 0.10.0
41
+ def repo(name, connection = Connection.new, **kwords)
42
+ Repository.get(name, connection, **kwords)
43
+ end
44
+
37
45
  # Publish 1 or more sources into a public repository prefix.
38
46
  # @param sources [Array<Repository>] array of repositories to source
39
47
  # @param prefix [String] the prefix to publish under (must be escaped see
40
- # {#escape_prefix})
48
+ # {.escape_prefix})
41
49
  # @param source_kind [String] the source kind (local or snapshot)
42
50
  # @return [PublishedRepository] newly published repository
43
51
  def publish(sources, prefix = '', source_kind = 'local',
@@ -31,9 +31,10 @@ module Aptly
31
31
  private_constant :GETISH_ACTIONS
32
32
  POSTISH_ACTIONS = %i[post put].freeze
33
33
  private_constant :POSTISH_ACTIONS
34
- HTTP_ACTIONS = GETISH_ACTIONS + POSTISH_ACTIONS
35
34
  WRITE_ACTIONS = (POSTISH_ACTIONS + %i[delete]).freeze
36
35
  private_constant :WRITE_ACTIONS
36
+ HTTP_ACTIONS = GETISH_ACTIONS + POSTISH_ACTIONS
37
+ private_constant :HTTP_ACTIONS
37
38
 
38
39
  CODE_ERRORS = {
39
40
  400 => Errors::ClientError,
@@ -42,6 +42,17 @@ module Aptly
42
42
  query: kwords)
43
43
  JSON.parse(response.body).collect { |h| new(connection, h) }
44
44
  end
45
+
46
+ # Publish an array of {Repository} to a prefix.
47
+ # @param repos [Array<Repository>] array of repositories to source
48
+ # @param prefix [String] the prefix to publish under (must be escaped see
49
+ # {.escape_prefix})
50
+ # @return [PublishedRepository] newly published repository
51
+ # @since 0.10.0
52
+ def from_repositories(repos, prefix, **kwords)
53
+ sources = repos.collect { |x| { Name: x.Name } }
54
+ Aptly.publish(sources, prefix, **kwords)
55
+ end
45
56
  end
46
57
 
47
58
  private
@@ -1,11 +1,13 @@
1
1
  module Aptly
2
+ # Abstract "type" of all publishable entities. Publishable entities
3
+ # are everything that can act as Source for a PublishedRepository.
2
4
  module Publishable
3
5
  # Lists all PublishedRepositories self is published in. Namely self must
4
6
  # be a source of the published repository in order for it to appear here.
5
7
  # This method always returns an array of affected published repositories.
6
8
  # If you use this method with a block it will additionally yield each
7
9
  # published repository that would appear in the array, making it a shorthand
8
- # for {Array#each}.
10
+ # for Array#each.
9
11
  # @yieldparam pub [PublishedRepository]
10
12
  # @return [Array<PublishedRepository>]
11
13
  def published_in
@@ -28,7 +28,7 @@ module Aptly
28
28
  end
29
29
 
30
30
  # Find differences between this and another snapshot
31
- # @param [Snapshot] to diff against
31
+ # @param other_snapshot [Snapshot] to diff against
32
32
  # @return [Array<Hash>] diff between the two snashots
33
33
  def diff(other_snapshot)
34
34
  endpoint = "/snapshots/#{self.Name}/diff/#{other_snapshot.Name}"
@@ -18,6 +18,8 @@ require 'English'
18
18
  module Aptly
19
19
  # Helper to generate temporary names
20
20
  module TmpName
21
+ # Generate a random temporary directory name.
22
+ # @param prefix [String] arbitrary prefix string to start the name with
21
23
  # @return [String] temporary directory name (only safe characters)
22
24
  def self.dir(prefix)
23
25
  format('%<prefix>s-%<time>s-%<pid>s-%<tid>s-%<rand>s',
@@ -1,4 +1,5 @@
1
1
  # Aptly API
2
2
  module Aptly
3
- VERSION = '0.9.1'.freeze
3
+ # The loaded version of the gem.
4
+ VERSION = '0.10.0'.freeze
4
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aptly-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harald Sitter
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-02-02 00:00:00.000000000 Z
12
+ date: 2018-03-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler