diff options
Diffstat (limited to 'app/models/simple_interface.rb')
| -rw-r--r-- | app/models/simple_interface.rb | 14 | 
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 | 
