{"id":16024271,"url":"https://github.com/axelson/scenic_live_reload","last_synced_at":"2025-03-18T03:31:58.835Z","repository":{"id":35095320,"uuid":"195592329","full_name":"axelson/scenic_live_reload","owner":"axelson","description":"Live reload your scenic scenes, based on exsync","archived":false,"fork":false,"pushed_at":"2023-03-30T15:59:21.000Z","size":170,"stargazers_count":15,"open_issues_count":5,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T08:54:49.046Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axelson.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-06T23:48:39.000Z","updated_at":"2024-04-29T08:56:58.000Z","dependencies_parsed_at":"2024-10-27T17:17:29.823Z","dependency_job_id":"9a3ffcb9-acb7-473a-a6c9-355af7f15221","html_url":"https://github.com/axelson/scenic_live_reload","commit_stats":{"total_commits":32,"total_committers":3,"mean_commits":"10.666666666666666","dds":0.125,"last_synced_commit":"404e89478d0698feb2aac22a2e2b44dd0ccd8030"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelson%2Fscenic_live_reload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelson%2Fscenic_live_reload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelson%2Fscenic_live_reload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelson%2Fscenic_live_reload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axelson","download_url":"https://codeload.github.com/axelson/scenic_live_reload/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243900923,"owners_count":20366250,"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":[],"created_at":"2024-10-08T19:06:20.980Z","updated_at":"2025-03-18T03:31:58.433Z","avatar_url":"https://github.com/axelson.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ScenicLiveReload\n\nA live reloader for Scenic. Once configured, when you edit a file the current\nroot scene will be killed, when it is restarted it will use any new code\ncurrently in the running beam instance.\n\nHow it works:\n* Uses [exsync](https://github.com/axelson/exsync) to watch the file system\n* When you edit a file with your editor, exsync recompiles and reloads that beam file\n* `exsync` notifies `scenic_live_reload` that files were reloaded\n* `scenic_live_reload` kills the currently displayed root scene\n* The OTP Supervisor for that scene restarts the scene with the updated code\n\n# Demo\n\nIn this demo I replace the text \"World\" with \"Scenic\", then change the color of\nthe text to purple. Next I change the shape of the bezier line.\n\n[![Screencast Demo](./demo.gif)](https://raw.githubusercontent.com/axelson/scenic-starter-pack/master/demo.gif)\n\nNote: the code running in the demo can be found at https://github.com/axelson/scenic_live_reload_demo\n\nSee also: [scenic-starter-pack](https://github.com/axelson/scenic-starter-pack)\n\n# Installation\n\nAdd `scenic_live_reload` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    ...\n    {:scenic_live_reload, \"~\u003e 0.3\", only: :dev},\n  ]\nend\n```\n\nAdd this configuration to your `config.exs`:\n```\ncase Mix.env() do\n  :dev -\u003e\n    config :exsync,\n      reload_timeout: 150,\n      reload_callback: {ScenicLiveReload, :reload_current_scenes, []}\n\n  _ -\u003e\n    nil\nend\n```\n\nThen start your application with `mix scenic.run` (or `iex -S mix`), edit a file with your editor, and then you should see your change reflected.\n\n# Development\n\nNOTE: This currently relies on a private scenic api to get the root scene which may change in future Scenic releases\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxelson%2Fscenic_live_reload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxelson%2Fscenic_live_reload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxelson%2Fscenic_live_reload/lists"}