Skip to content

Commit ccfc5a3

Browse files
authored
Merge pull request #44 from activeadmin-plugins/v1.0.0
V1.0.0 preparation
2 parents d2cdc2c + 18fd4c6 commit ccfc5a3

11 files changed

Lines changed: 143 additions & 86 deletions

File tree

.github/workflows/ci.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: CI
2+
on:
3+
pull_request:
4+
push:
5+
branches: [master]
6+
7+
permissions:
8+
contents: read
9+
pages: write
10+
id-token: write
11+
12+
jobs:
13+
test:
14+
name: Ruby ${{ matrix.ruby }} / Rails ${{ matrix.rails }} / AA ${{ matrix.activeadmin }}
15+
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
ruby: ['3.3', '3.4', '4.0']
20+
rails: ['~> 7.2.0', '~> 8.0.0', '~> 8.1.0']
21+
activeadmin: ['~> 3.2', '~> 3.3', '~> 3.4', '~> 3.5']
22+
env:
23+
RAILS_VERSION: ${{ matrix.rails }}
24+
ACTIVE_ADMIN_VERSION: ${{ matrix.activeadmin }}
25+
steps:
26+
- uses: actions/checkout@v4
27+
- uses: ruby/setup-ruby@v1
28+
with:
29+
ruby-version: ${{ matrix.ruby }}
30+
bundler-cache: true
31+
- name: Run tests
32+
run: bundle exec rspec spec
33+
34+
- name: Generate badge.json
35+
if: matrix.ruby == '4.0' && matrix.rails == '~> 8.1.0' && matrix.activeadmin == '~> 3.5'
36+
run: |
37+
LAST_RUN="coverage/.last_run.json"
38+
if [ ! -f "$LAST_RUN" ]; then
39+
mkdir -p badge
40+
echo '{"schemaVersion":1,"label":"coverage","message":"unknown","color":"lightgrey"}' > badge/badge.json
41+
exit 0
42+
fi
43+
PERCENT=$(ruby -rjson -e "puts JSON.parse(File.read('$LAST_RUN')).dig('result','line').round(1)")
44+
PERCENT_NUM=$(ruby -rjson -e "puts JSON.parse(File.read('$LAST_RUN')).dig('result','line')")
45+
if ruby -e "exit(($PERCENT_NUM >= 90) ? 0 : 1)"; then COLOR="brightgreen"
46+
elif ruby -e "exit(($PERCENT_NUM >= 75) ? 0 : 1)"; then COLOR="green"
47+
elif ruby -e "exit(($PERCENT_NUM >= 60) ? 0 : 1)"; then COLOR="yellow"
48+
else COLOR="red"; fi
49+
mkdir -p badge
50+
echo "{\"schemaVersion\":1,\"label\":\"coverage\",\"message\":\"${PERCENT}%\",\"color\":\"${COLOR}\"}" > badge/badge.json
51+
52+
- name: Upload badge artifact
53+
if: matrix.ruby == '4.0' && matrix.rails == '~> 8.1.0' && matrix.activeadmin == '~> 3.5'
54+
uses: actions/upload-artifact@v4
55+
with:
56+
name: coverage-badge
57+
path: badge
58+
59+
deploy-coverage:
60+
needs: test
61+
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
62+
runs-on: ubuntu-latest
63+
environment:
64+
name: github-pages
65+
url: ${{ steps.deployment.outputs.page_url }}
66+
67+
steps:
68+
- uses: actions/checkout@v4
69+
with:
70+
ref: gh-pages
71+
72+
- name: Download coverage badge
73+
uses: actions/download-artifact@v4
74+
with:
75+
name: coverage-badge
76+
path: .
77+
78+
- name: Setup Pages
79+
uses: actions/configure-pages@v5
80+
81+
- name: Upload Pages artifact
82+
uses: actions/upload-pages-artifact@v3
83+
with:
84+
path: .
85+
86+
- name: Deploy to GitHub Pages
87+
id: deployment
88+
uses: actions/deploy-pages@v4

.travis.yml

Lines changed: 0 additions & 51 deletions
This file was deleted.

Gemfile

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,16 @@
1-
# frozen_string_literal: true
2-
31
source 'https://rubygems.org'
4-
5-
# Specify your gem's dependencies in capybara_active_admin.gemspec
62
gemspec
73

8-
gem 'capybara'
9-
gem 'selenium-webdriver'
10-
# https://github.com/mattheworiordan/capybara-screenshot/issues/225#issuecomment-409407825
11-
gem 'cuprite'
12-
gem 'puma'
13-
gem 'rake', '~> 12.0'
14-
gem 'rspec-rails', '~> 4.0'
15-
gem 'rubocop', '~> 0.81.0', require: false
16-
gem 'yard', require: false
4+
gem 'activeadmin', ENV.fetch('ACTIVE_ADMIN_VERSION', '~> 3.2')
5+
gem 'rails', ENV.fetch('RAILS_VERSION', '~> 7.1.0')
6+
gem 'sprockets-rails'
7+
gem 'sassc-rails'
178

