vagrant-auto_network 1.0.0.rc1 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 497131d24f1670f54dd51b9264f9d896c6d5c299
4
- data.tar.gz: acfdf515d2a0c57f6607b1d43029d290e99ce33c
3
+ metadata.gz: 72d0e15630b3b3850d0409ca564ea4c47734696e
4
+ data.tar.gz: d34b1e0afaf9fc015585eb9249ff8f9f66c2c288
5
5
  SHA512:
6
- metadata.gz: ebb3a65b50265b98b07310e1a5ceab508acb57f2146bea4157d57f5562bdc4453176d89954c8b0dea0a20fb6817e52c8afbf2e6bcd1e329df0ec1931fe6a6fa7
7
- data.tar.gz: b0df283881996781bcf2ad23fe7dfcca4259a3c10f7ac3e7022f5e304c8d4f521af6d9f9062e864b0b2d2a1d5c91421bfdb79072c28151780d1a3ada2565032e
6
+ metadata.gz: ec5a9d7f8ba9dfb6e2fbb7516295e0fee80d603e7c18506d17d26241c4a5ac41876d446a71b92a108344226b93a4527eb6f1d89a0cdc1e7ea6b7aaf542d6cc39
7
+ data.tar.gz: e1d119a3a2e652e4c11821a88b24fca41958e3b733bf4126bd6360912339abe05eeef19c2c7ae55a0c589d4d61ad0e94d466aa2464232b801a1a59259b393339
data/CHANGELOG CHANGED
@@ -4,7 +4,7 @@ vagrant-auto_network
4
4
  1.0.0
5
5
  -----
6
6
 
7
- Unreleased
7
+ 2014-05-21
8
8
 
9
9
  This is a mostly-backwards compatible feature release.
10
10
 
@@ -5,6 +5,8 @@ module AutoNetwork
5
5
  #
6
6
  # @abstract Subclass and override {#call} to implement a new AutoNetwork
7
7
  # action.
8
+ #
9
+ # @since 1.0.0
8
10
  class Action::Base
9
11
  # Create a new action instance that is suitable for execution as part of
10
12
  # Vagrant middleware.
@@ -83,6 +83,8 @@ module AutoNetwork
83
83
  # @return [Hash{String=>String}] A hash containing the path to the
84
84
  # directory containing the Vagrantfile that defined the machine and the
85
85
  # machine name.
86
+ #
87
+ # @since 1.0.0
86
88
  def id_for(machine)
