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.

About

Powerful tool for managing objects

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published