Skip to content

Instantly share code, notes, and snippets.

View alekseylichtman's full-sized avatar
🚴‍♀️
Working on my bike

Aleksey Lichtman alekseylichtman

🚴‍♀️
Working on my bike
View GitHub Profile
@alekseylichtman
alekseylichtman / DictionaryConvertible.swift
Last active July 25, 2024 06:16
Swift. Convert any object to dictionary
protocol DictionaryConvertible: Codable {
func convertToDictionary() -> [String: Any]
}
extension DictionaryConvertible {
func convertToDictionary() -> [String: Any] {
let jsonEncoder = JSONEncoder()
let jsonData = try! jsonEncoder.encode(self)
do {
return try (JSONSerialization.jsonObject(with: jsonData, options: []) as? [String: Any])!
@alekseylichtman
alekseylichtman / JSONConvertible.swift
Created April 22, 2021 18:40
Swift. Convert any object into JSON
protocol JSONConvertible: Codable {
func convertToJson() -> String
}
extension JSONConvertible {
func convertToJson() -> String {
let jsonEncoder = JSONEncoder()
let jsonData = try! jsonEncoder.encode(self)
let json = String(data: jsonData, encoding: String.Encoding.utf8)
@alekseylichtman
alekseylichtman / Date + currentUTCTimeZoneDate.swift
Last active June 10, 2021 16:35
Swift. Get Date() with timezone
extension Date {
var currentUTCTimeZoneDate: String {
let calendar = Calendar.current
let timeZone = calendar.timeZone.identifier
let formatter = DateFormatter()
formatter.timeZone = TimeZone(identifier: timeZone)
formatter.amSymbol = "AM"
formatter.pmSymbol = "PM"
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
print(formatter)
@alekseylichtman
alekseylichtman / customTerminal.bash_prompt
Last active June 21, 2021 21:48
customTerminal.bash_prompt
#!/usr/bin/env bash
# GIT FUNCTIONS
git_branch() {
git branch 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
# TERMINAL PROMPT
PS1="\[\e[1;91m\]\u\[\e[m\]" # username