Class: Dev::EndOfLife::Php
- Defined in:
- lib/firespring_dev_commands/eol/php.rb
Instance Attribute Summary collapse
-
#lockfile ⇒ Object
readonly
Returns the value of attribute lockfile.
-
#php ⇒ Object
readonly
Returns the value of attribute php.
Instance Method Summary collapse
- #composer_products ⇒ Object
- #default_products ⇒ Object
-
#initialize(php = Dev::Php.new) ⇒ Php
constructor
A new instance of Php.
Constructor Details
Instance Attribute Details
#lockfile ⇒ Object (readonly)
Returns the value of attribute lockfile.
4 5 6 |
# File 'lib/firespring_dev_commands/eol/php.rb', line 4 def lockfile @lockfile end |
#php ⇒ Object (readonly)
Returns the value of attribute php.
4 5 6 |
# File 'lib/firespring_dev_commands/eol/php.rb', line 4 def php @php end |
Instance Method Details
#composer_products ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/firespring_dev_commands/eol/php.rb', line 15 def composer_products eol = Dev::EndOfLife.new major_version_only_products = ['laravel'] laravel_products = ['laravel/framework'] symfony_products = ['symfony/http-client', 'symfony/mailer', 'symfony/mailchimp-mailer'] [].tap do |ary| packages = JSON.parse(File.read(lockfile))&.fetch('packages', []) packages&.each do |package| name = package['name'] product = if laravel_products.include?(name) 'laravel' elsif symfony_products.include?(name) 'symfony' else name end # Make sure what we found is supported by the EOL library next unless eol.product?(product) version = package['version'].reverse.split('.')[-2..].join('.').reverse.tr('v', '') version = version.split('.').first if major_version_only_products.include?(product) version.chop! if version.end_with?('.00') ary << Dev::EndOfLife::ProductVersion.new(product, version, name) end end end |
#default_products ⇒ Object
11 12 13 |
# File 'lib/firespring_dev_commands/eol/php.rb', line 11 def default_products composer_products end |