infopark_reactor_migrations 1.5.2 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,6 +17,7 @@ require 'reactor/cm/group'
17
17
  require 'reactor/cm/editorial_group'
18
18
  require 'reactor/cm/live_group'
19
19
  require 'reactor/cm/workflow'
20
+ require 'reactor/cm/channel'
20
21
 
21
22
  # require main class
22
23
  require 'reactor/migration'
@@ -0,0 +1,17 @@
1
+ require 'reactor/cm/object_base'
2
+
3
+ module Reactor
4
+ module Cm
5
+ class Channel < ObjectBase
6
+ # Attribute definitions
7
+ attribute :name, :except => [:set]
8
+ attribute :title
9
+
10
+ primary_key :name
11
+
12
+ def self.create(name)
13
+ super(name, {:name => name})
14
+ end
15
+ end
16
+ end
17
+ end
@@ -2,7 +2,7 @@ module Reactor
2
2
  module Cm
3
3
  class Obj
4
4
  attr_reader :obj_id
5
- OBJ_ATTRS = [:permalink, :objClass, :workflowName, :name, :suppressExport, :parent]
5
+ OBJ_ATTRS = [:permalink, :objClass, :workflowName, :name, :suppressExport, :parent]
6
6
  ATTR_LENGTH_CONSTRAINT = {:name => 250, :title => 250}
7
7
 
8
8
  def self.create(name, parent, objClass)
@@ -399,4 +399,4 @@ module Reactor
399
399
  end
400
400
  end
401
401
  end
402
- end
402
+ end
@@ -79,4 +79,4 @@ module Reactor
79
79
 
80
80
  end
81
81
  end
82
- end
82
+ end
@@ -12,6 +12,8 @@ require 'reactor/plans/create_group'
12
12
  require 'reactor/plans/update_group'
13
13
  require 'reactor/plans/delete_group'
14
14
  require 'reactor/plans/rename_group'
15
+ require 'reactor/plans/create_channel'
16
+ require 'reactor/plans/delete_channel'
15
17
 
16
18
  module Reactor
17
19
  class Migration
@@ -30,6 +32,8 @@ module Reactor
30
32
  :delete_group => Plans::DeleteGroup,
31
33
  :update_group => Plans::UpdateGroup,
32
34
  :rename_group => Plans::RenameGroup,
35
+ :create_channel => Plans::CreateChannel,
36
+ :delete_channel => Plans::DeleteChannel
33
37
  }
34
38
 
35
39
  def self.method_missing(name, *args, &block)
@@ -1,5 +1,5 @@
1
1
  module Reactor
2
2
  module Migrations
3
- VERSION = "1.5.2"
3
+ VERSION = "1.6.1"
4
4
  end
5
5
  end
@@ -0,0 +1,31 @@
1
+ module Reactor
2
+ module Plans
3
+ class CommonChannel
4
+ include Prepared
5
+
6
+ ALLOWED_PARAMS = [:title]
7
+
8
+ def initialize
9
+ @params = {}
10
+ end
11
+
12
+ def set(key,value)
13
+ @params[key.to_sym] = value
14
+ end
15
+
16
+ def migrate!
17
+ raise "#{self.class.name} did not implement migrate!"
18
+ end
19
+
20
+ protected
21
+ def prepare_params!(channel=nil)
22
+ @params.keys.each{|k| error("unknown parameter: #{k}") unless ALLOWED_PARAMS.include? k}
23
+ end
24
+
25
+ def migrate_params!(channel)
26
+ @params.each{|k,v|channel.send(:"#{k}=",v)}
27
+ channel.save!
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,23 @@
1
+ require 'reactor/cm/channel'
2
+ require 'reactor/plans/common_channel'
3
+
4
+ module Reactor
5
+ module Plans
6
+ class CreateChannel < CommonChannel
7
+ def initialize(*args)
8
+ super()
9
+ (name, x), options = separate_arguments(*args)
10
+ @name = name || options[:name]
11
+ end
12
+
13
+ def prepare!
14
+ error("name is nil") if @name.nil?
15
+ end
16
+
17
+ def migrate!
18
+ channel = Reactor::Cm::Channel.create(@name)
19
+ migrate_params!(channel)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ module Reactor
2
+ module Plans
3
+ class DeleteChannel < CommonAttribute
4
+ def initialize(*args)
5
+ super()
6
+ (name, x), options = separate_arguments(*args)
7
+ @name = name || options[:name]
8
+ end
9
+
10
+ def prepare!
11
+ error("name is nil") if @name.nil?
12
+ error("channel #{@name} does not exist") if not Reactor::Cm::Channel.exists?(@name)
13
+ end
14
+
15
+ def migrate!
16
+ Reactor::Cm::Channel.get(@name).delete!
17
+ end
18
+
19
+ end
20
+ end
21
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infopark_reactor_migrations
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 5
9
- - 2
10
- version: 1.5.2
8
+ - 6
9
+ - 1
10
+ version: 1.6.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tomasz Przedmojski
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-01-09 00:00:00 +01:00
18
+ date: 2013-01-17 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -106,6 +106,7 @@ files:
106
106
  - lib/infopark_reactor_migrations.rb
107
107
  - lib/reactor/cm/attribute.rb
108
108
  - lib/reactor/cm/bridge.rb
109
+ - lib/reactor/cm/channel.rb
109
110
  - lib/reactor/cm/editorial_group.rb
110
111
  - lib/reactor/cm/group.rb
111
112
  - lib/reactor/cm/language.rb
@@ -127,13 +128,16 @@ files:
127
128
  - lib/reactor/migrations/railtie.rb
128
129
  - lib/reactor/migrations/version.rb
129
130
  - lib/reactor/plans/common_attribute.rb
131
+ - lib/reactor/plans/common_channel.rb
130
132
  - lib/reactor/plans/common_group.rb
131
133
  - lib/reactor/plans/common_obj_class.rb
132
134
  - lib/reactor/plans/create_attribute.rb
135
+ - lib/reactor/plans/create_channel.rb
133
136
  - lib/reactor/plans/create_group.rb
134
137
  - lib/reactor/plans/create_obj.rb
135
138
  - lib/reactor/plans/create_obj_class.rb
136
139
  - lib/reactor/plans/delete_attribute.rb
140
+ - lib/reactor/plans/delete_channel.rb
137
141
  - lib/reactor/plans/delete_group.rb
138
142
  - lib/reactor/plans/delete_obj.rb
139
143
  - lib/reactor/plans/delete_obj_class.rb