inch 0.5.10 → 0.6.0.rc1
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/CHANGELOG.md +4 -0
- data/config/{nodejs.rb → javascript.rb} +2 -3
- data/lib/inch.rb +1 -1
- data/lib/inch/cli/command/options/base.rb +1 -1
- data/lib/inch/cli/command/output/base.rb +1 -1
- data/lib/inch/config.rb +4 -2
- data/lib/inch/language.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/code_object/base.rb +2 -2
- data/lib/inch/language/{nodejs → javascript}/code_object/class_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/code_object/function_object.rb +2 -2
- data/lib/inch/language/{nodejs → javascript}/code_object/function_parameter_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/code_object/member_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/code_object/module_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/evaluation/base.rb +2 -2
- data/lib/inch/language/{nodejs → javascript}/evaluation/class_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/evaluation/function_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/evaluation/member_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/evaluation/module_object.rb +1 -1
- data/lib/inch/language/javascript/import.rb +27 -0
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc.rb +2 -2
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc/docstring.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc/object.rb +6 -6
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc/object/base.rb +2 -2
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc/object/class_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc/object/function_object.rb +2 -2
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc/object/function_parameter_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc/object/member_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc/object/module_object.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/provider/jsdoc/parser.rb +3 -3
- data/lib/inch/language/{nodejs → javascript}/roles/base.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/roles/function.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/roles/function_parameter.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/roles/member.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/roles/module.rb +1 -1
- data/lib/inch/language/{nodejs → javascript}/roles/object.rb +1 -1
- data/lib/inch/version.rb +1 -1
- data/test/fixtures/{nodejs → javascript}/inch_test/all.json +152 -152
- data/test/fixtures/ruby/simple/lib/directives.rb +21 -0
- data/test/unit/language/{nodejs → javascript}/code_object/function_object_test.rb +1 -1
- data/test/unit/language/{nodejs → javascript}/provider/jsdoc/docstring_test.rb +2 -2
- data/test/unit/language/ruby/code_object/method_object_test.rb +39 -10
- metadata +39 -39
- data/lib/inch/language/nodejs/import.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2576ec3e34a40dd71b8a98c24d99a2a221774b5a
|
4
|
+
data.tar.gz: d5a9dc7b201840df3ebbc34f8ad5ab87ad0552d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4598a0be0972ccc7205f4a9dbde89ba86b61d7547c979ad1e7f4ef16fa7ef4f566c80c458c454302ef1252c48a5284356e9d34bc0b598a67e166a4e90ec9bc3
|
7
|
+
data.tar.gz: 6af39b0a5f329493e57bff20bec65f1a7eb84025a78aa4b24bfbe47b39156a065324be3ff0a5c99423e859da432a18db89fd104800debc59bb37a8419a9d0062
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
#
|
2
|
-
# Node will be treated as a separate programming language for now
|
1
|
+
# JavaScript's configuration
|
3
2
|
|
4
|
-
Inch::Config.register(:
|
3
|
+
Inch::Config.register(:javascript) do
|
5
4
|
codebase do
|
6
5
|
object_provider :JSDoc
|
7
6
|
include_files ['src/**/*.js']
|
data/lib/inch.rb
CHANGED
@@ -16,5 +16,5 @@ require 'inch/language'
|
|
16
16
|
require 'inch/config'
|
17
17
|
require File.join(File.dirname(__FILE__), '..', 'config', 'base.rb')
|
18
18
|
require File.join(File.dirname(__FILE__), '..', 'config', 'ruby.rb')
|
19
|
-
require File.join(File.dirname(__FILE__), '..', 'config', '
|
19
|
+
require File.join(File.dirname(__FILE__), '..', 'config', 'javascript.rb')
|
20
20
|
require File.join(File.dirname(__FILE__), '..', 'config', 'elixir.rb')
|
@@ -130,7 +130,7 @@ module Inch
|
|
130
130
|
exit
|
131
131
|
end
|
132
132
|
opts.on_tail('-l', '--language [LANGUAGE]',
|
133
|
-
'Set language (elixir|
|
133
|
+
'Set language (elixir|javascript|ruby).') do |language|
|
134
134
|
@language = language
|
135
135
|
end
|
136
136
|
opts.on_tail('-r', '--read-from-dump [FILE]',
|
data/lib/inch/config.rb
CHANGED
@@ -41,8 +41,10 @@ module Inch
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def namespace(language, submodule = nil)
|
44
|
-
|
45
|
-
|
44
|
+
const_name = ::Inch::Language.constants.detect do |name|
|
45
|
+
name.to_s.downcase == language.to_s.downcase
|
46
|
+
end
|
47
|
+
const = ::Inch::Language.const_get(const_name)
|
46
48
|
const = const.const_get(submodule) unless submodule.nil?
|
47
49
|
const
|
48
50
|
end
|
data/lib/inch/language.rb
CHANGED
@@ -2,7 +2,7 @@ require 'forwardable'
|
|
2
2
|
|
3
3
|
module Inch
|
4
4
|
module Language
|
5
|
-
module
|
5
|
+
module JavaScript
|
6
6
|
# This is the base class for code object proxies.
|
7
7
|
# Code object proxies are via an attributes Hash and provide all methods
|
8
8
|
# necessary for the evaluation of its documentation.
|
@@ -11,7 +11,7 @@ module Inch
|
|
11
11
|
module CodeObject
|
12
12
|
class Base < Inch::CodeObject::Proxy
|
13
13
|
def language
|
14
|
-
:
|
14
|
+
:javascript
|
15
15
|
end
|
16
16
|
|
17
17
|
# @return [Boolean] if the current object is an alias for something
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require 'inch/language/
|
1
|
+
require 'inch/language/javascript/code_object/function_parameter_object'
|
2
2
|
|
3
3
|
module Inch
|
4
4
|
module Language
|
5
|
-
module
|
5
|
+
module JavaScript
|
6
6
|
module CodeObject
|
7
7
|
# Proxy class for functions
|
8
8
|
class FunctionObject < Base
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Inch
|
2
|
+
module Language
|
3
|
+
module JavaScript
|
4
|
+
end
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'inch/language/javascript/provider/jsdoc'
|
9
|
+
|
10
|
+
require 'inch/language/javascript/code_object/base'
|
11
|
+
require 'inch/language/javascript/code_object/module_object'
|
12
|
+
require 'inch/language/javascript/code_object/class_object'
|
13
|
+
require 'inch/language/javascript/code_object/function_object'
|
14
|
+
require 'inch/language/javascript/code_object/member_object'
|
15
|
+
|
16
|
+
require 'inch/language/javascript/evaluation/base'
|
17
|
+
require 'inch/language/javascript/evaluation/module_object'
|
18
|
+
require 'inch/language/javascript/evaluation/class_object'
|
19
|
+
require 'inch/language/javascript/evaluation/function_object'
|
20
|
+
require 'inch/language/javascript/evaluation/member_object'
|
21
|
+
|
22
|
+
require 'inch/language/javascript/roles/base'
|
23
|
+
require 'inch/language/javascript/roles/object'
|
24
|
+
require 'inch/language/javascript/roles/module'
|
25
|
+
require 'inch/language/javascript/roles/function'
|
26
|
+
require 'inch/language/javascript/roles/function_parameter'
|
27
|
+
require 'inch/language/javascript/roles/member'
|
@@ -2,7 +2,7 @@ require 'json'
|
|
2
2
|
|
3
3
|
module Inch
|
4
4
|
module Language
|
5
|
-
module
|
5
|
+
module JavaScript
|
6
6
|
module Provider
|
7
7
|
# Parses the source tree (using JSDoc)
|
8
8
|
module JSDoc
|
@@ -16,4 +16,4 @@ module Inch
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
require 'inch/language/
|
19
|
+
require 'inch/language/javascript/provider/jsdoc/parser'
|
@@ -1,12 +1,12 @@
|
|
1
|
-
require 'inch/language/
|
2
|
-
require 'inch/language/
|
3
|
-
require 'inch/language/
|
4
|
-
require 'inch/language/
|
5
|
-
require 'inch/language/
|
1
|
+
require 'inch/language/javascript/provider/jsdoc/object/base'
|
2
|
+
require 'inch/language/javascript/provider/jsdoc/object/function_object'
|
3
|
+
require 'inch/language/javascript/provider/jsdoc/object/module_object'
|
4
|
+
require 'inch/language/javascript/provider/jsdoc/object/class_object'
|
5
|
+
require 'inch/language/javascript/provider/jsdoc/object/member_object'
|
6
6
|
|
7
7
|
module Inch
|
8
8
|
module Language
|
9
|
-
module
|
9
|
+
module JavaScript
|
10
10
|
module Provider
|
11
11
|
module JSDoc
|
12
12
|
# CodeObject::Provider::JSDoc::Object object represent code objects.
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require 'inch/language/
|
1
|
+
require 'inch/language/javascript/provider/jsdoc/docstring'
|
2
2
|
require 'inch/utils/code_location'
|
3
3
|
|
4
4
|
module Inch
|
5
5
|
module Language
|
6
|
-
module
|
6
|
+
module JavaScript
|
7
7
|
module Provider
|
8
8
|
module JSDoc
|
9
9
|
module Object
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require 'inch/language/
|
1
|
+
require 'inch/language/javascript/provider/jsdoc/object/function_parameter_object'
|
2
2
|
|
3
3
|
module Inch
|
4
4
|
module Language
|
5
|
-
module
|
5
|
+
module JavaScript
|
6
6
|
module Provider
|
7
7
|
module JSDoc
|
8
8
|
module Object
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'json'
|
2
|
-
require 'inch/language/
|
2
|
+
require 'inch/language/javascript/provider/jsdoc/object'
|
3
3
|
|
4
4
|
module Inch
|
5
5
|
module Language
|
6
|
-
module
|
6
|
+
module JavaScript
|
7
7
|
module Provider
|
8
8
|
module JSDoc
|
9
9
|
# Parses the source tree (using JSDoc)
|
@@ -45,7 +45,7 @@ module Inch
|
|
45
45
|
|
46
46
|
def parse_objects(_paths, _excluded, read_dump_file = nil)
|
47
47
|
if read_dump_file.nil?
|
48
|
-
fail '
|
48
|
+
fail 'JavaScript analysis only works with --read-from-dump.'
|
49
49
|
else
|
50
50
|
output = File.read(read_dump_file, :encoding => 'utf-8')
|
51
51
|
end
|
data/lib/inch/version.rb
CHANGED
@@ -1,252 +1,252 @@
|
|
1
1
|
{
|
2
|
-
"args": [],
|
3
|
-
"branch_name": "master",
|
4
|
-
"client_name": "inchjs",
|
5
|
-
"client_version": "0.1.4",
|
6
|
-
"git_repo_url": "git@github.com:inch-ci/Hello-World-NodeJS.git",
|
7
|
-
"language": "
|
2
|
+
"args": [],
|
3
|
+
"branch_name": "master",
|
4
|
+
"client_name": "inchjs",
|
5
|
+
"client_version": "0.1.4",
|
6
|
+
"git_repo_url": "git@github.com:inch-ci/Hello-World-NodeJS.git",
|
7
|
+
"language": "javascript",
|
8
8
|
"objects": [
|
9
9
|
{
|
10
|
-
"comment": "",
|
11
|
-
"kind": "function",
|
12
|
-
"longname": "InstanciatableClass",
|
10
|
+
"comment": "",
|
11
|
+
"kind": "function",
|
12
|
+
"longname": "InstanciatableClass",
|
13
13
|
"meta": {
|
14
14
|
"code": {
|
15
|
-
"id": "astnode100000004",
|
16
|
-
"name": "InstanciatableClass",
|
17
|
-
"type": "FunctionExpression",
|
15
|
+
"id": "astnode100000004",
|
16
|
+
"name": "InstanciatableClass",
|
17
|
+
"type": "FunctionExpression",
|
18
18
|
"value": "function"
|
19
|
-
},
|
20
|
-
"filename": "inch_test.js",
|
21
|
-
"lineno": 4,
|
22
|
-
"path": "/src",
|
19
|
+
},
|
20
|
+
"filename": "inch_test.js",
|
21
|
+
"lineno": 4,
|
22
|
+
"path": "/src",
|
23
23
|
"range": [
|
24
|
-
20,
|
24
|
+
20,
|
25
25
|
55
|
26
26
|
]
|
27
|
-
},
|
28
|
-
"name": "InstanciatableClass",
|
29
|
-
"scope": "global",
|
27
|
+
},
|
28
|
+
"name": "InstanciatableClass",
|
29
|
+
"scope": "global",
|
30
30
|
"undocumented": true
|
31
|
-
},
|
31
|
+
},
|
32
32
|
{
|
33
|
-
"comment": "",
|
34
|
-
"kind": "function",
|
35
|
-
"longname": "InstanciatableClass#render",
|
36
|
-
"memberof": "InstanciatableClass",
|
33
|
+
"comment": "",
|
34
|
+
"kind": "function",
|
35
|
+
"longname": "InstanciatableClass#render",
|
36
|
+
"memberof": "InstanciatableClass",
|
37
37
|
"meta": {
|
38
38
|
"code": {
|
39
|
-
"id": "astnode100000009",
|
40
|
-
"name": "InstanciatableClass.prototype.render",
|
41
|
-
"paramnames": [],
|
42
|
-
"type": "FunctionExpression",
|
39
|
+
"id": "astnode100000009",
|
40
|
+
"name": "InstanciatableClass.prototype.render",
|
41
|
+
"paramnames": [],
|
42
|
+
"type": "FunctionExpression",
|
43
43
|
"value": "function"
|
44
|
-
},
|
45
|
-
"filename": "inch_test.js",
|
46
|
-
"lineno": 5,
|
47
|
-
"path": "/src",
|
44
|
+
},
|
45
|
+
"filename": "inch_test.js",
|
46
|
+
"lineno": 5,
|
47
|
+
"path": "/src",
|
48
48
|
"range": [
|
49
|
-
57,
|
49
|
+
57,
|
50
50
|
125
|
51
51
|
]
|
52
|
-
},
|
53
|
-
"name": "render",
|
54
|
-
"scope": "instance",
|
52
|
+
},
|
53
|
+
"name": "render",
|
54
|
+
"scope": "instance",
|
55
55
|
"undocumented": true
|
56
|
-
},
|
56
|
+
},
|
57
57
|
{
|
58
|
-
"access": "private",
|
59
|
-
"comment": "/**\n* @private\n*/",
|
60
|
-
"kind": "function",
|
61
|
-
"longname": "InchTest.generate_docs",
|
62
|
-
"memberof": "InchTest",
|
58
|
+
"access": "private",
|
59
|
+
"comment": "/**\n* @private\n*/",
|
60
|
+
"kind": "function",
|
61
|
+
"longname": "InchTest.generate_docs",
|
62
|
+
"memberof": "InchTest",
|
63
63
|
"meta": {
|
64
64
|
"code": {
|
65
|
-
"id": "astnode100000024",
|
66
|
-
"name": "InchTest.generate_docs",
|
65
|
+
"id": "astnode100000024",
|
66
|
+
"name": "InchTest.generate_docs",
|
67
67
|
"paramnames": [
|
68
|
-
"project",
|
69
|
-
"version",
|
70
|
-
"args",
|
68
|
+
"project",
|
69
|
+
"version",
|
70
|
+
"args",
|
71
71
|
"options"
|
72
|
-
],
|
73
|
-
"type": "FunctionExpression",
|
72
|
+
],
|
73
|
+
"type": "FunctionExpression",
|
74
74
|
"value": "function"
|
75
|
-
},
|
76
|
-
"filename": "inch_test.js",
|
77
|
-
"lineno": 13,
|
78
|
-
"path": "/src",
|
75
|
+
},
|
76
|
+
"filename": "inch_test.js",
|
77
|
+
"lineno": 13,
|
78
|
+
"path": "/src",
|
79
79
|
"range": [
|
80
|
-
165,
|
80
|
+
165,
|
81
81
|
236
|
82
82
|
]
|
83
|
-
},
|
84
|
-
"name": "generate_docs",
|
83
|
+
},
|
84
|
+
"name": "generate_docs",
|
85
85
|
"scope": "static"
|
86
|
-
},
|
86
|
+
},
|
87
87
|
{
|
88
|
-
"comment": "// Generate JSON documentation for the given modules",
|
89
|
-
"kind": "function",
|
90
|
-
"longname": "InchTest.Docs.Formatter.run",
|
91
|
-
"memberof": "InchTest.Docs.Formatter",
|
88
|
+
"comment": "// Generate JSON documentation for the given modules",
|
89
|
+
"kind": "function",
|
90
|
+
"longname": "InchTest.Docs.Formatter.run",
|
91
|
+
"memberof": "InchTest.Docs.Formatter",
|
92
92
|
"meta": {
|
93
93
|
"code": {
|
94
|
-
"id": "astnode100000042",
|
95
|
-
"name": "run",
|
96
|
-
"type": "FunctionExpression",
|
94
|
+
"id": "astnode100000042",
|
95
|
+
"name": "run",
|
96
|
+
"type": "FunctionExpression",
|
97
97
|
"value": "function"
|
98
|
-
},
|
99
|
-
"filename": "inch_test.js",
|
100
|
-
"lineno": 19,
|
101
|
-
"path": "/src",
|
98
|
+
},
|
99
|
+
"filename": "inch_test.js",
|
100
|
+
"lineno": 19,
|
101
|
+
"path": "/src",
|
102
102
|
"range": [
|
103
|
-
333,
|
103
|
+
333,
|
104
104
|
398
|
105
105
|
]
|
106
|
-
},
|
107
|
-
"name": "run",
|
108
|
-
"scope": "static",
|
106
|
+
},
|
107
|
+
"name": "run",
|
108
|
+
"scope": "static",
|
109
109
|
"undocumented": true
|
110
|
-
},
|
110
|
+
},
|
111
111
|
{
|
112
|
-
"comment": "/**\n*\n* This function takes `param1` and `param2` as arguments.\n*\n* @param {Number} param1 A number from 0 to 26 that will result in a letter a-z\n* @param {String} param2 A text\n* @return {String} A character from a-z based on the input number n\n*\n* Examples:\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*/",
|
113
|
-
"description": "This function takes `param1` and `param2` as arguments.",
|
114
|
-
"kind": "function",
|
115
|
-
"longname": "InchTest.Functions.full_doc",
|
116
|
-
"memberof": "InchTest.Functions",
|
112
|
+
"comment": "/**\n*\n* This function takes `param1` and `param2` as arguments.\n*\n* @param {Number} param1 A number from 0 to 26 that will result in a letter a-z\n* @param {String} param2 A text\n* @return {String} A character from a-z based on the input number n\n*\n* Examples:\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*/",
|
113
|
+
"description": "This function takes `param1` and `param2` as arguments.",
|
114
|
+
"kind": "function",
|
115
|
+
"longname": "InchTest.Functions.full_doc",
|
116
|
+
"memberof": "InchTest.Functions",
|
117
117
|
"meta": {
|
118
118
|
"code": {
|
119
|
-
"id": "astnode100000057",
|
120
|
-
"name": "InchTest.Functions.full_doc",
|
119
|
+
"id": "astnode100000057",
|
120
|
+
"name": "InchTest.Functions.full_doc",
|
121
121
|
"paramnames": [
|
122
|
-
"param1",
|
122
|
+
"param1",
|
123
123
|
"param2"
|
124
|
-
],
|
125
|
-
"type": "FunctionExpression",
|
124
|
+
],
|
125
|
+
"type": "FunctionExpression",
|
126
126
|
"value": "function"
|
127
|
-
},
|
128
|
-
"filename": "inch_test.js",
|
129
|
-
"lineno": 41,
|
130
|
-
"path": "/src",
|
127
|
+
},
|
128
|
+
"filename": "inch_test.js",
|
129
|
+
"lineno": 41,
|
130
|
+
"path": "/src",
|
131
131
|
"range": [
|
132
|
-
841,
|
132
|
+
841,
|
133
133
|
914
|
134
134
|
]
|
135
|
-
},
|
136
|
-
"name": "full_doc",
|
135
|
+
},
|
136
|
+
"name": "full_doc",
|
137
137
|
"params": [
|
138
138
|
{
|
139
|
-
"description": "A number from 0 to 26 that will result in a letter a-z",
|
140
|
-
"name": "param1",
|
139
|
+
"description": "A number from 0 to 26 that will result in a letter a-z",
|
140
|
+
"name": "param1",
|
141
141
|
"type": {
|
142
142
|
"names": [
|
143
143
|
"Number"
|
144
144
|
]
|
145
145
|
}
|
146
|
-
},
|
146
|
+
},
|
147
147
|
{
|
148
|
-
"description": "A text",
|
149
|
-
"name": "param2",
|
148
|
+
"description": "A text",
|
149
|
+
"name": "param2",
|
150
150
|
"type": {
|
151
151
|
"names": [
|
152
152
|
"String"
|
153
153
|
]
|
154
154
|
}
|
155
155
|
}
|
156
|
-
],
|
156
|
+
],
|
157
157
|
"returns": [
|
158
158
|
{
|
159
|
-
"description": "A character from a-z based on the input number n\n\nExamples:\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"",
|
159
|
+
"description": "A character from a-z based on the input number n\n\nExamples:\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"",
|
160
160
|
"type": {
|
161
161
|
"names": [
|
162
162
|
"String"
|
163
163
|
]
|
164
164
|
}
|
165
165
|
}
|
166
|
-
],
|
166
|
+
],
|
167
167
|
"scope": "static"
|
168
|
-
},
|
168
|
+
},
|
169
169
|
{
|
170
|
-
"comment": "/**\n*\n* This function takes a `param1` and a second parameter that is never used\n* (maybe, because it is a callback or something like that). However, the\n* second param should impact the evaluation by Inch.\n*\n* Examples:\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*/",
|
171
|
-
"description": "This function takes a `param1` and a second parameter that is never used\n(maybe, because it is a callback or something like that). However, the\nsecond param should impact the evaluation by Inch.\n\nExamples:\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"",
|
172
|
-
"kind": "function",
|
173
|
-
"longname": "InchTest.Functions.full_doc_second_parameter_unnamed",
|
174
|
-
"memberof": "InchTest.Functions",
|
170
|
+
"comment": "/**\n*\n* This function takes a `param1` and a second parameter that is never used\n* (maybe, because it is a callback or something like that). However, the\n* second param should impact the evaluation by Inch.\n*\n* Examples:\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*/",
|
171
|
+
"description": "This function takes a `param1` and a second parameter that is never used\n(maybe, because it is a callback or something like that). However, the\nsecond param should impact the evaluation by Inch.\n\nExamples:\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"",
|
172
|
+
"kind": "function",
|
173
|
+
"longname": "InchTest.Functions.full_doc_second_parameter_unnamed",
|
174
|
+
"memberof": "InchTest.Functions",
|
175
175
|
"meta": {
|
176
176
|
"code": {
|
177
|
-
"id": "astnode100000070",
|
178
|
-
"name": "InchTest.Functions.full_doc_second_parameter_unnamed",
|
177
|
+
"id": "astnode100000070",
|
178
|
+
"name": "InchTest.Functions.full_doc_second_parameter_unnamed",
|
179
179
|
"paramnames": [
|
180
|
-
"param1",
|
180
|
+
"param1",
|
181
181
|
"_"
|
182
|
-
],
|
183
|
-
"type": "FunctionExpression",
|
182
|
+
],
|
183
|
+
"type": "FunctionExpression",
|
184
184
|
"value": "function"
|
185
|
-
},
|
186
|
-
"filename": "inch_test.js",
|
187
|
-
"lineno": 57,
|
188
|
-
"path": "/src",
|
185
|
+
},
|
186
|
+
"filename": "inch_test.js",
|
187
|
+
"lineno": 57,
|
188
|
+
"path": "/src",
|
189
189
|
"range": [
|
190
|
-
1271,
|
190
|
+
1271,
|
191
191
|
1364
|
192
192
|
]
|
193
|
-
},
|
194
|
-
"name": "full_doc_second_parameter_unnamed",
|
193
|
+
},
|
194
|
+
"name": "full_doc_second_parameter_unnamed",
|
195
195
|
"scope": "static"
|
196
|
-
},
|
196
|
+
},
|
197
197
|
{
|
198
|
-
"comment": "/**\n*\n* This function takes no arguments.\n*\n* Examples:\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*/",
|
199
|
-
"description": "This function takes no arguments.\n\nExamples:\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"",
|
200
|
-
"kind": "function",
|
201
|
-
"longname": "InchTest.CodeExamples.single_code_example",
|
202
|
-
"memberof": "InchTest.CodeExamples",
|
198
|
+
"comment": "/**\n*\n* This function takes no arguments.\n*\n* Examples:\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*/",
|
199
|
+
"description": "This function takes no arguments.\n\nExamples:\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"",
|
200
|
+
"kind": "function",
|
201
|
+
"longname": "InchTest.CodeExamples.single_code_example",
|
202
|
+
"memberof": "InchTest.CodeExamples",
|
203
203
|
"meta": {
|
204
204
|
"code": {
|
205
|
-
"id": "astnode100000088",
|
206
|
-
"name": "single_code_example",
|
207
|
-
"type": "FunctionExpression",
|
205
|
+
"id": "astnode100000088",
|
206
|
+
"name": "single_code_example",
|
207
|
+
"type": "FunctionExpression",
|
208
208
|
"value": "function"
|
209
|
-
},
|
210
|
-
"filename": "inch_test.js",
|
211
|
-
"lineno": 74,
|
212
|
-
"path": "/src",
|
209
|
+
},
|
210
|
+
"filename": "inch_test.js",
|
211
|
+
"lineno": 74,
|
212
|
+
"path": "/src",
|
213
213
|
"range": [
|
214
|
-
1609,
|
214
|
+
1609,
|
215
215
|
1665
|
216
216
|
]
|
217
|
-
},
|
218
|
-
"name": "single_code_example",
|
217
|
+
},
|
218
|
+
"name": "single_code_example",
|
219
219
|
"scope": "static"
|
220
|
-
},
|
220
|
+
},
|
221
221
|
{
|
222
|
-
"comment": "/**\n*\n* This function takes no arguments.\n*\n* Examples:\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*\n* In general, `underscore` can be thought of as the reverse ...\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*/",
|
223
|
-
"description": "This function takes no arguments.\n\nExamples:\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"\n\nIn general, `underscore` can be thought of as the reverse ...\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"",
|
224
|
-
"kind": "function",
|
225
|
-
"longname": "InchTest.CodeExamples.multiple_code_examples",
|
226
|
-
"memberof": "InchTest.CodeExamples",
|
222
|
+
"comment": "/**\n*\n* This function takes no arguments.\n*\n* Examples:\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*\n* In general, `underscore` can be thought of as the reverse ...\n*\n* > InchTest.Naming.resource_name(MyApp.User)\n* \"user\"\n* > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n* \"user\"\n*/",
|
223
|
+
"description": "This function takes no arguments.\n\nExamples:\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"\n\nIn general, `underscore` can be thought of as the reverse ...\n\n > InchTest.Naming.resource_name(MyApp.User)\n \"user\"\n > InchTest.Naming.resource_name(MyApp.UserView, \"View\")\n \"user\"",
|
224
|
+
"kind": "function",
|
225
|
+
"longname": "InchTest.CodeExamples.multiple_code_examples",
|
226
|
+
"memberof": "InchTest.CodeExamples",
|
227
227
|
"meta": {
|
228
228
|
"code": {
|
229
|
-
"id": "astnode100000093",
|
230
|
-
"name": "multiple_code_examples",
|
231
|
-
"type": "FunctionExpression",
|
229
|
+
"id": "astnode100000093",
|
230
|
+
"name": "multiple_code_examples",
|
231
|
+
"type": "FunctionExpression",
|
232
232
|
"value": "function"
|
233
|
-
},
|
234
|
-
"filename": "inch_test.js",
|
235
|
-
"lineno": 95,
|
236
|
-
"path": "/src",
|
233
|
+
},
|
234
|
+
"filename": "inch_test.js",
|
235
|
+
"lineno": 95,
|
236
|
+
"path": "/src",
|
237
237
|
"range": [
|
238
|
-
2094,
|
238
|
+
2094,
|
239
239
|
2153
|
240
240
|
]
|
241
|
-
},
|
242
|
-
"name": "multiple_code_examples",
|
241
|
+
},
|
242
|
+
"name": "multiple_code_examples",
|
243
243
|
"scope": "static"
|
244
|
-
},
|
244
|
+
},
|
245
245
|
{
|
246
246
|
"files": [
|
247
247
|
"/home/rf/devel/Hello-World-NodeJS/src/inch_test.js"
|
248
|
-
],
|
249
|
-
"kind": "package",
|
248
|
+
],
|
249
|
+
"kind": "package",
|
250
250
|
"longname": "package:undefined"
|
251
251
|
}
|
252
252
|
]
|
@@ -6,3 +6,24 @@ class Attributes
|
|
6
6
|
# @return [String] Username (from Devise)
|
7
7
|
attr_accessor :username
|
8
8
|
end
|
9
|
+
|
10
|
+
|
11
|
+
# Representation of attributes of a user in the database
|
12
|
+
#
|
13
|
+
class AttributesAccessor
|
14
|
+
attr_accessor :username
|
15
|
+
# @!attribute email
|
16
|
+
# @return [String] E-mail address (from Devise)
|
17
|
+
attr_accessor :email
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
# Representation of attributes of a user in the database
|
22
|
+
#
|
23
|
+
class AttributesStruct < Struct.new(:email, :username)
|
24
|
+
# @!attribute email
|
25
|
+
# @return [String] E-mail address (from Devise)
|
26
|
+
# @!attribute username
|
27
|
+
# @return [String] Username (from Devise)
|
28
|
+
end
|
29
|
+
|
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../../../../test_helper')
|
|
2
2
|
|
3
3
|
describe ::Inch::Language::Elixir::CodeObject::FunctionObject do
|
4
4
|
before do
|
5
|
-
@codebase = fresh_codebase(:
|
5
|
+
@codebase = fresh_codebase(:javascript, :inch_test, 'all.json')
|
6
6
|
@objects = @codebase.objects
|
7
7
|
end
|
8
8
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../../../../../test_helper')
|
2
2
|
|
3
|
-
describe ::Inch::Language::
|
4
|
-
let(:described_class) { ::Inch::Language::
|
3
|
+
describe ::Inch::Language::JavaScript::Provider::JSDoc::Docstring do
|
4
|
+
let(:described_class) { ::Inch::Language::JavaScript::Provider::JSDoc::Docstring }
|
5
5
|
|
6
6
|
#
|
7
7
|
# JSDoc compatibility
|
@@ -292,19 +292,48 @@ describe ::Inch::Language::Ruby::CodeObject::MethodObject do
|
|
292
292
|
end
|
293
293
|
|
294
294
|
describe 'YARDs @!attribute directive on a class' do
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
295
|
+
describe "implemented as virtual attribute" do
|
296
|
+
it 'should work as a reader' do
|
297
|
+
m = @objects.find('Attributes#email')
|
298
|
+
refute_equal 0, m.score
|
299
|
+
refute m.undocumented?
|
300
|
+
end
|
301
|
+
|
302
|
+
it 'should work as a writer' do
|
303
|
+
m = @objects.find('Attributes#email=')
|
304
|
+
refute_equal 0, m.score
|
305
|
+
# refute m.undocumented?
|
306
|
+
# NOTE: this is undocumented since there is no original_docstring
|
307
|
+
end
|
300
308
|
end
|
301
309
|
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
310
|
+
describe "used inside the class right before accessor macro" do
|
311
|
+
it 'should work as a reader' do
|
312
|
+
m = @objects.find('AttributesAccessor#email')
|
313
|
+
refute_equal 0, m.score
|
314
|
+
refute m.undocumented?
|
315
|
+
end
|
316
|
+
|
317
|
+
it 'should work as a writer' do
|
318
|
+
m = @objects.find('AttributesAccessor#email=')
|
319
|
+
refute_equal 0, m.score
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
|
324
|
+
describe "used inside a struct" do
|
325
|
+
it 'should work as a reader' do
|
326
|
+
m = @objects.find('AttributesStruct#email')
|
327
|
+
refute_equal 0, m.score
|
328
|
+
refute m.undocumented?
|
329
|
+
end
|
330
|
+
|
331
|
+
it 'should work as a writer' do
|
332
|
+
m = @objects.find('AttributesStruct#email=')
|
333
|
+
refute_equal 0, m.score
|
334
|
+
end
|
307
335
|
end
|
336
|
+
|
308
337
|
end
|
309
338
|
|
310
339
|
describe 'YARDs @overload tag on methods' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- René Föhring
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -133,7 +133,7 @@ files:
|
|
133
133
|
- config/.inch.yml.sample
|
134
134
|
- config/base.rb
|
135
135
|
- config/elixir.rb
|
136
|
-
- config/
|
136
|
+
- config/javascript.rb
|
137
137
|
- config/ruby.rb
|
138
138
|
- inch.gemspec
|
139
139
|
- lib/inch.rb
|
@@ -234,34 +234,34 @@ files:
|
|
234
234
|
- lib/inch/language/elixir/roles/module.rb
|
235
235
|
- lib/inch/language/elixir/roles/object.rb
|
236
236
|
- lib/inch/language/elixir/roles/type.rb
|
237
|
-
- lib/inch/language/
|
238
|
-
- lib/inch/language/
|
239
|
-
- lib/inch/language/
|
240
|
-
- lib/inch/language/
|
241
|
-
- lib/inch/language/
|
242
|
-
- lib/inch/language/
|
243
|
-
- lib/inch/language/
|
244
|
-
- lib/inch/language/
|
245
|
-
- lib/inch/language/
|
246
|
-
- lib/inch/language/
|
247
|
-
- lib/inch/language/
|
248
|
-
- lib/inch/language/
|
249
|
-
- lib/inch/language/
|
250
|
-
- lib/inch/language/
|
251
|
-
- lib/inch/language/
|
252
|
-
- lib/inch/language/
|
253
|
-
- lib/inch/language/
|
254
|
-
- lib/inch/language/
|
255
|
-
- lib/inch/language/
|
256
|
-
- lib/inch/language/
|
257
|
-
- lib/inch/language/
|
258
|
-
- lib/inch/language/
|
259
|
-
- lib/inch/language/
|
260
|
-
- lib/inch/language/
|
261
|
-
- lib/inch/language/
|
262
|
-
- lib/inch/language/
|
263
|
-
- lib/inch/language/
|
264
|
-
- lib/inch/language/
|
237
|
+
- lib/inch/language/javascript/code_object/base.rb
|
238
|
+
- lib/inch/language/javascript/code_object/class_object.rb
|
239
|
+
- lib/inch/language/javascript/code_object/function_object.rb
|
240
|
+
- lib/inch/language/javascript/code_object/function_parameter_object.rb
|
241
|
+
- lib/inch/language/javascript/code_object/member_object.rb
|
242
|
+
- lib/inch/language/javascript/code_object/module_object.rb
|
243
|
+
- lib/inch/language/javascript/evaluation/base.rb
|
244
|
+
- lib/inch/language/javascript/evaluation/class_object.rb
|
245
|
+
- lib/inch/language/javascript/evaluation/function_object.rb
|
246
|
+
- lib/inch/language/javascript/evaluation/member_object.rb
|
247
|
+
- lib/inch/language/javascript/evaluation/module_object.rb
|
248
|
+
- lib/inch/language/javascript/import.rb
|
249
|
+
- lib/inch/language/javascript/provider/jsdoc.rb
|
250
|
+
- lib/inch/language/javascript/provider/jsdoc/docstring.rb
|
251
|
+
- lib/inch/language/javascript/provider/jsdoc/object.rb
|
252
|
+
- lib/inch/language/javascript/provider/jsdoc/object/base.rb
|
253
|
+
- lib/inch/language/javascript/provider/jsdoc/object/class_object.rb
|
254
|
+
- lib/inch/language/javascript/provider/jsdoc/object/function_object.rb
|
255
|
+
- lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
|
256
|
+
- lib/inch/language/javascript/provider/jsdoc/object/member_object.rb
|
257
|
+
- lib/inch/language/javascript/provider/jsdoc/object/module_object.rb
|
258
|
+
- lib/inch/language/javascript/provider/jsdoc/parser.rb
|
259
|
+
- lib/inch/language/javascript/roles/base.rb
|
260
|
+
- lib/inch/language/javascript/roles/function.rb
|
261
|
+
- lib/inch/language/javascript/roles/function_parameter.rb
|
262
|
+
- lib/inch/language/javascript/roles/member.rb
|
263
|
+
- lib/inch/language/javascript/roles/module.rb
|
264
|
+
- lib/inch/language/javascript/roles/object.rb
|
265
265
|
- lib/inch/language/ruby/code_object/base.rb
|
266
266
|
- lib/inch/language/ruby/code_object/class_object.rb
|
267
267
|
- lib/inch/language/ruby/code_object/class_variable_object.rb
|
@@ -311,7 +311,7 @@ files:
|
|
311
311
|
- lib/inch/utils/weighted_list.rb
|
312
312
|
- lib/inch/version.rb
|
313
313
|
- test/fixtures/elixir/inch_test/all.json
|
314
|
-
- test/fixtures/
|
314
|
+
- test/fixtures/javascript/inch_test/all.json
|
315
315
|
- test/fixtures/ruby/alias_cycle/lib/alias.rb
|
316
316
|
- test/fixtures/ruby/code_examples/lib/foo.rb
|
317
317
|
- test/fixtures/ruby/diff1/lib/diff1.rb
|
@@ -370,8 +370,8 @@ files:
|
|
370
370
|
- test/unit/evaluation/role_test.rb
|
371
371
|
- test/unit/language/elixir/code_object/function_object_test.rb
|
372
372
|
- test/unit/language/elixir/code_object/module_object_test.rb
|
373
|
-
- test/unit/language/
|
374
|
-
- test/unit/language/
|
373
|
+
- test/unit/language/javascript/code_object/function_object_test.rb
|
374
|
+
- test/unit/language/javascript/provider/jsdoc/docstring_test.rb
|
375
375
|
- test/unit/language/ruby/code_object/alias_test.rb
|
376
376
|
- test/unit/language/ruby/code_object/method_object_test.rb
|
377
377
|
- test/unit/language/ruby/provider/yard/docstring_test.rb
|
@@ -396,9 +396,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
396
396
|
version: '0'
|
397
397
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
398
398
|
requirements:
|
399
|
-
- - "
|
399
|
+
- - ">"
|
400
400
|
- !ruby/object:Gem::Version
|
401
|
-
version:
|
401
|
+
version: 1.3.1
|
402
402
|
requirements: []
|
403
403
|
rubyforge_project:
|
404
404
|
rubygems_version: 2.2.2
|
@@ -407,7 +407,7 @@ specification_version: 4
|
|
407
407
|
summary: Documentation measurement tool for Ruby
|
408
408
|
test_files:
|
409
409
|
- test/fixtures/elixir/inch_test/all.json
|
410
|
-
- test/fixtures/
|
410
|
+
- test/fixtures/javascript/inch_test/all.json
|
411
411
|
- test/fixtures/ruby/alias_cycle/lib/alias.rb
|
412
412
|
- test/fixtures/ruby/code_examples/lib/foo.rb
|
413
413
|
- test/fixtures/ruby/diff1/lib/diff1.rb
|
@@ -466,8 +466,8 @@ test_files:
|
|
466
466
|
- test/unit/evaluation/role_test.rb
|
467
467
|
- test/unit/language/elixir/code_object/function_object_test.rb
|
468
468
|
- test/unit/language/elixir/code_object/module_object_test.rb
|
469
|
-
- test/unit/language/
|
470
|
-
- test/unit/language/
|
469
|
+
- test/unit/language/javascript/code_object/function_object_test.rb
|
470
|
+
- test/unit/language/javascript/provider/jsdoc/docstring_test.rb
|
471
471
|
- test/unit/language/ruby/code_object/alias_test.rb
|
472
472
|
- test/unit/language/ruby/code_object/method_object_test.rb
|
473
473
|
- test/unit/language/ruby/provider/yard/docstring_test.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Inch
|
2
|
-
module Language
|
3
|
-
module Nodejs
|
4
|
-
end
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
require 'inch/language/nodejs/provider/jsdoc'
|
9
|
-
|
10
|
-
require 'inch/language/nodejs/code_object/base'
|
11
|
-
require 'inch/language/nodejs/code_object/module_object'
|
12
|
-
require 'inch/language/nodejs/code_object/class_object'
|
13
|
-
require 'inch/language/nodejs/code_object/function_object'
|
14
|
-
require 'inch/language/nodejs/code_object/member_object'
|
15
|
-
|
16
|
-
require 'inch/language/nodejs/evaluation/base'
|
17
|
-
require 'inch/language/nodejs/evaluation/module_object'
|
18
|
-
require 'inch/language/nodejs/evaluation/class_object'
|
19
|
-
require 'inch/language/nodejs/evaluation/function_object'
|
20
|
-
require 'inch/language/nodejs/evaluation/member_object'
|
21
|
-
|
22
|
-
require 'inch/language/nodejs/roles/base'
|
23
|
-
require 'inch/language/nodejs/roles/object'
|
24
|
-
require 'inch/language/nodejs/roles/module'
|
25
|
-
require 'inch/language/nodejs/roles/function'
|
26
|
-
require 'inch/language/nodejs/roles/function_parameter'
|
27
|
-
require 'inch/language/nodejs/roles/member'
|