schema_to_scaffold 0.4.0 → 0.4.1
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/README.md +4 -4
- data/bin/scaffold +5 -11
- data/lib/schema_to_scaffold.rb +1 -1
- data/lib/schema_to_scaffold/path.rb +15 -12
- data/lib/schema_to_scaffold/table.rb +3 -2
- data/lib/schema_to_scaffold/version.rb +1 -1
- data/schema_to_scaffold.gemspec +2 -0
- metadata +19 -3
data/README.md
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
[](https://codeclimate.com/github/frenesim/schema_to_scaffold)
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
This Gem shall generate rails commands strings based on a rails database schema you already have.<br>
|
6
|
+
Generated string commands available are:<br>
|
7
|
+
`rails generate scaffold <model_name> <field[:type]>`<br>
|
8
|
+
`rails generate factory_girl:model <ModelName> <field[:type]>`
|
9
9
|
|
10
10
|
Important:
|
11
11
|
This gem will not run code for you. It will only generate a string for you to copy and paste
|
data/bin/scaffold
CHANGED
@@ -13,12 +13,8 @@ if opts[:help]
|
|
13
13
|
end
|
14
14
|
|
15
15
|
## looking for /schema\S*.rb$/ in user directory
|
16
|
-
|
17
|
-
unless opts[:path].to_s.match(/\.rb$/)
|
18
|
-
paths = SchemaToScaffold::Path.new(opts[:path])
|
19
|
-
paths.search_rb
|
20
|
-
path = paths.choose
|
21
|
-
end
|
16
|
+
paths = SchemaToScaffold::Path.new(opts[:path])
|
17
|
+
path = paths.choose unless opts[:path].to_s.match(/\.rb$/)
|
22
18
|
|
23
19
|
## Opening file
|
24
20
|
path||=opts[:path]
|
@@ -34,9 +30,7 @@ end
|
|
34
30
|
schema = SchemaToScaffold::Schema.new(data)
|
35
31
|
|
36
32
|
begin
|
37
|
-
if schema.table_names.empty?
|
38
|
-
raise "Could not find tables in '#{path}'"
|
39
|
-
end
|
33
|
+
raise if schema.table_names.empty?
|
40
34
|
puts "\nLoaded tables:"
|
41
35
|
schema.table_names.each_with_index {|name,i| puts "#{i}. #{name}" }
|
42
36
|
print "\nSelect a table: "
|
@@ -45,10 +39,10 @@ rescue
|
|
45
39
|
exit 1
|
46
40
|
end while schema.table_names[(table_id = gets.to_i)].nil?
|
47
41
|
|
48
|
-
script_scaffold = SchemaToScaffold.
|
42
|
+
script_scaffold = SchemaToScaffold.generate_script(schema, table_id,"scaffold")
|
49
43
|
puts "\nScript for rails scaffold\n#{script_scaffold}"
|
50
44
|
|
51
|
-
script_factory_girl = SchemaToScaffold.
|
45
|
+
script_factory_girl = SchemaToScaffold.generate_script(schema, table_id,"factory_girl:model")
|
52
46
|
puts "\nScript for factory girl\n#{script_factory_girl}"
|
53
47
|
|
54
48
|
|
data/lib/schema_to_scaffold.rb
CHANGED
@@ -73,7 +73,7 @@ LINUX_SAMPLE
|
|
73
73
|
##
|
74
74
|
# Generates the rails scaffold script
|
75
75
|
|
76
|
-
def self.
|
76
|
+
def self.generate_script(schema, table=nil,target)
|
77
77
|
schema = Schema.new(schema) unless schema.is_a? Schema
|
78
78
|
return schema.to_script if table.nil?
|
79
79
|
schema.table(table).to_script target
|
@@ -21,20 +21,11 @@ module SchemaToScaffold
|
|
21
21
|
puts "\nLooking for schema.rb in #{@search_path}"
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
# Will search for /schema[^\/]*.rb$/ in the current directory
|
26
|
-
def search_rb
|
27
|
-
@search_path = @path.to_s unless @path.nil?
|
28
|
-
check_directory
|
29
|
-
@schema_paths = Array.new
|
30
|
-
Find.find(@search_path) do |s_p|
|
31
|
-
@schema_paths<<s_p if s_p[/schema[^\/]*.rb$/]
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
24
|
+
|
35
25
|
##
|
36
26
|
# Return the chosen path
|
37
27
|
def choose
|
28
|
+
search_rb
|
38
29
|
if @schema_paths.empty?
|
39
30
|
puts "\nSorry there is none /schema[^\/]*.rb$/ in the directory #{@search_path}"
|
40
31
|
exit
|
@@ -45,7 +36,19 @@ module SchemaToScaffold
|
|
45
36
|
end while @schema_paths[(id = gets.to_i)].nil?
|
46
37
|
@schema_paths[id]
|
47
38
|
end
|
48
|
-
|
39
|
+
|
40
|
+
private
|
41
|
+
##
|
42
|
+
# Will search for /schema[^\/]*.rb$/ in the current directory
|
43
|
+
def search_rb
|
44
|
+
@search_path = @path.to_s unless @path.nil?
|
45
|
+
check_directory
|
46
|
+
@schema_paths = Array.new
|
47
|
+
Find.find(@search_path) do |s_p|
|
48
|
+
@schema_paths<<s_p if s_p[/schema[^\/]*.rb$/]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
49
52
|
end
|
50
53
|
|
51
54
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module SchemaToScaffold
|
2
|
-
|
2
|
+
require 'active_support/inflector'
|
3
3
|
##
|
4
4
|
# fetch table names and convert them to a scaffold syntax
|
5
5
|
class Table
|
@@ -11,7 +11,8 @@ module SchemaToScaffold
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def to_script(target)
|
14
|
-
"rails generate #{target} #{name} #{attributes.map(&:to_script).join(' ')}"
|
14
|
+
return "rails generate #{target} #{name} #{attributes.map(&:to_script).join(' ')}" if target == "scaffold"
|
15
|
+
return "rails generate #{target} #{name.camelize.singularize} #{attributes.map(&:to_script).join(' ')}" if target == "factory_girl:model"
|
15
16
|
end
|
16
17
|
|
17
18
|
def self.parse(table_data)
|
data/schema_to_scaffold.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schema_to_scaffold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,8 +10,24 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-05-
|
14
|
-
dependencies:
|
13
|
+
date: 2013-05-20 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: activesupport
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.2.1
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 3.2.1
|
15
31
|
description: ! ' Command line app which parses a schema.rb file obtained from your
|
16
32
|
rails repo or by running rake:schema:dump
|
17
33
|
|