aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/simple_interface.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/simple_interface.rb')
-rw-r--r--app/models/simple_interface.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/app/models/simple_interface.rb b/app/models/simple_interface.rb
index 3d5027bf1..5f022719a 100644
--- a/app/models/simple_interface.rb
+++ b/app/models/simple_interface.rb
@@ -167,6 +167,13 @@ class SimpleInterface < ActiveRecord::Base
@scope = opts[:scope]
end
+ def on_relation relation_name
+ @scope ||= []
+ @scope.push relation_name
+ yield
+ @scope.pop
+ end
+
def duplicate
self.class.new @import_name, self.options
end
@@ -211,7 +218,8 @@ class SimpleInterface < ActiveRecord::Base
end
def add_column name, opts={}
- @columns.push Column.new({name: name.to_s}.update(opts))
+ @scope ||= []
+ @columns.push Column.new({name: name.to_s, scope: @scope.dup}.update(opts))
end
def add_value attribute, value
@@ -262,6 +270,10 @@ class SimpleInterface < ActiveRecord::Base
!!@options[:required]
end
+ def scope
+ @options[:scope] || []
+ end
+
def [](key)
@options[key]
end