ginny 0.6.1 → 0.6.2

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
  SHA256:
3
- metadata.gz: b7194c622d2bc7c17942e6502b82642b734cfdc5ea572191d853e15ab0b25904
4
- data.tar.gz: ea4d7610a2e68cd489df5f6ef849d0f3a80874d1f4780f1613e5290217d92447
3
+ metadata.gz: 4722f6a584bcdf1a633f45f8ccac654d0df98bc09628049aa9b85f8c2b75508d
4
+ data.tar.gz: c04c92002b3108a6e5ef68409e8a0f7c91bbb869972f2a9ce8813ccb40411b69
5
5
  SHA512:
6
- metadata.gz: 863a38ccd36579ba3f21807339dc6e14b3775ba10496a3b41586c4549dc5797324c579d0fdb0a97158f4a2880242d52fcb126eeff9ab061efe820e1cf66598f2
7
- data.tar.gz: f82a75ea7a8e850371b3b5b1d82bec416cc16be2a5e9385436b2d2618cc6e214cde499dd93779bfc67700255d9077351c6ace1de1fdc10ad9a261cd39f3ccae0
6
+ metadata.gz: 69cd9320460faf929662696199ed79cd4d69463c7e0d7627ba716e16385eb42d3bd4a8e1e491429c20d0b9924ccc70808a50c737cc2b861c69bbe9a70cc48315
7
+ data.tar.gz: 8322f2ff0ae9419a3ecdcf09b71aa58f7eeb5f92643a91e210831a68cb7ba6384f7808e5dd50f73e69e4c8875f1402a6ffc1484e9f06fe935ff6fe001cf5ceb0
@@ -0,0 +1,13 @@
1
+ {
2
+ // "json.schemas": [
3
+ // {
4
+ // "fileMatch": [
5
+ // "*.edi.json"
6
+ // ],
7
+ // "url": "./data/schema/transaction_set_summary.json"
8
+ // }
9
+ // ],
10
+ "yaml.schemas": {
11
+ "http://json-schema.org/draft-07/schema": "/*.schema.yml"
12
+ }
13
+ }
@@ -2,6 +2,16 @@
2
2
 
3
3
  <!-- ## master (unreleased) -->
4
4
 
