├── .github ├── CODEOWNERS └── workflows │ ├── ci.yml │ ├── codeql.yaml │ ├── publish.yml │ └── rails_main_testing.yml ├── .gitignore ├── .rspec ├── .yardopts ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Gemfile ├── README.md ├── Rakefile ├── curly-templates.gemspec ├── gemfiles ├── common.rb ├── rails6.1.gemfile ├── rails6.1.gemfile.lock ├── rails7.0.gemfile ├── rails7.0.gemfile.lock ├── rails7.1.gemfile ├── rails7.1.gemfile.lock ├── rails7.2.gemfile ├── rails7.2.gemfile.lock ├── rails8.0.gemfile ├── rails8.0.gemfile.lock └── rails_main.gemfile ├── lib ├── curly-templates.rb ├── curly.rb ├── curly │ ├── attribute_scanner.rb │ ├── compiler.rb │ ├── component_compiler.rb │ ├── component_scanner.rb │ ├── dependency_tracker.rb │ ├── error.rb │ ├── incomplete_block_error.rb │ ├── incorrect_ending_error.rb │ ├── invalid_component.rb │ ├── parser.rb │ ├── presenter.rb │ ├── presenter_name_error.rb │ ├── presenter_not_found.rb │ ├── railtie.rb │ ├── rspec.rb │ ├── scanner.rb │ ├── syntax_error.rb │ ├── template_handler.rb │ └── version.rb ├── generators │ ├── curly.rb │ └── curly │ │ ├── controller │ │ ├── controller_generator.rb │ │ └── templates │ │ │ ├── presenter.rb.erb │ │ │ └── view.html.curly.erb │ │ ├── install │ │ ├── install_generator.rb │ │ └── templates │ │ │ ├── layout.html.curly.erb │ │ │ └── layout_presenter.rb.erb │ │ └── scaffold │ │ ├── scaffold_generator.rb │ │ └── templates │ │ ├── _form.html.curly.erb │ │ ├── edit.html.curly.erb │ │ ├── edit_presenter.rb.erb │ │ ├── form_presenter.rb.erb │ │ ├── index.html.curly.erb │ │ ├── index_presenter.rb.erb │ │ ├── new.html.curly.erb │ │ ├── new_presenter.rb.erb │ │ ├── show.html.curly.erb │ │ └── show_presenter.rb.erb └── rails │ └── projections.json ├── perf ├── compile_benchmark.rb ├── compile_profile.rb └── component_benchmark.rb └── spec ├── attribute_scanner_spec.rb ├── collection_blocks_spec.rb ├── compiler ├── collections_spec.rb └── context_blocks_spec.rb ├── compiler_spec.rb ├── component_compiler_spec.rb ├── component_scanner_spec.rb ├── components_spec.rb ├── conditional_blocks_spec.rb ├── dummy ├── .gitignore ├── app │ ├── controllers │ │ ├── application_controller.rb │ │ └── dashboards_controller.rb │ ├── helpers │ │ └── application_helper.rb │ ├── presenters │ │ ├── dashboards │ │ │ ├── collection_presenter.rb │ │ │ ├── item_presenter.rb │ │ │ ├── new_presenter.rb │ │ │ ├── partials_presenter.rb │ │ │ └── show_presenter.rb │ │ └── layouts │ │ │ └── application_presenter.rb │ └── views │ │ ├── dashboards │ │ ├── _item.html.curly │ │ ├── collection.html.curly │ │ ├── new.html.curly │ │ ├── partials.html.curly │ │ └── show.html.curly │ │ └── layouts │ │ └── application.html.curly ├── config.ru ├── config │ ├── application.rb │ ├── boot.rb │ ├── environment.rb │ ├── environments │ │ └── test.rb │ └── routes.rb └── spec │ └── presenters │ └── dashboards │ └── show_presenter_spec.rb ├── generators ├── controller_generator_spec.rb ├── install_generator_spec.rb ├── scaffold_curly_generator_spec.rb └── scaffold_presenter_generator_spec.rb ├── integration ├── application_layout_spec.rb ├── collection_blocks_spec.rb ├── context_blocks_spec.rb └── partials_spec.rb ├── matchers └── have_structure.rb ├── parser_spec.rb ├── presenter_spec.rb ├── scanner_spec.rb ├── spec_helper.rb ├── syntax_error_spec.rb └── template_handler_spec.rb /.github/CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/.github/CODEOWNERS -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/codeql.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/.github/workflows/codeql.yaml -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.github/workflows/rails_main_testing.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/.github/workflows/rails_main_testing.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/.gitignore -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | -r spec_helper 2 | --order random 3 | -------------------------------------------------------------------------------- /.yardopts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/.yardopts -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/Gemfile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/Rakefile -------------------------------------------------------------------------------- /curly-templates.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/curly-templates.gemspec -------------------------------------------------------------------------------- /gemfiles/common.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/common.rb -------------------------------------------------------------------------------- /gemfiles/rails6.1.gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails6.1.gemfile -------------------------------------------------------------------------------- /gemfiles/rails6.1.gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails6.1.gemfile.lock -------------------------------------------------------------------------------- /gemfiles/rails7.0.gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails7.0.gemfile -------------------------------------------------------------------------------- /gemfiles/rails7.0.gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails7.0.gemfile.lock -------------------------------------------------------------------------------- /gemfiles/rails7.1.gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails7.1.gemfile -------------------------------------------------------------------------------- /gemfiles/rails7.1.gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails7.1.gemfile.lock -------------------------------------------------------------------------------- /gemfiles/rails7.2.gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails7.2.gemfile -------------------------------------------------------------------------------- /gemfiles/rails7.2.gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails7.2.gemfile.lock -------------------------------------------------------------------------------- /gemfiles/rails8.0.gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails8.0.gemfile -------------------------------------------------------------------------------- /gemfiles/rails8.0.gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails8.0.gemfile.lock -------------------------------------------------------------------------------- /gemfiles/rails_main.gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/gemfiles/rails_main.gemfile -------------------------------------------------------------------------------- /lib/curly-templates.rb: -------------------------------------------------------------------------------- 1 | require 'curly' 2 | -------------------------------------------------------------------------------- /lib/curly.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly.rb -------------------------------------------------------------------------------- /lib/curly/attribute_scanner.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/attribute_scanner.rb -------------------------------------------------------------------------------- /lib/curly/compiler.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/compiler.rb -------------------------------------------------------------------------------- /lib/curly/component_compiler.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/component_compiler.rb -------------------------------------------------------------------------------- /lib/curly/component_scanner.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/component_scanner.rb -------------------------------------------------------------------------------- /lib/curly/dependency_tracker.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/dependency_tracker.rb -------------------------------------------------------------------------------- /lib/curly/error.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/error.rb -------------------------------------------------------------------------------- /lib/curly/incomplete_block_error.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/incomplete_block_error.rb -------------------------------------------------------------------------------- /lib/curly/incorrect_ending_error.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/incorrect_ending_error.rb -------------------------------------------------------------------------------- /lib/curly/invalid_component.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/invalid_component.rb -------------------------------------------------------------------------------- /lib/curly/parser.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/parser.rb -------------------------------------------------------------------------------- /lib/curly/presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/presenter.rb -------------------------------------------------------------------------------- /lib/curly/presenter_name_error.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/presenter_name_error.rb -------------------------------------------------------------------------------- /lib/curly/presenter_not_found.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/presenter_not_found.rb -------------------------------------------------------------------------------- /lib/curly/railtie.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/railtie.rb -------------------------------------------------------------------------------- /lib/curly/rspec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/rspec.rb -------------------------------------------------------------------------------- /lib/curly/scanner.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/scanner.rb -------------------------------------------------------------------------------- /lib/curly/syntax_error.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/syntax_error.rb -------------------------------------------------------------------------------- /lib/curly/template_handler.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/curly/template_handler.rb -------------------------------------------------------------------------------- /lib/curly/version.rb: -------------------------------------------------------------------------------- 1 | module Curly 2 | VERSION = "3.4.0" 3 | end 4 | -------------------------------------------------------------------------------- /lib/generators/curly.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly.rb -------------------------------------------------------------------------------- /lib/generators/curly/controller/controller_generator.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/controller/controller_generator.rb -------------------------------------------------------------------------------- /lib/generators/curly/controller/templates/presenter.rb.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/controller/templates/presenter.rb.erb -------------------------------------------------------------------------------- /lib/generators/curly/controller/templates/view.html.curly.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/controller/templates/view.html.curly.erb -------------------------------------------------------------------------------- /lib/generators/curly/install/install_generator.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/install/install_generator.rb -------------------------------------------------------------------------------- /lib/generators/curly/install/templates/layout.html.curly.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/install/templates/layout.html.curly.erb -------------------------------------------------------------------------------- /lib/generators/curly/install/templates/layout_presenter.rb.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/install/templates/layout_presenter.rb.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/scaffold_generator.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/scaffold_generator.rb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/_form.html.curly.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/_form.html.curly.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/edit.html.curly.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/edit.html.curly.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/edit_presenter.rb.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/edit_presenter.rb.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/form_presenter.rb.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/form_presenter.rb.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/index.html.curly.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/index.html.curly.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/index_presenter.rb.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/index_presenter.rb.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/new.html.curly.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/new.html.curly.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/new_presenter.rb.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/new_presenter.rb.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/show.html.curly.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/show.html.curly.erb -------------------------------------------------------------------------------- /lib/generators/curly/scaffold/templates/show_presenter.rb.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/generators/curly/scaffold/templates/show_presenter.rb.erb -------------------------------------------------------------------------------- /lib/rails/projections.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/lib/rails/projections.json -------------------------------------------------------------------------------- /perf/compile_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/perf/compile_benchmark.rb -------------------------------------------------------------------------------- /perf/compile_profile.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/perf/compile_profile.rb -------------------------------------------------------------------------------- /perf/component_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/perf/component_benchmark.rb -------------------------------------------------------------------------------- /spec/attribute_scanner_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/attribute_scanner_spec.rb -------------------------------------------------------------------------------- /spec/collection_blocks_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/collection_blocks_spec.rb -------------------------------------------------------------------------------- /spec/compiler/collections_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/compiler/collections_spec.rb -------------------------------------------------------------------------------- /spec/compiler/context_blocks_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/compiler/context_blocks_spec.rb -------------------------------------------------------------------------------- /spec/compiler_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/compiler_spec.rb -------------------------------------------------------------------------------- /spec/component_compiler_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/component_compiler_spec.rb -------------------------------------------------------------------------------- /spec/component_scanner_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/component_scanner_spec.rb -------------------------------------------------------------------------------- /spec/components_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/components_spec.rb -------------------------------------------------------------------------------- /spec/conditional_blocks_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/conditional_blocks_spec.rb -------------------------------------------------------------------------------- /spec/dummy/.gitignore: -------------------------------------------------------------------------------- 1 | log 2 | -------------------------------------------------------------------------------- /spec/dummy/app/controllers/application_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/dummy/app/controllers/application_controller.rb -------------------------------------------------------------------------------- /spec/dummy/app/controllers/dashboards_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/dummy/app/controllers/dashboards_controller.rb -------------------------------------------------------------------------------- /spec/dummy/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/dummy/app/helpers/application_helper.rb -------------------------------------------------------------------------------- /spec/dummy/app/presenters/dashboards/collection_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/dummy/app/presenters/dashboards/collection_presenter.rb -------------------------------------------------------------------------------- /spec/dummy/app/presenters/dashboards/item_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/dummy/app/presenters/dashboards/item_presenter.rb -------------------------------------------------------------------------------- /spec/dummy/app/presenters/dashboards/new_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/dummy/app/presenters/dashboards/new_presenter.rb -------------------------------------------------------------------------------- /spec/dummy/app/presenters/dashboards/partials_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/dummy/app/presenters/dashboards/partials_presenter.rb -------------------------------------------------------------------------------- /spec/dummy/app/presenters/dashboards/show_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/dummy/app/presenters/dashboards/show_presenter.rb -------------------------------------------------------------------------------- /spec/dummy/app/presenters/layouts/application_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendesk/curly/HEAD/spec/dummy/app/presenters/layouts/application_presenter.rb -------------------------------------------------------------------------------- /spec/dummy/app/views/dashboards/_item.html.curly: -------------------------------------------------------------------------------- 1 |