ld 0.2.6 → 0.2.7
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.
- checksums.yaml +4 -4
- data/README.md +21 -32
- data/lib/ld/project/models.rb +26 -3
- data/lib/ld/project/project.rb +3 -5
- data/lib/ld/project/routes.rb +13 -12
- data/lib/ld/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5e6b6b049c3500199fc6a575bb77171b91fcf29
|
4
|
+
data.tar.gz: 8af7fdc85064507fe94bd42cba74772af06edb05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60aeb848bfb455546fe23799408357a28c88f28a9b06a9d8f2caa6c5915ad2d73b68269a37145caca5ae5d6e2e46bbac6daea83012b3711e868eee3b4f460e9f
|
7
|
+
data.tar.gz: ea7db3ca6f3901a5dda90a2f4344ef04968cd0f9bcc3271ba1778a81641c7874f04c7ffa1fde4445b0a839e4c0cd33b70a4171f6f315ab56bd4a7fd330b89c9c
|
data/README.md
CHANGED
@@ -8,25 +8,6 @@ Basically has the following Class.
|
|
8
8
|
|
9
9
|
```ruby
|
10
10
|
module Ld
|
11
|
-
class Excel
|
12
|
-
end
|
13
|
-
class Sheets
|
14
|
-
end
|
15
|
-
|
16
|
-
class File
|
17
|
-
end
|
18
|
-
class Files
|
19
|
-
end
|
20
|
-
|
21
|
-
class Print
|
22
|
-
end
|
23
|
-
|
24
|
-
module Project
|
25
|
-
class Structure
|
26
|
-
end
|
27
|
-
class Parse
|
28
|
-
end
|
29
|
-
end
|
30
11
|
end
|
31
12
|
```
|
32
13
|
## Introduction to the
|
@@ -64,29 +45,37 @@ First , into the console:
|
|
64
45
|
Then, can do this:
|
65
46
|
|
66
47
|
```ruby
|
67
|
-
#
|
68
|
-
Ld::
|
48
|
+
# Project details to /project.xls 查看项目详情,会生成xls文件,在: /project.xls
|
49
|
+
Ld::Project.new.to_xls
|
50
|
+
|
51
|
+
# Read xls
|
52
|
+
Ld::Excel.open('project.xls').read('models?a1:j100-f,h,i')
|
53
|
+
Ld::Excel.open('project.xls').read('tables?a1:i300')
|
69
54
|
|
70
55
|
# Create xls, Need to change the file path to your own, and then run
|
71
|
-
Ld::Excel.create '
|
56
|
+
Ld::Excel.create 'excel_test.xls' do |excel|
|
72
57
|
excel.write_sheet 'sheet1' do |sheet|
|
73
58
|
sheet.set_format({color: :red, font_size: 11, font: '宋体'})
|
74
59
|
sheet.set_headings ['title1','title2','title3']
|
75
60
|
sheet.set_point 'a1'
|
76
|
-
|
77
|
-
|
78
|
-
|
61
|
+
sheet.set_rows [
|
62
|
+
[1,2,3,4,5],
|
63
|
+
[1,2,3,4],
|
64
|
+
[1,2,3],
|
65
|
+
[1,2],
|
66
|
+
[1],
|
67
|
+
]
|
79
68
|
end
|
80
69
|
end
|
70
|
+
Ld::Excel.open('excel_test.xls').read('sheet1?a1:g6')
|
81
71
|
|
82
|
-
#
|
83
|
-
Ld::
|
84
|
-
|
85
|
-
# Read Dir
|
86
|
-
Ld::File.open_dir('dir_path').children.each{|f| puts f.path}
|
72
|
+
# Print model, Need to change the User model to exist, to run again
|
73
|
+
Ld::Print.p User.first(10), 'id ,name, created_at'
|
87
74
|
|
88
|
-
#
|
89
|
-
Ld::
|
75
|
+
# Read dir or file
|
76
|
+
Ld::File.new('Gemfile').lines.each{|l| puts l}
|
77
|
+
Ld::File.new('app').models.children.each{|f| puts f.name}
|
78
|
+
Ld::File.new('app').views.search_files(/.html/).each{|f| puts "#{f.father.name} : #{f.name}"}
|
90
79
|
|
91
80
|
```
|
92
81
|
|
data/lib/ld/project/models.rb
CHANGED
@@ -18,13 +18,36 @@ class Ld::Models
|
|
18
18
|
methods_full = lines.map{|l| l.split('def ')[1] if l.match(/def /)}.compact
|
19
19
|
methods = methods_full.map{|method_full| method_full.split(' ')[0]}
|
20
20
|
instance = name.camelize.constantize.new
|
21
|
-
data_count = name.camelize.constantize.count
|
21
|
+
data_count = 0#name.camelize.constantize.count
|
22
22
|
fields = instance.attributes.keys
|
23
|
-
|
23
|
+
relations = get_relations file.lines
|
24
|
+
[
|
25
|
+
name,name.pluralize,name.camelize,data_count,lines.size,file.path,methods.size,
|
26
|
+
methods.join(','),fields.join(','),fields.size,
|
27
|
+
relations[:has_many].size,relations[:belongs_to].size,relations[:has_one].size,
|
28
|
+
relations[:has_many].join(','),relations[:belongs_to].join(','),relations[:has_one].join(',')
|
29
|
+
]
|
24
30
|
}.compact.sort{|a,b| b[2] <=> a[2]} # 按 模型文件行数 排序
|
25
31
|
@models = @rows.map{|arr| arr[0]}.uniq
|
26
|
-
@headings = ['模型名','表名','类','数据数量','行数','path', '方法数',
|
32
|
+
@headings = ['模型名','表名','类','数据数量','行数','path', '方法数',
|
33
|
+
'所有方法', '所有字段','字段数量',
|
34
|
+
'has_many个数','belongs_to个数','has_one个数',
|
35
|
+
'has_many','belongs_to','has_one']
|
27
36
|
end
|
28
37
|
|
38
|
+
def get_relations lines
|
39
|
+
relations = {has_many:[],belongs_to:[],has_one:[]}
|
40
|
+
lines.each do |line|
|
41
|
+
arr = line.split(' ')
|
42
|
+
if arr[0] == 'has_many'
|
43
|
+
relations[:has_many] << arr[1].split(':')[1]
|
44
|
+
elsif arr[0] == 'belongs_to'
|
45
|
+
relations[:belongs_to] << arr[1].split(':')[1]
|
46
|
+
elsif arr[0] == 'has_one'
|
47
|
+
relations[:has_one] << arr[1].split(':')[1]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
relations
|
51
|
+
end
|
29
52
|
|
30
53
|
end
|
data/lib/ld/project/project.rb
CHANGED
@@ -4,19 +4,19 @@ class Ld::Project
|
|
4
4
|
|
5
5
|
def initialize path = Rails.root.to_s
|
6
6
|
@root = Ld::File.new path
|
7
|
+
parse_project
|
7
8
|
end
|
8
9
|
|
9
10
|
def parse_project
|
10
|
-
@routes = Ld::Routes.new @root
|
11
11
|
@tables = Ld::Tables.new @root, nil
|
12
12
|
@models = Ld::Models.new @root, @tables
|
13
|
+
@routes = Ld::Routes.new @root, @models
|
13
14
|
@tables = Ld::Tables.new @root, @models
|
14
15
|
@views = Ld::Views.new @root, @models
|
15
16
|
@controllers = Ld::Controllers.new @root, @models
|
16
17
|
end
|
17
18
|
|
18
19
|
def to_xls path = "#{@root.path}/project.xls"
|
19
|
-
parse_project
|
20
20
|
Ld::Excel.create path do |excel|
|
21
21
|
# sheet.set_format({color: :black, font_size: 14, font: '微软雅黑'})
|
22
22
|
excel.write_sheet 'routes' do |sheet|
|
@@ -42,10 +42,8 @@ class Ld::Project
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
+
def add_bug
|
45
46
|
|
46
|
-
def camelize name
|
47
|
-
name.camelize
|
48
47
|
end
|
49
48
|
|
50
|
-
|
51
49
|
end
|
data/lib/ld/project/routes.rb
CHANGED
@@ -2,29 +2,30 @@ class Ld::Routes
|
|
2
2
|
|
3
3
|
attr_accessor :headings, :rows
|
4
4
|
|
5
|
-
def initialize root
|
5
|
+
def initialize root, models
|
6
6
|
@root = root
|
7
|
+
@models = models
|
7
8
|
parse
|
8
9
|
end
|
9
10
|
|
10
11
|
def parse
|
11
|
-
system "rake routes > #{@root.path}/routes.txt"
|
12
|
-
rows = @root.find('routes.txt').lines.map{|line|
|
12
|
+
system "rake routes > #{@root.path}/routes.txt" if !File.exist? "#{@root.path}/routes.txt"
|
13
|
+
@rows = @root.find('routes.txt').lines.map{|line|
|
13
14
|
arr = line.split(' ')
|
14
15
|
arr.unshift(nil) if arr.size == 3
|
15
16
|
arr
|
16
|
-
}
|
17
|
-
.delete_if{|arr| arr.size >= 5 or arr.size <= 2 }
|
18
|
-
.map{|row|
|
17
|
+
}.delete_if{|arr| arr.size >= 5 or arr.size <= 2 }.map{|row|
|
19
18
|
controller, action = row[3].split('#')
|
19
|
+
controller_name = controller.split('/').last
|
20
|
+
if @models
|
21
|
+
@model_name = @models.models.include?(controller_name.singularize) ? controller_name.singularize : nil
|
22
|
+
end
|
20
23
|
type = row[1]
|
21
24
|
help_method = row[0]
|
22
25
|
uri = row[2]
|
23
|
-
|
24
|
-
|
25
|
-
}
|
26
|
-
|
27
|
-
@headings = ['控制器', 'action', '请求类型','URI','帮助方法']
|
28
|
-
@rows = rows
|
26
|
+
[@model_name,controller_name, action, type, uri, help_method]
|
27
|
+
}.sort{|a,b| a[1] <=> b[1]}
|
28
|
+
#File.delete("#{@root.path}/routes.txt") if File.exist? "#{@root.path}/routes.txt"
|
29
|
+
@headings = ['所属模型','控制器', 'action', '请求类型','URI','帮助方法']
|
29
30
|
end
|
30
31
|
end
|
data/lib/ld/version.rb
CHANGED