Skip to content

Commit

Permalink
Episode 153
Browse files Browse the repository at this point in the history
  • Loading branch information
subdigital committed Jan 20, 2015
1 parent 3f99b1b commit fcd5536
Show file tree
Hide file tree
Showing 12 changed files with 1,443 additions and 0 deletions.
501 changes: 501 additions & 0 deletions 153-feature-toggles/Toggle/Toggle.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

27 changes: 27 additions & 0 deletions 153-feature-toggles/Toggle/Toggle/AppDelegate.swift
@@ -0,0 +1,27 @@
//
// AppDelegate.swift
// Toggle
//
// Created by Ben Scheirman on 1/20/15.
// Copyright (c) 2015 NSScreencast. All rights reserved.
//

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

var windowController: WindowController!

func applicationDidFinishLaunching(aNotification: NSNotification) {
windowController = WindowController(windowNibName: "WindowController")
windowController.showWindow(self)
}

func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}


}

666 changes: 666 additions & 0 deletions 153-feature-toggles/Toggle/Toggle/Base.lproj/MainMenu.xib

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions 153-feature-toggles/Toggle/Toggle/Features.h
@@ -0,0 +1,11 @@
//
// Features.h
// Toggle
//
// Created by Ben Scheirman on 1/20/15.
// Copyright (c) 2015 NSScreencast. All rights reserved.
//

#import <Foundation/Foundation.h>

const BOOL FeatureAEnabled;
15 changes: 15 additions & 0 deletions 153-feature-toggles/Toggle/Toggle/Features.m
@@ -0,0 +1,15 @@
//
// Features.m
// Toggle
//
// Created by Ben Scheirman on 1/20/15.
// Copyright (c) 2015 NSScreencast. All rights reserved.
//

#import "Features.h"

#if FEATURE_A
const BOOL FeatureAEnabled = YES;
#else
const BOOL FeatureAEnabled = NO;
#endif
@@ -0,0 +1,58 @@
{
"images" : [
{
"idiom" : "mac",
"size" : "16x16",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "16x16",
"scale" : "2x"
},
{
"idiom" : "mac",
"size" : "32x32",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "32x32",
"scale" : "2x"
},
{
"idiom" : "mac",
"size" : "128x128",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "128x128",
"scale" : "2x"
},
{
"idiom" : "mac",
"size" : "256x256",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "256x256",
"scale" : "2x"
},
{
"idiom" : "mac",
"size" : "512x512",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "512x512",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
34 changes: 34 additions & 0 deletions 153-feature-toggles/Toggle/Toggle/Info.plist
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.nsscreencast.$(PRODUCT_NAME:rfc1034identifier)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2015 NSScreencast. All rights reserved.</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>
5 changes: 5 additions & 0 deletions 153-feature-toggles/Toggle/Toggle/Toggle-Bridging-Header.h
@@ -0,0 +1,5 @@
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//

#import "Features.h"
21 changes: 21 additions & 0 deletions 153-feature-toggles/Toggle/Toggle/WindowController.swift
@@ -0,0 +1,21 @@
//
// WindowController.swift
// Toggle
//
// Created by Ben Scheirman on 1/20/15.
// Copyright (c) 2015 NSScreencast. All rights reserved.
//

import Cocoa

class WindowController: NSWindowController {

override func windowDidLoad() {
super.windowDidLoad()
}

dynamic var featureAEnabled: Bool {
return Bool(FeatureAEnabled);
}

}
45 changes: 45 additions & 0 deletions 153-feature-toggles/Toggle/Toggle/WindowController.xib
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="6254" systemVersion="14B25" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="6254"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="WindowController" customModule="Toggle" customModuleProvider="target">
<connections>
<outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="480" height="270"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bXb-Xa-5Zd">
<rect key="frame" x="190" y="118" width="100" height="32"/>
<buttonCell key="cell" type="push" title="Feature A" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="b7G-13-zYg">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<binding destination="-2" name="hidden" keyPath="self.featureAEnabled" id="NQQ-Rq-kcy">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
</connections>
</button>
</subviews>
</view>
<connections>
<outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
</connections>
</window>
<userDefaultsController representsSharedInstance="YES" id="B7w-hb-5dE"/>
</objects>
</document>
24 changes: 24 additions & 0 deletions 153-feature-toggles/Toggle/ToggleTests/Info.plist
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.nsscreencast.$(PRODUCT_NAME:rfc1034identifier)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
36 changes: 36 additions & 0 deletions 153-feature-toggles/Toggle/ToggleTests/ToggleTests.swift
@@ -0,0 +1,36 @@
//
// ToggleTests.swift
// ToggleTests
//
// Created by Ben Scheirman on 1/20/15.
// Copyright (c) 2015 NSScreencast. All rights reserved.
//

import Cocoa
import XCTest

class ToggleTests: XCTestCase {

override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}

override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}

func testExample() {
// This is an example of a functional test case.
XCTAssert(true, "Pass")
}

func testPerformanceExample() {
// This is an example of a performance test case.
self.measureBlock() {
// Put the code you want to measure the time of here.
}
}

}

0 comments on commit fcd5536

Please sign in to comment.