belongs_to_enum 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -1,2 +1,42 @@
1
1
  Adds support for transparent enums to ActiveRecord.
2
- Adds a belongs_to_enum to ActiveRecord that takes an array of possible values.
2
+ Adds a belongs_to_enum to ActiveRecord that takes an array of possible values.
3
+
4
+ Adds an add_extra_data method to ActiveRecord that invisibly includes an extra data table. Use with STI to keep your database clean. It removes the need to have lots of nullable columns.
5
+
6
+ Usage
7
+ ---------
8
+ Use in Rails 3 app. Add to bundler:
9
+ gem "belongs_to_enum"
10
+
11
+ Tests
12
+ ---------
13
+ Uses rspec for testing.
14
+ Run tests with rspec spec/*
15
+
16
+ Todo
17
+ ---------
18
+ * Add scopes
19
+
20
+ Example
21
+ ---------
22
+
23
+ Usage:
24
+
25
+ In models:
26
+ scope :admin, where(:role_id => User::Role.admin)
27
+
28
+ In views:
29
+ =f.select(:role, User::Role.pretty_items)
30
+ -User::Role.each do |role_title, role_id|
31
+ #{role_title} (#{role_id})
32
+
33
+ Classes:
34
+ class User < ActiveRecord::Base
35
+ belongs_to_enum :role, [:normal, :admin, :superadmin, :suspended]
36
+ end
37
+
38
+ Database Schema:
39
+
40
+ create_table :users do |t|
41
+ t.float :role_id
42
+ end
@@ -26,13 +26,13 @@ module BelongsToEnum
26
26
  @hash.values
27
27
  end
28
28
 
29
- def Enum.pretty_items
29
+ def Enum.items_for_select
30
30
  @hash.sort{|a,b| a[1]<=>b[1]}.map{|i|[i[0].to_s.gsub("_", " ").capitalize,i[1]]}
31
31
  end
32
32
 
33
33
  def Enum.items
34
34
  warn "DEPRECIATED belongs_to_enum: Use pretty items instead"
35
- pretty_items
35
+ items_for_select
36
36
  end
37
37
 
38
38
  def Enum.get(value)
@@ -1,3 +1,3 @@
1
1
  module BelongsToEnum
2
- VERSION = "0.1"
2
+ VERSION = "0.2"
3
3
  end
@@ -26,12 +26,12 @@ describe "Belongs To Enum models" do
26
26
  end
27
27
  end
28
28
 
29
- it "has pretty items" do
30
- User::Role.pretty_items.first[0].should == "Normal"
31
- User::Role.pretty_items.first[1].should == 1
29
+ it "has items_for_select" do
30
+ User::Role.items_for_select.first[0].should == "Normal"
31
+ User::Role.items_for_select.first[1].should == 1
32
32
  end
33
33
 
34
- it "has depreciated items method that maps to pretty_items" do
34
+ it "has depreciated items method that maps to items_for_select" do
35
35
  User::Role.items.first[0].should == "Normal"
36
36
  User::Role.items.first[1].should == 1
37
37
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: belongs_to_enum
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: "0.1"
5
+ version: "0.2"
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jeremy walker
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-17 00:00:00 +01:00
13
+ date: 2011-05-18 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency