{"id":17043433,"url":"https://github.com/leavez/cocoapods-developing-folder","last_synced_at":"2025-04-12T15:11:23.120Z","repository":{"id":62555881,"uuid":"116237223","full_name":"leavez/cocoapods-developing-folder","owner":"leavez","description":"a branch of tools for who heavily use development pods","archived":false,"fork":false,"pushed_at":"2018-11-21T10:18:43.000Z","size":24,"stargazers_count":30,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-03-28T14:41:27.088Z","etag":null,"topics":["cocoapods","cocoapods-plugin","development-pods","dsl","local-pods","pod"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/leavez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-04T08:52:13.000Z","updated_at":"2023-12-10T07:55:19.000Z","dependencies_parsed_at":"2022-11-03T05:31:20.405Z","dependency_job_id":null,"html_url":"https://github.com/leavez/cocoapods-developing-folder","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leavez%2Fcocoapods-developing-folder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leavez%2Fcocoapods-developing-folder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leavez%2Fcocoapods-developing-folder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leavez%2Fcocoapods-developing-folder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leavez","download_url":"https://codeload.github.com/leavez/cocoapods-developing-folder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586230,"owners_count":21128997,"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":["cocoapods","cocoapods-plugin","development-pods","dsl","local-pods","pod"],"created_at":"2024-10-14T09:29:31.875Z","updated_at":"2025-04-12T15:11:23.080Z","avatar_url":"https://github.com/leavez.png","language":"Ruby","readme":"# cocoapods-developing-folder\n\nA cocoapods plugin  provide a branch of tools for who heavily use development pods in project. You can do these:\n\n- new keyword `local_pod` to import a local pod without specifying path\n- new keyword `folder` to import all local pods in a specific folder and its subfolders\n- preserves the folder structure in `development pods`\n- inhibit warnings for specific pods with a block.\n\n\n## Installation\n\n    $ gem install cocoapods-developing-folder\n\n## Usage\n\nFirstly, you should add this in head of Podifle:\n\n```ruby\nplugin 'cocoapods-developing-folder'\n```\n\n#### 🔸 Import a local pods without specifying path\n\nUse `local_pod` just like `pod` keyword. No need to adding path. E.g.\n\n```ruby\nlocal_pod \"Evangelion\" # no need for `:path =\u003e \"modules/Evangelion\"`\n```\n\nIt will search your project root path. If you want smaller or larger search range, set `local_pod_searching_root`, e.g.\n``` ruby\n# in the podfile\nlocal_pod_searching_root \"../Libs\"\n# Array is also supported.\n# local_pod_searching_root [\"../Libs\", \"../../modules\"]\n```\n\n#### 🔸 Import all local pods in specific folder\n\nUse `folder` just like `pod` keyword. (In fact, they are just ruby functions)\n\n\n```ruby\nplugin 'cocoapods-developing-folder'\n\ntarget \"ABC\" do \n    pod \"SnapKit\"\n    folder \"frameworks/core\" # 'frameworks/core' is just a relative path to podfile\n    folder \"modules\"         #  it will import all pod in 'modules' folder and its subfolders\n    folder \"libs\", :inhibit_warnings =\u003e true  #  the option will apply to all pods in the libs folder\nend\n```\n\nIt will import all local pods in that folder and its subfolders recrusively, equivalent of:\n\n```\npod \"Ayanami\", :path =\u003e \"modules/Ayanami\"\npod \"Asuka\",   :path =\u003e \"modules/Asuka\"\npod \"Shinji\",  :path =\u003e \"modules/some/path/to/Shinji\"\n#...\n```\n\n#### 🔸 Preserves the folder structure\n\nAdd the following to your podfile\n\n```ruby\nuse_folders\n```\n\nIf you don't want to create groups for top level folders (Local pods are usually grouped in the same folder):\n```ruby\nuse_folders :skip_top_level_group =\u003e [\"modules\"]\n```\n\n#### 🔸 Inhibit warnings for specific pods\n\nAdd the following to your podfile\n\n```ruby\nplugin 'cocoapods-developing-folder'\n\ninhibit_warnings_with_condition do |pod_name, pod_target|\n    # your condition written in ruby, like:\n    # `not pod_name.start_with? \"LE\"` or\n    # `['Asuka', 'Ayanami', 'Shinji'].include? pod_name`\nend\n```\n`pod_target` is a instance of `Pod::PodTarget` [class](https://github.com/CocoaPods/CocoaPods/blob/93011ece10dd76b8d783bc80db742dfd03f7cbac/lib/cocoapods/target/pod_target.rb), containing many more info than the name. You can use it to set up complex rules.\n\nThis function will override the warning inhibition settings by the original methods, like: `inhibit_all_warnings!`, `pod 'Ayanami', :inhibit_warnings =\u003e true`\n\nThis function is usually used for disabling warning inhibition for development pods and enabling for the others. When you try to implement this with offical methods, cocoapods may warn you at `pod install`:\n\n\u003e The pod #{pod_name} is linked to different targets which contain different settings to inhibit warnings. CocoaPods does not currently support different settings and will fall back to your preference set in the root target definition.\n\nThis function solve the problem.\n\n\n# License\n\nMIT\n\nAppreciate a 🌟 if you like it. Another cocoapods plugin made by me [cocoapods-static-swift-framework](https://github.com/leavez/cocoapods-static-swift-framework).\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleavez%2Fcocoapods-developing-folder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleavez%2Fcocoapods-developing-folder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleavez%2Fcocoapods-developing-folder/lists"}