aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/simple_interface.rb
diff options
context:
space:
mode:
authorZog2018-03-05 09:11:34 +0100
committerZog2018-03-05 09:11:34 +0100
commitea3de6035cdf9fbbcd92f51c90e5a2c5c3400cb3 (patch)
treed35feb918791f94d69ebb97bf1224d8a96b60796 /app/models/simple_interface.rb
parentc1ac12174b9aff7535a84af9f76d1cda95b750f4 (diff)
downloadchouette-core-ea3de6035cdf9fbbcd92f51c90e5a2c5c3400cb3.tar.bz2
Refs #6068; Export VehicleJourneys
Add a mechanism to allow for several rows in the csv per single object in the collection.
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