Module: Dao::Coerce
- Defined in:
- lib/dao/coerce.rb
Constant Summary collapse
- Version =
version
'0.0.8'
- List =
[]
Class Method Summary collapse
- .[](sym) ⇒ Object
- .coerce(m, &b) ⇒ Object
-
.dependencies ⇒ Object
dependencies.
- .export(m) ⇒ Object
- .version ⇒ Object
Instance Method Summary collapse
-
#uri ⇒ Object
built-in.
Class Method Details
.[](sym) ⇒ Object
200 201 202 203 204 205 206 207 208 209 |
# File 'lib/dao/coerce.rb', line 200 def self.[] sym prefix = sym.to_s.downcase.to_sym candidates = List.select{|m| m =~ %r/^#{ prefix }/i} m = candidates.shift raise ArgumentError, "unsupported coercion: #{ sym.inspect } (#{ List.join ',' })" unless m raise ArgumentError, "ambiguous coercion: #{ sym.inspect } (#{ List.join ',' })" unless candidates.empty? or m.to_s == sym.to_s lambda{|obj| method(m).call obj} end |
.coerce(m, &b) ⇒ Object
49 50 51 52 53 |
# File 'lib/dao/coerce.rb', line 49 def self.coerce m, &b define_method m, &b export m List << m.to_s end |
.dependencies ⇒ Object
dependencies
21 22 23 24 25 |
# File 'lib/dao/coerce.rb', line 21 def self.dependencies { 'chronic' => [ 'chronic' , '>= 0.6.2' ] } end |
.export(m) ⇒ Object
42 43 44 45 |
# File 'lib/dao/coerce.rb', line 42 def self.export m module_function m public m end |
Instance Method Details
#uri ⇒ Object
built-in
5 |
# File 'lib/dao/coerce.rb', line 5 require 'uri' |