{"id":80270,"library":"decent-exposure","title":"DecentExposure","description":"A declarative way to expose an interface to controller state in Rails, reducing coupling and improving testability.","status":"active","version":"3.0.4","language":"ruby","source_language":null,"source_url":"https://github.com/hashrocket/decent_exposure","tags":["rails","controllers","decoupling","testing"],"install":[{"cmd":"gem install decent_exposure","lang":"bash","label":"gem install"},{"cmd":"# Gemfile\ngem 'decent_exposure', '~> 3.0.4'","lang":"ruby","label":"Gemfile"}],"dependencies":[],"imports":[{"symbol":"DecentExposure","correct":"require 'decent_exposure'"}],"quickstart":{"code":"require 'decent_exposure'\n\nclass PostsController < ApplicationController\n  expose(:posts) { Post.all }\n  expose(:post)\nend","lang":"ruby","description":"Expose controller resources declaratively."},"warnings":[],"env_vars":null,"search_vec":"'control':10,20 'coupl':15 'decentexposur':1 'declar':3 'decoupl':21 'expos':6 'improv':17 'interfac':8 'rail':13,19 'reduc':14 'state':11 'test':22 'testabl':18 'way':4","created_at":"2026-06-18T05:18:46.470851+00:00","updated_at":"2026-06-18T05:18:46.470851+00:00","problems":[],"ecosystem":"rubygems","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/hashrocket/decent_exposure","github":"https://github.com/hashrocket/decent_exposure","docs":"http://www.rubydoc.info/gems/decent_exposure/","changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-18","next_check":"2026-12-15","install_tag":null}}