Sha256: d5f5ff99eba147d631768701ec42cdcfb5922175909562d771aa8f08341aa0b8

Contents?: true

Size: 1.09 KB

Versions: 2

Compression:

Stored size: 1.09 KB

Contents

module Alman
  module HeadersBuilder

    def self.build(headers)
      headers ||= {}
      default_headers.merge(headers)
    end

    def self.default_headers
      headers = {
        :user_agent => "Alman/#{Alman.api_version} RubyBindings/#{Alman::VERSION}",
      }

      begin
        headers.update({
          :x_alman_client_user_agent => JSON.generate(user_agent)
        })
      rescue => e
        headers.update({
          :x_alman_client_raw_user_agent => user_agent.inspect,
          :error => "#{e} (#{e.class})"
        })
      end
      headers
    end

    def self.user_agent
      lang_version = "#{RUBY_VERSION} p#{RUBY_PATCHLEVEL} (#{RUBY_RELEASE_DATE})"

      {
        :bindings_version => Alman::VERSION,
        :lang => 'ruby',
        :lang_version => lang_version,
        :platform => RUBY_PLATFORM,
        :publisher => 'alman',
        :uname => get_uname
      }
    end

    def self.get_uname
      `uname -a 2>/dev/null`.strip if RUBY_PLATFORM =~ /linux|darwin/i
    rescue Errno::ENOMEM => ex # couldn't create subprocess
      "uname lookup failed"
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
alman-0.0.2 lib/alman/apibits/headers_builder.rb
alman-0.0.1 lib/alman/apibits/headers_builder.rb