phari_doc_gen 2.0.3 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 179bf4069abbf822ef6259e2d3670c76b9a69dca
4
- data.tar.gz: 46037dafd0c71328f06ad65bfec310a39afc3b92
3
+ metadata.gz: 32a910fca9b0a5e880ad92810b525d2bbb660c68
4
+ data.tar.gz: ca0cd94ddd0d1c937e0e38c7d74dd2f4b5cb0d3d
5
5
  SHA512:
6
- metadata.gz: 2389fd25d4f70245c5ce3a0acf0e2fdb846eb2b35712953f83cd1f381ad1981c36a2a59ae4a06e2bb634cd1d43666a5bcebf43ee477e0bc1f7d0591a3cab1e4c
7
- data.tar.gz: 75a78882b877ea080f3e2bc44dd34996731a18a770f6a893bd253a4512c5037fe42ae132583dfe30537125b99b1aaa737d4f225d2f608b1f49be8daa1909f63a
6
+ metadata.gz: db63b3191a9da9f8aa928ba7900cffdb2f6559a307dc7b164b0662a2dd63a9449a0ee707ee8d7d18249080b02683f6940e2900af4c79bc5122ec4aa97d0dcc7a
7
+ data.tar.gz: 89a6db34e44842535846b0e030e3efb225589eae398e5165d467437e1ea79fae892fac9c5f67711e6b6c72541886acd38ae3762a0b8a7a9d43b6a47d12282ae3
@@ -20,8 +20,9 @@ class FileHandler
20
20
  puts'Finding project'
21
21
  puts'It may take some time...'
22
22
  Dir.glob('/**/' + packageName + '/') do |folder|
23
- package = folder unless found
23
+ package = folder
24
24
  found = true
25
+ break
25
26
  end
26
27
  packagePath = package.to_s
27
28
  if found
@@ -40,6 +41,7 @@ class FileHandler
40
41
  if File.exists?(path + 'README.md')
41
42
  readme = File.new(path + 'README.md')
42
43
  projectDescription = readProjectDescription(readme)
44
+ readme.close
43
45
  projectDescription
44
46
  else
45
47
  puts 'Warning: No README.md file found.'
@@ -54,16 +56,22 @@ class FileHandler
54
56
  filename = file.to_s
55
57
  inputFile = File.new(filename)
56
58
  modelname = File.basename(inputFile, '.rb')
59
+ modelPath = path + 'api/models/' + modelname + '.rb'
57
60
  helpername = path + 'api/app/helpers/' + modelname + '_helper.rb'
58
61
  controllername = path + 'api/app/controllers/' + modelname + '.rb'
59
62
  if File.exist?(helpername) && File.exist?(controllername)
60
- # Call the necessary methods for each helper and controller
63
+ # Call the necessary methods for each helper, model and controller
64
+ modelFile = File.new(modelPath, 'r')
61
65
  modelHelper = File.new(helpername, 'r')
62
66
  modelController = File.new(controllername, 'r')
67
+ relations = readRelations(modelFile, modelname, modelPath)
63
68
  methods = readMethods(modelHelper, helpername)
64
69
  routes = readRoutes(modelController, controllername)
65
- currentModel = Modelo.new(modelname, methods, routes)
70
+ currentModel = Modelo.new(modelname, methods, routes, relations)
66
71
  models << currentModel
72
+ modelFile.close
73
+ modelHelper.close
74
+ modelController.close
67
75
  end
68
76
  end
69
77
  # Return models
@@ -72,7 +80,7 @@ class FileHandler
72
80
 
73
81
  # Auxiliary methods of reading
74
82
 
75
- #Generate project descriprion based on 'README.md'
83
+ # Generate project descriprion based on 'README.md'
76
84
  def readProjectDescription(readme)
77
85
  isCode = false
78
86
  @projectDescription = ''
@@ -154,6 +162,39 @@ class FileHandler
154
162
  line
155
163
  end
156
164
 
165
+ # Read relations from model file
166
+ def readRelations(modelFile, modelname, modelPath)
167
+ lineIndex = 0
168
+ relations = []
169
+ arr = IO.readlines(modelFile)
170
+ # Read each line from model
171
+ arr.each do |line|
172
+ # Verify presence of any clause
173
+ if hasKeyword?(line, lineIndex, modelname)
174
+ # If it does, identify which clause it is
175
+ arg = decodeArgument(line)
176
+ keyword = arg[0]
177
+ argument = arg[1]
178
+ # Execute clause
179
+ case keyword
180
+ when 'belongs_to'
181
+ relation = modelname.capitalize + ' belongs to ' + argument
182
+ relations << relation
183
+ when 'has_one'
184
+ relation = modelname.capitalize + ' has one ' + argument
185
+ relations << relation
186
+ when 'has_many'
187
+ relation = modelname.capitalize + ' has many ' + argument
188
+ relations << relation
189
+ when 'has_and_belongs_to_many'
190
+ relation = modelname.capitalize + ' has and belongs to many ' + argument
191
+ relations << relation
192
+ end
193
+ end
194
+ end
195
+ relations
196
+ end
197
+
157
198
  # Read all methods from a helper file; helper = file, helpername = file path
158
199
  def readMethods(helper, helpername)
159
200
  lineIndex = 0
@@ -554,6 +595,7 @@ class FileHandler
554
595
  # Write a model HTML page content
555
596
  def writeModelPage(file, model, project)
556
597
  name = model.name.capitalize
598
+ relations = model.relations
557
599
  file.write("<div class='container panel panel-default'>
558
600
  <div class='row'>
559
601
  <div class='panel panel-default'>
@@ -562,6 +604,11 @@ class FileHandler
562
604
  </div>
563
605
  <div class='panel-body'>
564
606
  <h2>#{name} Model</h2>
607
+ <h4>")
608
+ relations.each do |relation|
609
+ file.write('<br>'+relation)
610
+ end
611
+ file.write("</h4>
565
612
  </div>
566
613
  </div>
567
614
  </div>
@@ -8,12 +8,14 @@
8
8
  class Modelo
9
9
  @methods = []
10
10
  @routes = []
11
+ @relations = []
11
12
  @name = ''
12
13
 
13
- def initialize(givenName, methodList, routeList)
14
+ def initialize(givenName, methodList, routeList, relationsList)
14
15
  @name = givenName
15
16
  @methods = methodList
16
17
  @routes = routeList
18
+ @relations = relationsList
17
19
  end
18
20
 
19
21
  def printSelf
@@ -35,4 +37,8 @@ class Modelo
35
37
  def routes
36
38
  @routes
37
39
  end
40
+
41
+ def relations
42
+ @relations
43
+ end
38
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phari_doc_gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phari Solutions
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-29 00:00:00.000000000 Z
11
+ date: 2017-06-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |2-
14
14
  Hi there buddy! I've heard you've been looking for a simple
@@ -56,7 +56,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: '0'
59
+ version: '2.0'
60
60
  required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - ">="