All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added legacy VoteFu contributors to gem authors
- Fixed gemspec homepage to point to votefu.dev
Complete rewrite of VoteFu for modern Rails applications.
- Integer vote values (supports up/down, star ratings 1-5, weighted votes)
- Scoped voting - multiple independent vote contexts per voteable
- Counter cache support (
votes_count,votes_total,upvotes_count,downvotes_count) acts_as_voteableandacts_as_voterconcernsvotes_onDSL for dynamic method generationvoteable_byDSL for explicit voter relationships
- Wilson Score Lower Bound - Statistical confidence interval for quality ranking
- Reddit Hot - Time-decaying popularity ranking
- Hacker News - Heavily time-weighted ranking
VotesControllerwith full Turbo Stream responses- View helpers:
vote_widget,like_button,upvote_button,downvote_button,vote_count - Turbo Stream partials for seamless DOM updates
- Stimulus controller for optimistic UI updates
VoteWidgetComponent- Reddit-style upvote/downvote (variants: default, compact, vertical, large)StarRatingComponent- 1-5 star rating with averages and countsLikeButtonComponent- Simple heart/like buttonReactionBarComponent- Emoji reactions (Slack/GitHub style)
VotesChannelfor live vote broadcasts- JavaScript client for subscribing to vote updates
- Auto-subscribe functionality for widgets on page
has_karmaDSL for reputation tracking- Time decay with configurable half-life
- Weighted karma sources (upvotes vs downvotes)
- Karma levels with progress tracking (Newcomer -> Legend)
- Scoped karma calculation
- Karma caching support for performance
karma_level,karma_progress,recent_karmamethods
- Default CSS with dark mode support
- Size variants (compact, default, large, vertical)
- Fully customizable via CSS
- BREAKING: Minimum Ruby version is now 3.2
- BREAKING: Minimum Rails version is now 7.2
- BREAKING: Votes use integer
valueinstead of boolean - BREAKING: New namespace
VoteFu::Vote(was justVote) - BREAKING: Counter cache columns renamed for clarity
- All legacy Rails 2/3/4 compatibility code
named_scopeusage (replaced with modernscope)find(:all)patterns- External dependency on
statistics2gem
- Original VoteFu release for Rails 2.x
- Forked as ThumbsUp in 2010
- See https://github.com/peteonrails/vote_fu for historical code