sfpagent 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sfpagent might be problematic. Click here for more details.

@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fe2ede39bf427923db9d74e08feb35a2f73804d2
4
+ data.tar.gz: 57b4f30d742a9850c04db2b2cde793ce6e8ac744
5
+ SHA512:
6
+ metadata.gz: a441bf2082df51400315fb8146b6b115c0df4defd57353e7487d5f1131618d4e6f95c00318717a652869d38f7c5291a5e88c0f3c20796ac95c469e8f6f443bc3
7
+ data.tar.gz: ea2716ccce08b9672b6ab5c5a40f36c6be0a200652304b874d1925840aeee1b186b9a672983695cff590feeb36b2cfb6e5320aca947ec09f4ed970af1bed7fec
data/Rakefile CHANGED
@@ -1,13 +1,13 @@
1
1
  def name
2
- @name ||= Dir['*.gemspec'].first.split('.').first
2
+ @name ||= Dir['*.gemspec'].first.split('.').first
3
3
  end
4
4
 
5
5
  def version
6
- File.read('VERSION').strip
6
+ File.read('VERSION').strip
7
7
  end
8
8
 
9
9
  def date
10
- Date.today.to_s
10
+ Date.today.to_s
11
11
  end
12
12
 
13
13
  def test_script
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.5
1
+ 0.3.6
@@ -8,11 +8,9 @@ module Sfp::Resource
8
8
  attr_reader :state, :model
9
9
 
10
10
  def init(model={})
11
- @model = {}
12
11
  @state = {}
12
+ @model = (model.length <= 0 ? {} : Sfp.to_ruby(model))
13
13
  @synchronized = []
14
-
15
- update_model(model)
16
14
  end
17
15
 
18
16
  def update_state
@@ -30,30 +28,21 @@ module Sfp::Resource
30
28
  end
31
29
 
32
30
  protected
33
- def update_model(model)
34
- @model = Sfp.to_ruby(model)
35
- end
36
-
37
- def reset
31
+ def to_model
38
32
  @state = {}
39
33
  @model.each { |k,v| @state[k] = v }
40
34
  end
41
35
 
42
- def resolve(path)
36
+ def resolve_state(path)
43
37
  Sfp::Agent.resolve(path)
44
38
  end
45
39
 
46
- alias_method :resolve_state, :resolve
40
+ alias_method :resolve, :resolve_state
47
41
 
48
42
  def resolve_model(path)
49
43
  Sfp::Agent.resolve_model(path)
50
44
  end
51
45
 
52
- def exec_seq(*commands)
53
- commands = [commands.to_s] if not commands.is_a?(Array)
54
- commands.each { |c| raise Exception, "Error on executing '#{c}'" if !shell(c) }
55
- end
56
-
57
46
  def log
58
47
  Sfp::Agent.logger
59
48
  end
@@ -66,7 +55,13 @@ module Sfp::Resource
66
55
  shell "cp -rf #{source} #{destination}"
67
56
  end
68
57
 
69
- def render(file, map={})
58
+ def render(string, map={})
59
+ model = @model.clone
60
+ map.each { |k,v| model[k] = v }
61
+ ::Sfp::Template.render_file(file, model)
62
+ end
63
+
64
+ def render_file(file, map={})
70
65
  model = @model.clone
71
66
  map.each { |k,v| model[k] = v }
72
67
  ::Sfp::Template.render_file(file, model)
@@ -97,12 +97,12 @@ class Sfp::Runtime
97
97
 
98
98
  def update_model(model, root, path)
99
99
  object = {}
100
- if model['_context'] == 'object' and model['_isa'].to_s.isref and model['_isa'].to_s != '$.Object'
100
+ if model['_context'] == 'object' and model['_isa'].to_s.isref #and model['_isa'].to_s != '$.Object'
101
101
  object[:_self] = instantiate_sfp_object(model, root)
102
102
  end
103
103
 
104
104
  model.each do |key,child|
105
- if key[0,1] != '_' and child.is_a?(Hash) and child['_context'] == 'object' and child['_isa'].to_s != '$.Object'
105
+ if key[0,1] != '_' and child.is_a?(Hash) and child['_context'] == 'object' #and child['_isa'].to_s != '$.Object'
106
106
  object[key] = update_model(child, root, path.push(key))
107
107
  end
108
108
  end
@@ -2,19 +2,39 @@ require 'erb'
2
2
  require 'ostruct'
3
3
 
4
4
  class Sfp::Template < OpenStruct
5
- def render(template)
6
- ERB.new(template).result(binding)
5
+ def initialize(resolver=nil)
6
+ @resolver = resolver
7
7
  end
8
8
 
