From e780ef046c962e5057d9b2a8664993722585dc94 Mon Sep 17 00:00:00 2001 From: Jakukyo Friel Date: Sun, 22 Mar 2015 21:29:15 +0800 Subject: [PATCH 1/2] Add a composer (PHP) installer. --- lib/sprinkle/installers/composer.rb | 39 +++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lib/sprinkle/installers/composer.rb diff --git a/lib/sprinkle/installers/composer.rb b/lib/sprinkle/installers/composer.rb new file mode 100644 index 0000000..cf91ae9 --- /dev/null +++ b/lib/sprinkle/installers/composer.rb @@ -0,0 +1,39 @@ +module Sprinkle + module Installers + # The composer package installer installs PHP packages. + # + # + # == Example Usage + # + # A simple installation: + # + # package :magic_beans do + # description "Beans beans they're good for your heart..." + # composer 'magic_beans' + # end + class Composer < Installer + + api do + def composer(name, options = {}, &block) + install Composer.new(self, name, options, &block) + end + end + + attr_accessor :composer #:nodoc: + + def initialize(parent, composer, options = {}, &block) #:nodoc: + super parent, options, &block + @composer = composer + end + + + protected + + + def install_commands #:nodoc: + cmd = "#{sudo_cmd}composer global require '#{composer}'" + end + + end + end +end From e8d7c7fe12317017aace72c3bd3acbfdfd731aac Mon Sep 17 00:00:00 2001 From: Jakukyo Friel Date: Mon, 11 Jul 2016 19:52:53 +0800 Subject: [PATCH 2/2] composer: refactor to use `auto_api`. --- lib/sprinkle/installers/composer.rb | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/lib/sprinkle/installers/composer.rb b/lib/sprinkle/installers/composer.rb index cf91ae9..cfe9c6e 100644 --- a/lib/sprinkle/installers/composer.rb +++ b/lib/sprinkle/installers/composer.rb @@ -9,29 +9,28 @@ module Installers # # package :magic_beans do # description "Beans beans they're good for your heart..." - # composer 'magic_beans' + # composer 'magic/beans' # end + # + # You may also specify multiple packages as an array: + # + # package :magic_beans do + # composer %w(magic/beans magic/sauce) + # end + # class Composer < Installer - api do - def composer(name, options = {}, &block) - install Composer.new(self, name, options, &block) - end - end - - attr_accessor :composer #:nodoc: - - def initialize(parent, composer, options = {}, &block) #:nodoc: - super parent, options, &block - @composer = composer - end - + ## + # installs PHP packagists passed + # :method: composer + # :call-seq: composer(*packages) + auto_api protected def install_commands #:nodoc: - cmd = "#{sudo_cmd}composer global require '#{composer}'" + cmd = "#{sudo_cmd}composer global require #{@packages.join(' ')}" end end