| Total Complexity | 3 | 
| Total Lines | 42 | 
| 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 |         >>> NpmRequirement('alex', '2').install_command() | 
            ||
| 34 | 'npm install alex@2'  | 
            ||
| 35 | |||
| 36 | :param return: A string with the installation command.  | 
            ||
| 37 | """  | 
            ||
| 38 |         return "npm install {}@{}".format(self.package, self.version) | 
            ||
| 39 | |||
| 40 | def is_installed(self):  | 
            ||
| 41 | """  | 
            ||
| 42 | Checks if the dependency is installed.  | 
            ||
| 43 | |||
| 44 | :param return: True if dependency is installed, false otherwise.  | 
            ||
| 45 | """  | 
            ||
| 46 | return not call_without_output(['npm', 'show', self.package])  | 
            ||
| 47 |