5
+ ## 0.6.2 (2019-12-16)
6
+
7
+ ### Added
8
+
9
+ - Add `classify_name` option for `Ginny::Class`, which can disable the use of [`Dry::Inflector#classify`](https://github.com/dry-rb/dry-inflector#usage) on the class name.
10
+
11
+ ### Fixed
12
+
13
+ - Updated JSON schemas.
14
+
5
15
  ## 0.6.1 (2019-12-14)
6
16
 
7
17
  ### Added
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ginny (0.6.1)
4
+ ginny (0.6.2)
5
5
  coolkit (~> 0.2.2)
6
6
  dry-inflector (~> 0.2.0)
7
7
 
data/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  [rubygems]: https://rubygems.org/gems/ginny
10
10
  [travis-ci]: https://travis-ci.org/tcd/ginny
11
11
  [coveralls-ci]: https://coveralls.io/github/tcd/ginny?branch=master
12
- [rubydoc-gem]: https://www.rubydoc.info/gems/ginny/0.6.1
12
+ [rubydoc-gem]: https://www.rubydoc.info/gems/ginny/0.6.2
13
13
  [license]: https://github.com/tcd/ginny/blob/master/LICENSE.txt
14
14
 
15
15
 
@@ -109,15 +109,16 @@ end
109
109
 
110
110
  ### `Ginny::Class`
111
111
 
112
- | Name | Type | Description |
113
- | ------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------- |
114
- | name (required) | `String` | Name of the class. |
115
- | description | `String` | Description of the class. [Markdown][markdown] is supported. |
116
- | body | `String` | String to write into the body of the class. |
117
- | parent | `String` | Name of a class to inherit from. (Ex: `YourNewClass < Parent`) |
118
- | modules | `Array<String>` | List of modules to declare the class inside of |
119
- | default_constructor | `Boolean` | If `true`, a method similar to [ActiveRecord::Base.create][create_method_link] will be generated for the class. |
120
- | attrs | `Array<Ginny::Attr>` | An array of Attrs. |
112
+ | Name | Type | Description |
113
+ | ------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
114
+ | name (required) | `String` | Name of the class. |
115
+ | description | `String` | Description of the class. [Markdown][markdown] is supported. |
116
+ | body | `String` | String to write into the body of the class. |
117
+ | parent | `String` | Name of a class to inherit from. (Ex: `YourNewClass < Parent`) |
118
+ | modules | `Array<String>` | List of modules to declare the class inside of |
119
+ | default_constructor | `Boolean` | If `true`, a method similar to [ActiveRecord::Base.create][create_method_link] will be generated for the class. |
120
+ | attrs | `Array<Ginny::Attr>` | An array of instance attributes. |
121
+ | classify_name | `Boolean` | By default, names are *classified* using [Dry::Inflector#classify](https://github.com/dry-rb/dry-inflector#usage). Set this to `false` to disable *classification* and use raw `name` input. |
121
122
 
122
123
  [create_method_link]: https://apidock.com/rails/ActiveRecord/Persistence/ClassMethods/create
123
124
 
data/Rakefile CHANGED
@@ -8,3 +8,39 @@ Rake::TestTask.new(:test) do |t|
8
8
  end
9
9
 
10
10
  task(default: :test)
11
+
12
+ require "json"
13
+ require "yaml"
14
+
15
+ # Convert a YAML file to JSON and write it out to a new file.
16
+ #
17
+ # @param path [String]
18
+ # @return [String]
19
+ def yaml2json(path, pretty: true)
20
+ path = File.expand_path(path)
21
+ ext = case File.extname(path).downcase
22
+ when ".yml" then ".yml"
23
+ when ".yaml" then ".yaml"
24
+ else ""
25
+ end
26
+ base_name = File.basename(path, ext)
27
+ dir = File.dirname(path)
28
+ out_file = File.join(dir, "#{base_name}.json")
29
+ input = YAML.load_file(path)
30
+ output = pretty ? JSON.pretty_generate(input) : input.to_json
31
+ File.open(out_file, "a") { |f| f.write(output) }
32
+ return out_file
33
+ end
34
+
35
+ task :yaml2json, [:path] do |_, arg|
36
+ yaml2json(arg[:path])
37
+ end
38
+
39
+ task :schema do |t|
40
+ [
41
+ "schema/class.schema.yml",
42
+ "schema/attr.schema.yml",
43
+ "schema/func.schema.yml",
44
+ "schema/param.schema.yml",
45
+ ].each { |f| yaml2json(f) }
46
+ end
@@ -28,6 +28,10 @@ module Ginny
28
28
  # String to prepend to the name of the generated file.
29
29
  # @return [String]
30
30
  attr_accessor :file_prefix
31
+ # By default, names are *classified* using [Dry::Inflector#classify](https://github.com/dry-rb/dry-inflector#usage).
32
+ # Set this to `false` to disable *classification* and use raw `name` input.
33
+ # @return [Boolean]
34
+ attr_accessor :classify_name
31
35
 
32
36
  # @return [void]
33
37
  def initialize()
@@ -36,6 +40,7 @@ module Ginny
36
40
  self.file_prefix = ""
37
41
  self.body = ""
38
42
  self.default_constructor = false
43
+ self.classify_name = true
39
44
  end
40
45
 
41
46
  # Constructor for a Class. Use `create`, not `new`.
@@ -51,6 +56,7 @@ module Ginny
51
56
  c.attrs = Ginny::Attr.from_array(args[:attrs]) if args[:attrs]&.is_a?(Array)
52
57
  c.body = args[:body] unless args[:body].nil?
53
58
  c.file_prefix = args[:file_prefix] || ""
59
+ c.classify_name = args[:classify_name] unless args[:classify_name].nil?
54
60
  c.default_constructor = args[:default_constructor]
55
61
  return c
56
62
  end
@@ -74,7 +80,6 @@ module Ginny
74
80
  parts << (self.parent.nil? ? "class #{self.class_name()}" : "class #{self.class_name()} < #{self.parent}")
75
81
  parts << self.render_attributes()
76
82
  parts << self.render_body()
77
- # parts << (self.body&.length&.positive? ? self.body.indent(2) : nil)
78
83
  parts << "end"
79
84
  if self.modules.length > 0
80
85
  body = parts.compact.join("\n").gsub(/([[:blank:]]+)$/, "")
@@ -91,7 +96,6 @@ module Ginny
91
96
  end
92
97
  return self.body.indent(2)
93
98
  end
94
- # binding.pry
95
99
  return "\n" + self.constructor().indent(2) if self.default_constructor
96
100
  return nil
97
101
  end
@@ -104,6 +108,9 @@ module Ginny
104
108
 
105
109
  # @return [String]
106
110
  def class_name()
111
+ return self.name if !self.classify_name
112
+ # Don't classify two letter names.
113
+ # return self.name if self.name =~ /\A^[A-Za-z]{2}$\Z/
107
114
  inflector = Dry::Inflector.new do |inflections|
108
115
  inflections.plural("data", "data")
109
116
  inflections.singular(/([t])a\z/i, '\1a')
@@ -1,3 +1,3 @@
1
1
  module Ginny
2
- VERSION = "0.6.1".freeze
2
+ VERSION = "0.6.2".freeze
3
3
  end
@@ -0,0 +1,32 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/tcd/ginny/master/schema/attr.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Ginny Attr Definition",
5
+ "description": "Used to generate an instance variable with getters/setters.",
6
+ "type": "object",
7
+ "required": [
8
+ "name"
9
+ ],
10
+ "properties": {
11
+ "default": {
12
+ "description": "Default value for the attribute; set in it's Class's `initialize` function.",
13
+ "type": "string"
14
+ },
15
+ "description": {
16
+ "description": "Description of the attribute. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.",
17
+ "type": "string"
18
+ },
19
+ "name": {
20
+ "description": "Name of the attribute.",
21
+ "type": "string"
22
+ },
23
+ "read_only": {
24
+ "description": "If `true`, an `attr_reader` will be generated for the attribute instead of an `attr_accessor`.",
25
+ "type": "boolean"
26
+ },
27
+ "type": {
28
+ "description": "[Type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the attribute.",
29
+ "type": "string"
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,23 @@
1
+ ---
2
+ "$id": https://raw.githubusercontent.com/tcd/ginny/master/schema/attr.schema.json
3
+ "$schema": http://json-schema.org/draft-07/schema#
4
+ title: Ginny Attr Definition
5
+ description: Used to generate an instance variable with getters/setters.
6
+ type: object
7
+ required: [name]
8
+ properties:
9
+ default:
10
+ description: Default value for the attribute; set in it's Class's `initialize` function.
11
+ type: string
12
+ description:
13
+ description: Description of the attribute. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.
14
+ type: string
15
+ name:
16
+ description: Name of the attribute.
17
+ type: string
18
+ read_only:
19
+ description: If `true`, an `attr_reader` will be generated for the attribute instead of an `attr_accessor`.
20
+ type: boolean
21
+ type:
22
+ description: "[Type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the attribute."
23
+ type: string
@@ -0,0 +1,54 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/tcd/ginny/master/schema/class.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Ginny Class Definition",
5
+ "description": "Used to generate a [class](https://ruby-doc.org/core-2.6.5/Class.html).",
6
+ "type": "object",
7
+ "required": [
8
+ "name"
9
+ ],
10
+ "properties": {
11
+ "attrs": {
12
+ "description": "An array of `Ginny::Attr`s.",
13
+ "type": "array",
14
+ "items": {
15
+ "$ref": "https://raw.githubusercontent.com/tcd/ginny/master/schema/attr.schema.json"
16
+ }
17
+ },
18
+ "body": {
19
+ "description": "String to write into the body of the class.",
20
+ "type": "string"
21
+ },
22
+ "classify_name": {
23
+ "description": "Set this to `false` to disable *classification* and use raw `name` input.",
24
+ "type": "string"
25
+ },
26
+ "default_constructor": {
27
+ "description": "If `true`, a method similar to [ActiveRecord::Base.create](https://apidock.com/rails/ActiveRecord/Persistence/ClassMethods/create) will be generated for the class.",
28
+ "type": "boolean"
29
+ },
30
+ "description": {
31
+ "description": "Description of the class. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.",
32
+ "type": "string"
33
+ },
34
+ "file_prefix": {
35
+ "description": "String to prepend to the name of the generated file.",
36
+ "type": "string"
37
+ },
38
+ "modules": {
39
+ "description": "List of modules to declare the class inside.",
40
+ "type": "array",
41
+ "items": {
42
+ "type": "string"
43
+ }
44
+ },
45
+ "name": {
46
+ "description": "Name of the class.",
47
+ "type": "string"
48
+ },
49
+ "parent": {
50
+ "description": "Name of a class to inherit from. (Ex: `YourNewClass < Parent`)",
51
+ "type": "string"
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,39 @@
1
+ ---
2
+ "$id": https://raw.githubusercontent.com/tcd/ginny/master/schema/class.schema.json
3
+ "$schema": http://json-schema.org/draft-07/schema#
4
+ title: Ginny Class Definition
5
+ description: Used to generate a [class](https://ruby-doc.org/core-2.6.5/Class.html).
6
+ type: object
7
+ required: [name]
8
+ properties:
9
+ attrs:
10
+ description: An array of `Ginny::Attr`s.
11
+ type: array
12
+ items:
13
+ "$ref": https://raw.githubusercontent.com/tcd/ginny/master/schema/attr.schema.json
14
+ body:
15
+ description: String to write into the body of the class.
16
+ type: string
17
+ classify_name:
18
+ description: Set this to `false` to disable *classification* and use raw `name` input.
19
+ type: string
20
+ default_constructor:
21
+ description: If `true`, a method similar to [ActiveRecord::Base.create](https://apidock.com/rails/ActiveRecord/Persistence/ClassMethods/create) will be generated for the class.
22
+ type: boolean
23
+ description:
24
+ description: Description of the class. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.
25
+ type: string
26
+ file_prefix:
27
+ description: String to prepend to the name of the generated file.
28
+ type: string
29
+ modules:
30
+ description: List of modules to declare the class inside.
31
+ type: array
32
+ items:
33
+ type: string
34
+ name:
35
+ description: Name of the class.
36
+ type: string
37
+ parent:
38
+ description: "Name of a class to inherit from. (Ex: `YourNewClass < Parent`)"
39
+ type: string
@@ -0,0 +1,42 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/tcd/ginny/master/schema/func.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Ginny Func Definition",
5
+ "description": "Used to generate a [method](https://ruby-doc.org/core-2.6.5/doc/syntax/methods_rdoc.html).",
6
+ "type": "object",
7
+ "required": [
8
+ "name"
9
+ ],
10
+ "properties": {
11
+ "body": {
12
+ "description": "String to write into the body of the function.",
13
+ "type": "string"
14
+ },
15
+ "description": {
16
+ "description": "Description of the function. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.",
17
+ "type": "string"
18
+ },
19
+ "modules": {
20
+ "description": "List of modules to declare the function inside of.",
21
+ "type": "array",
22
+ "items": {
23
+ "type": "string"
24
+ }
25
+ },
26
+ "name": {
27
+ "description": "Name of the function.",
28
+ "type": "string"
29
+ },
30
+ "params": {
31
+ "description": "An array of `Ginny::Param`s.",
32
+ "type": "array",
33
+ "items": {
34
+ "$ref": "https://raw.githubusercontent.com/tcd/ginny/master/schema/param.schema.json"
35
+ }
36
+ },
37
+ "return_type": {
38
+ "description": "Return [type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the function.",
39
+ "type": "string"
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,30 @@
1
+ ---
2
+ "$id": https://raw.githubusercontent.com/tcd/ginny/master/schema/func.schema.json
3
+ "$schema": http://json-schema.org/draft-07/schema#
4
+ title: Ginny Func Definition
5
+ description: Used to generate a [method](https://ruby-doc.org/core-2.6.5/doc/syntax/methods_rdoc.html).
6
+ type: object
7
+ required: [name]
8
+ properties:
9
+ body:
10
+ description: String to write into the body of the function.
11
+ type: string
12
+ description:
13
+ description: Description of the function. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.
14
+ type: string
15
+ modules:
16
+ description: List of modules to declare the function inside of.
17
+ type: array
18
+ items:
19
+ type: string
20
+ name:
21
+ description: Name of the function.
22
+ type: string
23
+ params:
24
+ description: An array of `Ginny::Param`s.
25
+ type: array
26
+ items:
27
+ "$ref": https://raw.githubusercontent.com/tcd/ginny/master/schema/param.schema.json
28
+ return_type:
29
+ description: Return [type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the function.
30
+ type: string
@@ -0,0 +1,36 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/tcd/ginny/master/schema/param.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Ginny Param Definition",
5
+ "description": "Used to generate a function [parameter](https://ruby-doc.org/core-2.6.5/doc/syntax/methods_rdoc.html#label-Arguments).",
6
+ "type": "object",
7
+ "required": [
8
+ "name"
9
+ ],
10
+ "properties": {
11
+ "name": {
12
+ "description": "Name of the param.",
13
+ "type": "string"
14
+ },
15
+ "description": {
16
+ "description": "Description of the param. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.",
17
+ "type": "string"
18
+ },
19
+ "type": {
20
+ "description": "[Type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the param.",
21
+ "type": "string"
22
+ },
23
+ "default": {
24
+ "description": "Default value for the Param. Set `optional` as `true` for a default `nil` value.",
25
+ "type": "string"
26
+ },
27
+ "optional": {
28
+ "description": "If `true`, the default value will be `nil`.",
29
+ "type": "boolean"
30
+ },
31
+ "keyword": {
32
+ "description": "If `true`, the param will be generated as a [keyword argument](https://bugs.ruby-lang.org/issues/14183).",
33
+ "type": "boolean"
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,26 @@
1
+ ---
2
+ "$id": https://raw.githubusercontent.com/tcd/ginny/master/schema/param.schema.json
3
+ "$schema": http://json-schema.org/draft-07/schema#
4
+ title: Ginny Param Definition
5
+ description: Used to generate a function [parameter](https://ruby-doc.org/core-2.6.5/doc/syntax/methods_rdoc.html#label-Arguments).
6
+ type: object
7
+ required: [name]
8
+ properties:
9
+ name:
10
+ description: Name of the param.
11
+ type: string
12
+ description:
13
+ description: Description of the param. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.
14
+ type: string
15
+ type:
16
+ description: "[Type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the param."
17
+ type: string
18
+ default:
19
+ description: Default value for the Param. Set `optional` as `true` for a default `nil` value.
20
+ type: string
21
+ optional:
22
+ description: If `true`, the default value will be `nil`.
23
+ type: boolean
24
+ keyword:
25
+ description: If `true`, the param will be generated as a [keyword argument](https://bugs.ruby-lang.org/issues/14183).
26
+ type: boolean
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ginny
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clay Dunston
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-15 00:00:00.000000000 Z
11
+ date: 2019-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -162,6 +162,7 @@ files:
162
162
  - ".rubocop.yml"
163
163
  - ".solargraph.yml"
164
164
  - ".travis.yml"
165
+ - ".vscode/settings.json"
165
166
  - ".yardopts"
166
167
  - CHANGELOG.md
167
168
  - Gemfile
@@ -183,15 +184,21 @@ files:
183
184
  - lib/ginny/models/func.rb
184
185
  - lib/ginny/models/param.rb
185
186
  - lib/ginny/version.rb
186
- - schema/ginny.json
187
- - schema/ginny.schema.yml
187
+ - schema/attr.schema.json
188
+ - schema/attr.schema.yml
189
+ - schema/class.schema.json
190
+ - schema/class.schema.yml
191
+ - schema/func.schema.json
192
+ - schema/func.schema.yml
193
+ - schema/param.schema.json
194
+ - schema/param.schema.yml
188
195
  homepage: https://github.com/tcd/ginny
189
196
  licenses:
190
197
  - MIT
191
198
  metadata:
192
199
  homepage_uri: https://github.com/tcd/ginny
193
200
  source_code_uri: https://github.com/tcd/ginny
194
- documentation_uri: https://www.rubydoc.info/gems/ginny/0.6.1
201
+ documentation_uri: https://www.rubydoc.info/gems/ginny/0.6.2
195
202
  changelog_uri: https://github.com/tcd/ginny/blob/master/CHANGELOG.md
196
203
  yard.run: yri
197
204
  post_install_message:
@@ -1,146 +0,0 @@
1
- {
2
- "$id": "https://github.com/tcd/ginny/blob/master/schema/ginny.json",
3
- "$schema": "http://json-schema.org/draft-07/schema#",
4
- "title": "Files used by `Ginny` to generate ruby code.",
5
- "type": "object",
6
- "definitions": {
7
- "class": {
8
- "description": "Used to generate a [class](https://ruby-doc.org/core-2.6.5/Class.html).",
9
- "type": "object",
10
- "required": [
11
- "name"
12
- ],
13
- "properties": {
14
- "name": {
15
- "description": "Name of the class.",
16
- "type": "string"
17
- },
18
- "description": {
19
- "description": "Description of the class. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.",
20
- "type": "string"
21
- },
22
- "parent": {
23
- "description": "Name of a class to inherit from. (Ex: `YourNewClass < Parent`)",
24
- "type": "string"
25
- },
26
- "modules": {
27
- "description": "List of modules to declare the class inside.",
28
- "type": "string"
29
- },
30
- "attrs": {
31
- "description": "An array of `Ginny::Attr`s.",
32
- "type": "array",
33
- "items": {
34
- "$ref": "#/definitions/attr"
35
- }
36
- },
37
- "body": {
38
- "description": "String to write into the body of the class.",
39
- "type": "string"
40
- },
41
- "file_prefix": {
42
- "description": "String to prepend to the name of the generated file.",
43
- "type": "string"
44
- }
45
- }
46
- },
47
- "attr": {
48
- "description": "Used to generate an instance variable with getters/setters.",
49
- "type": "object",
50
- "required": [
51
- "name"
52
- ],
53
- "properties": {
54
- "name": {
55
- "description": "Name of the attribute.",
56
- "type": "string"
57
- },
58
- "description": {
59
- "description": "Description of the attribute. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.",
60
- "type": "string"
61
- },
62
- "type": {
63
- "description": "[Type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the attribute.",
64
- "type": "string"
65
- },
66
- "default": {
67
- "description": "Default value for the attribute; set in it's Class's `initialize` function.",
68
- "type": "string"
69
- },
70
- "read_only": {
71
- "description": "If `true`, an `attr_reader` will be generated for the attribute instead of an `attr_accessor`.",
72
- "type": "boolean"
73
- }
74
- }
75
- },
76
- "func": {
77
- "description": "Used to generate a [method](https://ruby-doc.org/core-2.6.5/doc/syntax/methods_rdoc.html).",
78
- "type": "object",
79
- "required": [
80
- "name"
81
- ],
82
- "properties": {
83
- "name": {
84
- "description": "Name of the function.",
85
- "type": "string"
86
- },
87
- "description": {
88
- "description": "Description of the function. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.",
89
- "type": "string"
90
- },
91
- "return_type": {
92
- "description": "Return [type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the function.",
93
- "type": "string"
94
- },
95
- "body": {
96
- "description": "String to write into the body of the function.",
97
- "type": "string"
98
- },
99
- "modules": {
100
- "description": "List of modules to declare the function inside of.",
101
- "type": "string"
102
- },
103
- "params": {
104
- "description": "An array of `Ginny::Param`s.",
105
- "type": "array",
106
- "items": {
107
- "$ref": "#/definitions/param"
108
- }
109
- }
110
- }
111
- },
112
- "param": {
113
- "description": "Used to generate a function [parameter](https://ruby-doc.org/core-2.6.5/doc/syntax/methods_rdoc.html#label-Arguments).",
114
- "type": "object",
115
- "required": [
116
- "name"
117
- ],
118
- "properties": {
119
- "name": {
120
- "description": "Name of the param.",
121
- "type": "string"
122
- },
123
- "description": {
124
- "description": "Description of the param. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.",
125
- "type": "string"
126
- },
127
- "type": {
128
- "description": "[Type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the param.",
129
- "type": "string"
130
- },
131
- "default": {
132
- "description": "Default value for the Param. Set `optional` as `true` for a default `nil` value.",
133
- "type": "string"
134
- },
135
- "optional": {
136
- "description": "If `true`, the default value will be `nil`.",
137
- "type": "boolean"
138
- },
139
- "keyword": {
140
- "description": "If `true`, the param will be generated as a [keyword argument](https://bugs.ruby-lang.org/issues/14183).",
141
- "type": "boolean"
142
- }
143
- }
144
- }
145
- }
146
- }
@@ -1,107 +0,0 @@
1
- ---
2
- "$id": https://github.com/tcd/ginny/blob/master/schema/ginny.json
3
- "$schema": http://json-schema.org/draft-07/schema#
4
- title: Files used by `Ginny` to generate ruby code.
5
- type: object
6
-
7
- definitions:
8
-
9
- class:
10
- description: Used to generate a [class](https://ruby-doc.org/core-2.6.5/Class.html).
11
- type: object
12
- required: [name]
13
- properties:
14
- name:
15
- description: Name of the class.
16
- type: string
17
- description:
18
- description: Description of the class. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.
19
- type: string
20
- parent:
21
- description: "Name of a class to inherit from. (Ex: `YourNewClass < Parent`)"
22
- type: string
23
- modules:
24
- description: List of modules to declare the class inside.
25
- type: string
26
- attrs:
27
- description: An array of `Ginny::Attr`s.
28
- type: array
29
- items:
30
- "$ref": "#/definitions/attr"
31
- body:
32
- description: String to write into the body of the class.
33
- type: string
34
- file_prefix:
35
- description: String to prepend to the name of the generated file.
36
- type: string
37
-
38
- attr:
39
- description: Used to generate an instance variable with getters/setters.
40
- type: object
41
- required: [name]
42
- properties:
43
- name:
44
- description: Name of the attribute.
45
- type: string
46
- description:
47
- description: Description of the attribute. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.
48
- type: string
49
- type:
50
- description: "[Type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the attribute."
51
- type: string
52
- default:
53
- description: Default value for the attribute; set in it's Class's `initialize` function.
54
- type: string
55
- read_only:
56
- description: If `true`, an `attr_reader` will be generated for the attribute instead of an `attr_accessor`.
57
- type: boolean
58
-
59
- func:
60
- description: Used to generate a [method](https://ruby-doc.org/core-2.6.5/doc/syntax/methods_rdoc.html).
61
- type: object
62
- required: [name]
63
- properties:
64
- name:
65
- description: Name of the function.
66
- type: string
67
- description:
68
- description: Description of the function. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.
69
- type: string
70
- return_type:
71
- description: Return [type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the function.
72
- type: string
73
- body:
74
- description: String to write into the body of the function.
75
- type: string
76
- modules:
77
- description: List of modules to declare the function inside of.
78
- type: string
79
- params:
80
- description: An array of `Ginny::Param`s.
81
- type: array
82
- items:
83
- "$ref": "#/definitions/param"
84
-
85
- param:
86
- description: Used to generate a function [parameter](https://ruby-doc.org/core-2.6.5/doc/syntax/methods_rdoc.html#label-Arguments).
87
- type: object
88
- required: [name]
89
- properties:
90
- name:
91
- description: Name of the param.
92
- type: string
93
- description:
94
- description: Description of the param. [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is supported.
95
- type: string
96
- type:
97
- description: "[Type](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Declaring_Types) of the param."
98
- type: string
99
- default:
100
- description: Default value for the Param. Set `optional` as `true` for a default `nil` value.
101
- type: string
102
- optional:
103
- description: If `true`, the default value will be `nil`.
104
- type: boolean
105
- keyword:
106
- description: If `true`, the param will be generated as a [keyword argument](https://bugs.ruby-lang.org/issues/14183).
107
- type: boolean