Skip to content
forked from devxoul/Carte

🍴 Open source license notice view generator for Cocoa.

License

Notifications You must be signed in to change notification settings

KimDarren/Carte

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.0', :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.

About

🍴 Open source license notice view generator for Cocoa.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 78.2%
  • Ruby 18.1%
  • Objective-C 3.7%