-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'upstream/master'
- Loading branch information
Showing
11 changed files
with
1,888 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Faker::Creature::Bird | ||
|
||
```ruby | ||
# Random common family name of a bird | ||
Faker::Creature::Bird.common_family_name #=> "Owls" | ||
|
||
# Random taxonomic order from the class Aves (ie. those are birds) | ||
Faker::Creature::Bird.order #=> "Passeriformes" # Fun fact, 60% of birds are Passeriformes! | ||
|
||
# Random bird anatomy word | ||
Faker::Creature::Bird.anatomy #=> "rump" | ||
|
||
# Random bird anatomy word, in the past tense | ||
Faker::Creature::Bird.anatomy_past_tense #=> "breasted" | ||
|
||
# Random bird geography word | ||
Faker::Creature::Bird.geo #=> "Eurasian" | ||
|
||
# Random bird color word | ||
Faker::Creature::Bird.color #=> "ferruginous" | ||
|
||
# Random bird adjective word | ||
Faker::Creature::Bird.adjective #=> "common" | ||
|
||
# Random emotional adjective NOT typically used in bird names | ||
Faker::Creature::Bird.emotional_adjective #=> "cantankerous" | ||
|
||
# Random silly adjective NOT used in bird names | ||
Faker::Creature::Bird.silly_adjective #=> "drunk" | ||
|
||
# Random common name for a bird | ||
Faker::Creature::Bird.common_name #=> 'wren' | ||
|
||
# Random plausible common name for a bird | ||
Faker::Creature::Bird.plausible_common_name #=> 'Hellinger's Wren' | ||
|
||
# Random implausible common name for a bird | ||
Faker::Creature::Bird.implausible_common_name #=> 'Hellinger's Cantankerous Chickadee' | ||
|
||
# Returns a random pair order / common name pair | ||
Faker::Creature::Bird.order_with_common_name #=> {:order=>"Coliiformes", :common_name=>"Mousebird"} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Faker::Tea | ||
|
||
Available since version next. | ||
|
||
```ruby | ||
# Get a tea variety | ||
Faker::Tea.variety # => "Earl Grey" | ||
|
||
# Get a tea variety, by type of tea. Accepted types: | ||
# ['Black', 'Green', 'Herbal', 'Oolong', 'White'] | ||
Faker::Tea.variety(type: 'Green') #=> "Jasmine" | ||
|
||
# Get a type of tea | ||
Faker::Tea.type #=> "Herbal" | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,203 @@ | ||
# frozen_string_literal: true | ||
|
||
module Faker | ||
class Creature | ||
class Bird < Base | ||
flexible :bird | ||
|
||
class << self | ||
## | ||
# Produces a random common family name of a bird. | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.common_family_name #=> "Owls" | ||
# | ||
# @faker.version next | ||
def common_family_name | ||
fetch('creature.bird.common_family_name') | ||
end | ||
|
||
## | ||
# Produces a random common taxonomic order from the class Aves | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.order #=> "Passeriformes" | ||
# | ||
# @faker.version next | ||
def order | ||
orders = I18n.translate('faker.creature.bird.order_common_map').keys | ||
sample(orders).to_s | ||
end | ||
|
||
## | ||
# Produces a random bird anatomy word | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.anatomy #=> "rump" | ||
# | ||
# @faker.version next | ||
def anatomy | ||
fetch('creature.bird.anatomy') | ||
end | ||
|
||
## | ||
# Produces a random, past tensed bird anatomy word | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.anatomy #=> "breasted" | ||
# | ||
# @faker.version next | ||
def anatomy_past_tense | ||
fetch('creature.bird.anatomy_past_tense') | ||
end | ||
|
||
## | ||
# Produces a random geographical word used in describing birds | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.geo #=> "Eurasian" | ||
# | ||
# @faker.version next | ||
def geo | ||
fetch('creature.bird.geo') | ||
end | ||
|
||
## | ||
# Produces a random color word used in describing birds | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.color #=> "ferruginous" | ||
# | ||
# @faker.version next | ||
def color | ||
fetch('creature.bird.colors') | ||
end | ||
|
||
## | ||
# Produces a random adjective used to described birds | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.adjective #=> 'common' | ||
# | ||
# @faker.version next | ||
def adjective | ||
fetch('creature.bird.adjectives') | ||
end | ||
|
||
## | ||
# Produces a random emotional adjective NOT used to described birds | ||
# ...but could be | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.emotional_adjective #=> 'cantankerous' | ||
# | ||
# @faker.version next | ||
def emotional_adjective | ||
fetch('creature.bird.emotional_adjectives') | ||
end | ||
|
||
## | ||
# Produces a random adjective NOT used to described birds | ||
# ...but probably shouldn't | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.silly_adjective #=> 'drunk' | ||
# | ||
# @faker.version next | ||
def silly_adjective | ||
fetch('creature.bird.silly_adjectives') | ||
end | ||
|
||
## | ||
# Produces a random common name for a bird | ||
# | ||
# @param [String | Symbol | nil] tax_order Tax | ||
# @return [String] | ||
# @raises TypeError If `tax_order` cannot be converted into a Symbol | ||
# @raises ArgumentError If `tax_order` is not a valid taxonomic order | ||
# | ||
# @example | ||
# Faker::Creature::Bird.common_name #=> 'wren' | ||
# | ||
# @faker.version next | ||
def common_name(tax_order = nil) | ||
map = translate('faker.creature.bird.order_common_map') | ||
if tax_order.nil? | ||
sample(map.values.flatten).downcase | ||
else | ||
raise TypeError, 'tax_order parameter must be symbolizable' \ | ||
unless tax_order.respond_to?(:to_sym) | ||
raise ArgumentError, "#{tax_order} is not a valid taxonomic order" \ | ||
unless map.keys.include?(tax_order.to_sym) | ||
|
||
the_order = translate('faker.creature.bird.order_common_map')[tax_order.to_sym] | ||
sample(the_order).downcase | ||
end | ||
end | ||
|
||
## | ||
# Produces a random and plausible common name for a bird | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.plausible_common_name #=> 'Hellinger's Wren' | ||
# | ||
# @faker.version next | ||
def plausible_common_name | ||
parse('creature.bird.plausible_common_names').capitalize | ||
end | ||
|
||
## | ||
# Produces a random and IMplausible common name for a bird | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.implausible_common_name #=> 'Hellinger's Cantankerous Chickadee' | ||
# | ||
# @faker.version next | ||
def implausible_common_name | ||
parse('creature.bird.implausible_common_names').capitalize | ||
end | ||
|
||
## | ||
# Produces a hash entry with a random order and a random common name | ||
# that is of that order | ||
# | ||
# @return [Hash<order,common_name>] | ||
# | ||
# @example | ||
# Faker::Creature::Bird.order_with_common_name #=> { | ||
# order: ''Accipitriformes', | ||
# common_name: 'Osprey' | ||
# } | ||
# | ||
# @faker.version next | ||
def order_with_common_name(tax_order = nil) | ||
map = I18n.translate('faker.creature.bird.order_common_map') | ||
o = tax_order.nil? ? order : tax_order | ||
{ order: o, common_name: sample(map[o.to_sym]) } | ||
end | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# frozen_string_literal: true | ||
|
||
module Faker | ||
class Tea < Base | ||
flexible :tea | ||
|
||
class << self | ||
## | ||
# Produces a random variety or blend of tea. | ||
# | ||
# @param type [String, nil] the type of tea to query for (valid types: 'Black', 'Green', 'Oolong', 'White', and 'Herbal') | ||
# @return [String] a variety of tea | ||
# | ||
# @example | ||
# Faker::Tea.variety | ||
# #=> "Earl Grey" | ||
# | ||
# @example | ||
# Faker::Tea.variety(type: 'Green') | ||
# #=> "Jasmine" | ||
# @faker.version next | ||
def variety(type: nil) | ||
type ||= fetch('tea.type') | ||
fetch "tea.variety.#{type.downcase}" | ||
end | ||
|
||
## | ||
# Produces a random type of tea. | ||
# | ||
# @return [String] a type of tea | ||
# | ||
# @example | ||
# Faker::Tea.type | ||
# #=> "Green" | ||
# @faker.version next | ||
def type | ||
fetch 'tea.type' | ||
end | ||
end | ||
end | ||
end |
Oops, something went wrong.