Contents

devxoul/Carte

🍴 Open source license notice view generator for Swift

Screenshot

[carte]

⬆ Those view controllers are automatically generated ✨

Features

  • πŸš— Automatic: Carte automatically generates OSS notice from CocoaPods.
  • β˜•οΈ Easy Integration: Install Carte and push CarteViewController. It's all done.
  • 🎨 Customizable: Adding custom items, customizing CarteViewController. See Customizing section.

Installation

Carte only supports CocoaPods at this time.

pod 'Carte'

⚠️ IMPORTANT: Don't forget to add the post install hook to your Podfile. Add this script to the end of your Podfile:

post_install do |installer|
  pods_dir = File.dirname(installer.pods_project.path)
  at_exit { `ruby #{pods_dir}/Carte/Sources/Carte/carte.rb configure` }
end

Usage

Carte provides CarteViewController. You can use it as a normal view controller. Push, present or do whatever you want.

let carteViewController = CarteViewController()

If you want to create your own UI, use Carte.items to get CarteItems.

class Carte {
  static var items: [CarteItem]
}

Customizing

Custom Items

CarteViewController has a property named items which is an array of CarteItem. All of the licenses are stored in the items. You can add new items, remove existings, or sort items by manipulating items array.

This is an example of adding a new CarteItem and sorting items.

var item = CarteItem(name: "Carte")
item.licenseText = "The MIT License (MIT) ...Very long text..."

let carteViewController = CarteViewController()
carteViewController.items.append(item)
carteViewController.items.sort { $0.name < $1.name }

Customizing View Controllers

CarteDetailViewController is presented when user selects a table view cell. CarteViewController provides a handler for customizing it.

Definition:

var configureDetailViewController: (CarteDetailViewController -> Void)?

Example:

let carteViewController = CarteViewController()
carteViewController.configureDetailViewController = { detailViewController in
  detailViewController.navigationItem.leftBarButtonItem = ...
  print(detailViewController.carteItem.name)
}

License

Carte is under MIT license. See the LICENSE file for more info.

Package Metadata

Repository: devxoul/Carte

Stars: 186

Forks: 23

Open issues: 13

Default branch: master

Primary language: ruby

License: MIT

Topics: generator, ios, license, oss, swift

README: README.md