value 0.2.0 → 1.0.0
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/Rakefile +4 -3
- data/lib/value/version.rb +3 -3
- data/lib/value/{yard.rb → yard-1.0.rb} +12 -4
- data/lib/{value.rb → value-1.0.rb} +0 -0
- data/test/unit/value/{yard.rb → yard-1.0.rb} +43 -3
- data/test/unit/{value.rb → value-1.0.rb} +0 -0
- metadata +25 -13
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
|
-
require 'inventory/rake/tasks'
|
4
|
-
require 'lookout/rake/tasks'
|
3
|
+
require 'inventory/rake/tasks-1.0'
|
4
|
+
require 'lookout/rake/tasks-3.0'
|
5
5
|
|
6
6
|
$:.unshift File.expand_path('../lib', __FILE__)
|
7
7
|
require 'value/version'
|
@@ -11,9 +11,10 @@ Inventory::Rake::Tasks.define Value::Version, :gem => proc{ |_, s|
|
|
11
11
|
s.email = 'now@bitwi.se'
|
12
12
|
s.homepage = 'https://github.com/now/value'
|
13
13
|
|
14
|
+
s.add_development_dependency 'lookout', '~> 3.0'
|
14
15
|
s.add_development_dependency 'yard', '~> 0.7.0'
|
15
16
|
|
16
|
-
s.add_runtime_dependency 'inventory', '~>
|
17
|
+
s.add_runtime_dependency 'inventory', '~> 1.0'
|
17
18
|
}
|
18
19
|
|
19
20
|
# TODO: Silence warnings generated from YARD (remove this once we plug them)
|
data/lib/value/version.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
|
-
require 'inventory'
|
3
|
+
require 'inventory-1.0'
|
4
4
|
|
5
5
|
module Value
|
6
|
-
Version = Inventory.new(
|
6
|
+
Version = Inventory.new(1, 0, 0){
|
7
7
|
def libs
|
8
8
|
%w'
|
9
9
|
value/comparable.rb
|
@@ -14,7 +14,7 @@ module Value
|
|
14
14
|
def additional_libs
|
15
15
|
super +
|
16
16
|
%w'
|
17
|
-
value/yard.rb
|
17
|
+
value/yard-1.0.rb
|
18
18
|
'
|
19
19
|
end
|
20
20
|
}
|
@@ -10,18 +10,20 @@ class YARD::Handlers::Ruby::ValuesHandler < YARD::Handlers::Ruby::Base
|
|
10
10
|
parameters = statement.parameters(false)
|
11
11
|
if YARD::Parser::Ruby::AstNode === parameters[-1][0] and
|
12
12
|
parameters[-1][0].type == :assoc and
|
13
|
-
parameters[-1].jump(:ident).source == 'comparable'
|
13
|
+
comparable = parameters[-1].find{ |e| e.jump(:ident).source == 'comparable' }
|
14
14
|
parameters.pop
|
15
|
+
comparables = (comparable[1].type == :array and comparable[1][0].map{ |e| e.jump(:ident).source })
|
15
16
|
ancestor 'Comparable'
|
16
17
|
ancestor 'Value::Comparable'
|
17
18
|
end
|
18
19
|
ancestor 'Value'
|
19
|
-
define('initialize', parameters.map{ |e| [e.jump(:ident).source, e.type == :array ? e[0][1].source : nil] })
|
20
|
-
|
20
|
+
initialize = define('initialize', parameters.map{ |e| [e.jump(:ident).source, e.type == :array ? e[0][1].source : nil] })
|
21
|
+
initialize.docstring.tags(:param).select{ |e| e.text and not e.text.empty? }.each do |e|
|
21
22
|
define e.name.sub(/\A[&*]/, ''), [],
|
22
|
-
'@return [%s] %s' % [e.types.join(', '), e.text], :protected
|
23
|
+
'@return [%s] %s' % [e.types ? e.types.join(', ') : '', e.text], :protected
|
23
24
|
e.text = ''
|
24
25
|
end
|
26
|
+
initialize.docstring.add_tag(YARD::Tags::Tag.new(:note, 'Comparisons between instances are made between %s.' % join(comparables))) if comparables
|
25
27
|
end
|
26
28
|
|
27
29
|
def ancestor(name)
|
@@ -42,6 +44,12 @@ class YARD::Handlers::Ruby::ValuesHandler < YARD::Handlers::Ruby::Base
|
|
42
44
|
m.visibility = visibility
|
43
45
|
}
|
44
46
|
end
|
47
|
+
|
48
|
+
def join(items)
|
49
|
+
return items.join('') if items.size < 2
|
50
|
+
return items.join(' and ') if items.size < 3
|
51
|
+
return '%s, and %s' % [items[0..-2].join(', '), items[-1]]
|
52
|
+
end
|
45
53
|
end
|
46
54
|
|
47
55
|
YARD::Handlers::Ruby::MacroHandler::IGNORE_METHODS['Value'] = true
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
|
-
require 'value/yard'
|
3
|
+
require 'value/yard-1.0'
|
4
4
|
|
5
5
|
Expectations do
|
6
6
|
expect [YARD::CodeObjects::Proxy.new(:root, 'Value')] do
|
@@ -104,7 +104,7 @@ class A
|
|
104
104
|
Value(:a, :comparable => true)
|
105
105
|
end
|
106
106
|
EOS
|
107
|
-
|
107
|
+
YARD::Registry.at('A').inheritance_tree(true)[1..3].map(&:path)
|
108
108
|
end
|
109
109
|
|
110
110
|
expect %w'Value Value::Comparable Comparable' do
|
@@ -121,6 +121,46 @@ class B
|
|
121
121
|
Value(:a, :b, :comparable => true)
|
122
122
|
end
|
123
123
|
EOS
|
124
|
-
|
124
|
+
YARD::Registry.at('B').inheritance_tree(true)[1..3].map(&:path)
|
125
|
+
end
|
126
|
+
|
127
|
+
expect 'Comparisons between instances are made between a.' do
|
128
|
+
YARD::Registry.clear
|
129
|
+
YARD::Parser::SourceParser.parse_string(<<EOS)
|
130
|
+
class A
|
131
|
+
# This is A.
|
132
|
+
# @param [String] a
|
133
|
+
# @param [String] b
|
134
|
+
Value(:a, :b, :other => true, :comparable => [:a])
|
135
|
+
end
|
136
|
+
EOS
|
137
|
+
YARD::Registry.at('A#initialize').docstring.tag(:note).text
|
138
|
+
end
|
139
|
+
|
140
|
+
expect 'Comparisons between instances are made between a and b.' do
|
141
|
+
YARD::Registry.clear
|
142
|
+
YARD::Parser::SourceParser.parse_string(<<EOS)
|
143
|
+
class A
|
144
|
+
# @param [String] a
|
145
|
+
# @param [String] b
|
146
|
+
# @param [String] c
|
147
|
+
Value(:a, :b, :c, :comparable => [:a, :b])
|
148
|
+
end
|
149
|
+
EOS
|
150
|
+
YARD::Registry.at('A#initialize').docstring.tag(:note).text
|
151
|
+
end
|
152
|
+
|
153
|
+
expect 'Comparisons between instances are made between a, b, and c.' do
|
154
|
+
YARD::Registry.clear
|
155
|
+
YARD::Parser::SourceParser.parse_string(<<EOS)
|
156
|
+
class A
|
157
|
+
# @param [String] a
|
158
|
+
# @param [String] b
|
159
|
+
# @param [String] c
|
160
|
+
# @param [String] d
|
161
|
+
Value(:a, :b, :c, :d, :comparable => [:a, :b, :c])
|
162
|
+
end
|
163
|
+
EOS
|
164
|
+
YARD::Registry.at('A#initialize').docstring.tag(:note).text
|
125
165
|
end
|
126
166
|
end
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: value
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: lookout
|
16
|
+
requirement: &14302368 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *14302368
|
14
25
|
- !ruby/object:Gem::Dependency
|
15
26
|
name: yard
|
16
|
-
requirement: &
|
27
|
+
requirement: &14303892 !ruby/object:Gem::Requirement
|
17
28
|
none: false
|
18
29
|
requirements:
|
19
30
|
- - ~>
|
@@ -21,18 +32,18 @@ dependencies:
|
|
21
32
|
version: 0.7.0
|
22
33
|
type: :development
|
23
34
|
prerelease: false
|
24
|
-
version_requirements: *
|
35
|
+
version_requirements: *14303892
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: inventory
|
27
|
-
requirement: &
|
38
|
+
requirement: &13859280 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ~>
|
31
42
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
43
|
+
version: '1.0'
|
33
44
|
type: :runtime
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *13859280
|
36
47
|
description: ! " Value\n\n Value is a library
|
37
48
|
for defining value objects in Ruby.\n"
|
38
49
|
email: now@bitwi.se
|
@@ -42,18 +53,19 @@ extra_rdoc_files: []
|
|
42
53
|
files:
|
43
54
|
- lib/value/comparable.rb
|
44
55
|
- lib/value/values.rb
|
45
|
-
- lib/value.rb
|
56
|
+
- lib/value-1.0.rb
|
46
57
|
- lib/value/version.rb
|
47
|
-
- lib/value/yard.rb
|
58
|
+
- lib/value/yard-1.0.rb
|
48
59
|
- test/unit/value/comparable.rb
|
49
60
|
- test/unit/value/values.rb
|
50
|
-
- test/unit/value.rb
|
61
|
+
- test/unit/value-1.0.rb
|
51
62
|
- test/unit/value/version.rb
|
52
|
-
- test/unit/value/yard.rb
|
63
|
+
- test/unit/value/yard-1.0.rb
|
53
64
|
- README
|
54
65
|
- Rakefile
|
55
66
|
homepage: https://github.com/now/value
|
56
67
|
licenses: []
|
68
|
+
metadata: {}
|
57
69
|
post_install_message:
|
58
70
|
rdoc_options: []
|
59
71
|
require_paths:
|
@@ -72,8 +84,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
84
|
version: '0'
|
73
85
|
requirements: []
|
74
86
|
rubyforge_project:
|
75
|
-
rubygems_version: 1.8.
|
87
|
+
rubygems_version: 1.8.10
|
76
88
|
signing_key:
|
77
|
-
specification_version:
|
89
|
+
specification_version: 4
|
78
90
|
summary: Value is a library for defining value objects in Ruby.
|
79
91
|
test_files: []
|