databasion 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/databasion.gemspec +3 -1
- data/lib/databasion.rb +5 -5
- data/lib/databasion/applcize.rb +1 -0
- data/lib/databasion/migitize.rb +24 -57
- data/lib/databasion/templates/migration.erb +12 -0
- data/lib/databasion/templates/model.erb +11 -0
- data/lib/databasion/yamalize.rb +2 -0
- metadata +5 -3
data/Rakefile
CHANGED
@@ -8,7 +8,7 @@ Jeweler::Tasks.new do |gem|
|
|
8
8
|
gem.email = "mojobojo@gmail.com"
|
9
9
|
gem.homepage = "http://github.com/boj/databasion"
|
10
10
|
gem.authors = ["Brian Jones", "Istpika"]
|
11
|
-
gem.version = "0.0.
|
11
|
+
gem.version = "0.0.4"
|
12
12
|
|
13
13
|
gem.add_dependency('activerecord', '>= 2.3.5')
|
14
14
|
gem.add_dependency('activesupport', '>= 2.3.5')
|
data/databasion.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{databasion}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Brian Jones", "Istpika"]
|
@@ -43,6 +43,8 @@ Gem::Specification.new do |s|
|
|
43
43
|
"lib/databasion/loadlize.rb",
|
44
44
|
"lib/databasion/migitize.rb",
|
45
45
|
"lib/databasion/svnilize.rb",
|
46
|
+
"lib/databasion/templates/migration.erb",
|
47
|
+
"lib/databasion/templates/model.erb",
|
46
48
|
"lib/databasion/yamalize.rb",
|
47
49
|
"lib/migration_helpers/MIT-LICENSE",
|
48
50
|
"lib/migration_helpers/README.markdown",
|
data/lib/databasion.rb
CHANGED
@@ -34,6 +34,7 @@ module Databasion
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
private
|
37
38
|
def self.googlize
|
38
39
|
Databasion::Googlize.config = @@config
|
39
40
|
Databasion::Googlize.googlebate
|
@@ -43,12 +44,12 @@ module Databasion
|
|
43
44
|
Databasion::Excelize.excelbate
|
44
45
|
end
|
45
46
|
|
46
|
-
def datacize
|
47
|
+
def self.datacize
|
47
48
|
Databasion::Datacize.config = @@config
|
48
|
-
Databasion::Datacize.
|
49
|
+
Databasion::Datacize.datacize
|
49
50
|
end
|
50
51
|
|
51
|
-
def loadalize
|
52
|
+
def self.loadalize
|
52
53
|
Databasion::Loadlize.config = @@config
|
53
54
|
Databasion::Loadlize.loadalize
|
54
55
|
end
|
@@ -57,8 +58,7 @@ module Databasion
|
|
57
58
|
Databasion::Svnilize.config = @@config
|
58
59
|
Databasion::Svnilize.commit
|
59
60
|
end
|
60
|
-
|
61
|
-
private
|
61
|
+
|
62
62
|
def self.set_ar_logger
|
63
63
|
ActiveRecord::Base.logger = Databasion::LOGGER
|
64
64
|
end
|
data/lib/databasion/applcize.rb
CHANGED
data/lib/databasion/migitize.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'active_support'
|
2
|
+
require 'erb'
|
3
|
+
require 'fileutils'
|
2
4
|
|
3
5
|
module Databasion
|
4
6
|
|
@@ -42,43 +44,14 @@ module Databasion
|
|
42
44
|
end
|
43
45
|
|
44
46
|
def self.migration_class(meta)
|
45
|
-
|
46
|
-
migration
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
migration
|
53
|
-
if meta['fields'].collect {|f| f['field']}.include?('id')
|
54
|
-
migration += " create_table :%s, :id => false do |t|\n" % set_table_name(meta)
|
55
|
-
else
|
56
|
-
migration += " create_table :%s do |t|\n" % set_table_name(meta)
|
57
|
-
end
|
58
|
-
migration += migration_up_fields(meta)
|
59
|
-
migration += " end\n"
|
60
|
-
migration += " end\n"
|
61
|
-
end
|
62
|
-
|
63
|
-
def self.migration_up_fields(meta)
|
64
|
-
migration = ''
|
65
|
-
meta['fields'].each do |field|
|
66
|
-
if field['field'] == 'id'
|
67
|
-
migration += ' t.integer :id, :options => "PRIMARY KEY"' + "\n"
|
68
|
-
else
|
69
|
-
migration += " t.%s :%s" % [field['type'], field['field']]
|
70
|
-
migration += ", :limit => %s" % field['size'] if field['size']
|
71
|
-
migration += ", :default => %s" % field['default'] if field['default']
|
72
|
-
migration += "\n"
|
73
|
-
end
|
74
|
-
end
|
75
|
-
migration
|
76
|
-
end
|
77
|
-
|
78
|
-
def self.migration_down(meta)
|
79
|
-
migration = " def self.down\n"
|
80
|
-
migration += " drop_table :%s\n" % meta['name'].pluralize
|
81
|
-
migration += " end\n"
|
47
|
+
template = ''
|
48
|
+
File.open(File.expand_path(File.dirname(__FILE__)) + '/templates/migration.erb', 'r') { |f| template = f.read }
|
49
|
+
class_name = meta['name'].camelize
|
50
|
+
table_name = meta['name']
|
51
|
+
fields = meta['fields']
|
52
|
+
|
53
|
+
migration = ERB.new(template, nil, ">")
|
54
|
+
migration.result(binding)
|
82
55
|
end
|
83
56
|
|
84
57
|
def self.set_table_name(meta)
|
@@ -87,10 +60,17 @@ module Databasion
|
|
87
60
|
end
|
88
61
|
|
89
62
|
def self.ruby_model(meta)
|
90
|
-
|
91
|
-
model
|
92
|
-
|
93
|
-
|
63
|
+
template = ''
|
64
|
+
File.open(File.expand_path(File.dirname(__FILE__)) + '/templates/model.erb', 'r') { |f| template = f.read }
|
65
|
+
class_name = ruby_model_name(meta)
|
66
|
+
table_name = ruby_model_table_name(meta)
|
67
|
+
fields = meta['connection'].clone
|
68
|
+
fields.delete('spreadsheet')
|
69
|
+
fields.delete('options')
|
70
|
+
fields.delete('dbname')
|
71
|
+
|
72
|
+
model = ERB.new(template, nil, ">")
|
73
|
+
model.result(binding)
|
94
74
|
end
|
95
75
|
|
96
76
|
def self.ruby_model_name(meta)
|
@@ -98,25 +78,12 @@ module Databasion
|
|
98
78
|
end
|
99
79
|
|
100
80
|
def self.ruby_model_table_name(meta)
|
101
|
-
return
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
def self.ruby_model_connection(meta)
|
106
|
-
model = "%s.establish_connection(\n" % ruby_model_name(meta)
|
107
|
-
count = 0
|
108
|
-
meta['connection'].each do |key, value|
|
109
|
-
count += 1
|
110
|
-
next if value.nil?
|
111
|
-
next if ['spreadsheet', 'options', 'dbname'].include?(key)
|
112
|
-
model += " :" + key + " => " + '"' + value + '"'
|
113
|
-
model += "," unless meta['connection'].size == count
|
114
|
-
model += "\n"
|
115
|
-
end
|
116
|
-
model += ")\n"
|
81
|
+
return meta['name'] unless meta['plural']
|
82
|
+
nil
|
117
83
|
end
|
118
84
|
|
119
85
|
def self.write_migration(migration, file_name, sub_path)
|
86
|
+
puts sub_path
|
120
87
|
path = @@config['output']['migrations']['path'] + "/" + sub_path
|
121
88
|
check_output_path(path)
|
122
89
|
unless migration_exists?(file_name)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class <%= class_name %>Migration < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :<%= table_name %><%= ', :id => false' if fields.collect {|f| f['field']}.include?('id') %> do |t|
|
4
|
+
<% for field in fields %>
|
5
|
+
t.<%= field['type'] %> :<%= field['field'] %><%= ', :limit => %s' % field['size'] if field['size'] %><%= ', :default => %s' % field['default'] if field['default'] %><%= "\n" %>
|
6
|
+
<% end %>
|
7
|
+
end
|
8
|
+
end
|
9
|
+
def self.down
|
10
|
+
drop_table :<%= table_name %><%= "\n" %>
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class <%= class_name %> < ActiveRecord::Base
|
2
|
+
<%= 'set_table_name %s' % table_name unless table_name.nil? %><%= "\n" %>
|
3
|
+
end
|
4
|
+
<%= class_name %>.establish_connection(
|
5
|
+
<% count = 0 %>
|
6
|
+
<% for key, value in fields %>
|
7
|
+
<% count += 1 %>
|
8
|
+
<% next if value.nil? %>
|
9
|
+
:<%= key %> => "<%= value %>"<%= ',' unless count == fields.size %><%= "\n" %>
|
10
|
+
<% end %>
|
11
|
+
)
|
data/lib/databasion/yamalize.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: databasion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Brian Jones
|
@@ -119,6 +119,8 @@ files:
|
|
119
119
|
- lib/databasion/loadlize.rb
|
120
120
|
- lib/databasion/migitize.rb
|
121
121
|
- lib/databasion/svnilize.rb
|
122
|
+
- lib/databasion/templates/migration.erb
|
123
|
+
- lib/databasion/templates/model.erb
|
122
124
|
- lib/databasion/yamalize.rb
|
123
125
|
- lib/migration_helpers/MIT-LICENSE
|
124
126
|
- lib/migration_helpers/README.markdown
|