activeadmin_favorites 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51027c5b7293ba07e01be5677e4785b9d682c177ef6cea6137b4f658cb2ede71
4
- data.tar.gz: 24bbfd1df143374ccd612f14e6bec75967a44571ad58013d1203ca03c44c02be
3
+ metadata.gz: 9c52fa8f127b186b02bab3ea8dbb27534a1cec621540c9e7856795f7d4353226
4
+ data.tar.gz: 3cd3a3248cd4c416229b1dfc6051fc478de502ad1366a6c8342a1c40cfa7a2bb
5
5
  SHA512:
6
- metadata.gz: e62dc3e8a67dcf78d388d00764eef5f9e4051d7ae446680d5c28775eebd6b3efb5c09443b19a0cf64e2333bdb4acfe03fbae62cc6021ec4b84d19287b1cb11ea
7
- data.tar.gz: 51fad41e3d2841c6d4d55758e33e62e74539c96dc27035dcac0ddf5de2568a197da9b921aee3f90467e2233ca4554adc23659765acb166a9d3696130c11a1785
6
+ metadata.gz: 63de9c366a211be6786a74d5dc3716e1873bff84ecdeaae074c6247cc3414597750a4aaf5031e4bee55e7d86522c24a73313739382ecdabe1e190e1aaff49a71
7
+ data.tar.gz: 24c4a24fd86f690651b9b3c608c381ca2f32221d4e3852380a94d97ffa3bef7403dd6c04c1feb1de66d8c1591e2b29e6e9557d31e09165611529f22806b0ed1d
data/CHANGELOG.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
- ## Unreleased
3
+ ## 0.1.1 (2026-09-07)
4
4
 
5
- - CI: run Rails 7.2 appraisal on Ruby 3.4; refresh lockfiles for current advisories (`loofah` 2.25.2, `rails-html-sanitizer` 1.7.1) and development gems (`rbs` ~> 4).
5
+ - Keep favorites registration working after ActiveAdmin reload when a custom page is already registered.
6
+ - Keep JSON and CSV collection downloads working on ActiveAdmin resources that only expose the index action.
7
+ - CI: run Rails 7.2 appraisal on Ruby 3.4; refresh lockfiles for current advisories (`loofah` 2.25.2, `rails-html-sanitizer` 1.7.1, `json` 2.21.2, `sqlite3` 2.9.6) and development gems (`rbs` ~> 4).
6
8
 
7
9
  ## 0.1.0 (2026-07-13)
8
10
 
data/CODE_OF_CONDUCT.md CHANGED
@@ -1,31 +1,26 @@
1
1
  # Code of Conduct
2
2
 
3
- ## Our pledge
3
+ ## Pledge
4
4
 
5
- We pledge to make participation in our community a harassment-free experience for everyone. We operate on principles of mutual respect, privacy, and authentic engagement. We value substantive contributions and clarity on intentions.
5
+ Participation is a harassment-free experience. Treat each other with respect. Keep private context private.
6
6
 
7
- ## Our standards
7
+ ## Expected behavior
8
8
 
9
- Examples of behavior that contributes to a positive environment include:
9
+ - Engage with genuine curiosity. Admit uncertainty.
10
+ - Own every line you submit, including generated code.
11
+ - Correct errors politely.
12
+ - Use language that welcomes people and respects identity and privacy.
10
13
 
11
- - Authenticity: engaging with genuine curiosity and admitting uncertainty rather than feigning knowledge.
12
- - Responsible innovation: taking full responsibility for any content or code contributed, whether manually written or generated by automation tools.
13
- - Gentle correction: responding politely to errors. We view mistakes as opportunities for learning, provided they are addressed with humility.
14
- - Inclusive language: using language that welcomes diverse perspectives and respects the privacy and identity of all participants.
14
+ ## Unacceptable behavior
15
15
 
16
- Examples of unacceptable behavior include:
16
+ - Harassment, trolling, or insulting comments, public or private.
17
+ - Using jargon or volume, including automated spam, to silence others.
18
+ - Sharing others' data or personal context without permission.
17
19
 
18
- - Harassment: public or private harassment, trolling, or insulting comments.
19
- - Weaponized complexity: using jargon or overwhelming volume (including automated spam) to silence others.
20
- - Publishing private information: sharing others' data or personal context without explicit permission.
20
+ ## Automation
21
21
 
22
- ## Artificial intelligence and automation
23
-
24
- In accordance with our commitment to collective awareness:
25
-
26
- - Contributors are responsible for the accuracy and security of any AI-generated artifacts they submit.
27
- - "The AI wrote it" is not a valid excuse for introducing bugs, security vulnerabilities, or bias.
22
+ You remain responsible for bugs, security holes, and bias in generated artifacts you submit.
28
23
 
