From 2d7ce83439f29d261f0c5ec05140359218cfe661 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 22 Sep 2017 14:10:45 +0200 Subject: ModelAttribute: Add `#from_code` method Enables finding a `ModelAttribute` by a string code combining klass and name. Refs #4401 --- lib/model_attribute.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib') diff --git a/lib/model_attribute.rb b/lib/model_attribute.rb index 78c9168eb..60580e306 100644 --- a/lib/model_attribute.rb +++ b/lib/model_attribute.rb @@ -21,6 +21,14 @@ class ModelAttribute all.group_by(&:klass) end + def self.from_code(code) + klass, name = code.split('#').map(&:to_sym) + + methods_by_class(klass).select do |model_attr| + model_attr.name == name + end.first + end + def self.methods_by_class(klass) all.select do |model_attr| model_attr.klass == klass -- cgit v1.2.3