18-
gem 'activeadmin', ENV.fetch('ACTIVE_ADMIN_VERSION', '~> 2.0'), require: false
19-
gem 'rails', ENV.fetch('RAILS_VERSION', '6.0.0')
20-
21-
# responders 3 drops ruby 2.3 support
22-
if RUBY_VERSION =~ /^2\.3/
23-
gem 'responders', '~> 2.4'
24-
else
25-
gem 'responders' # rubocop:disable Bundler/DuplicatedGem
9+
group :test do
10+
gem 'capybara'
11+
gem 'cuprite'
12+
gem 'puma'
13+
gem 'rspec-rails', '~> 6.0'
14+
gem 'simplecov', require: false
15+
gem 'sqlite3', '~> 2.0'
2616
end
27-
28-
gem 'sassc-rails', '2.1.2'
29-
gem 'sprockets', '3.7.2'
30-
gem 'sqlite3'

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# Capybara Active Admin
22

3-
[![Build Status](https://travis-ci.com/activeadmin-plugins/capybara_active_admin.svg?branch=master)](https://travis-ci.com/activeadmin-plugins/capybara_active_admin) [![Gem Version](https://badge.fury.io/rb/capybara_active_admin.svg)](https://badge.fury.io/rb/capybara_active_admin) [![Downloads](https://img.shields.io/gem/dt/capybara_active_admin)](https://rubygems.org/gems/capybara_active_admin) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
3+
[![CI](https://github.com/activeadmin-plugins/capybara_active_admin/actions/workflows/ci.yml/badge.svg)](https://github.com/activeadmin-plugins/capybara_active_admin/actions/workflows/ci.yml)
4+
[![Coverage](https://img.shields.io/endpoint?url=https://activeadmin-plugins.github.io/capybara_active_admin/badge.json)](https://activeadmin-plugins.github.io/capybara_active_admin/)
5+
[![Gem Version](https://badge.fury.io/rb/capybara_active_admin.svg)](https://badge.fury.io/rb/capybara_active_admin)
6+
[![Downloads](https://img.shields.io/gem/dt/capybara_active_admin)](https://rubygems.org/gems/capybara_active_admin)
7+
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
48

59
Capybara DSL for fast and easy testing Active Admin applications.
610

capybara_active_admin.gemspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
1212
spec.description = 'Capybara DSL for fast and easy testing Active Admin applications.'
1313
spec.homepage = 'https://github.com/active_admin_plugins/capybara_active_admin'
1414
spec.license = 'MIT'
15-
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
15+
spec.required_ruby_version = Gem::Requirement.new('>= 3.3.0')
1616

1717
spec.metadata['homepage_uri'] = spec.homepage
1818
spec.metadata['source_code_uri'] = spec.homepage
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
2727
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
2828
spec.require_paths = ['lib']
2929

30-
spec.add_dependency 'activeadmin'
30+
spec.add_dependency 'activeadmin', '>= 3.0', '< 4.0'
3131
# spec.add_dependency 'devise'
3232
spec.add_dependency 'rspec', '~> 3.0'
3333
end
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
//= link_directory ../stylesheets .css
2+
//= link_directory ../javascripts .js
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//= require active_admin/base
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@import "active_admin/mixins";
2+
@import "active_admin/base";
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
//= link_tree ../images
2+
//= link_directory ../javascripts .js
3+
//= link_directory ../stylesheets .css

spec/dummy/test_application.rb

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,20 @@
4848
class TestApplication < Rails::Application
4949
config.root = __dir__
5050
config.session_store :cookie_store, key: 'cookie_store_key'
51-
secrets.secret_token = 'secret_token'
52-
secrets.secret_key_base = 'secret_key_base'
51+
config.secret_key_base = 'secret_key_base_for_testing_only'
5352

5453
config.eager_load = false
5554
config.logger = ActiveRecord::Base.logger
5655

5756
config.hosts = %w[127.0.0.1]
5857

5958
# Configure sprockets assets
60-
config.assets.paths = [File.join(config.root, 'assets')]
59+
config.assets.paths = [File.join(config.root, 'app', 'assets', 'stylesheets'), File.join(config.root, 'app', 'assets', 'javascripts')]
6160
config.assets.unknown_asset_fallback = false
6261
config.assets.digest = false
6362
config.assets.debug = false
6463
config.assets.compile = true
64+
6565
# config.public_file_server.enabled
6666
end
6767

@@ -91,12 +91,16 @@ def log_error(error, causes: [])
9191
return if error.cause.nil? || error.cause == error || causes.include?(error.cause)
9292

9393
causes.push(error)
94-
log_error(error, causes)
94+
log_error(error.cause, causes: causes)
9595
end
9696
end
9797

9898
class User < ActiveRecord::Base
9999
validates :full_name, presence: true
100+
101+
def self.ransackable_attributes(auth_object = nil)
102+
%w[id full_name created_at updated_at]
103+
end
100104
end
101105

102106
module Billing
@@ -105,6 +109,14 @@ class Employee < ActiveRecord::Base
105109
accepts_nested_attributes_for :duties
106110
validates :full_name, presence: true
107111
validates :salary, numericality: { greater_than_or_equal_to: 0.01 }
112+
113+
def self.ransackable_attributes(auth_object = nil)
114+
%w[id full_name salary created_at updated_at]
115+
end
116+
117+
def self.ransackable_associations(auth_object = nil)
118+
%w[duties]
119+
end
108120
end
109121

110122
class Duty < ActiveRecord::Base
@@ -115,6 +127,14 @@ class Duty < ActiveRecord::Base
115127
def common?
116128
duty_type == 'common'
117129
end
130+
131+
def self.ransackable_attributes(auth_object = nil)
132+
%w[id name duty_type employee_id created_at updated_at]
133+
end
134+
135+
def self.ransackable_associations(auth_object = nil)
136+
%w[employee]
137+
end
118138
end
119139
end
120140

0 commit comments

Comments
 (0)