class Faker::Omniauth

Attributes

first_name[R]
last_name[R]
name[R]

Public Class Methods

facebook() click to toggle source
# File lib/faker/omniauth.rb, line 66
def facebook
  uid = Number.number(7)
  auth = Omniauth.new()
  username = "#{auth.first_name.downcase[0]}#{auth.last_name.downcase}"
  email = "#{auth.first_name.downcase}@#{auth.last_name.downcase}.com"
  {
    provider: "facebook",
    uid: uid,
    info: {
      email: email,
      name: auth.name,
      first_name: auth.first_name,
      last_name: auth.last_name,
      image: image,
      verified: random_boolean
    },
    credentials: {
      token: Crypto.md5,
      expires_at: Time.forward.to_i,
      expires: true
    },
    extra: {
      raw_info: {
        id: uid,
        name: auth.name,
        first_name: auth.first_name,
        last_name: auth.last_name,
        link: "http://www.facebook.com/#{username}",
        username: username,
        location: {
          id: Number.number(9),
          name: city_state
        },
        gender: gender,
        email: email,
        timezone: timezone,
        locale: 'en_US',
        verified: random_boolean,
        updated_time: Time.backward.iso8601
      }
    }
  }
end
github() click to toggle source
# File lib/faker/omniauth.rb, line 248
def github
  uid = Number.number(8)
  auth = Omniauth.new()
  first_name = auth.first_name.downcase
  last_name  = auth.last_name.downcase
  login = "#{first_name}-#{last_name}"
  html_url = "https://github.com/#{login}"
  api_url = "https://api.github.com/users/#{login}"
  email = "#{first_name}@example.com"

  {
    provider: "github",
    uid: uid,
    info: {
      nickname: login,
      email: email,
      name: auth.name,
      image: image,
      urls:{
        GitHub: html_url
      }
    },
    credentials: {
      token: Crypto.md5,
      expires:  false
    },
    extra: {
      raw_info: {
        login: login,
        id: uid,
        avatar_url: image,
        gravatar_id: "",
        url: api_url,
        html_url: html_url,
        followers_url: "#{api_url}/followers",
        following_url: "#{api_url}/following{/other_user}",
        gists_url: "#{api_url}/gists{/gist_id}",
        starred_url: "#{api_url}/starred{/owner}{/repo}",
        subscriptions_url: "#{api_url}/subscriptions",
        organizations_url: "#{api_url}/orgs",
        repos_url: "#{api_url}/repos",
        events_url: "#{api_url}/events{/privacy}",
        received_events_url: "#{api_url}/received_events",
        type: "User",
        site_admin:  random_boolean,
        name: auth.name,
        company: nil,
        blog: nil,
        location: city_state,
        email: email,
        hireable: nil,
        bio: nil,
        public_repos: random_number_from_range(1..1000),
        public_gists: random_number_from_range(1..1000),
        followers: random_number_from_range(1..1000),
        following: random_number_from_range(1..1000),
        created_at: Time.backward(36400).iso8601,
        updated_at: Time.backward(2).iso8601
      }
    }
  }

end
google() click to toggle source
# File lib/faker/omniauth.rb, line 15
def google
  uid = Number.number(9)
  auth = Omniauth.new()
  email = "#{auth.first_name.downcase}@example.com"
  {
    provider: "google_oauth2",
    uid: uid,
    info: {
      name: auth.name,
      first_name: auth.first_name,
      last_name: auth.last_name,
      email: email,
      image: image
    },
    credentials:  {
      token: Crypto.md5,
      refresh_token: Crypto.md5,
      expires_at: Time.forward.to_i,
      expires: true
    },
    extra: {
      raw_info: {
        sub:  uid,
        email: email,
        email_verified: random_boolean,
        name: auth.name,
        given_name: auth.first_name,
        family_name: auth.last_name,
        profile: "https://plus.google.com/#{uid}",
        picture: image,
        gender: gender,
        birthday: Date.backward(36400).strftime("%Y-%m-%d"),
        local: "en",
        hd: "#{Company.name.downcase}.com"
      },
    },
    id_info: {
      "iss" => "accounts.google.com",
      "at_hash" => Crypto.md5,
      "email_verified" => "true",
      "sub" => Number.number(28).to_s,
      "azp" => "APP_ID",
      "email" => email,
      "aud" => "APP_ID",
      "iat" => Number.number(10),
      "exp" => Time.forward.to_i.to_s,
      "openid_id" => "https://www.google.com/accounts/o8/id?id=#{uid}"
    }
  }
