hoodie 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hoodie/rash.rb +44 -15
- data/lib/hoodie/version.rb +1 -1
- data/lib/hoodie.rb +0 -14
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4665668fe53dfd89b3e22ad931ce9b6789a60d5
|
4
|
+
data.tar.gz: 33b48d2b4172c091832f7a7c1ed26704daed2bc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02981e87e3788242e43b5cd7febd6a4ebd0174032a3616408ac4e62c2fd9dfe86ba34049f3353027d144d1928e48a58955e3f79a3a751914a9fcd686c540e4e8
|
7
|
+
data.tar.gz: 00c57d4d55f5e8195fc103f13cb3ecd494f6c01b9485898f4c56c8c8ae1af73fed30f29e61163b8d0ea0b114a03137baecf91fa5a8768b8f0a0e4dc2e8b96f8d
|
data/lib/hoodie/rash.rb
CHANGED
@@ -21,24 +21,17 @@
|
|
21
21
|
require 'anemone' unless defined?(Anemone)
|
22
22
|
require 'hoodie/memoizable' unless defined?(Memoizable)
|
23
23
|
|
24
|
+
def rash
|
25
|
+
rash ||= Rash.new(node)
|
26
|
+
end
|
27
|
+
|
24
28
|
class Rash
|
25
29
|
include Memoizable
|
26
30
|
|
27
|
-
def initialize(
|
28
|
-
@
|
29
|
-
|
30
|
-
|
31
|
-
@store = fetch
|
32
|
-
end
|
33
|
-
|
34
|
-
def fetch
|
35
|
-
results = []
|
36
|
-
Anemone.crawl(@url, discard_page_bodies: true) do |anemone|
|
37
|
-
anemone.on_pages_like(/\/#{@path}\/\w+\/\w+\.(ini|zip)$/i) do |page|
|
38
|
-
results << page.to_hash
|
39
|
-
end
|
40
|
-
end
|
41
|
-
results.reduce({}, :recursive_merge)
|
31
|
+
def initialize(node)
|
32
|
+
@node = node
|
33
|
+
memoize [:fetch, :path_for_os_ver], Stash.new(DiskStash::Cache.new)
|
34
|
+
@store ||= fetch
|
42
35
|
end
|
43
36
|
|
44
37
|
# Retrieves the value for a given key
|
@@ -66,8 +59,44 @@ class Rash
|
|
66
59
|
def keys
|
67
60
|
@store.keys
|
68
61
|
end
|
62
|
+
|
63
|
+
private # P R O P R I E T À P R I V A T A Vietato L'accesso
|
64
|
+
|
65
|
+
# Returns os partial path to the file repository.
|
66
|
+
#
|
67
|
+
# @return [String] partial path to file repo
|
68
|
+
#
|
69
|
+
def version_path
|
70
|
+
win_version = Chef::ReservedNames::Win32::Version.new
|
71
|
+
version_path = case # Targeted platform path
|
72
|
+
when win_version.windows_server_2008? then @node[:winini][:w2k8_package_path]
|
73
|
+
when win_version.windows_server_2008_r2? then @node[:winini][:w2k8r2_package_path]
|
74
|
+
when win_version.windows_server_2012_r2? then @node[:winini][:w2k12r2_package_path]
|
75
|
+
else Chef::Log.warn 'This is not a supported Windows platform.'
|
76
|
+
end
|
77
|
+
version_path
|
78
|
+
end
|
79
|
+
|
80
|
+
# Creates or retrieves the rash key/value store for the node
|
81
|
+
#
|
82
|
+
# @return nothing
|
83
|
+
#
|
84
|
+
def fetch
|
85
|
+
results = []
|
86
|
+
Anemone.crawl(@url, discard_page_bodies: true) do |anemone|
|
87
|
+
anemone.on_pages_like(/\/#{version_path}\/\w+\/\w+\.(ini|zip)$/i) do |page|
|
88
|
+
results << page.to_hash
|
89
|
+
end
|
90
|
+
end
|
91
|
+
results.reduce({}, :recursive_merge)
|
92
|
+
end
|
69
93
|
end
|
70
94
|
|
95
|
+
# Include the helpers module into the main recipe DSL
|
96
|
+
Chef::Recipe.send(:include, Rash)
|
97
|
+
Chef::Resource.send(:include, Rash)
|
98
|
+
Chef::Provider.send(:include, Rash)
|
99
|
+
|
71
100
|
# to_hash smoke cache
|
72
101
|
#
|
73
102
|
module Anemone
|
data/lib/hoodie/version.rb
CHANGED
data/lib/hoodie.rb
CHANGED
@@ -27,17 +27,3 @@ require 'hoodie/stash'
|
|
27
27
|
require 'hoodie/blank'
|
28
28
|
require 'hoodie/hash'
|
29
29
|
require 'hoodie/os'
|
30
|
-
|
31
|
-
require 'chef/recipe'
|
32
|
-
require 'chef/resource'
|
33
|
-
require 'chef/provider'
|
34
|
-
|
35
|
-
class Chef
|
36
|
-
module Hoodie
|
37
|
-
require_relative 'hoodie/Rash'
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
Chef::Recipe.send(:include, Chef::Hoodie::DSL)
|
42
|
-
Chef::Resource.send(:include, Chef::Hoodie::DSL)
|
43
|
-
Chef::Provider.send(:include, Chef::Hoodie::DSL)
|