You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
|
|
module Expo
|
|
|
|
class PackagePod
|
|
|
|
# Name of the pod
|
|
attr_reader :pod_name
|
|
|
|
# The directory where the podspec is
|
|
attr_reader :podspec_dir
|
|
|
|
def initialize(json)
|
|
@pod_name = json['podName']
|
|
@podspec_dir = json['podspecDir']
|
|
end
|
|
|
|
end # class PackagePod
|
|
|
|
class Package
|
|
|
|
# Name of the npm package
|
|
attr_reader :name
|
|
|
|
# Version of the npm package
|
|
attr_reader :version
|
|
|
|
# An array of pods found in the package
|
|
attr_reader :pods
|
|
|
|
# Flags to pass to the pod definition
|
|
attr_reader :flags
|
|
|
|
# Class names of the modules that need to be included in the generated modules provider.
|
|
attr_reader :modules
|
|
|
|
# Whether this module should only be added to the debug configuration.
|
|
attr_reader :debugOnly
|
|
|
|
def initialize(json)
|
|
@name = json['packageName']
|
|
@version = json['packageVersion']
|
|
@pods = json['pods'].map { |pod| PackagePod.new(pod) }
|
|
@flags = json.fetch('flags', {})
|
|
@modules = json.fetch('modules', [])
|
|
@debugOnly = json['debugOnly']
|
|
end
|
|
|
|
def has_swift_modules_to_link?
|
|
return !@modules.empty?
|
|
end
|
|
|
|
end # class Package
|
|
|
|
end # module Expo
|