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` }
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 CarteItem
s.
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.