From 8d0f41ecb9a3bea7566cffd5152077b5fd9c0c35 Mon Sep 17 00:00:00 2001 From: Ashish Rao Date: Fri, 6 Sep 2019 15:00:26 +0530 Subject: [PATCH 1/4] add brands and vendors to commerce --- doc/default/commerce.md | 6 ++++++ lib/faker/default/commerce.rb | 8 ++++++++ lib/locales/en/commerce.yml | 2 ++ test/faker/default/test_faker_commerce.rb | 8 ++++++++ 4 files changed, 24 insertions(+) diff --git a/doc/default/commerce.md b/doc/default/commerce.md index 0dd13bb42b..32f1accc33 100644 --- a/doc/default/commerce.md +++ b/doc/default/commerce.md @@ -23,4 +23,10 @@ Faker::Commerce.promotion_code #=> "AmazingDeal829102" Faker::Commerce.promotion_code(digits: 2) #=> "AmazingPrice57" Faker::Commerce.material #=> "Plastic" + +# Generate a random brand +Faker::Commerce.brand #=> "Apple" + +# Generate a random vendor +Faker::Commerce.vendor #=> "Walmart" ``` diff --git a/lib/faker/default/commerce.rb b/lib/faker/default/commerce.rb index 2f5dc6a0bb..740a9e96b0 100644 --- a/lib/faker/default/commerce.rb +++ b/lib/faker/default/commerce.rb @@ -57,6 +57,14 @@ def price(legacy_range = NOT_GIVEN, legacy_as_string = NOT_GIVEN, range: 0..100. price end + def brand + fetch('commerce.brand') + end + + def vendor + fetch('commerce.vendor') + end + private def categories(num) diff --git a/lib/locales/en/commerce.yml b/lib/locales/en/commerce.yml index f314584c51..62205f2a12 100644 --- a/lib/locales/en/commerce.yml +++ b/lib/locales/en/commerce.yml @@ -9,3 +9,5 @@ en: promotion_code: adjective: ['Amazing', 'Awesome', 'Cool', 'Good', 'Great', 'Incredible', 'Killer', 'Premium', 'Special', 'Stellar', 'Sweet'] noun: ['Code', 'Deal', 'Discount', 'Price', 'Promo', 'Promotion', 'Sale', 'Savings'] + brand: ['Samsung', 'Dell', 'Nike', 'Apple', 'LG', 'Adidas', 'Nikon', 'Sony', 'Beats', 'GoPro'] + vendor: ["Amazon", "Dollar", "General", "Walmart", "Target"] diff --git a/test/faker/default/test_faker_commerce.rb b/test/faker/default/test_faker_commerce.rb index 5ae0f2fccb..4d85f0a6e1 100644 --- a/test/faker/default/test_faker_commerce.rb +++ b/test/faker/default/test_faker_commerce.rb @@ -95,4 +95,12 @@ def test_when_as_string_is_true assert @tester.price(range: 0..100.0, as_string: true).is_a?(String) assert @tester.price(range: 100..500.0, as_string: true).include?('.') end + + def test_brand + assert @tester.brand.match(/[A-Z][a-z]+\.?/) + end + + def test_vendor + assert @tester.vendor.match(/[A-Z][a-z]+\.?/) + end end From 197f4937e7cd2322fc109491d0f8238fd2e9daf2 Mon Sep 17 00:00:00 2001 From: Ashish Rao Date: Fri, 6 Sep 2019 15:00:26 +0530 Subject: [PATCH 2/4] add brands and vendors to commerce --- doc/default/commerce.md | 6 ++++++ lib/faker/default/commerce.rb | 8 ++++++++ lib/locales/en/commerce.yml | 2 ++ test/faker/default/test_faker_commerce.rb | 8 ++++++++ 4 files changed, 24 insertions(+) diff --git a/doc/default/commerce.md b/doc/default/commerce.md index 0dd13bb42b..32f1accc33 100644 --- a/doc/default/commerce.md +++ b/doc/default/commerce.md @@ -23,4 +23,10 @@ Faker::Commerce.promotion_code #=> "AmazingDeal829102" Faker::Commerce.promotion_code(digits: 2) #=> "AmazingPrice57" Faker::Commerce.material #=> "Plastic" + +# Generate a random brand +Faker::Commerce.brand #=> "Apple" + +# Generate a random vendor +Faker::Commerce.vendor #=> "Walmart" ``` diff --git a/lib/faker/default/commerce.rb b/lib/faker/default/commerce.rb index 2f5dc6a0bb..740a9e96b0 100644 --- a/lib/faker/default/commerce.rb +++ b/lib/faker/default/commerce.rb @@ -57,6 +57,14 @@ def price(legacy_range = NOT_GIVEN, legacy_as_string = NOT_GIVEN, range: 0..100. price end + def brand + fetch('commerce.brand') + end + + def vendor + fetch('commerce.vendor') + end + private def categories(num) diff --git a/lib/locales/en/commerce.yml b/lib/locales/en/commerce.yml index f314584c51..62205f2a12 100644 --- a/lib/locales/en/commerce.yml +++ b/lib/locales/en/commerce.yml @@ -9,3 +9,5 @@ en: promotion_code: adjective: ['Amazing', 'Awesome', 'Cool', 'Good', 'Great', 'Incredible', 'Killer', 'Premium', 'Special', 'Stellar', 'Sweet'] noun: ['Code', 'Deal', 'Discount', 'Price', 'Promo', 'Promotion', 'Sale', 'Savings'] + brand: ['Samsung', 'Dell', 'Nike', 'Apple', 'LG', 'Adidas', 'Nikon', 'Sony', 'Beats', 'GoPro'] + vendor: ["Amazon", "Dollar", "General", "Walmart", "Target"] diff --git a/test/faker/default/test_faker_commerce.rb b/test/faker/default/test_faker_commerce.rb index 5ae0f2fccb..4d85f0a6e1 100644 --- a/test/faker/default/test_faker_commerce.rb +++ b/test/faker/default/test_faker_commerce.rb @@ -95,4 +95,12 @@ def test_when_as_string_is_true assert @tester.price(range: 0..100.0, as_string: true).is_a?(String) assert @tester.price(range: 100..500.0, as_string: true).include?('.') end + + def test_brand + assert @tester.brand.match(/[A-Z][a-z]+\.?/) + end + + def test_vendor + assert @tester.vendor.match(/[A-Z][a-z]+\.?/) + end end From c9cdcd456b50026c4b6991fc7f14db06a1b7be1a Mon Sep 17 00:00:00 2001 From: Ashish Rao Date: Thu, 19 Sep 2019 11:02:38 +0530 Subject: [PATCH 3/4] add YARD docs for brand and vendor --- lib/faker/default/commerce.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/faker/default/commerce.rb b/lib/faker/default/commerce.rb index 740a9e96b0..1558a47f7b 100644 --- a/lib/faker/default/commerce.rb +++ b/lib/faker/default/commerce.rb @@ -57,10 +57,30 @@ def price(legacy_range = NOT_GIVEN, legacy_as_string = NOT_GIVEN, range: 0..100. price end + ## + # Produces a randomized string of a brand name + # @example + # Faker::Commerce.brand #=> 'Apple' + # + # @return [string] + # + # @faker.version next + # + ## def brand fetch('commerce.brand') end + ## + # Produces a randomized string of a vendor name + # @example + # Faker::Commerce.vendor #=> 'Dollar General' + # + # @return [string] + # + # @faker.version next + # + ## def vendor fetch('commerce.vendor') end From 0a8c3f59ac7b61ffaaa5d94f58e443cf5d786410 Mon Sep 17 00:00:00 2001 From: Ashish Rao Date: Thu, 19 Sep 2019 11:04:07 +0530 Subject: [PATCH 4/4] modified to list --- lib/locales/en/commerce.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/locales/en/commerce.yml b/lib/locales/en/commerce.yml index 62205f2a12..820a7e9621 100644 --- a/lib/locales/en/commerce.yml +++ b/lib/locales/en/commerce.yml @@ -9,5 +9,20 @@ en: promotion_code: adjective: ['Amazing', 'Awesome', 'Cool', 'Good', 'Great', 'Incredible', 'Killer', 'Premium', 'Special', 'Stellar', 'Sweet'] noun: ['Code', 'Deal', 'Discount', 'Price', 'Promo', 'Promotion', 'Sale', 'Savings'] - brand: ['Samsung', 'Dell', 'Nike', 'Apple', 'LG', 'Adidas', 'Nikon', 'Sony', 'Beats', 'GoPro'] - vendor: ["Amazon", "Dollar", "General", "Walmart", "Target"] + brand: ['Samsung', + 'Dell', + 'Nike', + 'Apple', + 'LG', + 'Adidas', + 'Nikon', + 'Sony', + 'Beats', + 'GoPro' + ] + vendor: [ + 'Amazon', + 'Dollar General', + 'Walmart', + 'Target' + ] \ No newline at end of file