Skip to content

Commit c7d80d1

Browse files
committed
Reduce complexity via template_directory method
Template directory depends on used adapter type, so it's a viable place to keep this information close to the adapter itself. Yet another case statement removed.
1 parent 13697d1 commit c7d80d1

File tree

9 files changed

+23
-61
lines changed

9 files changed

+23
-61
lines changed

ruby_event_store-active_record/lib/ruby_event_store/active_record.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
require_relative "active_record/generators/database_adapter"
44
require_relative "active_record/generators/migration_generator"
55
require_relative "active_record/generators/rails_migration_generator"
6-
require_relative "active_record/generators/templates/template_directory"
76
require_relative "active_record/generators/event_id_index_migration_generator"
87
require_relative "active_record/generators/rails_event_id_index_migration_generator"
98
require_relative "active_record/generators/foreign_key_on_event_id_migration_generator"

ruby_event_store-active_record/lib/ruby_event_store/active_record/generators/database_adapter.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ class PostgreSQL < self
1414
def initialize(data_type = NOT_SET)
1515
super("postgresql", data_type)
1616
end
17+
18+
def template_directory
19+
"postgres/"
20+
end
1721
end
1822

1923
class MySQL < self
@@ -22,6 +26,10 @@ class MySQL < self
2226
def initialize(data_type = NOT_SET)
2327
super("mysql2", data_type)
2428
end
29+
30+
def template_directory
31+
"mysql/"
32+
end
2533
end
2634

2735
class SQLite < self
@@ -57,6 +65,9 @@ def hash
5765
DatabaseAdapter.hash ^ adapter_name.hash
5866
end
5967

68+
def template_directory
69+
end
70+
6071
def self.from_string(adapter_name, data_type = NOT_SET)
6172
raise NoMethodError unless eql?(DatabaseAdapter)
6273

ruby_event_store-active_record/lib/ruby_event_store/active_record/generators/foreign_key_on_event_id_migration_generator.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,7 @@ def migration_template(template_root, name)
3838
end
3939

4040
def template_root(database_adapter)
41-
absolute_path("./templates/#{template_directory(database_adapter)}")
42-
end
43-
44-
def template_directory(database_adapter)
45-
TemplateDirectory.for_adapter(database_adapter)
41+
absolute_path("./templates/#{database_adapter.template_directory}")
4642
end
4743

4844
def migration_version

ruby_event_store-active_record/lib/ruby_event_store/active_record/generators/migration_generator.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,7 @@ def migration_code(database_adapter)
2222
end
2323

2424
def template_root(database_adapter)
25-
absolute_path("./templates/#{template_directory(database_adapter)}")
26-
end
27-
28-
def template_directory(database_adapter)
29-
TemplateDirectory.for_adapter(database_adapter)
25+
absolute_path("./templates/#{database_adapter.template_directory}")
3026
end
3127

3228
def migration_template(template_root, name)

ruby_event_store-active_record/lib/ruby_event_store/active_record/generators/rails_foreign_key_on_event_id_migration_generator.rb

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ def initialize(*args)
2727
def create_migration
2828
case @database_adapter
2929
when DatabaseAdapter::PostgreSQL
30-
template "#{template_directory}add_foreign_key_on_event_id_to_event_store_events_in_streams_template.erb",
30+
template "#{@database_adapter.template_directory}add_foreign_key_on_event_id_to_event_store_events_in_streams_template.erb",
3131
"db/migrate/#{timestamp}_add_foreign_key_on_event_id_to_event_store_events_in_streams.rb"
32-
template "#{template_directory}validate_add_foreign_key_on_event_id_to_event_store_events_in_streams_template.erb",
32+
template "#{@database_adapter.template_directory}validate_add_foreign_key_on_event_id_to_event_store_events_in_streams_template.erb",
3333
"db/migrate/#{timestamp}_validate_add_foreign_key_on_event_id_to_event_store_events_in_streams.rb"
3434
else
35-
template "#{template_directory}add_foreign_key_on_event_id_to_event_store_events_in_streams_template.erb",
35+
template "#{@database_adapter.template_directory}add_foreign_key_on_event_id_to_event_store_events_in_streams_template.erb",
3636
"db/migrate/#{timestamp}_add_foreign_key_on_event_id_to_event_store_events_in_streams.rb"
3737
end
3838
end
@@ -50,10 +50,6 @@ def migration_version
5050
def timestamp
5151
Time.now.strftime("%Y%m%d%H%M%S")
5252
end
53-
54-
def template_directory
55-
TemplateDirectory.for_adapter(@database_adapter)
56-
end
5753
end
5854
end
5955
end

ruby_event_store-active_record/lib/ruby_event_store/active_record/generators/rails_migration_generator.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,12 @@ def initialize(*args)
3434
end
3535

3636
def create_migration
37-
template "#{template_directory}create_event_store_events_template.erb",
37+
template "#{@database_adapter.template_directory}create_event_store_events_template.erb",
3838
"db/migrate/#{timestamp}_create_event_store_events.rb"
3939
end
4040

4141
private
4242

43-
def template_directory
44-
TemplateDirectory.for_adapter(@database_adapter)
45-
end
46-
4743
def data_type
4844
options.fetch("data_type")
4945
end

ruby_event_store-active_record/lib/ruby_event_store/active_record/generators/templates/template_directory.rb

Lines changed: 0 additions & 16 deletions
This file was deleted.

ruby_event_store-active_record/spec/database_adapter_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ module ActiveRecord
5555
expect { DatabaseAdapter.new("postgresql", "jsonb") }.to raise_error(UnsupportedAdapter)
5656
end
5757

58+
specify "template directory" do
59+
expect(DatabaseAdapter::PostgreSQL.new.template_directory).to eq("postgres/")
60+
expect(DatabaseAdapter::MySQL.new.template_directory).to eq("mysql/")
61+
expect(DatabaseAdapter::SQLite.new.template_directory).to be_nil
62+
end
63+
5864
context "data type verification" do
5965
specify "MySQL supports binary" do
6066
expect(DatabaseAdapter::MySQL.new("binary").data_type).to eq("binary")

ruby_event_store-active_record/spec/template_directory_spec.rb

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)