class BitmovinPlayerGenerator
Public Instance Methods
install()
click to toggle source
# File lib/generators/bitmovin_player/bitmovin_player_generator.rb, line 10 def install readme File.expand_path('.././README', __FILE__) @api_key = ask('Please enter your Bitmovin-Api-Key:') default_versions = fetch_player_versions puts "Available Player versions:" default_versions.each_with_index do |version, index| puts "#{index + 1}) [#{version["category"]}] #{version["version"]}" end default = default_versions.last player_index = ask("What player version do you want to install? (#{default_versions.length}):") player_index = default_versions.length if (player_index.blank?) selected_version = default_versions[player_index.to_i - 1] puts "Installing Player `#{selected_version["version"]}`" @cdn_url = selected_version["cdnUrl"] @license_key = get_license_key @version = selected_version["version"] template "config.yml.erb", "config/bitmovin_player.yml" application "config.bitmovin_player = config_for(:bitmovin_player)" if (File.exists?('app/views/layouts/application.html.haml')) inject_into_file 'app/views/layouts/application.html.haml', :before => '%body' do "= bitmovin_player_script\n" end puts "Injected a script tag into your HAML Layout. Please make sure it is indented correctly." end if (File.exists?('app/views/layouts/application.html.erb')) inject_into_file 'app/views/layouts/application.html.erb', :before => '</head>' do "<%= bitmovin_player_script %>\n" end end puts "Installation successful!" readme File.expand_path('.././INSTRUCTIONS', __FILE__) end
Private Instance Methods
check_api_response!(response)
click to toggle source
# File lib/generators/bitmovin_player/bitmovin_player_generator.rb, line 60 def check_api_response!(response) if (response.code == 401) abort("Unrecognized API-Key - please try again") end end
fetch_player_versions()
click to toggle source
# File lib/generators/bitmovin_player/bitmovin_player_generator.rb, line 51 def fetch_player_versions headers = { "bitcodin-api-key" => @api_key } response = HTTParty.get('https://app.bitmovin.com/api/player-versions', headers: headers) check_api_response!(response) player_versions = JSON.parse(response.body) player_versions.select { |version| version["isDefault"] == true } end
get_license_key()
click to toggle source
# File lib/generators/bitmovin_player/bitmovin_player_generator.rb, line 66 def get_license_key headers = { "bitcodin-api-key" => @api_key } response = HTTParty.get('https://app.bitmovin.com/api/bitdash-licensing', headers: headers) check_api_response!(response) body = JSON.parse(response.body) body["licenseKey"] end