Class: Synthra::Types::Base
- Inherits:
-
Object
- Object
- Synthra::Types::Base
show all
- Defined in:
- lib/synthra/types/base.rb
Direct Known Subclasses
AddressLocation::Address, AddressLocation::AddressLine2, AddressLocation::AirportContinent, AddressLocation::AirportCountryCode, AddressLocation::AirportElevation, AddressLocation::AirportGpsCode, AddressLocation::AirportLatitude, AddressLocation::AirportLongitude, AddressLocation::AirportMunicipality, AddressLocation::AirportName, AddressLocation::AirportRegionCode, AddressLocation::BankCity, AddressLocation::BankCountryCode, AddressLocation::BankState, AddressLocation::BankStreetAddress, AddressLocation::City, AddressLocation::Country, AddressLocation::CountryCode, AddressLocation::HospitalCity, AddressLocation::HospitalPostalCode, AddressLocation::HospitalState, AddressLocation::HospitalStreetAddress, AddressLocation::Latitude, AddressLocation::Longitude, AddressLocation::PostalCode, AddressLocation::State, AddressLocation::StreetName, AddressLocation::StreetNumber, AddressLocation::StreetSuffix, AddressLocation::Timezone, CommerceProducts::CompanyName, CommerceProducts::ConstructionHeavyEquipment, CommerceProducts::ConstructionMaterial, CommerceProducts::ConstructionRole, CommerceProducts::ConstructionStandardCostCode, CommerceProducts::ConstructionSubcontractCategory, CommerceProducts::ConstructionTrade, CommerceProducts::Discount, CommerceProducts::JobTitle, CommerceProducts::ProductCategory, CommerceProducts::ProductDescription, CommerceProducts::ProductGrocery, CommerceProducts::ProductName, CommerceProducts::ProductPrice, CommerceProducts::ProductSubcategory, CommerceProducts::ShirtSize, CommerceProducts::Sku, CommerceProducts::TaxRate, Core::AlphanumericId, Core::ArrayType, Core::BelongsTo, Core::Boolean, Core::CharacterSequence, Core::Const, Core::Copy, Core::Custom, Core::DefaultValue, Core::DeterministicId, Core::DeterministicUuid, Core::DigitSequence, Core::Enum, Core::HasMany, Core::HasOne, Core::IdSequence, Core::Locale, Core::MapByField, Core::Number, Core::NumericStringId, Core::ObjectType, Core::OneOf, Core::Reference, Core::SchemaRef, Core::Sequence, Core::Shared, Core::ShortId, Core::SnowflakeId, Core::Text, Core::Token, Core::Ulid, Core::UnixTimestampMs, Core::Uuid, Crypto::BitcoinAddress, Crypto::EthereumAddress, Crypto::HashType, Crypto::PrivateKey, DateTime::DateBetween, DateTime::DateType, DateTime::DatetimeType, DateTime::FutureDate, DateTime::Now, DateTime::PastDate, DateTime::TimeType, DateTime::Timestamp, FinanceBanking::AccountNumber, FinanceBanking::BankLei, FinanceBanking::BankName, FinanceBanking::BankRiadCode, FinanceBanking::BankRoutingNumber, FinanceBanking::BankSwiftBic, FinanceBanking::CreditCard, FinanceBanking::CreditCardType, FinanceBanking::Currency, FinanceBanking::DunsNumber, FinanceBanking::Ein, FinanceBanking::Iban, FinanceBanking::MedicareBeneficiaryId, FinanceBanking::Money, FinanceBanking::NhsNumber, FinanceBanking::Ssn, FinanceBanking::TransactionAmount, Formula, HealthMedical::BloodType, HealthMedical::Bmi, HealthMedical::HeartRate, HealthMedical::MedicalCode, JsonArray, MediaEntertainment::MovieGenres, MediaEntertainment::MovieTitle, NaughtyString, PersonalNames::Age, PersonalNames::FamilyNameChinese, PersonalNames::FirstName, PersonalNames::FirstNameEuropean, PersonalNames::FirstNameFemale, PersonalNames::FirstNameMale, PersonalNames::FullName, PersonalNames::Gender, PersonalNames::GenderAbbrev, PersonalNames::GenderBinary, PersonalNames::GenderFacebook, PersonalNames::GivenNameChinese, PersonalNames::LastName, PersonalNames::Name, PersonalNames::NationalId, PersonalNames::Suffix, PersonalNames::Title, PersonalNames::Username, Regex, RepeatingElement, Scenario, TechnologyInternet::AppBundleId, TechnologyInternet::AppName, TechnologyInternet::AppVersion, TechnologyInternet::Base64ImageUrl, TechnologyInternet::Domain, TechnologyInternet::DummyImageUrl, TechnologyInternet::Email, TechnologyInternet::Ip, TechnologyInternet::IpV4Cidr, TechnologyInternet::IpV6Cidr, TechnologyInternet::Ipv6, TechnologyInternet::Language, TechnologyInternet::LanguageCode, TechnologyInternet::MacAddress, TechnologyInternet::MimeType, TechnologyInternet::MobileDeviceBrand, TechnologyInternet::MobileDeviceModel, TechnologyInternet::MobileDeviceOs, TechnologyInternet::MobileDeviceReleaseDate, TechnologyInternet::MongodbObjectId, TechnologyInternet::Phone, TechnologyInternet::TopLevelDomain, TechnologyInternet::Url, TechnologyInternet::UserAgent, Template, TextContent::Avatar, TextContent::Blank, TextContent::Buzzword, TextContent::CatchPhrase, TextContent::Color, TextContent::DepartmentCorporate, TextContent::DepartmentRetail, TextContent::EmptyArray, TextContent::Encrypt, TextContent::FakeCompanyName, TextContent::FileName, TextContent::Frequency, TextContent::HashtagText, TextContent::HexColor, TextContent::IndicesPair, TextContent::LinkedInSkill, TextContent::Md5, TextContent::MessageText, TextContent::NatoPhonetic, TextContent::Paragraphs, TextContent::Password, TextContent::PasswordHash, TextContent::Race, TextContent::RowNumber, TextContent::Sentences, TextContent::Sha1, TextContent::Sha256, TextContent::ShortHexColor, TextContent::Slogan, TextContent::Slug, TextContent::SocialHandle, TextContent::SqlExpression, TextContent::University, TextContent::Words, Travel::Airline, Travel::AirportCode, Travel::FlightNumber, Travel::SeatNumber
Instance Method Summary
collapse
-
#faker_adapter(context) ⇒ Object
protected
-
#generate(rng, context, args, mode) ⇒ Object
-
#generate_edge(rng, context, args) ⇒ Object
-
#generate_hostile(rng, context, args) ⇒ Object
Generate hostile/malicious data for security testing Override this method in type classes to provide specific attack vectors.
-
#generate_invalid(rng, context, args) ⇒ Object
-
#generate_random(rng, context, args) ⇒ Object
Instance Method Details
#faker_adapter(context) ⇒ Object
41
42
43
44
45
|
# File 'lib/synthra/types/base.rb', line 41
def faker_adapter(context)
return nil unless context
context.faker_adapter if context.respond_to?(:faker_adapter)
end
|
#generate(rng, context, args, mode) ⇒ Object
6
7
8
9
10
11
12
13
14
|
# File 'lib/synthra/types/base.rb', line 6
def generate(rng, context, args, mode)
case mode
when :random then generate_random(rng, context, args)
when :edge then generate_edge(rng, context, args)
when :invalid then generate_invalid(rng, context, args)
when :hostile then generate_hostile(rng, context, args)
else generate_random(rng, context, args)
end
end
|
#generate_edge(rng, context, args) ⇒ Object
20
21
22
|
# File 'lib/synthra/types/base.rb', line 20
def generate_edge(rng, context, args)
generate_random(rng, context, args)
end
|
#generate_hostile(rng, context, args) ⇒ Object
Generate hostile/malicious data for security testing
Override this method in type classes to provide specific attack vectors
34
35
36
37
|
# File 'lib/synthra/types/base.rb', line 34
def generate_hostile(rng, context, args)
generate_edge(rng, context, args)
end
|
#generate_invalid(rng, context, args) ⇒ Object
24
25
26
|
# File 'lib/synthra/types/base.rb', line 24
def generate_invalid(rng, context, args)
nil
end
|
#generate_random(rng, context, args) ⇒ Object
16
17
18
|
# File 'lib/synthra/types/base.rb', line 16
def generate_random(rng, context, args)
raise NotImplementedError, "#{self.class} must implement #generate_random"
end
|