La Carte
An open source license notice view generator for Swift.
Screenshot
⬆ 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'post_install do |installer|
pods_dir = File.dirname(installer.pods_project.path)
at_exit { `ruby #{pods_dir}/Carte/Sources/Carte/carte.rb configure` }
endUsage
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.
