<s> '''<STR_LIT>''' <EOL> from __future__ import absolute_import <EOL> import re <EOL> import copy <EOL> def _check_rbenv ( ret , user = None ) : <EOL> '''<STR_LIT>''' <EOL> if not __salt__ [ '<STR_LIT>' ] ( user ) : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> return ret <EOL> def _ruby_installed ( ret , ruby , user = None ) : <EOL> '''<STR_LIT>''' <EOL> default = __salt__ [ '<STR_LIT>' ] ( runas = user ) <EOL> for version in __salt__ [ '<STR_LIT>' ] ( user ) : <EOL> if version == ruby : <EOL> ret [ '<STR_LIT:result>' ] = True <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> ret [ '<STR_LIT:default>' ] = default == ruby <EOL> break <EOL> return ret <EOL> def _check_and_install_ruby ( ret , ruby , default = False , user = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = _ruby_installed ( ret , ruby , user = user ) <EOL> if not ret [ '<STR_LIT:result>' ] : <EOL> if __salt__ [ '<STR_LIT>' ] ( ruby , runas = user ) : <EOL> ret [ '<STR_LIT:result>' ] = True <EOL> ret [ '<STR_LIT>' ] [ ruby ] = '<STR_LIT>' <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> ret [ '<STR_LIT:default>' ] = default <EOL> else : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> return ret <EOL> if default : <EOL> __salt__ [ '<STR_LIT>' ] ( ruby , runas = user ) <EOL> return ret <EOL> def installed ( name , default = False , user = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = { '<STR_LIT:name>' : name , '<STR_LIT:result>' : None , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { } } <EOL> rbenv_installed_ret = copy . deepcopy ( ret ) <EOL> if name . startswith ( '<STR_LIT>' ) : <EOL> name = re . sub ( r'<STR_LIT>' , '<STR_LIT>' , name ) <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( name ) <EOL> return ret <EOL> rbenv_installed_ret = _check_and_install_rbenv ( rbenv_installed_ret , user ) <EOL> if rbenv_installed_ret [ '<STR_LIT:result>' ] is False : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> return ret <EOL> else : <EOL> return _check_and_install_ruby ( ret , name , default , user = user ) <EOL> def _check_and_uninstall_ruby ( ret , ruby , user = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = _ruby_installed ( ret , ruby , user = user ) <EOL> if ret [ '<STR_LIT:result>' ] : <EOL> if ret [ '<STR_LIT:default>' ] : <EOL> __salt__ [ '<STR_LIT>' ] ( '<STR_LIT>' , runas = user ) <EOL> if __salt__ [ '<STR_LIT>' ] ( ruby , runas = user ) : <EOL> ret [ '<STR_LIT:result>' ] = True <EOL> ret [ '<STR_LIT>' ] [ ruby ] = '<STR_LIT>' <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> return ret <EOL> else : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> return ret <EOL> else : <EOL> ret [ '<STR_LIT:result>' ] = True <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( ruby ) <EOL> return ret <EOL> def absent ( name , user = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = { '<STR_LIT:name>' : name , '<STR_LIT:result>' : None , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { } } <EOL> if name . startswith ( '<STR_LIT>' ) : <EOL> name = re . sub ( r'<STR_LIT>' , '<STR_LIT>' , name ) <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( name ) <EOL> return ret <EOL> ret = _check_rbenv ( ret , user ) <EOL> if ret [ '<STR_LIT:result>' ] is False : <EOL> ret [ '<STR_LIT:result>' ] = True <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( name ) <EOL> return ret <EOL> else : <EOL> return _check_and_uninstall_ruby ( ret , name , user = user ) <EOL> def _check_and_install_rbenv ( ret , user = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = _check_rbenv ( ret , user ) <EOL> if ret [ '<STR_LIT:result>' ] is False : <EOL> if __salt__ [ '<STR_LIT>' ] ( user ) : <EOL> ret [ '<STR_LIT:result>' ] = True <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> else : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> else : <EOL> ret [ '<STR_LIT:result>' ] = True <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> return ret <EOL> def install_rbenv ( name , user = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = { '<STR_LIT:name>' : name , '<STR_LIT:result>' : None , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { } } <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> return ret <EOL> return _check_and_install_rbenv ( ret , user ) </s>
