bit_player 0.1.4 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/app/models/bit_player/content_module.rb +8 -4
- data/app/models/bit_player/content_providers/slideshow_provider.rb +1 -1
- data/app/models/bit_player/navigator.rb +6 -3
- data/app/models/bit_player/tool.rb +13 -0
- data/db/migrate/20140402224913_create_bit_player_tools.rb +13 -0
- data/db/migrate/20140402225703_change_module_context_to_tool.rb +30 -0
- data/lib/bit_player/version.rb +1 -1
- data/spec/dummy/db/migrate/20140407201524_create_bit_player_tools.bit_player.rb +14 -0
- data/spec/dummy/db/migrate/20140407201525_change_module_context_to_tool.bit_player.rb +31 -0
- data/spec/dummy/db/schema.rb +15 -4
- data/spec/dummy/log/test.log +1130 -1997
- data/spec/fixtures/bit_player/content_modules.yml +2 -2
- data/spec/fixtures/bit_player/tools.yml +2 -0
- data/spec/models/bit_player/content_module_spec.rb +2 -1
- data/spec/models/bit_player/navigator_spec.rb +11 -3
- metadata +11 -4
- data/spec/dummy/log/development.log +0 -420
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64517e346ae2b99d41bb8731aa01aa3a47ed9255
|
4
|
+
data.tar.gz: 194ca25803915014bfefc594f4a1cadb6b3c3c1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7452094d0d59dc7ed3c21f6f03b8356d240d56ed12befe8b65d8dd6c8cff3b769dd8e31e8e59ca648c8a0fbfddcc6fa4988b40bfe3ab84c8c8aa1657cab88a45
|
7
|
+
data.tar.gz: b1054468ad2ca6648c1d7b3f52cf4e89949b94241c34e0ee134979dc896b0772cd7895a3b6ea58d4fb15bb9adf0c7611bede2d4443039b1822578e383f6d9106
|
data/README.md
CHANGED
@@ -1,18 +1,22 @@
|
|
1
1
|
module BitPlayer
|
2
2
|
# A logical unit of content, possibly containing mixed provider types.
|
3
3
|
class ContentModule < ActiveRecord::Base
|
4
|
+
belongs_to :tool,
|
5
|
+
class_name: "BitPlayer::Tool",
|
6
|
+
foreign_key: :bit_player_tool_id
|
4
7
|
has_many :content_providers,
|
5
8
|
class_name: "BitPlayer::ContentProvider",
|
6
9
|
foreign_key: :bit_player_content_module_id,
|
7
|
-
inverse_of: :content_module
|
10
|
+
inverse_of: :content_module,
|
11
|
+
dependent: :destroy
|
8
12
|
|
9
|
-
validates :title, :
|
13
|
+
validates :title, :tool, :position, presence: true
|
10
14
|
validates :position, numericality: { greater_than_or_equal_to: 1 }
|
11
|
-
validates :position, uniqueness: { scope: :
|
15
|
+
validates :position, uniqueness: { scope: :bit_player_tool_id }
|
12
16
|
|
13
17
|
def provider(position)
|
14
18
|
content_providers.where(position: position).first ||
|
15
|
-
|
19
|
+
ContentProviders::Null.new(self, position)
|
16
20
|
end
|
17
21
|
|
18
22
|
def provider_exists?(position)
|
@@ -58,7 +58,7 @@ module BitPlayer
|
|
58
58
|
|
59
59
|
def initialize_location(options)
|
60
60
|
content_module = ContentModule.find(options[:module_id])
|
61
|
-
@status.context = content_module.
|
61
|
+
@status.context = content_module.tool.title
|
62
62
|
@status.module_position = content_module.position
|
63
63
|
@status.provider_position = 1
|
64
64
|
if options[:provider_id]
|
@@ -72,7 +72,10 @@ module BitPlayer
|
|
72
72
|
def current_module
|
73
73
|
@current_module ||= nil
|
74
74
|
|
75
|
-
module_attrs = {
|
75
|
+
module_attrs = {
|
76
|
+
bit_player_tool_id: Tool.find_by_title(context).try(:id),
|
77
|
+
position: module_position
|
78
|
+
}
|
76
79
|
|
77
80
|
if current_module_stale?
|
78
81
|
@current_module = ContentModule.where(module_attrs).first
|
@@ -85,7 +88,7 @@ module BitPlayer
|
|
85
88
|
|
86
89
|
def current_module_stale?
|
87
90
|
@current_module.nil? ||
|
88
|
-
(@current_module.
|
91
|
+
(@current_module.tool.try(:title) != context ||
|
89
92
|
@current_module.position != module_position)
|
90
93
|
end
|
91
94
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BitPlayer
|
2
|
+
# A section of an application.
|
3
|
+
class Tool < ActiveRecord::Base
|
4
|
+
has_many :content_modules,
|
5
|
+
class_name: "BitPlayer::ContentModule",
|
6
|
+
foreign_key: :bit_player_tool_id,
|
7
|
+
inverse_of: :tool,
|
8
|
+
dependent: :destroy
|
9
|
+
validates :title, presence: true
|
10
|
+
validates :position, uniqueness: true
|
11
|
+
validates :is_home, inclusion: { in: [true, false] }
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateBitPlayerTools < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :bit_player_tools do |t|
|
4
|
+
t.string :title, null: false
|
5
|
+
t.integer :position
|
6
|
+
t.boolean :is_home, default: false, null: false
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
add_index :bit_player_tools, :title, unique: true
|
11
|
+
add_index :bit_player_tools, :position, unique: true
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class ChangeModuleContextToTool < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
add_column :bit_player_content_modules, :bit_player_tool_id, :integer
|
4
|
+
BitPlayer::ContentModule.reset_column_information
|
5
|
+
BitPlayer::ContentModule.all.each do |content_module|
|
6
|
+
tool = BitPlayer::Tool.find_or_create_by_title(content_module.context)
|
7
|
+
content_module.update!(bit_player_tool_id: tool.id)
|
8
|
+
end
|
9
|
+
change_column_null :bit_player_content_modules, :bit_player_tool_id, false
|
10
|
+
remove_column :bit_player_content_modules, :context
|
11
|
+
execute <<-SQL
|
12
|
+
ALTER TABLE bit_player_content_modules
|
13
|
+
ADD CONSTRAINT fk_content_modules_tools
|
14
|
+
FOREIGN KEY (bit_player_tool_id)
|
15
|
+
REFERENCES bit_player_tools(id)
|
16
|
+
SQL
|
17
|
+
end
|
18
|
+
|
19
|
+
def down
|
20
|
+
execute <<-SQL
|
21
|
+
ALTER TABLE bit_player_content_modules
|
22
|
+
DROP CONSTRAINT fk_content_modules_tools
|
23
|
+
SQL
|
24
|
+
add_column :bit_player_content_modules, :context, :string, null: false
|
25
|
+
BitPlayer::ContentModule.all.each do |content_module|
|
26
|
+
content_module.update(context: content_module.tool.title)
|
27
|
+
end
|
28
|
+
remove_column :bit_player_content_modules, :bit_player_tool_id
|
29
|
+
end
|
30
|
+
end
|
data/lib/bit_player/version.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
# This migration comes from bit_player (originally 20140402224913)
|
2
|
+
class CreateBitPlayerTools < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :bit_player_tools do |t|
|
5
|
+
t.string :title, null: false
|
6
|
+
t.integer :position
|
7
|
+
t.boolean :is_home, default: false, null: false
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
add_index :bit_player_tools, :title, unique: true
|
12
|
+
add_index :bit_player_tools, :position, unique: true
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# This migration comes from bit_player (originally 20140402225703)
|
2
|
+
class ChangeModuleContextToTool < ActiveRecord::Migration
|
3
|
+
def up
|
4
|
+
add_column :bit_player_content_modules, :bit_player_tool_id, :integer
|
5
|
+
BitPlayer::ContentModule.reset_column_information
|
6
|
+
BitPlayer::ContentModule.all.each do |content_module|
|
7
|
+
tool = BitPlayer::Tool.find_or_create_by_title(content_module.context)
|
8
|
+
content_module.update!(bit_player_tool_id: tool.id)
|
9
|
+
end
|
10
|
+
change_column_null :bit_player_content_modules, :bit_player_tool_id, false
|
11
|
+
remove_column :bit_player_content_modules, :context
|
12
|
+
execute <<-SQL
|
13
|
+
ALTER TABLE bit_player_content_modules
|
14
|
+
ADD CONSTRAINT fk_content_modules_tools
|
15
|
+
FOREIGN KEY (bit_player_tool_id)
|
16
|
+
REFERENCES bit_player_tools(id)
|
17
|
+
SQL
|
18
|
+
end
|
19
|
+
|
20
|
+
def down
|
21
|
+
execute <<-SQL
|
22
|
+
ALTER TABLE bit_player_content_modules
|
23
|
+
DROP CONSTRAINT fk_content_modules_tools
|
24
|
+
SQL
|
25
|
+
add_column :bit_player_content_modules, :context, :string, null: false
|
26
|
+
BitPlayer::ContentModule.all.each do |content_module|
|
27
|
+
content_module.update(context: content_module.tool.title)
|
28
|
+
end
|
29
|
+
remove_column :bit_player_content_modules, :bit_player_tool_id
|
30
|
+
end
|
31
|
+
end
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,17 +11,17 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20140407201525) do
|
15
15
|
|
16
16
|
# These are extensions that must be enabled in order to support this database
|
17
17
|
enable_extension "plpgsql"
|
18
18
|
|
19
19
|
create_table "bit_player_content_modules", force: true do |t|
|
20
|
-
t.string "title",
|
21
|
-
t.
|
22
|
-
t.integer "position", default: 1, null: false
|
20
|
+
t.string "title", null: false
|
21
|
+
t.integer "position", default: 1, null: false
|
23
22
|
t.datetime "created_at"
|
24
23
|
t.datetime "updated_at"
|
24
|
+
t.integer "bit_player_tool_id", null: false
|
25
25
|
end
|
26
26
|
|
27
27
|
create_table "bit_player_content_providers", force: true do |t|
|
@@ -69,4 +69,15 @@ ActiveRecord::Schema.define(version: 20140306000537) do
|
|
69
69
|
t.datetime "updated_at"
|
70
70
|
end
|
71
71
|
|
72
|
+
create_table "bit_player_tools", force: true do |t|
|
73
|
+
t.string "title", null: false
|
74
|
+
t.integer "position"
|
75
|
+
t.boolean "is_home", default: false, null: false
|
76
|
+
t.datetime "created_at"
|
77
|
+
t.datetime "updated_at"
|
78
|
+
end
|
79
|
+
|
80
|
+
add_index "bit_player_tools", ["position"], name: "index_bit_player_tools_on_position", unique: true, using: :btree
|
81
|
+
add_index "bit_player_tools", ["title"], name: "index_bit_player_tools_on_title", unique: true, using: :btree
|
82
|
+
|
72
83
|
end
|