Class: FlutterRb::PubspecParser
- Inherits:
-
Object
- Object
- FlutterRb::PubspecParser
- Defined in:
- lib/flutter_rb/project/specs/flutter/pubspec.rb
Overview
pubspec.yaml parser
Instance Method Summary collapse
- #dev_dependencies(pubspec) ⇒ DevDependency[]
-
#initialize(path, pubspec) ⇒ PubspecParser
constructor
A new instance of PubspecParser.
- #parse ⇒ Pubspec
- #platform_plugins(pubspec) ⇒ PlatformPlugin[]
- #pubspec_info(pubspec) ⇒ PubspecInfo
Constructor Details
#initialize(path, pubspec) ⇒ PubspecParser
Returns a new instance of PubspecParser.
28 29 30 31 |
# File 'lib/flutter_rb/project/specs/flutter/pubspec.rb', line 28 def initialize(path, pubspec) @path = path @pubspec = pubspec end |
Instance Method Details
#dev_dependencies(pubspec) ⇒ DevDependency[]
57 58 59 60 61 62 63 64 |
# File 'lib/flutter_rb/project/specs/flutter/pubspec.rb', line 57 def dev_dependencies(pubspec) pubspec['dev_dependencies']&.map do |dev_dependency| DevDependency.new( dev_dependency.first, dev_dependency.last ) end end |
#parse ⇒ Pubspec
34 35 36 37 38 39 40 41 |
# File 'lib/flutter_rb/project/specs/flutter/pubspec.rb', line 34 def parse Pubspec.new( @path, pubspec_info(@pubspec), dev_dependencies(@pubspec), platform_plugins(@pubspec) ) end |
#platform_plugins(pubspec) ⇒ PlatformPlugin[]
68 69 70 71 72 73 74 75 76 77 |
# File 'lib/flutter_rb/project/specs/flutter/pubspec.rb', line 68 def platform_plugins(pubspec) pubspec.dig('flutter', 'plugin', 'platforms')&.map do |platform_plugin| plugin_info = platform_plugin.last PlatformPlugin.new( plugin_info['package'], plugin_info['pluginClass'], platform_plugin.first == Platform::ANDROID ? Platform::ANDROID : Platform::IOS ) end end |
#pubspec_info(pubspec) ⇒ PubspecInfo
45 46 47 48 49 50 51 52 53 |
# File 'lib/flutter_rb/project/specs/flutter/pubspec.rb', line 45 def pubspec_info(pubspec) PubspecInfo.new( pubspec['name'], pubspec['description'], pubspec['version'], pubspec['author'], pubspec['homepage'] ) end |