29
24
  ## Enforcement
30
25
 
31
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at contact@kiskolabs.com. All complaints will be reviewed and investigated promptly and fairly.
26
+ Report abusive or harassing behavior to contact@kiskolabs.com. Reports are reviewed and investigated.
data/CONTRIBUTING.md CHANGED
@@ -1,29 +1,23 @@
1
1
  # Contributing Guidelines
2
2
 
3
- Thank you for your interest in contributing to activeadmin_favorites. We value learning over perfection but require rigor and responsibility.
3
+ ## Automation authorship
4
4
 
5
- ## The golden rule of automation
5
+ You may use AI and automation tools. You remain the author of every line you submit: review, debug, and understand the change.
6
6
 
7
- We welcome the use of AI and automation tools to reduce toil, but you must strictly adhere to the following:
7
+ Keep pull requests small enough to review. Annotate non-obvious logic.
8
8
 
9
- 1. You are the author. You act as the responsible agent for any code you submit. You must review, debug, and understand every line.
10
- 2. Manage cognitive load. Do not submit massive, unreviewed automated dumps. Respect the reviewers' time by annotating complex logic.
11
- 3. Security. Never feed project secrets or private context into public AI models.
9
+ Never send project secrets or private context to public models.
12
10
 
13
11
  ## How to contribute
14
12
 
15
13
  ### Reporting issues
16
14
 
17
- - Verify accuracy before posting. Avoid generalizations.
18
- - Use issue templates to provide clear goals, constraints, and reproduction steps.
15
+ Verify the facts before filing. Use issue templates for goals, constraints, and reproduction steps.
19
16
 
20
- ### Pull request process
17
+ ### Pull requests
21
18
 
22
- - Scope: keep PRs focused on a single goal.
23
- - Context: explain why the change is necessary.
24
- - Testing: run `make test` locally before opening a PR.
19
+ Keep one pull request to one goal. Explain why the change is needed. Run smoke tests and regression checks locally before opening the request.
25
20
 
26
- ### Review process
21
+ ### Review
27
22
 
28
- - We encourage productive friction. Expect questions about your approach.
29
- - If a reviewer suggests a change, view it as mutual aid, not criticism.
23
+ Reviewers will ask about approach and trade-offs. Treat suggested changes as part of the work.
data/GOVERNANCE.md CHANGED
@@ -1,29 +1,25 @@
1
1
  # Project Governance
2
2
 
3
- ## Overview
4
-
5
- This project balances individual autonomy with collective coordination. We aim for a workflow that supports rapid iteration while maintaining strict guardrails for safety and architectural integrity.
6
-
7
3
  ## Roles
8
4
 
9
5
  ### Contributors
10
6
 
11
- Anyone who submits code, documentation, or participates in discussions. Contributors are expected to exercise direct action—taking ownership of problems they identify—while adhering to our quality standards.
7
+ Anyone who submits code, documentation, or participates in discussions. Contributors take ownership of problems they identify and follow the project's quality standards.
12
8
 
13
- ### Maintainers (Human Oversight)
9
+ ### Maintainers
14
10
 
15
- Maintainers are responsible for:
11
+ Maintainers:
16
12
 
17
- 1. Strategic judgment: defining scope and architectural direction.
18
- 2. Review: verifying that contributions (human or automated) meet security and logic standards.
19
- 3. Consensus building: facilitating decisions when the community is divided.
13
+ 1. Set scope and architectural direction.
14
+ 2. Review contributions (human or automated) against security and logic standards.
15
+ 3. Decide when the community is divided.
20
16
 
21
- ## Decision making process
17
+ ## Decision making
22
18
 
23
19
  ### Lazy consensus
24
20
 
25
- For most routine changes, we operate on lazy consensus. If a proposal is made and no objections are raised within two weeks, it is considered approved.
21
+ For routine changes, a proposal that draws no objection within two weeks is approved.
26
22
 
27
- ### Strategic alignment
23
+ ### Maintainer approval
28
24
 
29
- Major architectural changes, high-risk automation integrations, or changes that affect business logic require explicit approval from the maintainers. We prioritize substance over performance—a change must solve a real problem, not just appear polished.
25
+ Major architectural changes, high-risk automation integrations, or changes that affect business logic need explicit maintainer approval. A change must solve a real problem.
data/SECURITY.md CHANGED
@@ -1,27 +1,25 @@
1
1
  # SECURITY
2
2
 
3
- ## Reporting a vulnerability
4
-
5
- Do NOT open a public GitHub issue for security vulnerabilities.
3
+ ## Reporting a Vulnerability
6
4
 
7
5
  Email security details to: security@kiskolabs.com
8
6
 
