gooddata 0.6.6 → 0.6.7
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.markdown → CHANGELOG.md} +6 -1
- data/lib/gooddata/cli/commands/project_cmd.rb +6 -29
- data/lib/gooddata/commands/project.rb +36 -44
- data/lib/gooddata/connection.rb +7 -0
- data/lib/gooddata/core/connection.rb +3 -0
- data/lib/gooddata/core/rest.rb +38 -19
- data/lib/gooddata/mixins/md_object_query.rb +3 -2
- data/lib/gooddata/models/metadata/dashboard.rb +3 -8
- data/lib/gooddata/models/metadata/report.rb +1 -6
- data/lib/gooddata/models/model.rb +5 -4
- data/lib/gooddata/models/process.rb +10 -14
- data/lib/gooddata/models/project.rb +34 -26
- data/lib/gooddata/models/project_blueprint.rb +14 -7
- data/lib/gooddata/models/project_creator.rb +2 -6
- data/lib/gooddata/models/schedule.rb +13 -2
- data/lib/gooddata/version.rb +1 -1
- data/spec/data/ruby_process/deep_files/deep_stuff.txt +1 -0
- data/spec/data/ruby_process/process.rb +2 -0
- data/spec/data/ruby_process/stuff.txt +1 -0
- data/spec/integration/full_process_schedule_spec.rb +69 -0
- data/spec/integration/full_project_spec.rb +14 -5
- data/spec/unit/models/schedule_spec.rb +7 -30
- metadata +7 -66
- data/doc/.gitignore +0 -1
- data/doc/css/.gitkeepme +0 -1
- data/doc/images/.gitkeepme +0 -1
- data/doc/images/background.png +0 -0
- data/doc/images/bg-callout-button.png +0 -0
- data/doc/images/header-logo.png +0 -0
- data/doc/images/logo-image.png +0 -0
- data/doc/js/.gitkeepme +0 -1
- data/doc/pages/GET_STARTED.md +0 -310
- data/doc/pages/HOMEPAGE.md +0 -77
- data/doc/pages/TUTORIALS.md +0 -52
- data/doc/pages/tutorial/BRICKS.md +0 -260
- data/doc/pages/tutorial/CREATING_A_MODEL.md +0 -81
- data/doc/pages/tutorial/CRUNCHING_NUMBERS.md +0 -231
- data/doc/pages/tutorial/TEST_DRIVEN_DEVELOPMENT.md +0 -120
- data/doc/pages/tutorial/YOUR_FIRST_PROJECT.md +0 -53
- data/doc/templates/default/class/dot/setup.rb +0 -6
- data/doc/templates/default/class/dot/superklass.erb +0 -3
- data/doc/templates/default/class/setup.rb +0 -37
- data/doc/templates/default/class/text/setup.rb +0 -11
- data/doc/templates/default/class/text/subclasses.erb +0 -5
- data/doc/templates/default/constant/text/header.erb +0 -11
- data/doc/templates/default/constant/text/setup.rb +0 -3
- data/doc/templates/default/docstring/setup.rb +0 -51
- data/doc/templates/default/docstring/text/abstract.erb +0 -2
- data/doc/templates/default/docstring/text/deprecated.erb +0 -2
- data/doc/templates/default/docstring/text/index.erb +0 -2
- data/doc/templates/default/docstring/text/note.erb +0 -4
- data/doc/templates/default/docstring/text/private.erb +0 -2
- data/doc/templates/default/docstring/text/returns_void.erb +0 -1
- data/doc/templates/default/docstring/text/text.erb +0 -1
- data/doc/templates/default/docstring/text/todo.erb +0 -4
- data/doc/templates/default/layout/dot/header.erb +0 -6
- data/doc/templates/default/layout/dot/setup.rb +0 -14
- data/doc/templates/default/method/setup.rb +0 -3
- data/doc/templates/default/method/text/header.erb +0 -1
- data/doc/templates/default/method_details/setup.rb +0 -11
- data/doc/templates/default/method_details/text/header.erb +0 -10
- data/doc/templates/default/method_details/text/method_signature.erb +0 -12
- data/doc/templates/default/method_details/text/setup.rb +0 -10
- data/doc/templates/default/module/dot/child.erb +0 -1
- data/doc/templates/default/module/dot/dependencies.erb +0 -3
- data/doc/templates/default/module/dot/header.erb +0 -6
- data/doc/templates/default/module/dot/info.erb +0 -14
- data/doc/templates/default/module/dot/setup.rb +0 -14
- data/doc/templates/default/module/setup.rb +0 -164
- data/doc/templates/default/module/text/children.erb +0 -10
- data/doc/templates/default/module/text/class_meths_list.erb +0 -8
- data/doc/templates/default/module/text/extends.erb +0 -8
- data/doc/templates/default/module/text/header.erb +0 -7
- data/doc/templates/default/module/text/includes.erb +0 -8
- data/doc/templates/default/module/text/instance_meths_list.erb +0 -8
- data/doc/templates/default/module/text/setup.rb +0 -12
- data/doc/templates/default/root/dot/child.erb +0 -3
- data/doc/templates/default/root/dot/setup.rb +0 -5
- data/doc/templates/default/tags/setup.rb +0 -55
- data/doc/templates/default/tags/text/example.erb +0 -12
- data/doc/templates/default/tags/text/index.erb +0 -1
- data/doc/templates/default/tags/text/option.erb +0 -20
- data/doc/templates/default/tags/text/overload.erb +0 -19
- data/doc/templates/default/tags/text/see.erb +0 -11
- data/doc/templates/default/tags/text/tag.erb +0 -13
@@ -1,51 +0,0 @@
|
|
1
|
-
def init
|
2
|
-
return if object.docstring.blank? && !object.has_tag?(:api)
|
3
|
-
sections :index, [:private, :deprecated, :abstract, :todo, :note, :returns_void, :text], T('tags')
|
4
|
-
end
|
5
|
-
|
6
|
-
def private
|
7
|
-
return unless object.has_tag?(:api) && object.tag(:api).text == 'private'
|
8
|
-
erb(:private)
|
9
|
-
end
|
10
|
-
|
11
|
-
def abstract
|
12
|
-
return unless object.has_tag?(:abstract)
|
13
|
-
erb(:abstract)
|
14
|
-
end
|
15
|
-
|
16
|
-
def deprecated
|
17
|
-
return unless object.has_tag?(:deprecated)
|
18
|
-
erb(:deprecated)
|
19
|
-
end
|
20
|
-
|
21
|
-
def todo
|
22
|
-
return unless object.has_tag?(:todo)
|
23
|
-
erb(:todo)
|
24
|
-
end
|
25
|
-
|
26
|
-
def note
|
27
|
-
return unless object.has_tag?(:note)
|
28
|
-
erb(:note)
|
29
|
-
end
|
30
|
-
|
31
|
-
def returns_void
|
32
|
-
return unless object.type == :method
|
33
|
-
return if object.name == :initialize && object.scope == :instance
|
34
|
-
return unless object.tags(:return).size == 1 && object.tag(:return).types == ['void']
|
35
|
-
erb(:returns_void)
|
36
|
-
end
|
37
|
-
|
38
|
-
def docstring_text
|
39
|
-
text = ""
|
40
|
-
unless object.tags(:overload).size == 1 && object.docstring.empty?
|
41
|
-
text = object.docstring
|
42
|
-
end
|
43
|
-
|
44
|
-
if text.strip.empty? && object.tags(:return).size == 1 && object.tag(:return).text
|
45
|
-
text = object.tag(:return).text.gsub(/\A([a-z])/) {|x| x.downcase }
|
46
|
-
text = "Returns #{text}" unless text.empty? || text =~ /^\s*return/i
|
47
|
-
text = text.gsub(/\A([a-z])/) {|x| x.upcase }
|
48
|
-
end
|
49
|
-
|
50
|
-
text.strip
|
51
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= indent(wrap("This method returns an undefined value.")) %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= indent wrap(h(docstring_text.strip), 68) %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= yieldall %>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<%= title_align_right format_object_title(object) %>
|
2
|
-
|
3
|
-
<%= align_right "(Defined in: #{object.file})" %>
|
4
|
-
<% if object.aliases.size > 0 %>
|
5
|
-
|
6
|
-
<%= align_right "(Also known as: #{object.aliases.map {|o| o.name(true).to_s }.join(',')})" %>
|
7
|
-
<% end %>
|
8
|
-
|
9
|
-
<%= yieldall %>
|
10
|
-
|
@@ -1,12 +0,0 @@
|
|
1
|
-
|
2
|
-
<% if object.tags(:overload).size == 1 %>
|
3
|
-
<%= indent wrap(signature(object.tag(:overload))) %>
|
4
|
-
<% elsif object.tags(:overload).size > 1 %>
|
5
|
-
<% object.tags(:overload).each do |overload| %>
|
6
|
-
<%= indent wrap(signature(overload)) %>
|
7
|
-
<% end %>
|
8
|
-
<% else %>
|
9
|
-
<%= indent wrap(signature(object)) %>
|
10
|
-
<% end %>
|
11
|
-
<%= hr %>
|
12
|
-
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= format_path object %> [label="{<%= yieldall.gsub("\n", '') %>}" rank=sink];
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<%= object.type %> <%= h object.name %>
|
2
|
-
<% if options.full %>
|
3
|
-
|
|
4
|
-
<% object.attributes.each do |scope, list| %>
|
5
|
-
<% list.sort_by {|name, rw| name.to_s }.each do |name, rw| %>
|
6
|
-
<%= uml_visibility(rw.values.compact.first) %> <%= h (rw[:read]||rw[:write]).name(true).gsub(/=$/,'') %> [<%= 'R' if rw[:read] %><%= 'W' if rw[:write] %>]\l
|
7
|
-
<% end %>
|
8
|
-
<% end %>
|
9
|
-
|
|
10
|
-
<% method_listing.each do |obj| %>
|
11
|
-
<%= uml_visibility obj %> <%= h obj.name(true) %>
|
12
|
-
<%= h(" : #{obj.tag(:return).types.first}") if obj.has_tag?(:return) && obj.tag(:return).types && obj.tag(:return).types.size > 0 %>\l
|
13
|
-
<% end %>
|
14
|
-
<% end %>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
def init
|
2
|
-
@modules = object.children.select {|o| o.type == :module }
|
3
|
-
@classes = object.children.select {|o| o.type == :class }
|
4
|
-
sections :child, [:info], :classes, [T('class')], :header, [T('module')], :dependencies
|
5
|
-
end
|
6
|
-
|
7
|
-
def dependencies
|
8
|
-
return unless options.dependencies
|
9
|
-
erb(:dependencies)
|
10
|
-
end
|
11
|
-
|
12
|
-
def classes
|
13
|
-
@classes.map {|k| yieldall :object => k }.join("\n")
|
14
|
-
end
|
@@ -1,164 +0,0 @@
|
|
1
|
-
include Helpers::ModuleHelper
|
2
|
-
|
3
|
-
def init
|
4
|
-
sections :header, :box_info, :pre_docstring, T('docstring'), :specs, :children,
|
5
|
-
:constant_summary, [T('docstring')], :inherited_constants,
|
6
|
-
:attribute_summary, [:item_summary], :inherited_attributes,
|
7
|
-
:method_summary, [:item_summary], :inherited_methods,
|
8
|
-
:methodmissing, [T('method_details')],
|
9
|
-
:attribute_details, [T('method_details')],
|
10
|
-
:method_details_list, [T('method_details')]
|
11
|
-
end
|
12
|
-
|
13
|
-
def pre_docstring
|
14
|
-
return if object.docstring.blank?
|
15
|
-
erb(:pre_docstring)
|
16
|
-
end
|
17
|
-
|
18
|
-
def children
|
19
|
-
@inner = [[:modules, []], [:classes, []]]
|
20
|
-
object.children.each do |child|
|
21
|
-
@inner[0][1] << child if child.type == :module
|
22
|
-
@inner[1][1] << child if child.type == :class
|
23
|
-
end
|
24
|
-
@inner.map! {|v| [v[0], run_verifier(v[1].sort_by {|o| o.name.to_s })] }
|
25
|
-
return if (@inner[0][1].size + @inner[1][1].size) == 0
|
26
|
-
erb(:children)
|
27
|
-
end
|
28
|
-
|
29
|
-
def methodmissing
|
30
|
-
mms = object.meths(:inherited => true, :included => true)
|
31
|
-
return unless @mm = mms.find {|o| o.name == :method_missing && o.scope == :instance }
|
32
|
-
erb(:methodmissing)
|
33
|
-
end
|
34
|
-
|
35
|
-
def method_listing(include_specials = true)
|
36
|
-
return @smeths ||= method_listing.reject {|o| special_method?(o) } unless include_specials
|
37
|
-
return @meths if @meths
|
38
|
-
@meths = object.meths(:inherited => false, :included => !options.embed_mixins.empty?)
|
39
|
-
if options.embed_mixins.size > 0
|
40
|
-
@meths = @meths.reject {|m| !options.embed_mixins_match?(m.namespace) }
|
41
|
-
end
|
42
|
-
@meths = sort_listing(prune_method_listing(@meths))
|
43
|
-
@meths
|
44
|
-
end
|
45
|
-
|
46
|
-
def special_method?(meth)
|
47
|
-
return true if meth.name(true) == '#method_missing'
|
48
|
-
return true if meth.constructor?
|
49
|
-
false
|
50
|
-
end
|
51
|
-
|
52
|
-
def attr_listing
|
53
|
-
return @attrs if @attrs
|
54
|
-
@attrs = []
|
55
|
-
object.inheritance_tree(true).each do |superclass|
|
56
|
-
next if superclass.is_a?(CodeObjects::Proxy)
|
57
|
-
next if options.embed_mixins.size > 0 &&
|
58
|
-
options.embed_mixins_match?(superclass) == false
|
59
|
-
[:class, :instance].each do |scope|
|
60
|
-
superclass.attributes[scope].each do |name, rw|
|
61
|
-
attr = prune_method_listing([rw[:read], rw[:write]].compact, false).first
|
62
|
-
@attrs << attr if attr
|
63
|
-
end
|
64
|
-
end
|
65
|
-
break if options.embed_mixins.empty?
|
66
|
-
end
|
67
|
-
@attrs = sort_listing(@attrs)
|
68
|
-
end
|
69
|
-
|
70
|
-
def constant_listing
|
71
|
-
return @constants if @constants
|
72
|
-
@constants = object.constants(:included => false, :inherited => false)
|
73
|
-
@constants += object.cvars
|
74
|
-
@constants = run_verifier(@constants)
|
75
|
-
@constants
|
76
|
-
end
|
77
|
-
|
78
|
-
def sort_listing(list)
|
79
|
-
list.sort_by {|o| [o.scope.to_s, o.name.to_s.downcase] }
|
80
|
-
end
|
81
|
-
|
82
|
-
def inherited_attr_list(&block)
|
83
|
-
object.inheritance_tree(true)[1..-1].each do |superclass|
|
84
|
-
next if superclass.is_a?(YARD::CodeObjects::Proxy)
|
85
|
-
next if options.embed_mixins.size > 0 && options.embed_mixins_match?(superclass) != false
|
86
|
-
attribs = superclass.attributes[:instance]
|
87
|
-
attribs = attribs.reject {|name, rw| object.child(:scope => :instance, :name => name) != nil }
|
88
|
-
attribs = attribs.sort_by {|args| args.first.to_s }.map {|n, m| m[:read] || m[:write] }
|
89
|
-
attribs = prune_method_listing(attribs, false)
|
90
|
-
yield superclass, attribs if attribs.size > 0
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def inherited_constant_list(&block)
|
95
|
-
object.inheritance_tree(true)[1..-1].each do |superclass|
|
96
|
-
next if superclass.is_a?(YARD::CodeObjects::Proxy)
|
97
|
-
next if options.embed_mixins.size > 0 && options.embed_mixins_match?(superclass) != false
|
98
|
-
consts = superclass.constants(:included => false, :inherited => false)
|
99
|
-
consts = consts.reject {|const| object.child(:type => :constant, :name => const.name) != nil }
|
100
|
-
consts = consts.sort_by {|const| const.name.to_s }
|
101
|
-
consts = run_verifier(consts)
|
102
|
-
yield superclass, consts if consts.size > 0
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
def docstring_full(obj)
|
107
|
-
docstring = ""
|
108
|
-
if obj.tags(:overload).size == 1 && obj.docstring.empty?
|
109
|
-
docstring = obj.tag(:overload).docstring
|
110
|
-
else
|
111
|
-
docstring = obj.docstring
|
112
|
-
end
|
113
|
-
|
114
|
-
if docstring.summary.empty? && obj.tags(:return).size == 1 && obj.tag(:return).text
|
115
|
-
docstring = Docstring.new(obj.tag(:return).text.gsub(/\A([a-z])/) {|x| x.upcase }.strip)
|
116
|
-
end
|
117
|
-
|
118
|
-
docstring
|
119
|
-
end
|
120
|
-
|
121
|
-
def docstring_summary(obj)
|
122
|
-
docstring_full(obj).summary
|
123
|
-
end
|
124
|
-
|
125
|
-
def groups(list, type = "Method")
|
126
|
-
if groups_data = object.groups
|
127
|
-
list.each {|m| groups_data |= [m.group] if m.group && owner != m.namespace }
|
128
|
-
others = list.select {|m| !m.group || !groups_data.include?(m.group) }
|
129
|
-
groups_data.each do |name|
|
130
|
-
items = list.select {|m| m.group == name }
|
131
|
-
yield(items, name) unless items.empty?
|
132
|
-
end
|
133
|
-
else
|
134
|
-
others = []
|
135
|
-
group_data = {}
|
136
|
-
list.each do |meth|
|
137
|
-
if meth.group
|
138
|
-
(group_data[meth.group] ||= []) << meth
|
139
|
-
else
|
140
|
-
others << meth
|
141
|
-
end
|
142
|
-
end
|
143
|
-
group_data.each {|group, items| yield(items, group) unless items.empty? }
|
144
|
-
end
|
145
|
-
|
146
|
-
scopes(others) {|items, scope| yield(items, "#{scope.to_s.capitalize} #{type} Summary") }
|
147
|
-
end
|
148
|
-
|
149
|
-
def scopes(list)
|
150
|
-
[:class, :instance].each do |scope|
|
151
|
-
items = list.select {|m| m.scope == scope }
|
152
|
-
yield(items, scope) unless items.empty?
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
def mixed_into(object)
|
157
|
-
unless globals.mixed_into
|
158
|
-
globals.mixed_into = {}
|
159
|
-
list = run_verifier Registry.all(:class, :module)
|
160
|
-
list.each {|o| o.mixins.each {|m| (globals.mixed_into[m.path] ||= []) << o } }
|
161
|
-
end
|
162
|
-
|
163
|
-
globals.mixed_into[object.path] || []
|
164
|
-
end
|