Class: KRL_CMD::Generate
- Inherits:
-
Object
- Object
- KRL_CMD::Generate
- Defined in:
- lib/generate.rb
Class Method Summary collapse
- .app ⇒ Object
- .gen_bookmarklet(args, env = "prod") ⇒ Object
- .gen_extension(type, args, env = 'prod') ⇒ Object
- .gen_infocard(args, env = "prod") ⇒ Object
- .get_endpoint_dir(env) ⇒ Object
- .go(args) ⇒ Object
- .write_file(ext, env) ⇒ Object
Class Method Details
.app ⇒ Object
85 86 87 88 89 90 |
# File 'lib/generate.rb', line 85 def self.app return @@app if defined?@@app require LIB_DIR + 'common' @@app = KRL_COMMON::get_app return @@app end |
.gen_bookmarklet(args, env = "prod") ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/generate.rb', line 44 def self.gen_bookmarklet(args, env="prod") puts "Generating Bookmarklet (#{env})" bm = "" opts = {} opts[:env] = env opts[:runtime] = args.to_s unless args.to_s.empty? endpoint = app.endpoint(:bookmarklet, opts) if endpoint["errors"].empty? bm = endpoint["data"] else raise "Invalid bookmark generated. \n#{endpoint.errors.join("\n")}" end bm_file = File.join(get_endpoint_dir(env), env + "_bookmarklet.html") File.open(bm_file, 'w') do |f| f.print("<textarea rows='5' cols='100'>#{bm}</textarea><br><br>") link = env == "prod" ? app.name : env + "_" + app.name f.print("<a href=\"#{bm.gsub('"', '"')}\">#{link}</a>") end puts "BOOKMARKLET:" puts bm puts puts "Saved bookmarklet to #{bm_file}." Launchy::Browser.run('file://' + bm_file) end |
.gen_extension(type, args, env = 'prod') ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/generate.rb', line 28 def self.gen_extension(type, args, env='prod') puts "Generating Extension (#{type.to_s}) #{args.join(', ')}" # ext = app.extension(type, args[0] || "", args[1] || "", args[2] || "" ) # write_file(ext, "prod") opts = {} opts[:extname] = args[0] if args[0] opts[:extauthor] = args[1] if args[1] opts[:extdesc] = args[2] if args[2] opts[:env] = env opts[:format] = 'url' ext = app.endpoint(type, opts) write_file(ext, env) end |
.gen_infocard(args, env = "prod") ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/generate.rb', line 72 def self.gen_infocard(args, env="prod") raise "You must specify a name for the card" if args.empty? puts "Generating Infocard (#{env})" opts = {} opts[:extname] = args[0] if args[0] opts[:datasets] = args[1] if args[1] opts[:env] = env opts[:format] = 'url' icard = app.endpoint(:info_card, opts) write_file(icard, env) end |
.get_endpoint_dir(env) ⇒ Object
92 93 94 95 96 97 |
# File 'lib/generate.rb', line 92 def self.get_endpoint_dir(env) dir_name = env == "prod" ? "/endpoints" : "/test" endpoint_dir = Dir.pwd + dir_name FileUtils.mkdir(endpoint_dir) unless File.directory?(endpoint_dir) return endpoint_dir end |
.go(args) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/generate.rb', line 10 def self.go(args) raise "Please specify an endpoint to generate" if args.to_s.empty? type = args.shift endpoints = { "firefox" => lambda {gen_extension(type, args)}, "chrome" => lambda {gen_extension(type, args)}, "ie" => lambda {gen_extension(type, args)}, "bookmarklet" => lambda {gen_bookmarklet(args)}, "infocard" => lambda {gen_infocard(args)} } if endpoints[type] endpoints[type].call else raise "Unknown endpoint specified (#{type})" end end |
.write_file(ext, env) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/generate.rb', line 99 def self.write_file(ext, env) if ext["errors"].empty? endpoint_dir = get_endpoint_dir(env) ext_file_name = File.join(endpoint_dir, ext["file_name"]) url = URI.parse(ext["data"]) # Download the file puts "Downloading endpoint from #{ext["data"]} to #{ext_file_name}" Net::HTTP.start(url.host, url.port) { |http| resp = http.get url.path open(ext_file_name, "wb") do |file| file.write(resp.body) end } puts "Endpoint was created: #{ext_file_name}" else raise ext["errors"].join("\n") end end |