yard-mongoid 0.0.3.pre → 0.0.3
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.
- data/Gemfile +4 -0
- data/lib/yard/{mongoid → handlers/ruby/mongoid}/extensions.rb +1 -1
- data/lib/yard/handlers/ruby/mongoid/field_handler.rb +149 -0
- data/lib/yard/handlers/ruby/mongoid/helpers.rb +18 -0
- data/lib/yard/handlers/ruby/mongoid/relations/base.rb +56 -0
- data/lib/yard/handlers/ruby/mongoid/relations/belongs_to_handler.rb +16 -0
- data/lib/yard/handlers/ruby/mongoid/relations/has_and_belongs_to_many_handler.rb +16 -0
- data/lib/yard/handlers/ruby/mongoid/relations/has_many_handler.rb +16 -0
- data/lib/yard/handlers/ruby/mongoid/relations/has_one_handler.rb +16 -0
- data/lib/yard/handlers/ruby/mongoid/relations/plural_handler.rb +14 -0
- data/lib/yard/handlers/ruby/mongoid/relations/singular_handler.rb +14 -0
- data/lib/yard/mongoid.rb +12 -4
- data/lib/yard/mongoid/version.rb +1 -1
- metadata +15 -9
- data/lib/yard/mongoid/field_handler.rb +0 -66
- data/lib/yard/mongoid/helpers.rb +0 -114
- data/lib/yard/mongoid/legacy/field_handler.rb +0 -26
data/Gemfile
CHANGED
@@ -6,4 +6,8 @@ gemspec
|
|
6
6
|
group :development do
|
7
7
|
gem 'rake'
|
8
8
|
gem 'mongoid', '~> 3.0'
|
9
|
+
gem 'yard-activerecord' # Needed for some code examples
|
10
|
+
gem 'yard-activerecord2' # Needed for some code examples
|
11
|
+
gem 'yard-rails' # Needed for some code examples
|
12
|
+
gem 'yard-delegate' # Needed for some code examples
|
9
13
|
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
require 'yard'
|
2
|
+
require 'yard/handlers/ruby/mongoid/extensions'
|
3
|
+
require 'yard/handlers/ruby/mongoid/helpers'
|
4
|
+
|
5
|
+
module YARD::Handlers::Ruby
|
6
|
+
module Mongoid
|
7
|
+
class FieldHandler < YARD::Handlers::Ruby::AttributeHandler
|
8
|
+
include Extensions
|
9
|
+
include YARD::Handlers::Ruby::Mongoid::Helpers
|
10
|
+
|
11
|
+
MONGOID_FIELDS = 'Fields'
|
12
|
+
|
13
|
+
namespace_only
|
14
|
+
|
15
|
+
handles method_call(:field)
|
16
|
+
|
17
|
+
def process
|
18
|
+
name = statement.parameters[0].last
|
19
|
+
|
20
|
+
if name.type == :symbol
|
21
|
+
name = name.source[1..-1]
|
22
|
+
|
23
|
+
add_field_getter(effected_namespace, name, class_name, default_value)
|
24
|
+
add_field_setter(effected_namespace, name, class_name)
|
25
|
+
#register_field_presence(effected_namespace, name, scope)
|
26
|
+
#register_field_change(effected_namespace, name, scope)
|
27
|
+
#register_field_changed(effected_namespace, name, scope)
|
28
|
+
#register_field_was(effected_namespace, name, scope)
|
29
|
+
#register_field_reset(effected_namespace, name, scope)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
protected
|
34
|
+
|
35
|
+
def class_name
|
36
|
+
return @class_name if instance_variable_defined?(:@class_name)
|
37
|
+
|
38
|
+
if statement.parameters.size > 2
|
39
|
+
statement.parameters[1].source.split(/,\s*/).each do |key_and_value|
|
40
|
+
if key_and_value =~ hash_args[:type]
|
41
|
+
@class_name = $2
|
42
|
+
break
|
43
|
+
end
|
44
|
+
end
|
45
|
+
@class_name = 'true, false' if @class_name == 'Boolean'
|
46
|
+
end
|
47
|
+
@class_name ||= 'String'
|
48
|
+
end
|
49
|
+
|
50
|
+
def default_value
|
51
|
+
return @default_value if instance_variable_defined?(:@default_value)
|
52
|
+
|
53
|
+
if statement.parameters.size > 2
|
54
|
+
statement.parameters[1].source.split(/,\s*/).each do |key_and_value|
|
55
|
+
if key_and_value =~ /(:default\s*=>|default:)\s*(.+)\s*$/
|
56
|
+
@default_value = $2
|
57
|
+
break
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
@default_value ||= nil
|
62
|
+
end
|
63
|
+
|
64
|
+
protected
|
65
|
+
|
66
|
+
def hash_args
|
67
|
+
@hash_args ||= Hash.new do |hash, key|
|
68
|
+
hash[key] = /(:#{key.to_s}\s*=>|#{key.to_s}:\s)\s*([A-Z][A-Za-z0-9]*)/
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
# @yieldparam [YARD::CodeObjects::MethodObject]
|
73
|
+
def add_field_method(namespace, name, &block)
|
74
|
+
register YARD::CodeObjects::MethodObject.new(namespace, name, :instance) do |mo|
|
75
|
+
mo.group = MONGOID_FIELDS
|
76
|
+
mo.visibility ||= :public
|
77
|
+
mo.source = statement.source
|
78
|
+
mo.dynamic = true
|
79
|
+
mo.signature = "def #{name}"
|
80
|
+
mo.docstring = '' if mo.docstring.empty?
|
81
|
+
block.call(mo) if block_given?
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# Creates and registers a new +name+ method in +namespace+
|
86
|
+
# with an instance or class +scope+
|
87
|
+
# @param [NamespaceObject] namespace the namespace
|
88
|
+
# @param [String, Symbol] name the method name
|
89
|
+
def add_field_getter(namespace, name, type = 'Object', default_value = nil)
|
90
|
+
add_field_method(namespace, name) do |o|
|
91
|
+
default_value = "(defaults to: +#{default_value}+) " if default_value
|
92
|
+
o.docstring.add_tag get_tag(:return, default_value, type)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
# Creates and registers a new +name+= method in +namespace+
|
97
|
+
# with an instance or class +scope+
|
98
|
+
# @param [NamespaceObject] namespace the namespace
|
99
|
+
# @param [String, Symbol] name the method name
|
100
|
+
def add_field_setter(namespace, name, type = 'Object')
|
101
|
+
add_field_method(namespace, "#{name}=") do |o|
|
102
|
+
o.parameters = [[name, nil]]
|
103
|
+
o.docstring.add_tag get_tag(:return, nil, type)
|
104
|
+
o.docstring.add_tag get_tag(:param, "new #{name}", type, name)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
# Creates and registers a new +name+? method in +namespace+
|
109
|
+
# with an instance or class +scope+
|
110
|
+
# @param [NamespaceObject] namespace the namespace
|
111
|
+
# @param [String, Symbol] name the method name
|
112
|
+
def add_field_presence(namespace, name)
|
113
|
+
add_field_method(namespace, "#{name}?")
|
114
|
+
end
|
115
|
+
|
116
|
+
# Creates and registers a new +name+_change method in +namespace+
|
117
|
+
# with an instance or class +scope+
|
118
|
+
# @param [NamespaceObject] namespace the namespace
|
119
|
+
# @param [String, Symbol] name the method name
|
120
|
+
def add_field_change(namespace, name)
|
121
|
+
add_field_method(namespace, "#{name}_change")
|
122
|
+
end
|
123
|
+
|
124
|
+
# Creates and registers a new +name+_changed? method in +namespace+
|
125
|
+
# with an instance or class +scope+
|
126
|
+
# @param [NamespaceObject] namespace the namespace
|
127
|
+
# @param [String, Symbol] name the method name
|
128
|
+
def add_field_changed(namespace, name)
|
129
|
+
add_field_method(namespace, "#{name}_changed?")
|
130
|
+
end
|
131
|
+
|
132
|
+
# Creates and registers a new +name+_was method in +namespace+
|
133
|
+
# with an instance or class +scope+
|
134
|
+
# @param [NamespaceObject] namespace the namespace
|
135
|
+
# @param [String, Symbol] name the method name
|
136
|
+
def register_field_was(namespace, name)
|
137
|
+
add_field_method(namespace, "#{name}_was")
|
138
|
+
end
|
139
|
+
|
140
|
+
# Creates and registers a new reset_+name+! method in +namespace+
|
141
|
+
# with an instance or class +scope+
|
142
|
+
# @param [NamespaceObject] namespace the namespace
|
143
|
+
# @param [String, Symbol] name the method name
|
144
|
+
def register_field_reset(namespace, name)
|
145
|
+
add_field_method(namespace, "reset_#{name}!")
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'yard/tags/tag'
|
2
|
+
|
3
|
+
module YARD
|
4
|
+
module Handlers
|
5
|
+
module Ruby
|
6
|
+
module Mongoid
|
7
|
+
module Helpers
|
8
|
+
# @param [Symbol] tag
|
9
|
+
# @param [String] text
|
10
|
+
# @param [String] return_classes
|
11
|
+
def get_tag(tag, text, return_classes = [], name=nil)
|
12
|
+
YARD::Tags::Tag.new(tag, text, [return_classes].flatten, name)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'yard'
|
2
|
+
require 'active_support/inflector'
|
3
|
+
require 'yard/handlers/ruby/mongoid/helpers'
|
4
|
+
|
5
|
+
module YARD::Handlers::Ruby::Mongoid
|
6
|
+
module Relations
|
7
|
+
class Base < YARD::Handlers::Ruby::MethodHandler
|
8
|
+
include YARD::Handlers::Ruby::Mongoid::Helpers
|
9
|
+
namespace_only
|
10
|
+
|
11
|
+
def process
|
12
|
+
namespace.groups << group_name unless namespace.groups.include? group_name
|
13
|
+
|
14
|
+
object = YARD::CodeObjects::MethodObject.new(namespace, method_name)
|
15
|
+
object.group = group_name
|
16
|
+
object.docstring = return_description
|
17
|
+
object.docstring.add_tag get_tag(:return, '', class_name)
|
18
|
+
object.docstring.add_tag get_tag(:see, "http://mongoid.org/en/mongoid/docs/relations.html##{statement.method_name(true).to_s}")
|
19
|
+
object.dynamic = true
|
20
|
+
register object
|
21
|
+
end
|
22
|
+
|
23
|
+
def group_name
|
24
|
+
'Mongoid Relations'
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
def method_name
|
29
|
+
call_params[0]
|
30
|
+
end
|
31
|
+
|
32
|
+
def class_name(singularize = false)
|
33
|
+
param_size = statement.parameters.size
|
34
|
+
if param_size > 2
|
35
|
+
i = 1
|
36
|
+
while i < param_size - 1
|
37
|
+
# May want to evaluate doing it this way
|
38
|
+
statement.parameters[i].jump(:hash).source =~ /(:class_name\s*=>|class_name:)\s*["']([^"']+)["']/
|
39
|
+
return $2 if $2
|
40
|
+
i += 1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
if singularize
|
45
|
+
method_name.camelize.singularize
|
46
|
+
else
|
47
|
+
method_name.camelize
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def return_description
|
52
|
+
"An array of associated #{method_name}."
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'yard/handlers/ruby/mongoid/relations/singular_handler'
|
2
|
+
|
3
|
+
module YARD::Handlers::Ruby::Mongoid::Relations
|
4
|
+
class BelongsToHandler < SingularHandler
|
5
|
+
handles method_call(:belongs_to)
|
6
|
+
|
7
|
+
def group_name
|
8
|
+
'Belongs to'
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
def return_description
|
13
|
+
''
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'yard/handlers/ruby/mongoid/relations/plural_handler'
|
2
|
+
|
3
|
+
module YARD::Handlers::Ruby::Mongoid::Relations
|
4
|
+
class HasManyHandler < PluralHandler
|
5
|
+
handles method_call(:has_and_belongs_to_many)
|
6
|
+
|
7
|
+
def group_name
|
8
|
+
'Has and belongs to many'
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
def return_description
|
13
|
+
''
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'yard/handlers/ruby/mongoid/relations/plural_handler'
|
2
|
+
|
3
|
+
module YARD::Handlers::Ruby::Mongoid::Relations
|
4
|
+
class HasManyHandler < PluralHandler
|
5
|
+
handles method_call(:has_many)
|
6
|
+
|
7
|
+
def group_name
|
8
|
+
'Has many'
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
def return_description
|
13
|
+
''
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'yard/handlers/ruby/mongoid/relations/singular_handler'
|
2
|
+
|
3
|
+
module YARD::Handlers::Ruby::Mongoid::Relations
|
4
|
+
class HasOneHandler < SingularHandler
|
5
|
+
handles method_call(:has_one)
|
6
|
+
|
7
|
+
def group_name
|
8
|
+
'Has one'
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
def return_description
|
13
|
+
''
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'yard/handlers/ruby/mongoid/relations/base'
|
2
|
+
|
3
|
+
module YARD::Handlers::Ruby::Mongoid::Relations
|
4
|
+
class PluralHandler < Base
|
5
|
+
def class_name
|
6
|
+
"Array<#{super(true)}>"
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
def return_description
|
11
|
+
"An array of associated #{method_name.humanize}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'yard/handlers/ruby/mongoid/relations/base'
|
2
|
+
|
3
|
+
module YARD::Handlers::Ruby::Mongoid::Relations
|
4
|
+
class SingularHandler < Base
|
5
|
+
def class_name
|
6
|
+
super(false)
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
def return_description
|
11
|
+
"An associated {#{method_name.humanize}}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/yard/mongoid.rb
CHANGED
@@ -1,9 +1,17 @@
|
|
1
|
+
require 'yard'
|
1
2
|
require 'yard/mongoid/version'
|
3
|
+
|
2
4
|
module YARD
|
3
|
-
module
|
4
|
-
|
5
|
+
module Handlers
|
6
|
+
module Ruby
|
7
|
+
module Mongoid
|
8
|
+
end
|
9
|
+
end
|
5
10
|
end
|
6
11
|
end
|
7
12
|
|
8
|
-
require 'yard/mongoid/field_handler'
|
9
|
-
require 'yard/mongoid/
|
13
|
+
require 'yard/handlers/ruby/mongoid/field_handler'
|
14
|
+
require 'yard/handlers/ruby/mongoid/relations/belongs_to_handler'
|
15
|
+
require 'yard/handlers/ruby/mongoid/relations/has_one_handler'
|
16
|
+
require 'yard/handlers/ruby/mongoid/relations/has_many_handler'
|
17
|
+
require 'yard/handlers/ruby/mongoid/relations/has_and_belongs_to_many_handler'
|
data/lib/yard/mongoid/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yard-mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.3
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Alexander Semyonov
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yard
|
@@ -40,11 +40,17 @@ files:
|
|
40
40
|
- MIT-LICENSE
|
41
41
|
- Rakefile
|
42
42
|
- lib/yard-mongoid.rb
|
43
|
+
- lib/yard/handlers/ruby/mongoid/extensions.rb
|
44
|
+
- lib/yard/handlers/ruby/mongoid/field_handler.rb
|
45
|
+
- lib/yard/handlers/ruby/mongoid/helpers.rb
|
46
|
+
- lib/yard/handlers/ruby/mongoid/relations/base.rb
|
47
|
+
- lib/yard/handlers/ruby/mongoid/relations/belongs_to_handler.rb
|
48
|
+
- lib/yard/handlers/ruby/mongoid/relations/has_and_belongs_to_many_handler.rb
|
49
|
+
- lib/yard/handlers/ruby/mongoid/relations/has_many_handler.rb
|
50
|
+
- lib/yard/handlers/ruby/mongoid/relations/has_one_handler.rb
|
51
|
+
- lib/yard/handlers/ruby/mongoid/relations/plural_handler.rb
|
52
|
+
- lib/yard/handlers/ruby/mongoid/relations/singular_handler.rb
|
43
53
|
- lib/yard/mongoid.rb
|
44
|
-
- lib/yard/mongoid/extensions.rb
|
45
|
-
- lib/yard/mongoid/field_handler.rb
|
46
|
-
- lib/yard/mongoid/helpers.rb
|
47
|
-
- lib/yard/mongoid/legacy/field_handler.rb
|
48
54
|
- lib/yard/mongoid/version.rb
|
49
55
|
- yard-mongoid.gemspec
|
50
56
|
homepage: http://rubygems.org/gems/yard-mongoid
|
@@ -62,9 +68,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
62
68
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
69
|
none: false
|
64
70
|
requirements:
|
65
|
-
- - ! '
|
71
|
+
- - ! '>='
|
66
72
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
73
|
+
version: '0'
|
68
74
|
requirements: []
|
69
75
|
rubyforge_project: yard-mongoid
|
70
76
|
rubygems_version: 1.8.23
|
@@ -1,66 +0,0 @@
|
|
1
|
-
require 'yard/mongoid/extensions'
|
2
|
-
require 'yard/mongoid/helpers'
|
3
|
-
|
4
|
-
module YARD
|
5
|
-
module Mongoid
|
6
|
-
class FieldHandler < YARD::Handlers::Ruby::AttributeHandler
|
7
|
-
include Extensions
|
8
|
-
include Helpers
|
9
|
-
|
10
|
-
handles method_call(:field)
|
11
|
-
|
12
|
-
def process
|
13
|
-
name = statement.parameters[0].last
|
14
|
-
|
15
|
-
if name.type == :symbol
|
16
|
-
name = name.source[1..-1]
|
17
|
-
|
18
|
-
register_field_getter(effected_namespace, name, scope, class_name, default_value)
|
19
|
-
register_field_setter(effected_namespace, name, scope)
|
20
|
-
register_field_presence(effected_namespace, name, scope)
|
21
|
-
register_field_change(effected_namespace, name, scope)
|
22
|
-
register_field_changed(effected_namespace, name, scope)
|
23
|
-
register_field_was(effected_namespace, name, scope)
|
24
|
-
register_field_reset(effected_namespace, name, scope)
|
25
|
-
super
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
protected
|
30
|
-
|
31
|
-
def class_name
|
32
|
-
return @class_name if instance_variable_defined?(:@class_name)
|
33
|
-
|
34
|
-
if statement.parameters.size > 2
|
35
|
-
statement.parameters[1].source.split(/,\s*/).each do |key_and_value|
|
36
|
-
if key_and_value =~ hash_args[:type]
|
37
|
-
@class_name = $2
|
38
|
-
break
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
@class_name ||= 'String'
|
43
|
-
end
|
44
|
-
|
45
|
-
def default_value
|
46
|
-
return @default_value if instance_variable_defined?(:@default_value)
|
47
|
-
|
48
|
-
if statement.parameters.size > 2
|
49
|
-
statement.parameters[1].source.split(/,\s*/).each do |key_and_value|
|
50
|
-
if key_and_value =~ /(:default\s*=>|default:)\s*(.+)\s*$/
|
51
|
-
@default_value = $2
|
52
|
-
break
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
@default_value ||= nil
|
57
|
-
end
|
58
|
-
|
59
|
-
protected
|
60
|
-
|
61
|
-
def hash_args
|
62
|
-
@hash_args ||= Hash.new { |hash, key| hash[key] = /(:#{key.to_s}\s*=>|#{key.to_s}:)\s*([A-Z][A-Za-z0-9]*)/ }
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
data/lib/yard/mongoid/helpers.rb
DELETED
@@ -1,114 +0,0 @@
|
|
1
|
-
module YARD
|
2
|
-
module Mongoid
|
3
|
-
module Helpers
|
4
|
-
def register_new_method_object(namespace, name, scope = :instance, &block)
|
5
|
-
register self.class.const_get(:MethodObject).new(namespace, name, scope, &block)
|
6
|
-
end
|
7
|
-
|
8
|
-
# Creates and registers a new +name+ method in +namespace+
|
9
|
-
# with an instance or class +scope+
|
10
|
-
# @param [NamespaceObject] namespace the namespace
|
11
|
-
# @param [String, Symbol] name the method name
|
12
|
-
# @param [Symbol] scope +:instance+ or +:class+
|
13
|
-
def register_field_getter(namespace, name, scope = :instance, type = 'Object', default_value = nil)
|
14
|
-
register_new_method_object(namespace, name, scope) do |o|
|
15
|
-
o.group = MONGOID_FIELDS
|
16
|
-
o.visibility = :public
|
17
|
-
o.source = statement.source
|
18
|
-
o.signature = "def #{name}"
|
19
|
-
end.tap do |o|
|
20
|
-
docstring = o.docstring.empty? ? "Field #{name}" : o.docstring
|
21
|
-
docstring += "\n@return [#{type}] "
|
22
|
-
docstring += "(defaults to: +#{default_value}+) " if default_value
|
23
|
-
o.docstring = docstring
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Creates and registers a new +name+= method in +namespace+
|
28
|
-
# with an instance or class +scope+
|
29
|
-
# @param [NamespaceObject] namespace the namespace
|
30
|
-
# @param [String, Symbol] name the method name
|
31
|
-
# @param [Symbol] scope +:instance+ or +:class+
|
32
|
-
def register_field_setter(namespace, name, scope = :instance)
|
33
|
-
register_new_method_object(namespace, "#{name}=", scope) do |o|
|
34
|
-
o.group = MONGOID_FIELDS
|
35
|
-
o.visibility = :public
|
36
|
-
o.source = statement.source
|
37
|
-
o.signature = "def #{name}=(value)"
|
38
|
-
o.parameters = [['value', nil]]
|
39
|
-
o.docstring = "Sets the attribute #{name}\n@param value the value to set the attribute #{name} to."
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
# Creates and registers a new +name+? method in +namespace+
|
44
|
-
# with an instance or class +scope+
|
45
|
-
# @param [NamespaceObject] namespace the namespace
|
46
|
-
# @param [String, Symbol] name the method name
|
47
|
-
# @param [Symbol] scope +:instance+ or +:class+
|
48
|
-
def register_field_presence(namespace, name, scope = :instance)
|
49
|
-
register_new_method_object(namespace, "#{name}?", scope) do |o|
|
50
|
-
o.group = MONGOID_FIELDS
|
51
|
-
o.visibility = :public
|
52
|
-
o.source = statement.source
|
53
|
-
o.signature = "def #{name}?"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
# Creates and registers a new +name+_change method in +namespace+
|
58
|
-
# with an instance or class +scope+
|
59
|
-
# @param [NamespaceObject] namespace the namespace
|
60
|
-
# @param [String, Symbol] name the method name
|
61
|
-
# @param [Symbol] scope +:instance+ or +:class+
|
62
|
-
def register_field_change(namespace, name, scope = :instance)
|
63
|
-
register_new_method_object(namespace, "#{name}_change", scope) do |o|
|
64
|
-
o.group = MONGOID_FIELDS
|
65
|
-
o.visibility = :public
|
66
|
-
o.source = statement.source
|
67
|
-
o.signature = "def #{name}_change"
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
# Creates and registers a new +name+_changed? method in +namespace+
|
72
|
-
# with an instance or class +scope+
|
73
|
-
# @param [NamespaceObject] namespace the namespace
|
74
|
-
# @param [String, Symbol] name the method name
|
75
|
-
# @param [Symbol] scope +:instance+ or +:class+
|
76
|
-
def register_field_changed(namespace, name, scope = :instance)
|
77
|
-
register_new_method_object(namespace, "#{name}_changed?", scope) do |o|
|
78
|
-
o.group = MONGOID_FIELDS
|
79
|
-
o.visibility = :public
|
80
|
-
o.source = statement.source
|
81
|
-
o.signature = "def #{name}_changed?"
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
# Creates and registers a new +name+_was method in +namespace+
|
86
|
-
# with an instance or class +scope+
|
87
|
-
# @param [NamespaceObject] namespace the namespace
|
88
|
-
# @param [String, Symbol] name the method name
|
89
|
-
# @param [Symbol] scope +:instance+ or +:class+
|
90
|
-
def register_field_was(namespace, name, scope = :instance)
|
91
|
-
register_new_method_object(namespace, "#{name}_was", scope) do |o|
|
92
|
-
o.group = MONGOID_FIELDS
|
93
|
-
o.visibility = :public
|
94
|
-
o.source = statement.source
|
95
|
-
o.signature = "def #{name}_was"
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
# Creates and registers a new reset_+name+! method in +namespace+
|
100
|
-
# with an instance or class +scope+
|
101
|
-
# @param [NamespaceObject] namespace the namespace
|
102
|
-
# @param [String, Symbol] name the method name
|
103
|
-
# @param [Symbol] scope +:instance+ or +:class+
|
104
|
-
def register_field_reset(namespace, name, scope = :instance)
|
105
|
-
register_new_method_object(namespace, "reset_#{name}!", scope) do |o|
|
106
|
-
o.group = MONGOID_FIELDS
|
107
|
-
o.visibility = :public
|
108
|
-
o.source = statement.source
|
109
|
-
o.signature = "def reset_#{name}!"
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'yard/mongoid/helpers'
|
2
|
-
|
3
|
-
module YARD
|
4
|
-
module Mongoid
|
5
|
-
module Legacy
|
6
|
-
class FieldHandler < YARD::Handlers::Ruby::Legacy::AttributeHandler
|
7
|
-
include YARD::Mongoid::Helpers
|
8
|
-
|
9
|
-
handles /\Afield\s+:/
|
10
|
-
|
11
|
-
def process
|
12
|
-
name = statement.tokens[2,1].to_s[1..-1]
|
13
|
-
|
14
|
-
register_field_getter(namespace, name, scope)
|
15
|
-
#register_field_setter(namespace, name, scope)
|
16
|
-
#register_field_presence(namespace, name, scope)
|
17
|
-
#register_field_change(namespace, name, scope)
|
18
|
-
#register_field_changed(namespace, name, scope)
|
19
|
-
#register_field_was(namespace, name, scope)
|
20
|
-
#register_field_reset(namespace, name, scope)
|
21
|
-
#super
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|