Module: Ree
- Extended by:
- Args
- Defined in:
- lib/ree.rb,
lib/ree/cli.rb,
lib/ree/gen.rb,
lib/ree/version.rb,
lib/ree/cli/init.rb,
lib/ree/gen/init.rb,
lib/ree/gen/package.rb,
lib/ree/spec_runner.rb,
lib/ree/cli/indexing.rb,
lib/ree/cli/spec_runner.rb,
lib/ree/licensing/decryptor.rb,
lib/ree/licensing/encryptor.rb,
lib/ree/cli/generate_package.rb,
lib/ree/licensing/obfuscator.rb,
lib/ree/cli/generate_template.rb,
lib/ree/licensing/client_store.rb,
lib/ree/cli/indexing/index_file.rb,
lib/ree/cli/licensing/obfuscate.rb,
lib/ree/cli/indexing/index_package.rb,
lib/ree/cli/indexing/index_project.rb,
lib/ree/cli/licensing/renew_license.rb,
lib/ree/licensing/bytecode_compiler.rb,
lib/ree/licensing/license_generator.rb,
lib/ree/cli/generate_packages_schema.rb,
lib/ree/cli/licensing/register_client.rb,
sig/ree.rbs
Defined Under Namespace
Modules: Args, BeanDSL, CLI, Contracts, FnDSL, Gen, Inspectable, Licensing, LinkDSL, MethodAddedHook, ObjectSchema, PackageDSL, PackagesSchema, RSpecLinkDSL, SpecRunner
Classes: BenchmarkMethodPlugin, BenchmarkTracer, BuildPackageDsl, Container, DomainError, Error, ErrorDsl, ImportDsl, LinkImportBuilder, LinkValidator, Object, ObjectCompiler, ObjectDsl, ObjectError, ObjectLink, Package, PackageDep, PackageEnvVar, PackageFileStructureLoader, PackageLoader, PackagesDetector, PackagesFacade, PackagesSchemaBuilder, PackagesSchemaLoader, PackagesSchemaLocator, PackagesStore, PathHelper, ReeGem, RenderUtils, StringUtils, TemplateDetector, TemplateHandler, TemplateRenderer
Constant Summary
collapse
- PACKAGE =
'package'
- SCHEMAS =
'schemas'
- SCHEMA =
'schema'
- REE_SETUP =
'ree.setup.rb'
- PACKAGES_SCHEMA_FILE =
'Packages.schema.json'
- ROOT_DIR_MESSAGE =
'Ree.root_dir is not set. Use Ree.init(DIR) to set project dir'
- VERSION =
"1.3.3"
Class Method Summary
collapse
Class Method Details
.benchmark_mode? ⇒ Boolean
132
133
134
|
# File 'lib/ree.rb', line 132
def benchmark_mode?
!!@benchmark_mode
end
|
.disable_benchmark_mode ⇒ Object
128
129
130
|
# File 'lib/ree.rb', line 128
def disable_benchmark_mode
@benchmark_mode = false
end
|
.disable_contracts ⇒ Object
112
113
114
|
# File 'lib/ree.rb', line 112
def disable_contracts
ENV['NO_CONTRACTS'] = 'true'
end
|
.disable_irb_mode ⇒ Object
108
109
110
|
# File 'lib/ree.rb', line 108
def disable_irb_mode
@irb_mode = false
end
|
.enable_benchmark_mode ⇒ Object
124
125
126
|
# File 'lib/ree.rb', line 124
def enable_benchmark_mode
@benchmark_mode = true
end
|
.enable_contracts ⇒ Object
116
117
118
|
# File 'lib/ree.rb', line 116
def enable_contracts
ENV['NO_CONTRACTS'] = nil
end
|
.enable_irb_mode ⇒ Object
Switches Ree into irb mode that allows to declare ree objects inside IRB
104
105
106
|
# File 'lib/ree.rb', line 104
def enable_irb_mode
@irb_mode = true
end
|
218
219
220
221
|
# File 'lib/ree.rb', line 218
def gem(name)
check_arg(name, :name, Symbol)
gems.detect { _1.name == name }
end
|
223
224
225
226
|
# File 'lib/ree.rb', line 223
def gems
@gems ||= []
@gems
end
|
.hide_internal_swagger_endpoints ⇒ Object
Routes declared as visibility :internal are excluded from generated
swagger documents. Enable this for public-facing deployments and leave it
off internally, so the same codebase yields a public and a full document.
139
140
141
|
# File 'lib/ree.rb', line 139
def hide_internal_swagger_endpoints
@hide_internal_swagger_endpoints = true
end
|
.hide_internal_swagger_endpoints? ⇒ Boolean
147
148
149
|
# File 'lib/ree.rb', line 147
def hide_internal_swagger_endpoints?
!!@hide_internal_swagger_endpoints
end
|
.init(dir, irb: false) ⇒ Object
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
|
# File 'lib/ree.rb', line 188
def init(dir, irb: false)
check_arg(dir, :dir, String)
if !Dir.exist?(dir)
raise Ree::Error.new("Dir does not exist: #{dir}", :invalid_root_dir)
end
@packages_schema_path = locate_packages_schema(dir)
@root_dir = Pathname.new(@packages_schema_path).dirname.to_s
ree_setup_path = File.join(@root_dir, REE_SETUP)
if File.exist?(ree_setup_path)
require(ree_setup_path)
end
if irb
require('irb')
enable_irb_mode
FileUtils.cd(@root_dir) do
IRB.start(@root_dir)
end
end
@root_dir
end
|
.irb_mode? ⇒ Boolean
120
121
122
|
# File 'lib/ree.rb', line 120
def irb_mode?
!!@irb_mode
end
|
.load_entire_package(name) ⇒ Object
263
264
265
266
|
# File 'lib/ree.rb', line 263
def load_entire_package(name)
check_arg(name, :name, Symbol)
container.load_entire_package(name)
end
|
.load_package(name) ⇒ Object
258
259
260
261
|
# File 'lib/ree.rb', line 258
def load_package(name)
check_arg(name, :name, Symbol)
container.load_package(name)
end
|
.locate_packages_schema(path) ⇒ Object
268
269
270
271
272
|
# File 'lib/ree.rb', line 268
def locate_packages_schema(path)
check_arg(path, :path, String)
Ree.logger.debug("locate_packages_schema: #{path}")
Ree::PackagesSchemaLocator.new.call(path)
end
|
93
94
95
96
97
98
99
100
101
|
# File 'lib/ree.rb', line 93
def logger
@logger ||= begin
logger = Logger.new(STDOUT)
logger.level = Logger::WARN
logger
end
@logger
end
|
.method_added_plugins ⇒ Object
165
166
167
|
# File 'lib/ree.rb', line 165
def method_added_plugins
@method_added_plugins ||= []
end
|
.obfuscated? ⇒ Boolean
151
152
153
|
# File 'lib/ree.rb', line 151
def obfuscated?
ENV.has_key?('REE_LICENSE_KEY')
end
|
.packages_schema_path ⇒ Object
274
275
276
|
# File 'lib/ree.rb', line 274
def packages_schema_path
@packages_schema_path || (raise Ree::Error.new(ROOT_DIR_MESSAGE, :invalid_root_dir))
end
|
.preload_for(env) ⇒ Object
Define preload context for registered objects
178
179
180
181
|
# File 'lib/ree.rb', line 178
def preload_for(env)
check_arg(env, :env, Symbol)
@prelaod_for = env
end
|
.preload_for?(env) ⇒ Boolean
183
184
185
186
|
# File 'lib/ree.rb', line 183
def preload_for?(env)
check_arg(env, :env, Symbol)
@prelaod_for == env
end
|
.register_gem(gem_name, dir) ⇒ Ree::ReeGem
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
# File 'lib/ree.rb', line 231
def register_gem(gem_name, dir)
check_arg(gem_name, :gem_name, Symbol)
check_arg(dir, :dir, String)
if gem(gem_name)
raise Ree::Error.new("Ree already registered gem `#{name}`", :duplicate_gem)
end
if !Dir.exist?(dir)
raise Ree::Error.new("Dir does not exist: #{dir}", :invalid_gem_dir)
end
dir = File.expand_path(dir)
packages_schema_path = locate_packages_schema(dir)
gem_dir = Pathname.new(packages_schema_path).dirname.to_s
ree_setup_path = File.join(gem_dir, REE_SETUP)
if File.exist?(ree_setup_path)
require(ree_setup_path)
end
gem = ReeGem.new(gem_name, gem_dir, packages_schema_path)
@gems.push(gem)
gem
end
|
.register_method_added_plugin(plugin_class) ⇒ Object
169
170
171
|
# File 'lib/ree.rb', line 169
def register_method_added_plugin(plugin_class)
method_added_plugins << plugin_class
end
|
.reset_license ⇒ Object
161
162
163
|
# File 'lib/ree.rb', line 161
def reset_license
@license = nil
end
|
.set_logger_debug ⇒ Object
173
174
175
|
# File 'lib/ree.rb', line 173
def set_logger_debug
logger.level = Logger::DEBUG
end
|
.show_internal_swagger_endpoints ⇒ Object
143
144
145
|
# File 'lib/ree.rb', line 143
def show_internal_swagger_endpoints
@hide_internal_swagger_endpoints = false
end
|