Skip to content

Latest commit

 

History

History
128 lines (77 loc) · 3.73 KB

README.md

File metadata and controls

128 lines (77 loc) · 3.73 KB

Carte

Swift 2.0 CocoaPods

Open source license notice view generator for Cocoa.

Screenshot

carte

These are the screenshots of demo project which is located in CarteDemo directory.

Features

  • 🚗 Automatic: Carte automatically generates OSS notice from CocoaPods and CocoaSeeds.
  • ☕ Easy Integration: Install Carte, add run scripts, then push CarteViewController. It's done.
  • ✨ Customizable: Adding custom items, customizing CarteViewController. See Customizing section.

Getting Started

Step 1. Installation

  • For iOS 8+ projects: Use CocoaPods with Podfile:

    pod 'Carte'
  • For iOS 7 projects: I recommend you to try CocoaSeeds, which uses source code instead of dynamic frameworks. Sample Seedfile:

    github 'devxoul/Carte', '0.2.3', :files => 'Carte/*.{swift,rb}'

Step 2. Adding Run Scripts

phase-order

Carte has a simple ruby script named carte.rb that reads third-party libraries from CocoaPods and CocoaSeeds directory. You have to add 2 run script phases before and after 'Copy Bundle Resources' phase.

  • Carte Pre

      ruby /path/to/carte.rb pre
      
  • Carte Post

      ruby /path/to/carte.rb post
      
  • /path/to/carte.rb: carte.rb file is located in Carte directory.

    If you installed Carte via:

    • CocoaPods, then path would be: ${SRCROOT}/Pods/Carte/Carte/carte.rb
    • CocoaSeeds, then path would be: ${SRCROOT}/Seeds/Carte/Carte/carte.rb
  • For example (CocoaPods):

    carte-pre

Step 3. Using CarteViewController

Almost done! What you need to do now is using CarteViewController. Use it just like using a UIViewController: push, present, or whatever you want to do.

let carteViewController = CarteViewController()

Customizing

Manipulating items

CarteViewController has a property named items which is an array of CarteItem. All of licenses are stored in 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.

let item = CarteItem()
item.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 appeared when select a cell of table view. CarteViewController provides a handler for customizing it.

Definition:

var configureDetailViewController: (CarteDetailViewController -> Void)?

Example:

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

License

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