| Total Complexity | 4 |
| Total Lines | 54 |
| Duplicated Lines | 0 % |
| Changes | 2 | ||
| Bugs | 0 | Features | 0 |
| 1 | from coalib.bears.requirements.PackageRequirement import PackageRequirement |
||
| 5 | class NpmRequirement(PackageRequirement): |
||
| 6 | """ |
||
| 7 | This class is a subclass of ``PackageRequirement``, and helps specifying |
||
| 8 | requirements from ``npm``, without using the manager name. |
||
| 9 | """ |
||
| 10 | |||
| 11 | def __init__(self, package, version=""): |
||
| 12 | """ |
||
| 13 | Constructs a new ``NpmRequirement``, using the ``PackageRequirement`` |
||
| 14 | constructor. |
||
| 15 | |||
| 16 | >>> pr = NpmRequirement('ramllint', '6.2') |
||
| 17 | >>> pr.manager |
||
| 18 | 'npm' |
||
| 19 | >>> pr.package |
||
| 20 | 'ramllint' |
||
| 21 | >>> pr.version |
||
| 22 | '6.2' |
||
| 23 | |||
| 24 | :param package: A string with the name of the package to be installed. |
||
| 25 | :param version: A version string. Leave empty to specify latest version. |
||
| 26 | """ |
||
| 27 | PackageRequirement.__init__(self, 'npm', package, version) |
||
| 28 | |||
| 29 | def install_command(self): |
||
| 30 | """ |
||
| 31 | Creates the installation command for the instance of the class. |
||
| 32 | |||
| 33 | >>> pr = NpmRequirement('alex', '2') |
||
| 34 | >>> pr.install_command() |
||
| 35 | 'npm install alex@2' |
||
| 36 | |||
| 37 | :param return: A string with the installation command. |
||
| 38 | """ |
||
| 39 | return "npm install {}@{}".format(self.package, self.version) |
||
| 40 | |||
| 41 | def is_installed(self): |
||
| 42 | """ |
||
| 43 | Checks if the dependency is installed. |
||
| 44 | |||
| 45 | >>> pr = NpmRequirement('npm') |
||
| 46 | >>> pr.is_installed() |
||
| 47 | True |
||
| 48 | |||
| 49 | >>> pr = NpmRequirement('some_package') |
||
| 50 | >>> pr.is_installed() |
||
| 51 | False |
||
| 52 | |||
| 53 | :param return: True if dependency is installed, false otherwise. |
||
| 54 | """ |
||
| 55 | if shutil.which(self.package): |
||
| 56 | return True |
||
| 57 | else: |
||
| 58 | return False |
||
| 59 |