docme 0.0.0

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.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/bin/docme +4 -0
  3. data/lib/docme.rb +139 -0
  4. data/lib/docme/utils.rb +8 -0
  5. metadata +47 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d8092d5b797a25febaea7f8a5fefceb7d1abcdd6
4
+ data.tar.gz: de1f4530c2d36f17ae757ba8b41bc17cb51abdbc
5
+ SHA512:
6
+ metadata.gz: f05590f2bca35a3b51268f7575639d06495e4dff166acc60855f63e5c03595325a66ea4208056ae9c4fe3be0e09b2500d5c13c33acf3d7b9afce8acc128205b0
7
+ data.tar.gz: 0e67d56038efee0c763e0616afc47b91ed9b63db7b33c8b61ef4d62bc15d0f098da37a21b8c0cb806c76acc59fe3ce3eda8a071d1f68bc220eb7cab22452563b
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'docme'
4
+ puts Docme.jsParse(ARGV[0])
@@ -0,0 +1,139 @@
1
+ # docme
2
+
3
+ require 'docme/utils'
4
+
5
+ class Docme
6
+
7
+ def self.jsParse(file)
8
+ #file = ARGV[0]
9
+
10
+
11
+ #raise exception if no file provided, file does not exsist, the file is not readable, or the file has no content
12
+ if file== nil || !File.file?(file) || !File.exists?(file)
13
+ raise "Please provide a path to the file you wish to docme."
14
+ end
15
+
16
+ puts "\n ***Begining docme magix***"
17
+
18
+ #create the directory where the site will be stored
19
+ if !File::directory?("docme_site")
20
+ puts "+Setting up docme's living arrangements."
21
+ Dir.mkdir("docme_site")
22
+ end
23
+
24
+ puts "Woohoo! docme has a home!"
25
+
26
+ #GLOBALS
27
+ sourceFile = File.open(file).read
28
+ docmeDir = "docme"
29
+ block_flag = 0
30
+ code_flag = 0
31
+
32
+ sourceFile.each_line do |line|
33
+ #strip leading whitespaces
34
+ line = line.lstrip
35
+
36
+ #if this is the begining of a comment block then start a new function doc
37
+ if line.rindex("/*", 1) == 0
38
+ #logic to add a new function section to the erb file
39
+ next
40
+ end
41
+
42
+ #if this is the end of a comment block then there is nothing to do
43
+ if line.rindex("*/", 1) == 0
44
+ #end the function section of the erb file
45
+ next
46
+ end
47
+
48
+ #if line begins with '+' then we are defining an attribute
49
+ if line.rindex("+",0) == 0
50
+ parts = line.split(":")
51
+
52
+ #parts[0] == the attribute name
53
+ attribute = cleanAttribute(parts[0])
54
+ #add the attribute to the doc
55
+
56
+ content = parts[1].lstrip
57
+
58
+ #if the content begins with '{' then we have a block
59
+ if content.rindex("{",0) == 0
60
+ #go to the next line and look for '-', set block flag
61
+ #add the attribute to the doc
62
+ puts attribute
63
+ block_flag = 1
64
+ next
65
+ end
66
+
67
+ #add content to the doc
68
+ puts attribute
69
+ puts content
70
+ end
71
+
72
+ #if line begins with a '-' then we are in a block
73
+ if line.rindex("-",0) == 0
74
+ parts = line.split(":")
75
+
76
+ #parts[0] == the attribute name
77
+ attribute = cleanAttribute(parts[0])
78
+ #add the attribute to the doc
79
+
80
+ content = parts[1].lstrip
81
+
82
+ if attribute == "var"
83
+ # look for arrow
84
+ content_parts = content.split("->")
85
+ var_name = content_parts[0]
86
+ var_description = content_parts[1].lstrip
87
+
88
+ #put the var_name in the doc
89
+ #put the var_description in the doc
90
+ puts var_name
91
+ puts var_description
92
+ next
93
+ end
94
+
95
+ if attribute == "code"
96
+ code_flag = 1
97
+ #go ahead and skip to next line and process code
98
+ next
99
+ end
100
+
101
+ #if !var and !code, then process as regular attributes
102
+ #put the attribute name
103
+ #put the content
104
+ puts attribute
105
+ puts content
106
+ next
107
+ end
108
+
109
+ #if code flag is set and we reached the end of a block, then we reached the end of a code block, unset the flag
110
+ if code_flag == 1 && line.rindex("}",0) == 0
111
+ code_flag = 0
112
+ next
113
+ end
114
+
115
+ #if the block flag is set and we reach the end of a block, then we reached the end of a regular block, unset flag
116
+ if block_flag == 1 && line.rindex("}",0) == 0
117
+ block_flag = 0
118
+ end
119
+
120
+ #if we are in a code block, then return lines as is
121
+ if code_flag == 1
122
+ puts line
123
+ next
124
+ end
125
+
126
+
127
+ end
128
+
129
+ def render()
130
+ ERB.new(@template).result(binding)
131
+ end
132
+
133
+ def save(site)
134
+ FIle.open(site, "w+") do |f|
135
+ f.write(render)
136
+ end
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,8 @@
1
+ #docem utils
2
+
3
+ def cleanAttribute(attr)
4
+ attr = attr.delete("+[")
5
+ attr = attr.delete("]")
6
+ attr = attr.delete("-")
7
+ return attr
8
+ end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: docme
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Bailey Belvis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-27 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A gem to support easy documentation for javascript files.
14
+ email: baileyb622@gmail.com
15
+ executables:
16
+ - docme
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - bin/docme
21
+ - lib/docme.rb
22
+ - lib/docme/utils.rb
23
+ homepage: https://github.com/philosowaffle/docme
24
+ licenses:
25
+ - Mozilla Public License
26
+ metadata: {}
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 2.2.2
44
+ signing_key:
45
+ specification_version: 4
46
+ summary: A documentation site generator.
47
+ test_files: []