end
linkedin() click to toggle source
# File lib/faker/omniauth.rb, line 183
def linkedin
  uid = Number.number(6)
  auth = Omniauth.new()
  first_name = auth.first_name.downcase
  last_name = auth.last_name.downcase
  email = "#{first_name}@#{last_name}.com"
  location = city_state
  description = Lorem.sentence
  token = Crypto.md5
  secret = Crypto.md5
  industry = Commerce.department
  url = "http://www.linkedin.com/in/#{first_name}#{last_name}"
  {
    "provider" => "linkedin",
    "uid" => uid,
    "info" => {
      "name" => auth.name,
      "email" => email,
      "nickname" => auth.name,
      "first_name" => auth.first_name,
      "last_name" => auth.last_name,
      "location" => location,
      "description" => description,
      "image" => image,
      "phone" => PhoneNumber.phone_number,
      "headline" => description,
      "industry" => industry,
      "urls" => {
        "public_profile" => url
      }
    },
    "credentials" => {
      "token" => token,
      "secret" => secret
    },
    "extra" => {
      "access_token" => {
        "token" => token,
        "secret" => secret,
        "consumer" => nil,
        "params" => {
          oauth_token: token,
          oauth_token_secret: secret,
          oauth_expires_in: Time.forward.to_i,
          oauth_authorization_expires_in: Time.forward.to_i,
        },
        "response" => nil
      },
      "raw_info" => {
        "firstName" => auth.first_name,
        "headline" => description,
        "id" => uid,
        "industry" => industry,
        "lastName" => auth.last_name,
        "location" => {
          "country" => { "code" => Address.country_code.downcase },
          "name" => city_state.split(', ').first,
        },
        "pictureUrl" => image,
        "publicProfileUrl" => url
      }
    }
  }
end
new() click to toggle source
# File lib/faker/omniauth.rb, line 8
def initialize
  @name = "#{Name.first_name} #{Name.last_name}"
  @first_name = name.split(' ').first
  @last_name = name.split(' ').last
end
twitter() click to toggle source
# File lib/faker/omniauth.rb, line 110
def twitter
  uid = Number.number(6)
  auth = Omniauth.new()
  location = city_state
  description = Lorem.sentence
  {
    provider: "twitter",
    uid: uid,
    info: {
      nickname: auth.name.downcase.gsub(' ', ''),
      name: auth.name,
      location: location,
      image: image,
      description: description,
      urls: {
        Website: nil,
        Twitter: "https://twitter.com/#{auth.name.downcase.gsub(' ', '')}"
      }
    },
    credentials: {
      token: Crypto.md5,
      secret: Crypto.md5
    },
    extra: {
      access_token: "",
      raw_info: {
        name: auth.name,
        listed_count: random_number_from_range(1..10),
        profile_sidebar_border_color: Color.hex_color,
        url: nil,
        lang: 'en',
        statuses_count: random_number_from_range(1..1000),
        profile_image_url: image,
        profile_background_image_url_https: image,
        location: location,
        time_zone: Address.city,
        follow_request_sent: random_boolean,
        id: uid,
        profile_background_tile: random_boolean,
        profile_sidebar_fill_color: Color.hex_color,
        followers_count: random_number_from_range(1..10000),
        default_profile_image: random_boolean,
        screen_name: '',
        following: random_boolean,
        utc_offset: timezone,
        verified: random_boolean,
        favourites_count: random_number_from_range(1..10),
        profile_background_color: Color.hex_color,
        is_translator: random_boolean,
        friends_count: random_number_from_range(1..10000),
        notifications: random_boolean,
        geo_enabled: random_boolean,
        profile_background_image_url: image,
        protected: random_boolean,
        description: description,
        profile_link_color: Color.hex_color,
        created_at: Time.backward.strftime("%a %b %d %H:%M:%S %z %Y"),
        id_str: uid,
        profile_image_url_https: image,
        default_profile: random_boolean,
        profile_use_background_image: random_boolean,
        entities: {
          description: {
            urls: []
          }
        },
        profile_text_color: Color.hex_color,
        contributors_enabled: random_boolean
      }
    }
  }
end

Private Class Methods

city_state() click to toggle source
# File lib/faker/omniauth.rb, line 326
def city_state
  "#{Address.city}, #{Address.state}"
end
gender() click to toggle source
# File lib/faker/omniauth.rb, line 314
def gender
  shuffle(["male", "female"]).pop
end
image() click to toggle source
# File lib/faker/omniauth.rb, line 322
def image
  Placeholdit.image
end
random_boolean() click to toggle source
# File lib/faker/omniauth.rb, line 334
def random_boolean
  shuffle([true, false]).pop
end
random_number_from_range(range) click to toggle source
# File lib/faker/omniauth.rb, line 330
def random_number_from_range(range)
  shuffle(range.to_a).pop
end
timezone() click to toggle source
# File lib/faker/omniauth.rb, line 318
def timezone
  shuffle((-12..12).to_a).pop
end