Guest User

Untitled

a guest
Nov 23rd, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. ["name", "brand"].each do |attribute|
  2. define_method("self.find_by_#{attribute}") do |attr_|
  3. all.each do |prod|
  4. return prod if prod.attr_ == attr_
  5. end
  6. end
  7. end
  8.  
  9. class Product
  10. class << self
  11. [:name, :brand].each do |attribute|
  12. define_method :"find_by_#{attribute}" do |value|
  13. all.find {|prod| prod.public_send(attribute) == value }
  14. end
  15. end
  16. end
  17. end
  18.  
  19. class Product
  20. def self.find_by_name(value)
  21. all.find {|prod| prod.name == value }
  22. end
  23.  
  24. def self.find_by_brand(value)
  25. all.find {|prod| prod.brand == value }
  26. end
  27. end
  28.  
  29. define_method(:my_method) do |foo, bar| # or even |*args|
  30. # do something
  31. end
  32.  
  33. def my_method(foo, bar)
  34. # do something
  35. end
  36.  
  37. class MyClass < ActiveRecord::Base
  38. ["name", "brand"].each do |attribute|
  39. define_method(:"find_by_#{attribute}") do |attr_|
  40. first(attribute.to_sym => attr_)
  41. end
  42. end
  43. end
Add Comment
Please, Sign In to add comment