{"id":16683902,"url":"https://github.com/meniny/substring","last_synced_at":"2025-04-09T23:30:26.754Z","repository":{"id":56947337,"uuid":"133705716","full_name":"Meniny/Substring","owner":"Meniny","description":"Substring with without boilerplate, verbose and complex code.","archived":false,"fork":false,"pushed_at":"2019-04-11T15:23:12.000Z","size":15,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T18:44:43.551Z","etag":null,"topics":["substring"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Meniny.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-16T18:08:21.000Z","updated_at":"2023-07-03T12:55:14.000Z","dependencies_parsed_at":"2022-08-21T08:20:46.775Z","dependency_job_id":null,"html_url":"https://github.com/Meniny/Substring","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Meniny%2FSubstring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Meniny%2FSubstring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Meniny%2FSubstring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Meniny%2FSubstring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Meniny","download_url":"https://codeload.github.com/Meniny/Substring/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248129470,"owners_count":21052578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["substring"],"created_at":"2024-10-12T14:27:13.376Z","updated_at":"2025-04-09T23:30:26.684Z","avatar_url":"https://github.com/Meniny.png","language":"Swift","readme":":name: Substring\n:author: Elias Abel\n:author_esc: Elias%20Abel\n:mail: admin@meniny.cn\n:desc: a tiny library allows you to substring without boilerplate, verbose and complex code\n:icon: {name}.png\n:version: 1.1.0\n:na: N/A\n:ios: 8.0\n:macos: 10.9\n:watchos: 2.0\n:tvos: 9.0\n:linux: ✔\n:xcode: 10.2\n:swift: 5\n:license: MIT\n:sep: %20%7C%20\n:platform: iOS{sep}macOS{sep}watchOS{sep}tvOS{sep}Linux\n= Meet `{name}`\n{author} \u003c{mail}\u003e\nv{version}, 2018-05-17\n\n[subs=\"attributes\"]\n++++\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./Assets/{icon}\" alt=\"{name}\" width=\"200px\"\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\n  \u003cimg alt=\"Author\" src=\"https://img.shields.io/badge/author-{author_esc}-blue.svg\"\u003e\n  \u003cimg alt=\"EMail\" src=\"https://img.shields.io/badge/mail-{mail}-orange.svg\"\u003e\n  \u003cimg alt=\"MIT\" src=\"https://img.shields.io/badge/license-{license}-blue.svg\"\u003e\n  \u003cbr/\u003e\n  \u003cimg alt=\"Version\" src=\"https://img.shields.io/badge/version-{version}-brightgreen.svg\"\u003e\n  \u003cimg alt=\"Platforms\" src=\"https://img.shields.io/badge/platform-{platform}-lightgrey.svg\"\u003e\n  \u003cimg alt=\"Swift\" src=\"https://img.shields.io/badge/swift-{swift}%2B-orange.svg\"\u003e\n  \u003cbr/\u003e\n  \u003cimg alt=\"Build Passing\" src=\"https://img.shields.io/badge/build-passing-brightgreen.svg\"\u003e\n  \u003cimg alt=\"Cocoapods\" src=\"https://img.shields.io/badge/cocoapods-compatible-brightgreen.svg\"\u003e\n  \u003cimg alt=\"Carthage\" src=\"https://img.shields.io/badge/carthage-compatible-brightgreen.svg\"\u003e\n  \u003cimg alt=\"SPM\" src=\"https://img.shields.io/badge/spm-compatible-brightgreen.svg\"\u003e\n\u003c/p\u003e\n++++\n\n:toc:\n\n== 🏵 Introduction\n\n**{name}** is {desc}.\n\nThe strings management of `Swift` is one of the most painful feature ever:\n\n[source, swift]\n----\nlet string = \"Substring API sucks!\"\nlet start = string.index(string.startIndex, offsetBy: 1)\nlet end = string.index(string.startIndex, offsetBy: 6)\nlet substring = String(string[start..\u003cend])\n----\n\nNo! Stop it!\n\nNow with this tiny library called `{name}`, you can simplly do this:\n\n[source, swift]\n----\nlet substring = string[1..\u003c6].string\n----\n\nOr this, if you prefer:\n\n[source, swift]\n----\nlet substring = string.substring(in: 1..\u003c6).string\n----\n\nLearn link:#usage[more].\n\n== 📋 Requirements\n\n[%header]\n|===\n2+^m|Type 1+^m|Requirement\n\n1.5+^.^|Platform ^|iOS ^|{ios}+\n^|macOS ^|{macos}\n^|tvOS ^|{tvos}\n^|watchOS ^|{watchos}\n^|Linux ^|{linux}\n\n^|IDE ^|Xcode ^| {xcode}+\n^|Language ^|Swift ^| {swift}+\n|===\n\n== 📲 Installation\n\n=== CocoaPods\n\n`{name}` is available on link:https://cocoapods.org[CocoaPods].\n\n[source, ruby, subs=\"verbatim,attributes\"]\n----\nuse_frameworks!\npod '{name}'\n----\n\n=== Manually\n\nCopy all files in the `{name}` directory into your project.\n\n== 🛌 Dependency\n\n{na}\n\n== ❤️ Contribution\n\nYou are welcome to fork and submit pull requests.\n\n== 🔖 License\n\n`{name}` is open-sourced software, licensed under the link:./LICENSE.md[`{license}`] license.\n\n[#usage]\n== 🔫 Usage\n\n[source, swift, subs=\"verbatim,attributes\"]\n----\nimport {name}\n\nlet string = \"A_Example_String\"\n\n// STR: A _ E x a m p l e _ S  t  r  i  n  g\n// IDX: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n\nprint(string.substring(at: 1).string, string[1].string) // \"_\"\nprint(string.substring(to: 4).string, string[...4].string) // \"A_Exa\"\nprint(string.substring(from: 2).string, string[2...].string) // \"Example_String\"\nprint(string.substring(before: 5).string, string[..\u003c5].string) // \"A_Exa\"\nprint(string.substring(in: 2...5).string, string[2...5].string) // \"Exam\"\nprint(string.substring(in: 2..\u003c5).string, string[2..\u003c5].string) // \"Exa\"\n\n// ...\n----\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeniny%2Fsubstring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeniny%2Fsubstring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeniny%2Fsubstring/lists"}