9
- Include: description, steps to reproduce, potential impact, and suggested fix (if available).
7
+ Send the report only to that address. Include description, steps to reproduce, potential impact, and a suggested fix when you have one.
10
8
 
11
- ### Response timeline
9
+ ### Response Timeline
12
10
 
13
- - We will acknowledge receipt of your report
14
- - We will provide an initial assessment
15
- - We will keep you informed of our progress and resolution timeline
11
+ - We will acknowledge receipt of your report.
12
+ - We will provide an initial assessment.
13
+ - We will keep you informed of our progress and resolution timeline.
16
14
 
17
- ### Disclosure policy
15
+ ### Disclosure Policy
18
16
 
19
- - We will work with you to understand and resolve the issue
20
- - We will credit you for the discovery (unless you prefer to remain anonymous)
21
- - We will publish a security advisory after the vulnerability is patched
22
- - We will coordinate public disclosure with you
17
+ - We will work with you to understand and resolve the issue.
18
+ - We will credit you for the discovery unless you prefer to remain anonymous.
19
+ - We will publish a security advisory after the vulnerability is patched.
20
+ - We will coordinate public disclosure with you.
23
21
 
24
- ## Automation security
22
+ ## Automation Security
25
23
 
26
- - Context isolation: it is strictly forbidden to include production credentials, API keys, or personally identifiable information in prompts sent to third-party LLMs or automation services.
27
- - Supply chain: all automated dependencies must be verified.
24
+ - Keep production credentials, API keys, and personal data out of prompts sent to third-party models or automation services.
25
+ - Verify automated dependencies.
@@ -55,7 +55,7 @@ Gem::Specification.new do |spec|
55
55
  spec.add_development_dependency "rake", "~> 13"
56
56
  spec.add_development_dependency "rspec", "~> 3"
57
57
  spec.add_development_dependency "rspec-rails", ">= 6"
58
- spec.add_development_dependency "sqlite3", ">= 1"
58
+ spec.add_development_dependency "sqlite3", ">= 2.9.6"
59
59
  spec.add_development_dependency "rubocop-rails", "~> 2.34"
60
60
  spec.add_development_dependency "rubocop-rspec", "~> 3.8"
61
61
  spec.add_development_dependency "rubocop-thread_safety", "~> 0.7"
@@ -17,7 +17,7 @@ module ActiveAdmin
17
17
 
18
18
  def configure_favorites_resource!
19
19
  resource = ActiveAdmin.application.namespace(ActiveAdmin::Favorites.config.namespace_name)
20
- .resources.find { |config| config.resource_class == Favorite }
20
+ .resources.find { |config| config.is_a?(ActiveAdmin::Resource) && config.resource_class == Favorite }
21
21
  return unless resource
22
22
 
23
23
  resource.instance_variable_set(:@batch_actions, {}) if resource.instance_variable_get(:@batch_actions).nil?
@@ -265,7 +265,7 @@ module ActiveAdmin
265
265
 
266
266
  def resource_registered?
267
267
  ActiveAdmin.application.namespace(ActiveAdmin::Favorites.config.namespace_name)
268
- .resources.any? { |resource| resource.resource_class == Favorite }
268
+ .resources.any? { |resource| resource.is_a?(ActiveAdmin::Resource) && resource.resource_class == Favorite }
269
269
  end
270
270
  end
271
271
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveAdmin
4
4
  module Favorites
5
- VERSION = "0.1.0"
5
+ VERSION = "0.1.1"
6
6
  end
7
7
  end
@@ -7,8 +7,8 @@ module ActiveAdmin
7
7
  extend ActiveSupport::Concern
8
8
 
9
9
  included do
10
- before_action :apply_active_admin_favorites_lens, only: [:index, :show]
11
- after_action :clear_active_admin_favorites_lens, only: [:index, :show]
10
+ before_action :apply_active_admin_favorites_lens, if: -> { %w[index show].include?(action_name) }
11
+ after_action :clear_active_admin_favorites_lens, if: -> { %w[index show].include?(action_name) }
12
12
 
13
13
  helper_method :active_admin_favorites_catalog, :active_admin_favorites_layout
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeadmin_favorites
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Makarov
@@ -189,14 +189,14 @@ dependencies:
189
189
  requirements:
190
190
  - - ">="
191
191
  - !ruby/object:Gem::Version
192
- version: '1'
192
+ version: 2.9.6
193
193
  type: :development
194
194
  prerelease: false
195
195
  version_requirements: !ruby/object:Gem::Requirement
196
196
  requirements:
197
197
  - - ">="
198
198
  - !ruby/object:Gem::Version
199
- version: '1'
199
+ version: 2.9.6
200
200
  - !ruby/object:Gem::Dependency
201
201
  name: rubocop-rails
202
202
  requirement: !ruby/object:Gem::Requirement