File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11# encoding: UTF-8
22
3+ require 'pmap'
4+ $pmap_default_thread_count = 20 # rubocop:disable GlobalVars
5+
36# GoodData Module
47module GoodData
58end
Original file line number Diff line number Diff line change 1+ # encoding: UTF-8
2+
3+ # See https://gist.github.com/ubermajestix/3644301
4+
5+ module GoodData
6+ module Mixin
7+ # When an RSpec test like this fails,
8+ #
9+ # @my_array.should == [@some_model, @some_model2]
10+ #
11+ # RSpec will call inspect on each of the objects to "help" you figure out
12+ # what went wrong. Well, inspect will usually dump a TON OF SHIT and make trying
13+ # to figure out why `@my_array` is not made up of `@some_model` and `@some_model2`.
14+ #
15+ # This little module and technique helps get around that. It will redefine `inspect`
16+ # if you include it in your model object.
17+ #
18+ # You can define a whitelist of methods that inspect will dump.
19+ # It will always provide `object_id` at a minimum.
20+ #
21+ # To use it, drop it in spec/support/inspector.rb and class_eval the models to
22+ # override `inspect`.
23+ module Inspector
24+ def inspect
25+ string = "#<#{ self . class . name } :#{ object_id } "
26+ fields = self . class . inspector_fields . map { |field | "#{ field } : #{ send ( field ) } " }
27+ string << fields . join ( ', ' ) << '>'
28+ end
29+
30+ def self . inspected
31+ @inspected ||= [ ]
32+ end
33+
34+ def self . included ( source )
35+ # $stdout.puts "Overriding inspect on #{source}"
36+ inspected << source
37+ source . class_eval do
38+ def self . inspector ( *fields )
39+ @inspector_fields = *fields
40+ end
41+
42+ def self . inspector_fields
43+ @inspector_fields ||= [ ]
44+ end
45+ end
46+ end
47+ end
48+ end
49+ end
Original file line number Diff line number Diff line change @@ -208,6 +208,7 @@ def links
208208 def link
209209 links [ 'self' ]
210210 end
211+
211212 alias_method :uri , :link
212213
213214 def obj_id
Original file line number Diff line number Diff line change 33require 'csv'
44require 'zip'
55require 'fileutils'
6+ require 'multi_json'
67require 'pmap'
78require 'zip'
89
910require_relative '../exceptions/no_project_error'
1011
11- require_relative '../mixins/rest_resource'
1212require_relative '../rest/resource'
13+ require_relative '../mixins/author'
14+ require_relative '../mixins/contributor'
15+ require_relative '../mixins/rest_resource'
1316
1417require_relative 'process'
1518require_relative 'project_role'
Original file line number Diff line number Diff line change 77require_relative 'connections/connections'
88require_relative 'object_factory'
99
10+ require_relative '../mixins/inspector'
11+
1012module GoodData
1113 module Rest
1214 # User's interface to GoodData Platform.
@@ -34,6 +36,9 @@ class Client
3436 # TODO: Decide if we need provide direct access to factory
3537 attr_reader :factory
3638
39+ include Mixin ::Inspector
40+ inspector :object_id
41+
3742 #################################
3843 # Class methods
3944 #################################
You can’t perform that action at this time.
0 commit comments