Class: Sprinkle::Installers::Pecl
- Defined in:
- lib/sprinkle/installers/pecl.rb
Overview
Pecl extension installed
Installs the specified pecl extension
Example Usage
package :php_stuff do
pecl 'mongo'
verify { has_pecl 'mongo' }
end
You can optionally pass a version number to both ‘pecl` and `has_pecl`:
package :php_stuff do
pecl 'mongo', :version => "1.4.3"
verify { has_pecl 'mongo', :version => "1.4.3" }
end
Some extensions need an ini file. You can have that generated, by passing the ‘:ini_file` option:
package :php_stuff do
pecl 'mongo', :ini_file => true
end
If you need more fine grained control of the location or contents of the ini file, use:
package :php_stuff do
pecl 'mongo', :ini_file => { :path => "/etc/php5/apache2/php.ini",
:content => "extension=mongo.so",
:sudo => true }
end
Instance Attribute Summary collapse
-
#package_name ⇒ Object
Returns the value of attribute package_name.
-
#package_version ⇒ Object
Returns the value of attribute package_version.
Attributes inherited from Installer
#delivery, #options, #package, #post, #pre
Instance Method Summary collapse
-
#initialize(parent, package_name, options = {}, &block) ⇒ Pecl
constructor
:nodoc:.
- #setup_ini ⇒ Object
- #to_ini_file_hash(s) ⇒ Object
Methods inherited from Installer
#announce, api, #commands_from_block, #defer, #escape_shell_arg, inherited, #install_sequence, #method_missing, #per_host?, #post_process, #process, subclasses, verify_api
Methods included from Sudo
#sudo?, #sudo_cmd, #sudo_stack
Methods included from Attributes
Constructor Details
#initialize(parent, package_name, options = {}, &block) ⇒ Pecl
:nodoc:
50 51 52 53 54 55 56 |
# File 'lib/sprinkle/installers/pecl.rb', line 50 def initialize(parent, package_name, = {}, &block) #:nodoc: super parent, &block @package_name = package_name @package_version = [:version] @ini_file = [:ini_file] setup_ini if @ini_file end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Sprinkle::Installers::Installer
Instance Attribute Details
#package_name ⇒ Object
Returns the value of attribute package_name.
36 37 38 |
# File 'lib/sprinkle/installers/pecl.rb', line 36 def package_name @package_name end |
#package_version ⇒ Object
Returns the value of attribute package_version.
36 37 38 |
# File 'lib/sprinkle/installers/pecl.rb', line 36 def package_version @package_version end |
Instance Method Details
#setup_ini ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/sprinkle/installers/pecl.rb', line 58 def setup_ini @ini_file = to_ini_file_hash(@ini_file) text = @ini_file[:content] || "extension=#{@package_name}.so" path = @ini_file[:path] || "/etc/php5/conf.d/#{@package_name}.ini" use_sudo = @ini_file[:sudo]===false ? false : true post(:install) do file(path, :content => text, :sudo => use_sudo) end end |