puppet_forge 1.0.6 → 2.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.
- data/CHANGELOG.md +23 -0
- data/MAINTAINERS +13 -0
- data/README.md +48 -6
- data/lib/puppet_forge.rb +4 -0
- data/lib/puppet_forge/connection.rb +81 -0
- data/lib/puppet_forge/connection/connection_failure.rb +26 -0
- data/lib/puppet_forge/error.rb +34 -0
- data/lib/{her → puppet_forge}/lazy_accessors.rb +20 -27
- data/lib/{her → puppet_forge}/lazy_relations.rb +28 -9
- data/lib/puppet_forge/middleware/symbolify_json.rb +72 -0
- data/lib/puppet_forge/tar.rb +10 -0
- data/lib/puppet_forge/tar/mini.rb +81 -0
- data/lib/puppet_forge/unpacker.rb +68 -0
- data/lib/puppet_forge/v3.rb +11 -0
- data/lib/puppet_forge/v3/base.rb +106 -73
- data/lib/puppet_forge/v3/base/paginated_collection.rb +23 -14
- data/lib/puppet_forge/v3/metadata.rb +197 -0
- data/lib/puppet_forge/v3/module.rb +2 -1
- data/lib/puppet_forge/v3/release.rb +33 -8
- data/lib/puppet_forge/v3/user.rb +2 -0
- data/lib/puppet_forge/version.rb +1 -1
- data/puppet_forge.gemspec +6 -3
- data/spec/fixtures/v3/modules/puppetlabs-apache.json +21 -1
- data/spec/fixtures/v3/releases/puppetlabs-apache-0.0.1.json +4 -1
- data/spec/integration/forge/v3/module_spec.rb +79 -0
- data/spec/integration/forge/v3/release_spec.rb +75 -0
- data/spec/integration/forge/v3/user_spec.rb +70 -0
- data/spec/spec_helper.rb +15 -8
- data/spec/unit/forge/connection/connection_failure_spec.rb +30 -0
- data/spec/unit/forge/connection_spec.rb +53 -0
- data/spec/unit/{her → forge}/lazy_accessors_spec.rb +20 -13
- data/spec/unit/{her → forge}/lazy_relations_spec.rb +60 -46
- data/spec/unit/forge/middleware/symbolify_json_spec.rb +63 -0
- data/spec/unit/forge/tar/mini_spec.rb +85 -0
- data/spec/unit/forge/tar_spec.rb +9 -0
- data/spec/unit/forge/unpacker_spec.rb +58 -0
- data/spec/unit/forge/v3/base/paginated_collection_spec.rb +68 -46
- data/spec/unit/forge/v3/base_spec.rb +1 -1
- data/spec/unit/forge/v3/metadata_spec.rb +300 -0
- data/spec/unit/forge/v3/module_spec.rb +14 -36
- data/spec/unit/forge/v3/release_spec.rb +9 -30
- data/spec/unit/forge/v3/user_spec.rb +7 -7
- metadata +127 -41
- checksums.yaml +0 -7
- data/lib/puppet_forge/middleware/json_for_her.rb +0 -37
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: e3eb04785957d801bbfd33d52bd3f859db06f4a9
|
4
|
-
data.tar.gz: 8defe188b3118818d7222b1d16375838660b3322
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 28e43bfe05a501839ec3cc3939d425c9d12ca066155943da0b5a394360a9a7f5c832d692a895cefce8fe8001a0a6c177e26d22f77a1fa08521a44c728814b055
|
7
|
-
data.tar.gz: f889839152a072ad099881cbf501c4466219ffc6dc49144d753c1c9f83a751dae7532efcd1fc9be058bd2a0e4e4fc4b595dc5e5d51084d8766627b1271c70aa9
|
@@ -1,37 +0,0 @@
|
|
1
|
-
module PuppetForge
|
2
|
-
|
3
|
-
# Namespace for Faraday middleware used by this project.
|
4
|
-
module Middleware
|
5
|
-
|
6
|
-
# This middleware transforms the incoming JSON data into the format
|
7
|
-
# expected by Her, but does so only conditionally, based on the incoming
|
8
|
-
# content type. This allows the model's simple Her connection to be used to
|
9
|
-
# download non-JSON content without blowing up.
|
10
|
-
#
|
11
|
-
# @private
|
12
|
-
class JSONForHer < Her::Middleware::DefaultParseJSON
|
13
|
-
|
14
|
-
# Overrides Her::Middleware::DefaultParseJSON#parse with a way to bypass
|
15
|
-
# the default handling of a :metadata key – we want metadata to be handled
|
16
|
-
# lazily, just like every other attribute, and we don't use the :metadata
|
17
|
-
# key the way they expect us to.
|
18
|
-
#
|
19
|
-
# @see Her::Middleware::DefaultParseJSON#parse
|
20
|
-
def parse(body)
|
21
|
-
json = parse_json(body)
|
22
|
-
errors = json.delete(:errors) || {}
|
23
|
-
return { :data => json, :errors => errors, :metadata => {} }
|
24
|
-
end
|
25
|
-
|
26
|
-
# Overrides Her::Middleware::DefaultParseJSON#on_complete with a bail-out
|
27
|
-
# plan - if the content-type is non-JSON, the JSON processing is skipped.
|
28
|
-
#
|
29
|
-
# @see Her::Middleware::DefaultParseJSON#on_complete
|
30
|
-
def on_complete(env)
|
31
|
-
env[:response] ||= env[:response_headers] # Faraday forward compatibility with 0.9.x
|
32
|
-
return env unless env[:response]['content-type'] =~ /\bjson($|;)/
|
33
|
-
super
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|