Class: CocoaPodsFixReactNative
- Inherits:
-
Object
- Object
- CocoaPodsFixReactNative
- Defined in:
- lib/cocoapods-fix-react-native/fix_with_context.rb
Instance Method Summary collapse
Instance Method Details
#post_fix_with_context(context) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/cocoapods-fix-react-native/fix_with_context.rb', line 4 def post_fix_with_context(context) # Get the current version of React Native in your app react_spec = nil context.umbrella_targets.each do |target| react = target.specs.find { |s| s.name == 'React' || s.name.start_with?('React/') } next if react.nil? react_spec = react end if react_spec.nil? Pod::UI.warn "No React dependency found" return end version = react_spec.version.to_s unless patch_exist?(version) Pod::UI.warn "CP-Fix-React-Native does not support #{version} yet, please send " + 'PRs to https://github.com/orta/cocoapods-fix-react-native' return end path_to_fix = version_file(version) if File.exist? path_to_fix Pod::UI.section "Patching React Native #{version}" do require(path_to_fix) end end end |
#pre_fix_with_context(context) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/cocoapods-fix-react-native/fix_with_context.rb', line 35 def pre_fix_with_context(context) # Get the current version of React Native in your app locked_dependencies = Molinillo::DependencyGraph.new context.lockfile.dependencies.each do |dependency| locked_dependencies.add_vertex(dependency.name, dependency, true) end sources = context.podfile.sources.map do |source| Pod::Config.instance.sources_manager.source_with_name_or_url(source) end react_spec = nil begin resolver = Pod::Resolver.new(context.sandbox, context.podfile, locked_dependencies, sources, true) target_definitions = resolver.resolve target_definitions.each do |(definition, dependencies)| next if definition.name == 'Pods' react = dependencies.find { |d| d.spec.name == 'React' || d.spec.name.start_with?('React/') } next if react.nil? react_spec = react.spec end rescue StandardError => e Pod::UI.warn 'Failed to resolve dependencies, so pre-patch was not applied, ' + 'please try running `pod install` again to apply the patch.' end return if react_spec.nil? version = react_spec.version.to_s # There will probably always be a neeed for the post, but a pre can be ignored return unless patch_exist?(version) path_to_fix = version_file(version, 'pre') if File.exist? path_to_fix Pod::UI.section "Patching React Native #{version}" do require(path_to_fix) end end end |