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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9824c4d7a2bb134adca5829f984969f86720dc4
4
- data.tar.gz: 73fe530e572ab550e9687465cca5c438edbcbcc5
3
+ metadata.gz: f4665668fe53dfd89b3e22ad931ce9b6789a60d5
4
+ data.tar.gz: 33b48d2b4172c091832f7a7c1ed26704daed2bc2
5
5
  SHA512:
6
- metadata.gz: 6dba0066af8932c660c487fbc01eda1540c7f592b67685ae5c54f6ab3cda9597e1f8afe8caf1aae22c2e495e46e66db5467722583d85fcd7627c56e0789b15b6
7
- data.tar.gz: afbef3709619a840633eb1acb073216d5ca17a47cee85a01cb5e88a54d068d6939bfdbb5ed4b735365b0a9f680ba31b260c1f0ae85bc27a6d428f226d9ecee0f
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(url, path)
28
- @url = url
29
- @path = path
30
- memoize [:fetch], Stash.new(DiskStash::Cache.new)
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
@@ -18,5 +18,5 @@
18
18
  #
19
19
 
20
20
  module Hoodie
21
- VERSION = '0.2.5'
21
+ VERSION = '0.2.6'
22
22
  end
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)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoodie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Harding