9
- def render_to_file(template, file)
10
- result = render(template)
11
- File.open(file, 'w+') { |f| f.write(result) }
9
+ def resolve(path)
10
+ (@resolver.nil? ? nil : @resolver.resolve(path))
11
+ end
12
+
13
+ # Render given template string, and then return the result
14
+ # @template template string to be rendered
15
+ #
16
+ def render(template)
17
+ ERB.new(template).result(binding)
12
18
  end
13
19
 
20
+ # Render given file, and then save the result back to the file
21
+ # @file target file that will be rendered
22
+ #
14
23
  def render_file(file)
15
- render_to_file(File.read(file), file)
24
+ File.open(file, File::RDWR|File::CREAT) do |f|
25
+ f.flock(File::LOCK_EX)
26
+ result = render(f.read)
27
+ f.rewind
28
+ f.write(result)
29
+ f.flush
30
+ f.truncate(f.pos)
31
+ end
16
32
  end
17
33
 
34
+ # Render given template string, and then return the result
35
+ # @template template string to be rendered
36
+ # @map a Hash of accessible variables in the template
37
+ #
18
38
  def self.render(template, map)
19
39
  if map.is_a?(Hash)
20
40
  renderer = ::Sfp::Template.new(map)
@@ -26,11 +46,10 @@ class Sfp::Template < OpenStruct
26
46
  end
27
47
  end
28
48
 
29
- def self.render_to_file(template, file, map)
30
- renderer = ::Sfp::Template.new(map)
31
- renderer.render_to_file(template, file)
32
- end
33
-
49
+ # Render given file, and then save the result back to the file
50
+ # @file target file to be rendered
51
+ # @map a Hash of accessible variables in the template
52
+ #
34
53
  def self.render_file(file, map)
35
54
  renderer = ::Sfp::Template.new(map)
36
55
  renderer.render_file(file)
@@ -1,22 +1,22 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'sfpagent'
3
- s.version = File.read(File.join(File.dirname(__FILE__), 'VERSION')).sub(/\n/, '')
4
- s.date = '2013-08-13'
3
+ s.version = File.read(File.dirname(__FILE__) + '/VERSION').strip
4
+ s.date = File.mtime(File.dirname(__FILE__) + '/VERSION').strftime("%Y-%m-%d")
5
5
  s.summary = 'SFP Agent'
6
6
  s.description = 'A Ruby implementation of SFP agent.'
7
7
  s.authors = ['Herry']
8
8
  s.email = 'herry13@gmail.com'
9
9
 
10
- s.executables << 'sfpagent'
10
+ s.executables << 'sfpagent'
11
11
  s.files = `git ls-files`.split("\n").select { |n| !(n =~ /^(modules|test)\/.*/) }
12
12
 
13
13
  s.require_paths = ['lib']
14
- s.license = 'BSD'
14
+ s.license = 'BSD'
15
15
 
16
- s.homepage = 'https://github.com/herry13/sfpagent'
16
+ s.homepage = 'https://github.com/herry13/sfpagent'
17
17
  s.rubyforge_project = 'sfpagent'
18
18
 
19
- s.add_dependency 'sfp', '~> 0.3.16'
19
+ s.add_dependency 'sfp', '~> 0.3.17'
20
20
 
21
21
  s.add_development_dependency 'rake'
22
22
  end
metadata CHANGED
@@ -1,38 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sfpagent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
5
- prerelease:
4
+ version: 0.3.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Herry
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-08-13 00:00:00.000000000 Z
11
+ date: 2013-11-01 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: sfp
16
- requirement: &7650780 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: 0.3.16
19
+ version: 0.3.17
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *7650780
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.3.17
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rake
27
- requirement: &6831420 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *6831420
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  description: A Ruby implementation of SFP agent.
37
42
  email: herry13@gmail.com
38
43
  executables:
@@ -65,26 +70,25 @@ files:
65
70
  homepage: https://github.com/herry13/sfpagent
66
71
  licenses:
67
72
  - BSD
73
+ metadata: {}
68
74
  post_install_message:
69
75
  rdoc_options: []
70
76
  require_paths:
71
77
  - lib
72
78
  required_ruby_version: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
- - - ! '>='
80
+ - - '>='
76
81
  - !ruby/object:Gem::Version
77
82
  version: '0'
78
83
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
84
  requirements:
81
- - - ! '>='
85
+ - - '>='
82
86
  - !ruby/object:Gem::Version
83
87
  version: '0'
84
88
  requirements: []
85
89
  rubyforge_project: sfpagent
86
- rubygems_version: 1.8.11
90
+ rubygems_version: 2.1.10
87
91
  signing_key:
88
- specification_version: 3
92
+ specification_version: 4
89
93
  summary: SFP Agent
90
94
  test_files: []