https://github.com/jnunemaker/scam
Really basic fake model for doing types in memory
https://github.com/jnunemaker/scam
Last synced: 9 months ago
JSON representation
Really basic fake model for doing types in memory
- Host: GitHub
- URL: https://github.com/jnunemaker/scam
- Owner: jnunemaker
- Created: 2010-12-28T18:14:15.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2011-09-17T01:53:12.000Z (over 14 years ago)
- Last Synced: 2025-05-30T22:44:57.879Z (12 months ago)
- Language: Ruby
- Homepage:
- Size: 706 KB
- Stars: 32
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.rdoc
Awesome Lists containing this project
README
= Scam
Really basic model-ish thing for creating different types in your application easily.
I use this whenever I want something to do psuedo belongs to/has many relationships, but do not want to back a model with a database as the data does not change often, if ever.
== Usage
Just create a class and include scam.
class FeedTemplate
include Scam
attr_accessor :title, :icon, :instructions, :template, :format, :label
def expand(value)
url = template.gsub('{value}', URI.escape(value))
url = "http://#{url}" if url !~ /https?\:\/\//
url
end
def parse(body)
case format
when 'json'
ActiveSupport::JSON.decode(body)
when 'feed'
Feedzirra::Feed.parse(body).to_hash
end
end
end
FeedTemplate.create({
:id => 1,
:title => 'Twitter',
:label => 'Twitter Username',
:icon => 'twitter',
:instructions => 'Enter your Twitter username',
:format => 'json',
:template => 'http://twitter.com/statuses/user_timeline/{value}.json',
})
Attributes are just defined using attr_accessor. :id is added when you include Scam.
== Note on Patches/Pull Requests
* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a
future version unintentionally.
* Commit, do not mess with rakefile, version, or history.
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.
== Copyright
Copyright (c) 2010 John Nunemaker. See LICENSE for details.