doc_to_dash 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,57 @@
1
+ require 'json'
2
+
3
+ module DocToDash
4
+ class RdocDarkfishParser
5
+ def initialize(doc_directory)
6
+ @doc_directory = doc_directory
7
+ @classes = []
8
+ @methods = []
9
+
10
+ fix_css_file
11
+
12
+ load_search_json
13
+ parse_through_json
14
+ end
15
+
16
+ def fix_css_file
17
+ File.open(@doc_directory + '/rdoc.css', 'a') { |file| file.write('nav, footer { display: none !important; } #documentation { margin: 0 !important; } .method-source-code { display: block !important; }') }
18
+ end
19
+
20
+ def load_search_json
21
+ search_index_js_path = @doc_directory + '/js/search_index.js'
22
+ search_index_js_file = File.read(search_index_js_path)
23
+ search_index_js_file.gsub!('var search_data = ', '')
24
+
25
+ @search_json = JSON::parse(search_index_js_file)
26
+ @search_json = @search_json["index"]["info"]
27
+ end
28
+
29
+ def parse_through_json
30
+ return false unless @search_json
31
+
32
+ blacklist = %w{README_FOR_APP}
33
+
34
+ @search_json.each do |item|
35
+ next if blacklist.include?(item[0])
36
+
37
+ if item[3] == ""
38
+ @classes << [item[2], item[0]]
39
+ elsif item[3] == "()"
40
+ @methods << [item[2], "#{item[1]}##{item[0]}"]
41
+ end
42
+ end
43
+
44
+ true
45
+ end
46
+
47
+ def classes
48
+ @classes
49
+ end
50
+ alias :parse_classes :classes
51
+
52
+ def methods
53
+ @methods
54
+ end
55
+ alias :parse_methods :methods
56
+ end
57
+ end
@@ -1,3 +1,3 @@
1
1
  module DocToDash
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -4,6 +4,11 @@ module DocToDash
4
4
  @doc_directory = doc_directory
5
5
  end
6
6
 
7
+ #TODO: fix the CSS file and remove the top header. JS will not work on Dash.
8
+ #def fix_css_file
9
+ # File.open(@doc_directory + '/rdoc.css', 'a') { |file| file.write('nav, footer { display: none !important; } #documentation { margin: 0 !important; } .method-source-code { display: block !important; }') }
10
+ #end
11
+
7
12
  def parse_classes
8
13
  classes_file = File.read(@doc_directory + '/class_list.html')
9
14
  classes_html = Nokogiri::HTML(classes_file)
data/lib/doc_to_dash.rb CHANGED
@@ -45,12 +45,16 @@ module DocToDash
45
45
  @classes = parser.parse_classes
46
46
  @methods = parser.parse_methods
47
47
 
48
- load_methods_into_database
49
- load_classes_into_database
50
-
51
- log "Docset created."
52
-
53
- @docset_path
48
+ if @methods && @classes
49
+ load_methods_into_database
50
+ load_classes_into_database
51
+
52
+ log "Docset created."
53
+ @docset_path
54
+ else
55
+ log "Docset could not be created. Parser returned no data."
56
+ return false
57
+ end
54
58
  end
55
59
 
56
60
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doc_to_dash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -59,6 +59,7 @@ files:
59
59
  - bin/doc_to_dash
60
60
  - doc_to_dash.gemspec
61
61
  - lib/doc_to_dash.rb
62
+ - lib/doc_to_dash/rdoc_darkfish_parser.rb
62
63
  - lib/doc_to_dash/version.rb
63
64
  - lib/doc_to_dash/yard_parser.rb
64
65
  homepage: https://rubygems.org/gems/doc_to_dash