{"id":18462479,"url":"https://github.com/thomthom/extension-sources","last_synced_at":"2025-04-08T07:32:16.215Z","repository":{"id":40436772,"uuid":"438765888","full_name":"thomthom/extension-sources","owner":"thomthom","description":"Developer tool for managing additional sources to load SketchUp extensions from.","archived":false,"fork":false,"pushed_at":"2025-02-21T12:15:16.000Z","size":1087,"stargazers_count":7,"open_issues_count":15,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T08:41:59.634Z","etag":null,"topics":["developer-tools","extension","ruby","sketchup"],"latest_commit_sha":null,"homepage":"https://extensions.sketchup.com/extension/a9f18009-29cc-4c43-a0a7-e018e7a6563b/Extension%20Sources","language":"JavaScript","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/thomthom.png","metadata":{"files":{"readme":"README.md","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,"governance":null}},"created_at":"2021-12-15T20:36:39.000Z","updated_at":"2025-02-06T07:21:33.000Z","dependencies_parsed_at":"2023-02-12T16:45:22.561Z","dependency_job_id":"bedbd622-e425-4660-bf3d-50f726461a41","html_url":"https://github.com/thomthom/extension-sources","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":"SketchUp/sketchup-extension-vscode-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomthom%2Fextension-sources","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomthom%2Fextension-sources/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomthom%2Fextension-sources/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomthom%2Fextension-sources/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thomthom","download_url":"https://codeload.github.com/thomthom/extension-sources/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247796285,"owners_count":20997543,"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":["developer-tools","extension","ruby","sketchup"],"created_at":"2024-11-06T09:02:41.201Z","updated_at":"2025-04-08T07:32:16.206Z","avatar_url":"https://github.com/thomthom.png","language":"JavaScript","readme":"# Extension Sources\n\n[![Build status](https://ci.appveyor.com/api/projects/status/j5gcwy6ky3hgmww5/branch/main?svg=true)](https://ci.appveyor.com/project/thomthom/extension-sources/branch/main)\n\nDeveloper tool for managing additional sources to load SketchUp extensions from.\n\n## How to Use\n\n### Extension Sources Dialog\n\nAdd the path to where your extension source is located from the Extension Sources\ndialog.\n\n![](assets/screenshots/extension-sources-dialog.png)\n\nThese paths are added to SketchUp's Ruby `$LOAD_PATH`.\n\nPaths can be managed from within this dialog. Toggling the path will control\nwhether the sources will be loaded or not. The order of which the sources are\nadded to the `$LOAD_PATH` can also be rearranged by dragging and dropping the\nselected items in the list.\n\nThe paths are shared among all installations of SketchUp where Extension Sources\nis installed.\n\nIf you have a lot of sources they can be quickly filtered by using the quick filter textbox.\n\n![](assets/screenshots/extension-sources-dialog-filter.png)\n\n### Extension Sources Scanner Dialog\n\nTo quickly add multiple sources Extension Sources can scan and analyze a given\ndirectory's sub-directories and look for the signature of extension sources.\nIt will look for Ruby files with `Sketchup.register_extension` accompanied by\na support folder of matching name.\n\nThe scan might take a few seconds or minutes, depending on your file system and\nharddrive speed.\n\n![](assets/screenshots/extension-sources-dialog-menu.png)\n\n`Extension Sources Dialog` › `More…` (`⋮`) › `Scan for Paths…`\n\n![](assets/screenshots/extension-sources-scanner-dialog.png)\n\nFrom the scan results the desired sources can be selected. The toggle switch will control\nwhether the source path will be loaded or not.\n\nNote that paths already added to Extension Sources will not appear in the scan\nresults list.\n\n## Compatibility\n\n* SketchUp 2017 and newer\n* Windows, macOS\n\n## Known Issues\n\n### Drag and drop irregularities\n\nIn SketchUp 2017 - SketchUp 2022.0 the HTML Drag and Drop API isn't fully\nworking. In these versions workarounds has been applied which will exhibit some\ndeviance from the normal drag and drop behaviour. For instance, it's not possible\nto cancel a drag and drop by pressing ESC. The drag and drop cursor might also\nnot reflect it's correct state. This is fixed in SketchUp 2022.1.\n\n### Drag and drop target indicator\n\nIn SketchUp 2017 to SketchUp 2020 there is no visual indicator to exactly where\nthe item will be dropped. This is due to limitation (bug?) in these SketchUp\nversions.\n\n## Tests\n\n```sh\nbundle exec rake test\n```\n\n```sh\nbundle exec rake test TEST=tests/standalone/model/extension_source_test.rb\n```\n\n```sh\nbundle exec rake test TEST=tests/standalone/model/extension_source_test.rb TESTOPTS=\"--name=/test_enabled.*/ -v\"\n```\n\n## Documentation\n\n### List undocumented code\n\n```sh\nbundle exec rake undoc\n```\n\n```sh\nbundle exec yard stats --list-undoc\n```\n\n## Architecture\n\nThe following graph visualizes the hierarchy of the various components.\nHigher levels can depend on lower levels, unless limited by an direct-only\ndependency indicator (arrow).\n\n`app` only deals with `controller` and `system`.\n\n`controller` coordinates `view` and `model`.\n\n`utils` can be used by anything.\n\nAnything below the dashed line marked `SketchUp` can be use outside of SketchUp.\nThe unit tests between these two layers are separated.\n\n```\n┌─────────────────┐\n│       app       │\n└─────────────────┘\n         ↑\n┌─────────────────┐\n│ ┌─────────────┐ │ ┌─────────────┐\n│ │ controller  │ ← │    view     │\n│ └─────────────┘ │ └─────────────┘\n│ ┌─────────────┐ │\n│ │   system    │ │\n│ └─────────────┘ │\n└─────────────────┘\n┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ SketchUp\n┌─────────────────┐\n│      model      │\n└─────────────────┘\n╔═════════════════╗\n║      utils      ║\n╚═════════════════╝\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomthom%2Fextension-sources","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomthom%2Fextension-sources","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomthom%2Fextension-sources/lists"}