87
89
  {
88
90
  'path' => machine.env.root_path.to_s,
@@ -16,6 +16,8 @@ module AutoNetwork
16
16
  # @see AutoNetwork::PoolStorage The object used to implement file-based
17
17
  # persistance for this class.
18
18
  # @see AutoNetwork::Pool The objects managed by this class.
19
+ #
20
+ # @since 1.0.0
19
21
  class PoolManager
20
22
  # Create a new `PoolManager` instance with persistent storage.
21
23
  #
@@ -44,27 +46,30 @@ module AutoNetwork
44
46
  end
45
47
  end
46
48
 
47
- # {include:AutoNetwork::Pool#request}
49
+ # (see AutoNetwork::Pool#request)
48
50
  #
49
- # @see AutoNetwork::Pool#request
51
+ # @see AutoNetwork::Pool#request This method is a proxy for
52
+ # AutoNetwork::Pool#request
50
53
  def request(machine)
51
54
  with_pool_for(machine) do |pool|
52
55
  pool.request(machine)
53
56
  end
54
57
  end
55
58
 
56
- # {include:AutoNetwork::Pool#release}
59
+ # (see AutoNetwork::Pool#release)
57
60
  #
58
- # @see AutoNetwork::Pool#release
61
+ # @see AutoNetwork::Pool#release This method is a proxy for
62
+ # AutoNetwork::Pool#release
59
63
  def release(machine)
60
64
  with_pool_for(machine) do |pool|
61
65
  pool.release(machine)
62
66
  end
63
67
  end
64
68
 
65
- # {include:AutoNetwork::Pool#address_for}
69
+ # (see AutoNetwork::Pool#address_for)
66
70
  #
67
- # @see AutoNetwork::Pool#address_for
71
+ # @see AutoNetwork::Pool#address_for This method is a proxy for
72
+ # AutoNetwork::Pool#address_for
68
73
  def address_for(machine)
69
74
  with_pool_for(machine, read_only=true) do |pool|
70
75
  pool.address_for(machine)
@@ -3,12 +3,41 @@ require 'yaml/store'
3
3
  require 'auto_network/pool'
4
4
 
5
5
  module AutoNetwork
6
- # This is a specialized subclass of `YAML::Store` that knows how to
7
- # initialize and upgrade AutoNetwork Pool files.
6
+ # This is a specialized subclass of `YAML::Store` that manages data
7
+ # persistence for {AutoNetwork::PoolManager} instances.
8
8
  #
9
- # @api private
9
+ # In addition to managing serialization, the `YAML::Store` parent class also
10
+ # provides facilities for synchronizing state across multiple Vagrant
11
+ # processes. This subclass adds functionality for handling upgrades when the
12
+ # AutoNetwork serialization format changes.
13
+ #
14
+ # Format history:
15
+ #
16
+ # - **Version 1:** A single instance of {AutoNetwork::Pool} instance
17
+ # serialized to YAML. Never formalized with a version number.
18
+ #
19
+ # - **Version 2:** A hash containing a `poolfile_version` set to `2` and a
20
+ # `pools` sub-hash with keys created from Vagrant provider names and
21
+ # values of a single {AutoNetwork::Pool} instance serialized to YAML.
22
+ #
23
+ # @example Version 1
24
+ # --- !ruby/object:AutoNetwork::Pool
25
+ # # Single serialized AutoNetwork::Pool
26
+ #
27
+ # @example Version 2
28
+ # ---
29
+ # poolfile_version: 2
30
+ # pools:
31
+ # some_vagrant_provider_name: !ruby/object:AutoNetwork::Pool
32
+ # # Single serialized AutoNetwork::Pool
33
+ #
34
+ # @since 1.0.0
10
35
  class PoolStorage < YAML::Store
36
+ # An integer indicating the current AutoNetwork serialization format.
11
37
  POOLFILE_VERSION = 2
38
+
39
+ # The data structure that {AutoNetwork::PoolManager} instances
40
+ # expect to be available in all pool files.
12
41
  POOLFILE_SKELETON = {
13
42
  'poolfile_version' => POOLFILE_VERSION,
14
43
  'pools' => {},
@@ -17,6 +46,8 @@ module AutoNetwork
17
46
  # Creates a new pool file at a target location and fills it with default
18
47
  # data.
19
48
  #
49
+ # @see POOLFILE_SKELETON
50
+ #
20
51
  # @param path [String, Pathname] the location of the new pool file.
21
52
  # @return [void]
22
53
  def self.init(path)
@@ -29,8 +60,8 @@ module AutoNetwork
29
60
 
30
61
  private
31
62
 
32
- # Override the method inherited from `YAML::Store`. All `PStore` object
33
- # expect load to strictly return a `Hash`. This override allows us to
63
+ # Override the method inherited from `YAML::Store`. All `PStore` instances
64
+ # expect `load` to strictly return a `Hash`. This override allows us to
34
65
  # perform on-the-fly upgrading of data loaded from old pool files and
35
66
  # ensure the right structure is returned.
36
67
  #
@@ -51,12 +82,13 @@ module AutoNetwork
51
82
  # The loosely defined "version 1" of the pool file just serialized a single
52
83
  # {AutoNetwork::Pool} object. All AutoNetwork releases that used Version 1
53
84
  # files only supported the Vagrant VirtualBox provider, so we return a new
54
- # Hash-based data structure that includes the old Pool.
85
+ # Hash-based data structure that assigns the old Pool to the `virtualbox`
86
+ # provider.
55
87
  #
56
88
  # @api private
57
89
  #
58
90
  # @param data [AutoNetwork::Pool] the old pool object.
59
- # @return [Hash] a hash containing the old pool object.
91
+ # @return [Hash] a hash conforming to the current {POOLFILE_VERSION}.
60
92
  def upgrade_from_version_1!(data)
61
93
  {
62
94
  'poolfile_version' => POOLFILE_VERSION,
@@ -5,6 +5,8 @@ require 'vagrant/errors'
5
5
  module AutoNetwork
6
6
  # This module is used by AutoNetwork to store global state when running under
7
7
  # Vagrant. This module is mixed into the top-level AutoNetwork namespace.
8
+ #
9
+ # @since 1.0.0
8
10
  module Settings
9
11
 
10
12
  # An error class raised when an invalid value is assigned to a setting.
@@ -1,3 +1,3 @@
1
1
  module AutoNetwork
2
- VERSION = '1.0.0.rc1'
2
+ VERSION = '1.0.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-auto_network
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrien Thebo
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-12 00:00:00.000000000 Z
12
+ date: 2014-05-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -97,9 +97,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
97
  version: '0'
98
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - '>'
100
+ - - '>='
101
101
  - !ruby/object:Gem::Version
102
- version: 1.3.1
102
+ version: '0'
103
103
  requirements: []
104
104
  rubyforge_project:
105
105
  rubygems_version: 2.0.14