Commit 3dc64cce7b20df930eee219ba64cecf72fe5245c
1 parent
615b784c
Exists in
master
Add Class Method MagicField.datatypes and re-define pretty_name can be set
Showing
2 changed files
with
16 additions
and
4 deletions
Show diff stats
lib/app/models/magic_field.rb
... | ... | @@ -6,6 +6,12 @@ class MagicField < ActiveRecord::Base |
6 | 6 | validates_presence_of :name, :datatype |
7 | 7 | validates_format_of :name, :with => /\A[a-z][a-z0-9_]+\z/ |
8 | 8 | |
9 | + before_save :set_pretty_name | |
10 | + | |
11 | + def self.datatypes | |
12 | + ["check_box_boolean", "date", "datetime", "integer"] | |
13 | + end | |
14 | + | |
9 | 15 | def type_cast(value) |
10 | 16 | begin |
11 | 17 | case datatype.to_sym |
... | ... | @@ -26,10 +32,8 @@ class MagicField < ActiveRecord::Base |
26 | 32 | end |
27 | 33 | |
28 | 34 | # Display a nicer (possibly user-defined) name for the column or use a fancified default. |
29 | - def pretty_name | |
30 | - super || name.humanize | |
35 | + def set_pretty_name | |
36 | + self.pretty_name = name.humanize if pretty_name.blank? | |
31 | 37 | end |
32 | - | |
33 | - | |
34 | 38 | |
35 | 39 | end | ... | ... |
spec/has_magic_fields/magic_fileds_spec.rb
... | ... | @@ -139,4 +139,12 @@ describe HasMagicFields do |
139 | 139 | expect(lambda{@account.create_magic_filed(:name => 'salary')}).not_to raise_error |
140 | 140 | end |
141 | 141 | end |
142 | + | |
143 | + context "magic_field class method" do | |
144 | + it "datatypes method" do | |
145 | + expect(MagicField.datatypes.class).to be(Array) | |
146 | + expect(MagicField.datatypes.size).to eq(4) | |
147 | + expect(MagicField.datatypes.first).to eq("check_box_boolean") | |
148 | + end | |
149 | + end | |
142 | 150 | end | ... | ... |