Acts as file

acts_as_file makes your field act as a file. The content of the field is stored into a file on calling #save method, and is loaded from the file on calling its accessor method.

Build Status Coverage Status

Installation

Add the following to your Gemfile:

gem 'acts_as_file'

And then execute:

$ bundle

Examples

ActiveRecord is not required, but let me write an example for it.

class Post < ActiveRecord::Base
  include ActsAsFile
  def filename
    "posts/#{self.id}_body.txt"
  end
  acts_as_file :body => self.instance_method(:filename)
end

# store
post = Post.new
post.body = 'content'
post.save # save the content into the file of `#filename`
          # create the directory if not exist
# load
post = Post.first
puts post.body # load the content from the file of `#filename`
post.destroy   # remove the file

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
  • Copyright (c) 2014 Naotoshi Seo. See LICENSE for details.