easy_attributes 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,7 @@ First, install this from rubygems.org
10
10
  gem install easy_attributes
11
11
 
12
12
  Next, you need to configure your app to use it, by either:
13
- require 'rubygems' # Rails application, no framework
13
+ require 'rubygems' # Ruby application, no framework
14
14
  require 'easy_attributes' #
15
15
 
16
16
  config.gem 'easy_attributes' # Rails 2.x, in your ./config/environment.rb
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{easy_attributes}
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Allen Fair"]
12
- s.date = %q{2010-07-29}
12
+ s.date = %q{2010-08-06}
13
13
  s.description = %q{Easy Attributes is a Ruby DSL to give more control to attributes.}
14
14
  s.email = %q{allen.fair@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -44,6 +44,14 @@ module EasyAttributes
44
44
  @@attributes
45
45
  end
46
46
 
47
+ # Returns the value table:
48
+ # values[:name][:rec][:setting] = {:word, :description, :value}
49
+ # values[:name][:sym][:setting] = value
50
+ # values[:name][:value]["value"] = :symbol
51
+ def self.values
52
+ @@values
53
+ end
54
+
47
55
  # Loads a tab-delimted filename into the symbol table in format:
48
56
  # attribute value role symbolic_name short_description long_description (useful for "<option>" data)
49
57
  # If a block is given, it should parse a file line and return an array of
@@ -57,7 +65,7 @@ module EasyAttributes
57
65
  @@values[col] = {:sym=>{}, :val=>{}, :rec=>{}} unless @@values.has_key?(col)
58
66
  @@values[col][:sym][symbol.to_sym] = val.to_i
59
67
  @@values[col][:val][val] = symbol.to_sym
60
- @@values[col][:rec][symbol.to_sym] = {:word=>word, :description=>desc, :value=>val.to_i}
68
+ @@values[col][:rec][symbol.to_sym] = {:word=>word, :description=>desc.chomp, :value=>val.to_i}
61
69
  @@attributes[col.to_s] ||= {}
62
70
  @@attributes[col.to_s][symbol.to_sym] = val.to_i
63
71
  end
@@ -87,10 +95,10 @@ module EasyAttributes
87
95
  name = "#{self.name}##{attribute}"
88
96
  EasyAttributes.add_definition( name, hash)
89
97
  code = ''
90
- if EasyAttributes::Config.orm == :active_model
98
+ if EasyAttributes::Config.orm == :active_model && opt[:scope]
91
99
  validates_inclusion_of attribute, :in=>hash.values
92
100
  # Add named_scope (scope) for each value
93
- hash.each { |k,v| code += "named_scope :#{k}, :conditions=>{:#{attribute}=>#{v.inspect}}\n" }
101
+ hash.each { |k,v| code += "scope :#{k}, :conditions=>{:#{attribute}=>#{v.inspect}}\n" }
94
102
  else
95
103
  attr_accessor attribute
96
104
  end
@@ -111,7 +119,7 @@ module EasyAttributes
111
119
  if EasyAttributes::Config.orm == :active_model
112
120
  code += %Q(
113
121
  def #{attribute}=(v)
114
- self[:#{attribute}] = v.is_a?(Symbol) ? EasyAttributes.value_for_sym("#{attribute}", v) : v;
122
+ self[:#{attribute}] = v.is_a?(Symbol) ? EasyAttributes.value_for_sym("#{name}", v) : v;
115
123
  end
116
124
  )
117
125
  end
@@ -196,11 +204,13 @@ module EasyAttributes
196
204
 
197
205
  # Returns the defined value for the given symbol and attribute
198
206
  def self.value_for_sym(attribute, sym)
199
- EasyAttributes::Config.attributes[attribute][sym]
207
+ EasyAttributes::Config.attributes[attribute][sym] or
208
+ raise "EasyAttributes #{attribute} value :#{sym} not declared"
200
209
  end
201
210
 
202
211
  # Returns the defined symbol for the given value on the attribute
203
212
  def self.sym_for_value(attribute, value)
213
+ return nil if value.nil?
204
214
  EasyAttributes::Config.attributes[attribute].each {|k,v| return k if v==value}
205
215
  raise "EasyAttribute #{attribute} symbol not found for #{value}"
206
216
  end
@@ -369,4 +379,4 @@ module EasyAttributes
369
379
  value
370
380
  end
371
381
 
372
- end
382
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_attributes
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 2
10
- version: 0.1.2
9
+ - 3
10
+ version: 0.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Allen Fair
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-29 00:00:00 -04:00
18
+ date: 2010-08-06 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies: []
21
21