extend_at 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -8,7 +8,7 @@ This gem allows you to extend the columns from your model without migrations, yo
8
8
 
9
9
  ### Rails 3
10
10
  Add in your Gemfile:
11
- <code>gem 'extend_at', :git => 'git://github.com/anga/extend_at.git'</code>
11
+ <code>gem 'extend_at'</code>
12
12
 
13
13
  ## Usage
14
14
 
@@ -16,19 +16,35 @@ Only you need to add the next line in your model.
16
16
 
17
17
  <code>extend_at :configuration</code>
18
18
 
19
+ The column <code>configuration</code> must be string or text.
20
+
19
21
  For example:
20
22
 
21
23
  class User < ActiveRecord::Base
22
24
  extend_at :extra
23
25
  end
24
26
 
25
- Now you can write your configuration like:
27
+ Now you can create extra attributes:
26
28
 
27
29
  user.extra.private_photos = true
28
30
  user.extra.subscribe_to_news = false
29
31
  user.extra.perfil_description = ''
30
32
  user.save
31
33
 
34
+ Is the same:
35
+
36
+ user.extra_private_photos = true
37
+ user.extra_subscribe_to_news = false
38
+ user.extra_perfil_description = ''
39
+ user.save
40
+
41
+ Or:
42
+
43
+ user[:extra_private_photos] = true
44
+ user[:extra_subscribe_to_news] = false
45
+ user[:extra_perfil_description] = ''
46
+ user.save
47
+
32
48
  ### Columns configuration
33
49
 
34
50
  You can configurate each column.
@@ -205,4 +221,8 @@ If you like to do something more dynamic, like create columns and validations de
205
221
  end
206
222
  end
207
223
 
208
- This code read the configuration of the columns when you acces to extra column
224
+ This code read the configuration of the columns when you acces to extra column
225
+
226
+ ## License
227
+
228
+ This gem is under MIT license.
@@ -1,3 +1,3 @@
1
1
  module ExtendModelAt
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/extend_at.rb CHANGED
@@ -80,7 +80,7 @@ module ExtendModelAt
80
80
  def assign_attributes(attributes = nil, options = {})
81
81
  attributes.each_pair do |key, value|
82
82
  if key.to_s =~ /^#{column_name}_/
83
- rb = \"#{column_name}.\#\{key.to_s.gsub(/^#{column_name}_/,'')\} = value\"
83
+ rb = \"self.#{column_name}.\#\{key.to_s.gsub(/^#{column_name}_/,'')\} = value\"
84
84
  eval rb, binding
85
85
  end
86
86
  end
@@ -93,7 +93,7 @@ module ExtendModelAt
93
93
  # Return the value of <<attributes>> methods like <column name>_<extended column name>
94
94
  def [](column)
95
95
  if column.to_s =~ /^#{column_name}_[a-zA-Z_][a-zA-Z_0-9]*\=?$/
96
- rb = \"#{column_name}.\#\{column.to_s.gsub(/^#{column_name}_/,'')\}\"
96
+ rb = \"self.#{column_name}.\#\{column.to_s.gsub(/^#{column_name}_/,'').gsub(/\=$/, '')\}\"
97
97
  eval rb, binding
98
98
  else
99
99
  super
@@ -103,7 +103,8 @@ module ExtendModelAt
103
103
  # Write the value of <<attributes>> methods like <column name>_<extended column name>
104
104
  def []=(column, value)
105
105
  if column.to_s =~ /^#{column_name}_[a-zA-Z_][a-zA-Z_0-9]*\=?$/
106
- rb = \"#{column_name}.\#\{column\} = value\"
106
+ rb = \"self.#{column_name}.\#\{column.to_s.gsub(/^#{column_name}_/,'').gsub(/\=$/, '')\} = value\"
107
+ puts \"Evaluando: #\{rb}\"
107
108
  eval rb, binding
108
109
  else
109
110
  super
@@ -122,7 +123,7 @@ module ExtendModelAt
122
123
  # Accept method like <column name>_<extended column name> for read or write
123
124
  def method_missing(m, *args, &block)
124
125
  if m.to_s =~ /^#{column_name}_[a-zA-Z_][a-zA-Z_0-9]*\=$/
125
- rb = \"self.#{column_name}.\#\{m.to_s.gsub(/^#{column_name}_/, '')} = args.first\"
126
+ rb = \"self.#{column_name}.\#\{m.to_s.gsub(/^#{column_name}_/, '').gsub(/\=$/, '')} = args.first\"
126
127
  return eval rb, binding
127
128
  elsif m.to_s =~ /^#{column_name}_[a-zA-Z_][a-zA-Z_0-9]*$/
128
129
  rb = \"self.#{column_name}.\#\{m.to_s.gsub(/^#{column_name}_/, '')}\"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: extend_at
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-31 00:00:00.000000000 Z
12
+ date: 2012-01-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &10360080 !ruby/object:Gem::Requirement
16
+ requirement: &13710780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *10360080
24
+ version_requirements: *13710780
25
25
  description: This gem allows you to extend the columns from your model without migrations,
26
26
  you can, i.e., develop your own content types, like in Drupal
27
27
  email: