sfpagent 0.2.10 → 0.3.0

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.

data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.10
1
+ 0.3.0
@@ -14,6 +14,7 @@ libdir = File.expand_path(File.dirname(__FILE__))
14
14
 
15
15
  require libdir + '/sfpagent/helper.rb'
16
16
  require libdir + '/sfpagent/runtime.rb'
17
+ require libdir + '/sfpagent/templateEngine.rb'
17
18
  require libdir + '/sfpagent/module.rb'
18
19
  require libdir + '/sfpagent/bsig.rb'
19
20
  require libdir + '/sfpagent/agent.rb'
@@ -1,5 +1,5 @@
1
1
  #
2
- # predefined methods: update_state, apply, reset, resolve
2
+ # predefined methods: update_state, apply, reset, resolve, resolve_model, resolve_state
3
3
  #
4
4
  module Sfp::Resource
5
5
  @@resource = Object.new.extend(Sfp::Resource)
@@ -49,6 +49,21 @@ module Sfp::Resource
49
49
  commands = [commands.to_s] if not commands.is_a?(Array)
50
50
  commands.each { |c| raise Exception, "Cannot execute: #{c}" if !system(c) }
51
51
  end
52
+
53
+ def log
54
+ Sfp::Agent.logger
55
+ end
56
+
57
+ # copy source file to destination
58
+ # if source is an HTTP/HTTPS/FTP url, then use 'wget' to download the file
59
+ #
60
+ def copy(source, destination)
61
+ if source =~ /^(http|https|ftp):\/\/.+/
62
+ system "wget -O #{destination} #{source}"
63
+ else
64
+ system "cp #{source} #{destination}"
65
+ end
66
+ end
52
67
  end
53
68
 
54
69
  module Sfp::Module
@@ -0,0 +1,32 @@
1
+ require 'erb'
2
+ require 'ostruct'
3
+
4
+ class Sfp::TemplateEngine < OpenStruct
5
+ def render(template)
6
+ ERB.new(template).result(binding)
7
+ end
8
+
9
+ def render_to_file(template, file)
10
+ result = render(template)
11
+ File.open(file, 'w+') { |f| f.write(result) }
12
+ end
13
+
14
+ def render_file(file)
15
+ render_to_file(File.read(file), file)
16
+ end
17
+
18
+ def self.render(map, template)
19
+ renderer = TemplateEngine.new(map)
20
+ renderer.render(template)
21
+ end
22
+
23
+ def self.render_to_file(map, template, file)
24
+ renderer = TemplateEngine.new(map)
25
+ renderer.render_to_file(template, file)
26
+ end
27
+
28
+ def self.render_file(map, file)
29
+ renderer = TemplateEngine.new(map)
30
+ renderer.render_file(file)
31
+ end
32
+ end
@@ -16,5 +16,5 @@ Gem::Specification.new do |s|
16
16
  s.homepage = 'https://github.com/herry13/sfpagent'
17
17
  s.rubyforge_project = 'sfpagent'
18
18
 
19
- s.add_dependency 'sfp', '~> 0.3.12'
19
+ s.add_dependency 'sfp', '~> 0.3.16'
20
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sfpagent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.10
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,15 +13,15 @@ date: 2013-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sfp
16
- requirement: &12429380 !ruby/object:Gem::Requirement
16
+ requirement: &9972640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.3.12
21
+ version: 0.3.16
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *12429380
24
+ version_requirements: *9972640
25
25
  description: A Ruby implementation of SFP agent.
26
26
  email: herry13@gmail.com
27
27
  executables:
@@ -44,6 +44,7 @@ files:
44
44
  - lib/sfpagent/module.rb
45
45
  - lib/sfpagent/runtime.rb
46
46
  - lib/sfpagent/sfplanner.rb
47
+ - lib/sfpagent/templateEngine.rb
47
48
  - sfpagent.gemspec
48
49
  homepage: https://github.com/herry13/sfpagent
49
50
  licenses: