From 0d86116e39d87eec527760dc366fd035c2353304 Mon Sep 17 00:00:00 2001 From: RobL Date: Tue, 3 Aug 2021 12:53:38 +0100 Subject: [PATCH 1/3] Adding documentation for Arrays without a collection --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index e3655e62..0fbf1ad0 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,23 @@ json.array! @people, :id, :name # => [ { "id": 1, "name": "David" }, { "id": 2, "name": "Jamie" } ] ``` +You don't always have or need a collection when building an array. + +```ruby +json.people do + json.child! do + json.id 1 + json.name 'David' + end + json.child! do + json.id 2 + json.name 'Jamie' + end +end + +# => { "people": [ { "id": 1, "name": "David" }, { "id": 2, "name": "Jamie" } ] } +``` + Jbuilder objects can be directly nested inside each other. Useful for composing objects. ``` ruby From b1894eff44917b3c1d3e286956a51dbd3514202d Mon Sep 17 00:00:00 2001 From: Takuya Noguchi Date: Wed, 11 Aug 2021 03:59:37 +0000 Subject: [PATCH 2/3] Migrate CI from Travis CI to GitHub Actions Signed-off-by: Takuya Noguchi --- .github/workflows/ruby.yml | 108 +++++++++++++++++++++++++++++++++++++ .travis.yml | 80 --------------------------- CONTRIBUTING.md | 6 +-- Rakefile | 2 +- 4 files changed, 112 insertions(+), 84 deletions(-) create mode 100644 .github/workflows/ruby.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml new file mode 100644 index 00000000..aaa9530c --- /dev/null +++ b/.github/workflows/ruby.yml @@ -0,0 +1,108 @@ +name: Ruby test + +on: [push, pull_request] + +jobs: + test: + name: Ruby test + runs-on: ubuntu-20.04 + continue-on-error: ${{ matrix.experimental }} + env: + BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile + BUNDLE_JOBS: 4 + BUNDLE_RETRY: 3 + strategy: + fail-fast: false + matrix: + ruby: [ + 2.2.10, + 2.3.8, + 2.4.10, + 2.5.8, + 2.6.6, + 2.7.1, + 3.0.0 + ] + gemfile: [ + "rails_5_0", + "rails_5_1", + "rails_5_2", + "rails_6_0", + "rails_6_1", + "rails_head" + ] + experimental: [false] + exclude: + - ruby: 2.7.1 + gemfile: rails_5_0 + - ruby: 3.0.0 + gemfile: rails_5_0 + - ruby: head + gemfile: rails_5_0 + - ruby: 2.7.1 + gemfile: rails_5_1 + - ruby: 3.0.0 + gemfile: rails_5_1 + - ruby: head + gemfile: rails_5_1 + - ruby: 2.2.10 + gemfile: rails_5_2 + - ruby: 2.7.1 + gemfile: rails_5_2 + - ruby: 3.0.0 + gemfile: rails_5_2 + - ruby: head + gemfile: rails_5_2 + - ruby: 2.2.10 + gemfile: rails_6_0 + - ruby: 2.3.8 + gemfile: rails_6_0 + - ruby: 2.4.10 + gemfile: rails_6_0 + - ruby: 3.0.0 + gemfile: rails_6_0 + - ruby: head + gemfile: rails_6_0 + - ruby: 2.2.10 + gemfile: rails_6_1 + - ruby: 2.3.8 + gemfile: rails_6_1 + - ruby: 2.4.10 + gemfile: rails_6_1 + - ruby: 2.2.10 + gemfile: rails_head + - ruby: 2.3.8 + gemfile: rails_head + - ruby: 2.4.10 + gemfile: rails_head + - ruby: 2.5.8 + gemfile: rails_head + - ruby: 2.6.6 + gemfile: rails_head + - ruby: 2.7.1 + gemfile: rails_head + experimental: false + - ruby: 3.0.0 + gemfile: rails_head + experimental: false + include: + - ruby: 2.7.1 + gemfile: rails_head + experimental: true + - ruby: 3.0.0 + gemfile: rails_head + experimental: true + - ruby: head + gemfile: rails_head + experimental: true + + steps: + - uses: actions/checkout@v2 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true + + - name: Ruby test + run: bundle exec rake diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 88f4ef37..00000000 --- a/.travis.yml +++ /dev/null @@ -1,80 +0,0 @@ -language: ruby - -cache: bundler - -before_install: - - "gem install bundler -v '<2'" - -rvm: - - 2.2.10 - - 2.3.8 - - 2.4.10 - - 2.5.8 - - 2.6.6 - - 2.7.1 - - 3.0.0 - - ruby-head - -gemfile: - - gemfiles/rails_5_0.gemfile - - gemfiles/rails_5_1.gemfile - - gemfiles/rails_5_2.gemfile - - gemfiles/rails_6_0.gemfile - - gemfiles/rails_6_1.gemfile - - gemfiles/rails_head.gemfile - -matrix: - exclude: - - rvm: 2.7.1 - gemfile: gemfiles/rails_5_0.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/rails_5_0.gemfile - - rvm: ruby-head - gemfile: gemfiles/rails_5_0.gemfile - - rvm: 2.7.1 - gemfile: gemfiles/rails_5_1.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/rails_5_1.gemfile - - rvm: ruby-head - gemfile: gemfiles/rails_5_1.gemfile - - rvm: 2.2.10 - gemfile: gemfiles/rails_5_2.gemfile - - rvm: 2.7.1 - gemfile: gemfiles/rails_5_2.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/rails_5_2.gemfile - - rvm: ruby-head - gemfile: gemfiles/rails_5_2.gemfile - - rvm: 2.2.10 - gemfile: gemfiles/rails_6_0.gemfile - - rvm: 2.3.8 - gemfile: gemfiles/rails_6_0.gemfile - - rvm: 2.4.10 - gemfile: gemfiles/rails_6_0.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/rails_6_0.gemfile - - rvm: ruby-head - gemfile: gemfiles/rails_6_0.gemfile - - rvm: 2.2.10 - gemfile: gemfiles/rails_6_1.gemfile - - rvm: 2.3.8 - gemfile: gemfiles/rails_6_1.gemfile - - rvm: 2.4.10 - gemfile: gemfiles/rails_6_1.gemfile - - rvm: 2.2.10 - gemfile: gemfiles/rails_head.gemfile - - rvm: 2.3.8 - gemfile: gemfiles/rails_head.gemfile - - rvm: 2.4.10 - gemfile: gemfiles/rails_head.gemfile - - rvm: 2.5.8 - gemfile: gemfiles/rails_head.gemfile - - rvm: 2.6.6 - gemfile: gemfiles/rails_head.gemfile - allow_failures: - - rvm: ruby-head - - gemfile: gemfiles/rails_head.gemfile - fast_finish: true - -notifications: - email: false diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1abd71fe..0ecd004d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,11 +1,11 @@ Contributing to Jbuilder ===================== -[![Build Status](https://api.travis-ci.org/rails/jbuilder.svg?branch=master)][travis] +[![Build Status](https://github.com/rails/jbuilder/workflows/Ruby%20test/badge.svg)][test] [![Gem Version](https://badge.fury.io/rb/jbuilder.svg)][gem] [![Code Climate](https://codeclimate.com/github/rails/jbuilder/badges/gpa.svg)][codeclimate] -[travis]: https://travis-ci.org/rails/jbuilder +[test]: https://github.com/rails/jbuilder/actions?query=branch%3Amaster [gem]: https://rubygems.org/gems/jbuilder [codeclimate]: https://codeclimate.com/github/rails/jbuilder @@ -95,7 +95,7 @@ git push origin my-feature-branch -f #### Check on Your Pull Request -Go back to your pull request after a few minutes and see whether it passed muster with Travis-CI. Everything should look green, otherwise fix issues and amend your commit as described above. +Go back to your pull request after a few minutes and see whether it passed muster with GitHub Actions. Everything should look green, otherwise fix issues and amend your commit as described above. #### Be Patient diff --git a/Rakefile b/Rakefile index c51d8827..3a28e6fa 100644 --- a/Rakefile +++ b/Rakefile @@ -2,7 +2,7 @@ require "bundler/setup" require "bundler/gem_tasks" require "rake/testtask" -if !ENV["APPRAISAL_INITIALIZED"] && !ENV["TRAVIS"] +if !ENV["APPRAISAL_INITIALIZED"] && !ENV["CI"] require "appraisal/task" Appraisal::Task.new task default: :appraisal From 062b1cf90e863ea5803a5ab6bfecc86fac70c612 Mon Sep 17 00:00:00 2001 From: Anton Rieder Date: Mon, 11 Oct 2021 13:46:52 +0200 Subject: [PATCH 3/3] Remove compat for `fragment_name_with_digest` jbuilder only support Rails 5.0+ which responds to `cache_fragment_name` --- lib/jbuilder/jbuilder_template.rb | 5 ----- test/test_helper.rb | 1 - 2 files changed, 6 deletions(-) diff --git a/lib/jbuilder/jbuilder_template.rb b/lib/jbuilder/jbuilder_template.rb index 26f94ae9..f6add195 100644 --- a/lib/jbuilder/jbuilder_template.rb +++ b/lib/jbuilder/jbuilder_template.rb @@ -162,12 +162,7 @@ def _cache_key(key, options) def _fragment_name_with_digest(key, options) if @context.respond_to?(:cache_fragment_name) - # Current compatibility, fragment_name_with_digest is private again and cache_fragment_name - # should be used instead. @context.cache_fragment_name(key, **options) - elsif @context.respond_to?(:fragment_name_with_digest) - # Backwards compatibility for period of time when fragment_name_with_digest was made public. - @context.fragment_name_with_digest(key) else key end diff --git a/test/test_helper.rb b/test/test_helper.rb index ab95aba9..dcac36cf 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -30,5 +30,4 @@ class Racer < Struct.new(:id, :name) ActionView::Template.register_template_handler :jbuilder, JbuilderHandler -ActionView::Base.remove_possible_method :fragment_name_with_digest ActionView::Base.remove_possible_method :cache_fragment_name