yard-sketchup 1.4.1 → 1.5.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.
- checksums.yaml +4 -4
- data/Gemfile +15 -15
- data/lib/yard-sketchup/patches/c_base_handler.rb +52 -52
- data/lib/yard-sketchup/stubs/autoload.rb +134 -134
- data/lib/yard-sketchup/templates/changelog/fulldoc/text/setup.rb +44 -44
- data/lib/yard-sketchup/templates/coverage/fulldoc/text/setup.rb +41 -41
- data/lib/yard-sketchup/templates/default/fulldoc/html/css/rubyapi.css +10 -10
- data/lib/yard-sketchup/templates/default/fulldoc/html/css/sketchup.css +155 -141
- data/lib/yard-sketchup/templates/default/fulldoc/html/full_list_object_types.erb +1 -1
- data/lib/yard-sketchup/templates/default/fulldoc/html/images/Ruby.svg +1 -1
- data/lib/yard-sketchup/templates/default/fulldoc/html/images/sketchup-logo.svg +19 -19
- data/lib/yard-sketchup/templates/default/fulldoc/html/images/trimble-logo-white.svg +29 -29
- data/lib/yard-sketchup/templates/default/fulldoc/html/js/sketchup.js +37 -37
- data/lib/yard-sketchup/templates/default/fulldoc/html/setup.rb +75 -75
- data/lib/yard-sketchup/templates/default/layout/html/embed_meta.erb +78 -78
- data/lib/yard-sketchup/templates/default/layout/html/footer.erb +4 -4
- data/lib/yard-sketchup/templates/default/layout/html/headers.erb +15 -15
- data/lib/yard-sketchup/templates/default/layout/html/layout.erb +56 -56
- data/lib/yard-sketchup/templates/default/layout/html/navbar.erb +36 -36
- data/lib/yard-sketchup/templates/default/layout/html/setup.rb +25 -25
- data/lib/yard-sketchup/templates/default/method_details/html/method_signature.erb +30 -26
- data/lib/yard-sketchup/templates/default/method_details/setup.rb +11 -11
- data/lib/yard-sketchup/templates/default/module/html/box_info.erb +37 -37
- data/lib/yard-sketchup/templates/default/module/html/constant_summary.erb +19 -17
- data/lib/yard-sketchup/templates/default/module/html/method_summary.erb +18 -18
- data/lib/yard-sketchup/templates/inheritance/fulldoc/text/setup.rb +54 -54
- data/lib/yard-sketchup/templates/stubs/fulldoc/text/setup.rb +372 -372
- data/lib/yard-sketchup/templates/versions/fulldoc/text/setup.rb +25 -25
- data/lib/yard-sketchup/version.rb +3 -3
- data/lib/yard-sketchup/yard/html_helper.rb +16 -16
- data/lib/yard-sketchup.rb +37 -37
- data/yard-sketchup.gemspec +26 -26
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55bd7c6ccd04b15c3dda040cee5268918be3e7dce6bb08e9b225b82e2659ed3b
|
4
|
+
data.tar.gz: 82b2114686ed2614b0b9f4621540bd92f83eca8fdaf6d639151f45d99d366fe8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 778e3f58d9e62b041a2e69253754fabc3e8bf169737bc9da0e7307e4b6a0509ec37bdb15ac12bac31afa82360a030d5a1b983a6dffb66f3b61c11a548d7b10e0
|
7
|
+
data.tar.gz: 4b79e9d05a91d08d49207b0de0638294662aef933ebe6326c57038b61462618ad0c092fb357654ea86c9232aec0b69109b5cab6a729fa448678fd47997f80146
|
data/Gemfile
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
source 'https://rubygems.org'
|
4
|
-
|
5
|
-
gemspec
|
6
|
-
|
7
|
-
gem 'rake', '~> 12.0', require: false
|
8
|
-
|
9
|
-
group :tools do
|
10
|
-
gem 'colorize', '~> 0.0', require: false
|
11
|
-
gem 'git', '~> 1.3', require: false
|
12
|
-
gem 'git_diff_parser', '~> 2.3', require: false
|
13
|
-
gem 'thor', '~> 0.19', require: false
|
14
|
-
end
|
15
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
gemspec
|
6
|
+
|
7
|
+
gem 'rake', '~> 12.0', require: false
|
8
|
+
|
9
|
+
group :tools do
|
10
|
+
gem 'colorize', '~> 0.0', require: false
|
11
|
+
gem 'git', '~> 1.3', require: false
|
12
|
+
gem 'git_diff_parser', '~> 2.3', require: false
|
13
|
+
gem 'thor', '~> 0.19', require: false
|
14
|
+
end
|
15
|
+
|
@@ -1,52 +1,52 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module Handlers
|
4
|
-
module C
|
5
|
-
class Base < Handlers::Base
|
6
|
-
|
7
|
-
# Temporary workaround until a proper fix can be applied to YARD master.
|
8
|
-
alias_method :namespace_for_variable_original, :namespace_for_variable
|
9
|
-
def namespace_for_variable(var)
|
10
|
-
patch_namespace_for_variable(var) ||
|
11
|
-
namespace_for_variable_original(var)
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def patch_namespace_for_variable(var)
|
17
|
-
name = PATCH_ERROR_NAME[var]
|
18
|
-
# $stderr.puts "Mapped #{var} to #{name}" if name
|
19
|
-
name.nil? ? nil : P(name)
|
20
|
-
end
|
21
|
-
|
22
|
-
# Generated by update_error_map.rb (Copy+past results)
|
23
|
-
PATCH_ERROR_NAME = {
|
24
|
-
'rb_eException' => 'Exception',
|
25
|
-
'rb_eSystemExit' => 'SystemExit',
|
26
|
-
'rb_eFatal' => 'fatal',
|
27
|
-
'rb_eSignal' => 'SignalException',
|
28
|
-
'rb_eInterrupt' => 'Interrupt',
|
29
|
-
'rb_eStandardError' => 'StandardError',
|
30
|
-
'rb_eTypeError' => 'TypeError',
|
31
|
-
'rb_eArgError' => 'ArgumentError',
|
32
|
-
'rb_eIndexError' => 'IndexError',
|
33
|
-
'rb_eKeyError' => 'KeyError',
|
34
|
-
'rb_eRangeError' => 'RangeError',
|
35
|
-
'rb_eScriptError' => 'ScriptError',
|
36
|
-
'rb_eSyntaxError' => 'SyntaxError',
|
37
|
-
'rb_eLoadError' => 'LoadError',
|
38
|
-
'rb_eNotImpError' => 'NotImplementedError',
|
39
|
-
'rb_eNameError' => 'NameError',
|
40
|
-
'rb_eNoMethodError' => 'NoMethodError',
|
41
|
-
'rb_eRuntimeError' => 'RuntimeError',
|
42
|
-
'rb_eFrozenError' => 'FrozenError',
|
43
|
-
'rb_eSecurityError' => 'SecurityError',
|
44
|
-
'rb_eNoMemError' => 'NoMemoryError',
|
45
|
-
'rb_eEncodingError' => 'EncodingError',
|
46
|
-
'rb_eSystemCallError' => 'SystemCallError',
|
47
|
-
}
|
48
|
-
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module Handlers
|
4
|
+
module C
|
5
|
+
class Base < Handlers::Base
|
6
|
+
|
7
|
+
# Temporary workaround until a proper fix can be applied to YARD master.
|
8
|
+
alias_method :namespace_for_variable_original, :namespace_for_variable
|
9
|
+
def namespace_for_variable(var)
|
10
|
+
patch_namespace_for_variable(var) ||
|
11
|
+
namespace_for_variable_original(var)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def patch_namespace_for_variable(var)
|
17
|
+
name = PATCH_ERROR_NAME[var]
|
18
|
+
# $stderr.puts "Mapped #{var} to #{name}" if name
|
19
|
+
name.nil? ? nil : P(name)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Generated by update_error_map.rb (Copy+past results)
|
23
|
+
PATCH_ERROR_NAME = {
|
24
|
+
'rb_eException' => 'Exception',
|
25
|
+
'rb_eSystemExit' => 'SystemExit',
|
26
|
+
'rb_eFatal' => 'fatal',
|
27
|
+
'rb_eSignal' => 'SignalException',
|
28
|
+
'rb_eInterrupt' => 'Interrupt',
|
29
|
+
'rb_eStandardError' => 'StandardError',
|
30
|
+
'rb_eTypeError' => 'TypeError',
|
31
|
+
'rb_eArgError' => 'ArgumentError',
|
32
|
+
'rb_eIndexError' => 'IndexError',
|
33
|
+
'rb_eKeyError' => 'KeyError',
|
34
|
+
'rb_eRangeError' => 'RangeError',
|
35
|
+
'rb_eScriptError' => 'ScriptError',
|
36
|
+
'rb_eSyntaxError' => 'SyntaxError',
|
37
|
+
'rb_eLoadError' => 'LoadError',
|
38
|
+
'rb_eNotImpError' => 'NotImplementedError',
|
39
|
+
'rb_eNameError' => 'NameError',
|
40
|
+
'rb_eNoMethodError' => 'NoMethodError',
|
41
|
+
'rb_eRuntimeError' => 'RuntimeError',
|
42
|
+
'rb_eFrozenError' => 'FrozenError',
|
43
|
+
'rb_eSecurityError' => 'SecurityError',
|
44
|
+
'rb_eNoMemError' => 'NoMemoryError',
|
45
|
+
'rb_eEncodingError' => 'EncodingError',
|
46
|
+
'rb_eSystemCallError' => 'SystemCallError',
|
47
|
+
}
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,134 +1,134 @@
|
|
1
|
-
module SketchUpYARD
|
2
|
-
module Stubs
|
3
|
-
class AutoLoadGenerator
|
4
|
-
|
5
|
-
# @param [YARD::CodeObject::Base] namespace_objects
|
6
|
-
# @param [IO] out
|
7
|
-
def generate(namespace_objects, out)
|
8
|
-
dependencies = resolve_dependencies(namespace_objects)
|
9
|
-
out.puts "# This file is auto-generated by the `thor stubs` command."
|
10
|
-
required = Set.new
|
11
|
-
# Top level is special case.
|
12
|
-
top_level_path = File.join(sketchup_stubs_path, '_top_level.rb')
|
13
|
-
out.puts "require '#{top_level_path}'"
|
14
|
-
# The rest is resolved recursively.
|
15
|
-
dependencies.each { |object|
|
16
|
-
recurse_require(object, required, out)
|
17
|
-
}
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
21
|
-
|
22
|
-
class Node
|
23
|
-
|
24
|
-
attr_reader :object
|
25
|
-
attr_reader :dependencies
|
26
|
-
|
27
|
-
def initialize(object)
|
28
|
-
@object = object
|
29
|
-
@dependencies = SortedSet.new
|
30
|
-
end
|
31
|
-
|
32
|
-
def root?
|
33
|
-
@object.namespace.root?
|
34
|
-
end
|
35
|
-
|
36
|
-
def path
|
37
|
-
@object.path
|
38
|
-
end
|
39
|
-
|
40
|
-
def namespace
|
41
|
-
@object.namespace
|
42
|
-
end
|
43
|
-
|
44
|
-
def <<(object)
|
45
|
-
@dependencies << object
|
46
|
-
end
|
47
|
-
|
48
|
-
def <=>(other)
|
49
|
-
@object.path <=> other.path
|
50
|
-
end
|
51
|
-
|
52
|
-
def hash
|
53
|
-
@object.path.hash
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
|
59
|
-
class NodeFactory
|
60
|
-
|
61
|
-
def initialize
|
62
|
-
@dependencies = {}
|
63
|
-
end
|
64
|
-
|
65
|
-
def node(yard_object)
|
66
|
-
item = @dependencies[yard_object.path]
|
67
|
-
return item if item
|
68
|
-
item = Node.new(yard_object)
|
69
|
-
@dependencies[yard_object.path] = item
|
70
|
-
item
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
|
-
|
76
|
-
def resolve_dependencies(yard_objects)
|
77
|
-
factory = NodeFactory.new
|
78
|
-
dependencies = SortedSet.new
|
79
|
-
|
80
|
-
yard_objects.each { |yard_object|
|
81
|
-
object = factory.node(yard_object)
|
82
|
-
|
83
|
-
if yard_object.type == :class && yard_object.superclass.name != :Object
|
84
|
-
object << factory.node(yard_object.superclass)
|
85
|
-
end
|
86
|
-
|
87
|
-
unless yard_object.namespace.path.empty?
|
88
|
-
object << factory.node(yard_object.namespace)
|
89
|
-
end
|
90
|
-
|
91
|
-
dependencies << object
|
92
|
-
}
|
93
|
-
dependencies
|
94
|
-
end
|
95
|
-
|
96
|
-
def print_dependencies(object, indent = 0)
|
97
|
-
indent_space = ' ' * indent
|
98
|
-
puts "#{indent_space}#{object.path}"
|
99
|
-
object.dependencies.each { |dependency|
|
100
|
-
print_dependencies(dependency, indent + 1)
|
101
|
-
}
|
102
|
-
end
|
103
|
-
|
104
|
-
def sketchup_stubs_path
|
105
|
-
File.join('sketchup-api-stubs', 'stubs')
|
106
|
-
end
|
107
|
-
|
108
|
-
def stub_filename(object)
|
109
|
-
basename = object.path.gsub('::', '/')
|
110
|
-
basename = '_top_level' if basename.empty?
|
111
|
-
File.join(sketchup_stubs_path, "#{basename}.rb")
|
112
|
-
end
|
113
|
-
|
114
|
-
def recurse_require(object, required, out, indent = 0)
|
115
|
-
return if required.include?(object.path)
|
116
|
-
# If a class inherit from a core Ruby class we might get a Proxy code
|
117
|
-
# object here. We don't generate stubs for those and thus we don't want
|
118
|
-
# to create a require for them either.
|
119
|
-
return if object.object.is_a?(YARD::CodeObjects::Proxy)
|
120
|
-
# First require the dependencies.
|
121
|
-
object.dependencies.each { |dependency|
|
122
|
-
recurse_require(dependency, required, out, indent + 1)
|
123
|
-
}
|
124
|
-
# Then we're good to require this object.
|
125
|
-
require_path = stub_filename(object)
|
126
|
-
# indent_space = ' ' * indent
|
127
|
-
# out.puts "#{indent_space}require '#{require_path}'"
|
128
|
-
out.puts "require '#{require_path}'"
|
129
|
-
required << object.path
|
130
|
-
end
|
131
|
-
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
1
|
+
module SketchUpYARD
|
2
|
+
module Stubs
|
3
|
+
class AutoLoadGenerator
|
4
|
+
|
5
|
+
# @param [YARD::CodeObject::Base] namespace_objects
|
6
|
+
# @param [IO] out
|
7
|
+
def generate(namespace_objects, out)
|
8
|
+
dependencies = resolve_dependencies(namespace_objects)
|
9
|
+
out.puts "# This file is auto-generated by the `thor stubs` command."
|
10
|
+
required = Set.new
|
11
|
+
# Top level is special case.
|
12
|
+
top_level_path = File.join(sketchup_stubs_path, '_top_level.rb')
|
13
|
+
out.puts "require '#{top_level_path}'"
|
14
|
+
# The rest is resolved recursively.
|
15
|
+
dependencies.each { |object|
|
16
|
+
recurse_require(object, required, out)
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
class Node
|
23
|
+
|
24
|
+
attr_reader :object
|
25
|
+
attr_reader :dependencies
|
26
|
+
|
27
|
+
def initialize(object)
|
28
|
+
@object = object
|
29
|
+
@dependencies = SortedSet.new
|
30
|
+
end
|
31
|
+
|
32
|
+
def root?
|
33
|
+
@object.namespace.root?
|
34
|
+
end
|
35
|
+
|
36
|
+
def path
|
37
|
+
@object.path
|
38
|
+
end
|
39
|
+
|
40
|
+
def namespace
|
41
|
+
@object.namespace
|
42
|
+
end
|
43
|
+
|
44
|
+
def <<(object)
|
45
|
+
@dependencies << object
|
46
|
+
end
|
47
|
+
|
48
|
+
def <=>(other)
|
49
|
+
@object.path <=> other.path
|
50
|
+
end
|
51
|
+
|
52
|
+
def hash
|
53
|
+
@object.path.hash
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
class NodeFactory
|
60
|
+
|
61
|
+
def initialize
|
62
|
+
@dependencies = {}
|
63
|
+
end
|
64
|
+
|
65
|
+
def node(yard_object)
|
66
|
+
item = @dependencies[yard_object.path]
|
67
|
+
return item if item
|
68
|
+
item = Node.new(yard_object)
|
69
|
+
@dependencies[yard_object.path] = item
|
70
|
+
item
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
def resolve_dependencies(yard_objects)
|
77
|
+
factory = NodeFactory.new
|
78
|
+
dependencies = SortedSet.new
|
79
|
+
|
80
|
+
yard_objects.each { |yard_object|
|
81
|
+
object = factory.node(yard_object)
|
82
|
+
|
83
|
+
if yard_object.type == :class && yard_object.superclass.name != :Object
|
84
|
+
object << factory.node(yard_object.superclass)
|
85
|
+
end
|
86
|
+
|
87
|
+
unless yard_object.namespace.path.empty?
|
88
|
+
object << factory.node(yard_object.namespace)
|
89
|
+
end
|
90
|
+
|
91
|
+
dependencies << object
|
92
|
+
}
|
93
|
+
dependencies
|
94
|
+
end
|
95
|
+
|
96
|
+
def print_dependencies(object, indent = 0)
|
97
|
+
indent_space = ' ' * indent
|
98
|
+
puts "#{indent_space}#{object.path}"
|
99
|
+
object.dependencies.each { |dependency|
|
100
|
+
print_dependencies(dependency, indent + 1)
|
101
|
+
}
|
102
|
+
end
|
103
|
+
|
104
|
+
def sketchup_stubs_path
|
105
|
+
File.join('sketchup-api-stubs', 'stubs')
|
106
|
+
end
|
107
|
+
|
108
|
+
def stub_filename(object)
|
109
|
+
basename = object.path.gsub('::', '/')
|
110
|
+
basename = '_top_level' if basename.empty?
|
111
|
+
File.join(sketchup_stubs_path, "#{basename}.rb")
|
112
|
+
end
|
113
|
+
|
114
|
+
def recurse_require(object, required, out, indent = 0)
|
115
|
+
return if required.include?(object.path)
|
116
|
+
# If a class inherit from a core Ruby class we might get a Proxy code
|
117
|
+
# object here. We don't generate stubs for those and thus we don't want
|
118
|
+
# to create a require for them either.
|
119
|
+
return if object.object.is_a?(YARD::CodeObjects::Proxy)
|
120
|
+
# First require the dependencies.
|
121
|
+
object.dependencies.each { |dependency|
|
122
|
+
recurse_require(dependency, required, out, indent + 1)
|
123
|
+
}
|
124
|
+
# Then we're good to require this object.
|
125
|
+
require_path = stub_filename(object)
|
126
|
+
# indent_space = ' ' * indent
|
127
|
+
# out.puts "#{indent_space}require '#{require_path}'"
|
128
|
+
out.puts "require '#{require_path}'"
|
129
|
+
required << object.path
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
@@ -1,44 +1,44 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'set'
|
3
|
-
require 'stringio'
|
4
|
-
|
5
|
-
include Helpers::ModuleHelper
|
6
|
-
|
7
|
-
def init
|
8
|
-
generate_changelog
|
9
|
-
end
|
10
|
-
|
11
|
-
|
12
|
-
def all_objects
|
13
|
-
run_verifier(Registry.all())
|
14
|
-
end
|
15
|
-
|
16
|
-
def namespace_objects
|
17
|
-
run_verifier(Registry.all(:class, :module))
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
|
-
def output_path
|
22
|
-
options.serializer.options[:basepath] || Dir.pwd
|
23
|
-
end
|
24
|
-
|
25
|
-
|
26
|
-
def changelog_filename
|
27
|
-
'Changelog SU201x.log'
|
28
|
-
end
|
29
|
-
|
30
|
-
def generate_changelog
|
31
|
-
#p (methods - Object.instance_methods).sort
|
32
|
-
#p ARGV
|
33
|
-
puts "Generating #{changelog_filename}..."
|
34
|
-
output = StringIO.new
|
35
|
-
new_objects = all_objects.sort { |a, b| a.path <=> b.path }
|
36
|
-
new_objects.each do |object|
|
37
|
-
#object.meths.each { |method|
|
38
|
-
#methods << "#{method.namespace}##{method.name}"
|
39
|
-
#}
|
40
|
-
output.puts "Added #{object.type} #{object.path}"
|
41
|
-
end
|
42
|
-
changelog_path = File.join(output_path, changelog_filename)
|
43
|
-
File.write(changelog_path, output.string)
|
44
|
-
end
|
1
|
+
require 'fileutils'
|
2
|
+
require 'set'
|
3
|
+
require 'stringio'
|
4
|
+
|
5
|
+
include Helpers::ModuleHelper
|
6
|
+
|
7
|
+
def init
|
8
|
+
generate_changelog
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
def all_objects
|
13
|
+
run_verifier(Registry.all())
|
14
|
+
end
|
15
|
+
|
16
|
+
def namespace_objects
|
17
|
+
run_verifier(Registry.all(:class, :module))
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def output_path
|
22
|
+
options.serializer.options[:basepath] || Dir.pwd
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def changelog_filename
|
27
|
+
'Changelog SU201x.log'
|
28
|
+
end
|
29
|
+
|
30
|
+
def generate_changelog
|
31
|
+
#p (methods - Object.instance_methods).sort
|
32
|
+
#p ARGV
|
33
|
+
puts "Generating #{changelog_filename}..."
|
34
|
+
output = StringIO.new
|
35
|
+
new_objects = all_objects.sort { |a, b| a.path <=> b.path }
|
36
|
+
new_objects.each do |object|
|
37
|
+
#object.meths.each { |method|
|
38
|
+
#methods << "#{method.namespace}##{method.name}"
|
39
|
+
#}
|
40
|
+
output.puts "Added #{object.type} #{object.path}"
|
41
|
+
end
|
42
|
+
changelog_path = File.join(output_path, changelog_filename)
|
43
|
+
File.write(changelog_path, output.string)
|
44
|
+
end
|
@@ -1,41 +1,41 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'set'
|
3
|
-
|
4
|
-
include Helpers::ModuleHelper
|
5
|
-
|
6
|
-
MANIFEST_FILENAME = 'coverage.manifest'.freeze
|
7
|
-
|
8
|
-
def init
|
9
|
-
generate_manifest
|
10
|
-
end
|
11
|
-
|
12
|
-
|
13
|
-
def namespace_objects
|
14
|
-
run_verifier(Registry.all(:class, :module))
|
15
|
-
end
|
16
|
-
|
17
|
-
|
18
|
-
def output_path
|
19
|
-
options.serializer.options[:basepath] || Dir.pwd
|
20
|
-
end
|
21
|
-
|
22
|
-
|
23
|
-
def generate_manifest
|
24
|
-
puts "Generating #{MANIFEST_FILENAME}..."
|
25
|
-
methods = Set.new
|
26
|
-
namespace_objects.each do |object|
|
27
|
-
run_verifier(object.meths).each { |method|
|
28
|
-
# TODO(thomthom): Currently the manifest doesn't distinguish between
|
29
|
-
# class and instance methods. This should be addressed, but we need to
|
30
|
-
# update TestUp to handle this first.
|
31
|
-
# TODO(thomthom): Make this a configurable filter.
|
32
|
-
# Layout has its own tests - and should be isolated so its own suite.
|
33
|
-
next if method.namespace.to_s.start_with?('Layout')
|
34
|
-
methods << "#{method.namespace}.#{method.name}"
|
35
|
-
}
|
36
|
-
end
|
37
|
-
manifest = methods.sort.join("\n")
|
38
|
-
manifest_path = File.join(output_path, MANIFEST_FILENAME)
|
39
|
-
puts manifest_path
|
40
|
-
File.write(manifest_path, manifest)
|
41
|
-
end
|
1
|
+
require 'fileutils'
|
2
|
+
require 'set'
|
3
|
+
|
4
|
+
include Helpers::ModuleHelper
|
5
|
+
|
6
|
+
MANIFEST_FILENAME = 'coverage.manifest'.freeze
|
7
|
+
|
8
|
+
def init
|
9
|
+
generate_manifest
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
def namespace_objects
|
14
|
+
run_verifier(Registry.all(:class, :module))
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def output_path
|
19
|
+
options.serializer.options[:basepath] || Dir.pwd
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
def generate_manifest
|
24
|
+
puts "Generating #{MANIFEST_FILENAME}..."
|
25
|
+
methods = Set.new
|
26
|
+
namespace_objects.each do |object|
|
27
|
+
run_verifier(object.meths).each { |method|
|
28
|
+
# TODO(thomthom): Currently the manifest doesn't distinguish between
|
29
|
+
# class and instance methods. This should be addressed, but we need to
|
30
|
+
# update TestUp to handle this first.
|
31
|
+
# TODO(thomthom): Make this a configurable filter.
|
32
|
+
# Layout has its own tests - and should be isolated so its own suite.
|
33
|
+
next if method.namespace.to_s.start_with?('Layout')
|
34
|
+
methods << "#{method.namespace}.#{method.name}"
|
35
|
+
}
|
36
|
+
end
|
37
|
+
manifest = methods.sort.join("\n")
|
38
|
+
manifest_path = File.join(output_path, MANIFEST_FILENAME)
|
39
|
+
puts manifest_path
|
40
|
+
File.write(manifest_path, manifest)
|
41
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
|
-
@charset "UTF-8";/*!
|
2
|
-
* Bootstrap v3.3.5 (http://getbootstrap.com)
|
3
|
-
* Copyright 2011-2015 Twitter, Inc.
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
5
|
-
*//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.sr-only,img{border:0}.caret,img{vertical-align:middle}.dropdown-menu,.nav,ul li.expanded,ul li.leaf{list-style:none}header,nav{display:block}a:active,a:hover{outline:0}button{color:inherit;font:inherit;margin:0;overflow:visible;text-transform:none;-webkit-appearance:button;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}img{page-break-inside:avoid;max-width:100%!important}.navbar{display:none}}.nav>li>a:focus,.nav>li>a:hover,.navbar-brand:focus,.navbar-brand:hover,a,a:focus,a:hover{text-decoration:none}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:10px;-webkit-tap-highlight-color:transparent}body{margin:0;font-size:16px;line-height:1.42857}button{font-family:inherit;font-size:inherit;line-height:inherit}a{background-color:transparent;color:#e72b2d}a:focus,a:hover{color:#b11416}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.dropdown-toggle:focus,.navbar-toggle:focus{outline:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}ul{margin-top:0;margin-bottom:11px}ul ul{margin-bottom:0}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.collapse{display:none}.collapse.in{display:block}.caret{display:inline-block;width:0;height:0;margin-left:2px;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:16px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{color:#fff}.nav{margin-bottom:0;padding-left:0}.nav:after,.nav:before{content:" ";display:table}.nav>li,.nav>li>a{display:block;position:relative}.nav:after{clear:both}.nav>li>a{padding:10px 15px}.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before{content:" ";display:table}.nav>li>a:focus,.nav>li>a:hover{background-color:#eee}.nav>li>a>img{max-width:none}.navbar{position:relative;min-height:50px;margin-bottom:22px;border:1px solid transparent}.navbar:after{clear:both}.navbar-header:after{clear:both}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:0}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse{padding-left:0;padding-right:0}.navbar-fixed-top{border-radius:0}}.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse{max-height:200px}}.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030;top:0;border-width:0 0 1px}.navbar-toggle,body{position:relative}.navbar-brand{float:left;padding:14px 15px;font-size:20px;line-height:22px;height:50px}.navbar-toggle{float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:0;background-image:none}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:22px}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:14px;padding-bottom:14px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-btn{margin-top:7px;margin-bottom:7px}.navbar-inverse{background-color:#363545;border-color:#000;box-shadow:1px 1px 6px #35393e}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#D4D5D1;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse{border-color:#262531}.pull-left{float:left!important}@-ms-viewport{width:device-width}.navbar .logo{margin-right:-15px;padding-left:15px;padding-right:15px}@media screen and (min-width:768px){.navbar .logo{margin-right:0;padding-left:0}.navbar-collapse{float:right}}@font-face{font-family:fontello;src:url(/sites/all/themes/sketch/fonts/fontello/font/fontello.eot?93575470);src:url(/sites/all/themes/sketch/fonts/fontello/font/fontello.eot?93575470#iefix) format("embedded-opentype"),url(/sites/all/themes/sketch/fonts/fontello/font/fontello.woff?93575470) format("woff"),url(/sites/all/themes/sketch/fonts/fontello/font/fontello.ttf?93575470) format("truetype"),url(/sites/all/themes/sketch/fonts/fontello/font/fontello.svg?93575470#fontello) format("svg");font-weight:400;font-style:normal}[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.navbar-brand,.navbar-nav .caret{display:none}/*!
|
6
|
-
Animate.css - http://daneden.me/animate
|
7
|
-
Version - 3.4.0
|
8
|
-
Licensed under the MIT license - http://opensource.org/licenses/MIT
|
9
|
-
|
10
|
-
Copyright (c) 2015 Daniel Eden
|
1
|
+
@charset "UTF-8";/*!
|
2
|
+
* Bootstrap v3.3.5 (http://getbootstrap.com)
|
3
|
+
* Copyright 2011-2015 Twitter, Inc.
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
5
|
+
*//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.sr-only,img{border:0}.caret,img{vertical-align:middle}.dropdown-menu,.nav,ul li.expanded,ul li.leaf{list-style:none}header,nav{display:block}a:active,a:hover{outline:0}button{color:inherit;font:inherit;margin:0;overflow:visible;text-transform:none;-webkit-appearance:button;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}img{page-break-inside:avoid;max-width:100%!important}.navbar{display:none}}.nav>li>a:focus,.nav>li>a:hover,.navbar-brand:focus,.navbar-brand:hover,a,a:focus,a:hover{text-decoration:none}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:10px;-webkit-tap-highlight-color:transparent}body{margin:0;font-size:16px;line-height:1.42857}button{font-family:inherit;font-size:inherit;line-height:inherit}a{background-color:transparent;color:#e72b2d}a:focus,a:hover{color:#b11416}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.dropdown-toggle:focus,.navbar-toggle:focus{outline:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}ul{margin-top:0;margin-bottom:11px}ul ul{margin-bottom:0}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.collapse{display:none}.collapse.in{display:block}.caret{display:inline-block;width:0;height:0;margin-left:2px;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:16px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{color:#fff}.nav{margin-bottom:0;padding-left:0}.nav:after,.nav:before{content:" ";display:table}.nav>li,.nav>li>a{display:block;position:relative}.nav:after{clear:both}.nav>li>a{padding:10px 15px}.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before{content:" ";display:table}.nav>li>a:focus,.nav>li>a:hover{background-color:#eee}.nav>li>a>img{max-width:none}.navbar{position:relative;min-height:50px;margin-bottom:22px;border:1px solid transparent}.navbar:after{clear:both}.navbar-header:after{clear:both}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:0}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse{padding-left:0;padding-right:0}.navbar-fixed-top{border-radius:0}}.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse{max-height:200px}}.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030;top:0;border-width:0 0 1px}.navbar-toggle,body{position:relative}.navbar-brand{float:left;padding:14px 15px;font-size:20px;line-height:22px;height:50px}.navbar-toggle{float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:0;background-image:none}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:22px}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:14px;padding-bottom:14px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-btn{margin-top:7px;margin-bottom:7px}.navbar-inverse{background-color:#363545;border-color:#000;box-shadow:1px 1px 6px #35393e}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#D4D5D1;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse{border-color:#262531}.pull-left{float:left!important}@-ms-viewport{width:device-width}.navbar .logo{margin-right:-15px;padding-left:15px;padding-right:15px}@media screen and (min-width:768px){.navbar .logo{margin-right:0;padding-left:0}.navbar-collapse{float:right}}@font-face{font-family:fontello;src:url(/sites/all/themes/sketch/fonts/fontello/font/fontello.eot?93575470);src:url(/sites/all/themes/sketch/fonts/fontello/font/fontello.eot?93575470#iefix) format("embedded-opentype"),url(/sites/all/themes/sketch/fonts/fontello/font/fontello.woff?93575470) format("woff"),url(/sites/all/themes/sketch/fonts/fontello/font/fontello.ttf?93575470) format("truetype"),url(/sites/all/themes/sketch/fonts/fontello/font/fontello.svg?93575470#fontello) format("svg");font-weight:400;font-style:normal}[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.navbar-brand,.navbar-nav .caret{display:none}/*!
|
6
|
+
Animate.css - http://daneden.me/animate
|
7
|
+
Version - 3.4.0
|
8
|
+
Licensed under the MIT license - http://opensource.org/licenses/MIT
|
9
|
+
|
10
|
+
Copyright (c) 2015 Daniel Eden
|
11
11
|
*/body,html{background-color:#363545;color:#4d5259;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.navbar-inverse .navbar-nav>li>a{font-size:14px;padding:22px 25px 10px}li.dropdown{border-bottom:2px solid transparent}.dropdown-menu>li>a{font-size:14px}.logo{margin:0;padding:11px 7px 12px 0}.logo img{height:33px}.icon-bar{transition:all .1s}.trimble-top-menu-item+ul.dropdown-menu{background-color:#005596}.trimble-top-menu-item+ul li>a{color:#fff}.trimble-top-menu-item img{width:65px;vertical-align:-2px}.navbar-inverse .navbar-nav>li>a.top-menu--download-button{font-size:14px!important;margin-top:0!important;margin-bottom:0!important;display:none;color:#fff;background-color:#e72b2d;border:1px solid #e72b2d;border-radius:0;font-weight:400;white-space:normal}.navbar-inverse .navbar-nav>li>a.top-menu--download-button:hover{background-color:#9b1113;border:1px solid #9b1113;box-shadow:#9b1113 0 0 0 4px inset;color:#fff}.navbar-inverse .navbar-nav>li>a.top-menu--download-button:active,.navbar-inverse .navbar-nav>li>a.top-menu--download-button:focus,.navbar-inverse .navbar-nav>li>a.top-menu--download-button:hover{color:#fff;text-decoration:none}
|