Skip to content

simplisticated/Hammer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hammer

At a Glance

Hammer is a powerful tool for solving common tasks with classes and objects.

How To Get Started

  • Copy content of Source folder to your project.

or

  • Use Hammer cocoapod

Requirements

  • iOS 9 and later
  • Xcode 9 and later
  • Swift 4

Usage

Class Name

Retrieve class name:

let classNameWithNamespace = MainViewController.hmr.fullName     // "MyApplication.MainViewController"
let classNameWithoutNamespace = MainViewController.hmr.shortName // "MainViewController"

Object Conversions

Use object in external closure:

let label = UILabel().hmr.use { (label) in
            label.text = "This is a label"
}.object

Use object converted to another type in external closure:

let view = SomeView().hmr.use(as: UILabel.self) { (label) in
    label.text = "This is a label"
}.object

Object Retaining

Retain any object:

object.hmr.hold()

Release the object:

object.hmr.free()

Container

Any object can be easily wrapped by special container:

let number: NSNumber? = nil

let container = number.hmr.wrap()
container.value // nil
container.isNil // true

Just for Fun

You can replace hmr with hammer emoji:

let classNameWithNamespace = MainViewController.🔨.fullName
let classNameWithoutNamespace = MainViewController.🔨.shortName

let view = SomeView().🔨.use(as: UILabel.self) { (label) in
    label.text = "This is a label"
}.object

// etc.

License

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