class CocoaPodsAcknowledgements::PlistGenerator

Public Class Methods

file_accessor(spec, platform, sandbox) click to toggle source
# File lib/cocoapods_acknowledgements/plist_generator.rb, line 42
def file_accessor(spec, platform, sandbox)
  pod_root = sandbox.pod_dir(spec.name)
  if pod_root.exist?
    path_list = Pod::Sandbox::PathList.new(pod_root)
    Pod::Sandbox::FileAccessor.new(path_list, spec.consumer(platform))
  end
end
generate(target_description, sandbox, excluded) click to toggle source
# File lib/cocoapods_acknowledgements/plist_generator.rb, line 12
def generate(target_description, sandbox, excluded)
  root_specs = target_description.specs.map(&:root).uniq.reject { |spec| excluded.include?(spec.name) }

  return nil if root_specs.empty?

  specs_metadata = root_specs.map do |spec|
    platform = Pod::Platform.new(target_description.platform_name)
    file_accessor = file_accessor(spec, platform, sandbox)
    license_text = license_text(spec, file_accessor)

    {
      "name" => spec.name,
      "version" => spec.version,
      "authors" => spec.authors,
      "socialMediaURL" => spec.social_media_url,
      "summary" => spec.summary,
      "description" => parse_markdown(spec.description),
      "licenseType" => spec.license[:type],
      "licenseText" => license_text,
      "homepage" => spec.homepage,
    }
  end

  {
    "specs" => specs_metadata
  }
end
license_text(spec, file_accessor) click to toggle source

Returns the text of the license for the given spec.

@param [Specification] spec

the specification for which license is needed.

@return [String] The text of the license. @return [Nil] If not license text could be found.

# File lib/cocoapods_acknowledgements/plist_generator.rb, line 58
def license_text(spec, file_accessor)
  return nil unless spec.license
  text = spec.license[:text]
  unless text
    if file_accessor
      if license_file = file_accessor.license
        if license_file.exist?
          text = IO.read(license_file)
        else
          Pod::UI.warn "Unable to read the license file `#{license_file }` " \
            "for the spec `#{spec}`"
        end
      end
    end
  end
  text
end
markdown_parser() click to toggle source
# File lib/cocoapods_acknowledgements/plist_generator.rb, line 8
def markdown_parser
  @markdown_parser ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML)
end
parse_markdown(text) click to toggle source
# File lib/cocoapods_acknowledgements/plist_generator.rb, line 76
def parse_markdown(text)
  return nil unless text
  markdown_parser.render(text)
end