Socket
Book a DemoInstallSign in
Socket

custom_fields

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

custom_fields

2.14.0.alpha1
bundlerRubygems
Version published
Maintainers
1
Created
Source

CustomFields

Travis CI Status

Manage custom fields to a Mongoid document or a collection. This module is one of the core features we implemented in our custom CMS, named LocomotiveCMS. Basically, its aim is to provide to editors a way to manage extra fields to a Mongoid document through, for instance, a web UI.

The main goals:

  • Offering a very secure way to add, edit and delete extra fields to a Mongoid document.
  • Scoping the modifications added to a Mongoid document, so that other documents of the same class won't be updated.

Requirements

  • Ruby 2.7+ (< 3.2)
  • MongoDB 6+
  • Mongoid 7+
  • ActiveSupport 6+

Examples

On a has_many relationship

class Company
  include CustomFields::Source

  has_many :employees

  custom_fields_for :employees
end

class Employee
  include CustomFields::Target

  field :name, String

  belongs_to :company, inverse_of: :employees
end

company = Company.new
company.employees_custom_fields.build label: 'His/her position', name: 'position', type: 'string', required: true

company.save

company.employees.build name: 'Michael Scott', position: 'Regional manager'

another_company = Company.new
employee = another_company.employees.build
employee.position # Returns a `not defined method` error

On the class itself

IN PROGRESS

class Company
  custom_fields_for_itself
end

company = Company.new
company.self_metadata_custom_fields.build label: 'Shipping Address', name: 'address', type: 'text'

company.save

company.self_metadata.address = '700 S Laflin, 60607 Chicago'

another_company = Company.new
other_company.self_metadata.address # Returns a `not defined method` error

Development

Run specs

Run rspec or rake.

Test Coverage

Run COVERAGE=true rspec or COVERAGE=true rake.

Contact

Feel free to contact me at did at locomotivecms dot com.

License

Copyright (c) 2023 NoCoffee, released under the MIT License (MIT), see [MIT-LICENSE].

FAQs

Package last updated on 22 Mar 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.