Module: JScrambler
- Defined in:
- lib/jscrambler.rb,
lib/jscrambler/client.rb,
lib/jscrambler/config.rb,
lib/jscrambler/engine.rb,
lib/jscrambler/errors.rb,
lib/jscrambler/project.rb,
lib/jscrambler/railtie.rb,
lib/jscrambler/version.rb,
lib/jscrambler/archiver.rb,
lib/jscrambler/project/file.rb,
lib/jscrambler/middleware/authentication.rb,
lib/jscrambler/middleware/default_params.rb
Defined Under Namespace
Modules: Middleware
Classes: ApiError, Archiver, Client, Config, ConfigError, Engine, InvalidPath, MissingKeys, Project, ProjectNotFound, Railtie
Constant Summary
collapse
- LOGGER =
Logger.new(STDOUT)
- POLLING_MAX_RETRIES =
60
- POLLING_FREQUENCY =
1
- VERSION =
'1.0.1'
Class Method Summary
collapse
Class Method Details
.download_code(requested_project, json_config = nil) ⇒ Object
57
58
59
60
61
|
# File 'lib/jscrambler.rb', line 57
def download_code(requested_project, json_config=nil)
self.find_project(requested_project, json_config) do |project|
project.download
end
end
|
.find_project(requested_project, json_config) ⇒ Object
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/jscrambler.rb', line 78
def find_project(requested_project, json_config)
project = if requested_project.kind_of? JScrambler::Project
requested_project
else
JScrambler::Client.new(json_config).projects.find { |tmp_project|
tmp_project.id == requested_project
}
end
if project.nil?
raise JScrambler::ProjectNotFound, "Could not find project #{requested_project}"
else
if block_given?
yield(project)
else
project
end
end
end
|
.get_info(requested_project, json_config = nil) ⇒ Object
63
64
65
|
# File 'lib/jscrambler.rb', line 63
def get_info(requested_project, json_config=nil)
self.find_project(requested_project, json_config)
end
|
.poll_project(requested_project, json_config = nil) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/jscrambler.rb', line 37
def poll_project(requested_project, json_config=nil)
self.find_project(requested_project, json_config) do |project|
LOGGER.info "Waiting for project #{project.id} to finish processing..."
retries = 0
status = project.status
while status != :finished
sleep POLLING_FREQUENCY
status = project.status
break if status == :finished
raise JScrambler::ApiError, 'Retries timeout exceeded while polling project' if retries >= POLLING_MAX_RETRIES
retries += 1
end
LOGGER.info "Project #{project.id} is ready!"
true
end
end
|
.process(json_config = nil) ⇒ Object
67
68
69
70
71
72
|
# File 'lib/jscrambler.rb', line 67
def process(json_config=nil)
project = self.upload_code(json_config)
self.poll_project(project)
project.download
LOGGER.info "Finished processing #{project.id}!"
end
|
.projects(json_config = nil) ⇒ Object
.upload_code(json_config = nil) ⇒ Object