Skip to content

Instantly share code, notes, and snippets.

View fabiothiroki's full-sized avatar
👋

Fabio Hiroki fabiothiroki

👋
View GitHub Profile
@fabiothiroki
fabiothiroki / 0_reuse_code.js
Created December 19, 2013 14:13
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
@fabiothiroki
fabiothiroki / javascript_resources.md
Created December 19, 2013 14:14 — forked from jookyboi/javascript_resources.md
Here are a set of libraries, plugins and guides which may be useful to your Javascript coding.

Libraries

  • jQuery - The de-facto library for the modern age. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
  • Backbone - Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
  • AngularJS - Conventions based MVC framework for HTML5 apps.
  • Underscore - Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects.
  • lawnchair - Key/value store adapter for indexdb, localStorage
@fabiothiroki
fabiothiroki / LocationManagerProtocol.swift
Last active October 11, 2017 22:22
LocationManagerProtocol
import CoreLocation
protocol LocationManager {
var delegate: CLLocationManagerDelegate? { get set }
func requestWhenInUseAuthorization()
func requestLocation()
}
extension CLLocationManager: LocationManager {}
@fabiothiroki
fabiothiroki / UserLocationService.swift
Last active December 27, 2017 23:31
Wrapper class for CLLocationManager
class UserLocationService: NSObject, UserLocationDatasource {
fileprivate var locationManager: LocationManager
init(locationManager: LocationManager) {
self.locationManager = locationManager
super.init()
self.locationManager.delegate = self
}
@fabiothiroki
fabiothiroki / ConstructorInjection.swift
Last active December 27, 2017 23:29
Constructor Injection Example
// Initial implementation of UserLocationService
class UserLocationService: NSObject {
fileprivate var locationManager: CLLocationManager
init(locationManager: CLLocationManager) {
self.locationManager = locationManager
super.init()
}
}
@fabiothiroki
fabiothiroki / LocationManagerMock.swift
Created October 13, 2017 14:00
First Version of Location Manager Mock
import CoreLocation
class LocationManagerMock: LocationManager {
var delegate: CLLocationManagerDelegate?
func requestWhenInUseAuthorization() {}
func requestLocation() {}
}
@fabiothiroki
fabiothiroki / ContainerConfig.swift
Last active October 16, 2017 21:18
Registering dependencies in the container
import XCTest
import Swinject
class UserLocationServiceSpec: XCTestCase {
var container: Container!
override func setUp() {
super.setUp()
container = Container()
@fabiothiroki
fabiothiroki / FirstTests.swift
Last active October 28, 2017 20:31
First Tests of UserLocationService
func testDependencyDelegateShouldBeWrapperClass() {
let locationManager = container.resolve(LocationManager.self)!
let userLocationService: UserLocationService = container.resolve(UserLocationService.self)!
XCTAssertTrue(locationManager.delegate === userLocationService)
}
func testShouldRequestUserPermission() {
guard let locationManager = container.resolve(LocationManager.self)! as? LocationManagerMock else {
XCTFail("Error resolving container dependencies")
@fabiothiroki
fabiothiroki / .travis.yml
Last active October 18, 2017 01:50
Simple travis configuration for tests
osx_image: xcode9
language: objective-c
cache:
- bundler
- cocoapods
script:
- xcodebuild clean test -quiet -workspace Foursquare\ Clone.xcworkspace -scheme Foursquare\ Clone -destination 'platform=iOS Simulator,name=iPhone 5s'
@fabiothiroki
fabiothiroki / travis_coverage.yml
Created October 22, 2017 16:35
Travis config with code coverage support
osx_image: xcode9
language: objective-c
cache:
- bundler
- cocoapods
script:
- xcodebuild clean test -quiet -workspace Foursquare\ Clone.xcworkspace -scheme Foursquare\ Clone -destination 'platform=iOS Simulator,name=iPhone 5s'
after_success: