1
0
mirror of https://github.com/askn/faker.git synced 2023-08-10 21:13:01 +03:00

add Hacker

This commit is contained in:
Aşkın Gedik 2016-03-28 00:08:52 +03:00
parent ed6663e116
commit ca166af7af
3 changed files with 86 additions and 0 deletions

View File

@ -223,6 +223,9 @@ Faker::Number.decimal(2) #=> "11.88"
Faker::Number.decimal(2, 3) #=> "18.843"
# Required parameter: digits
Faker::Number.hexadecimal(3) #=> "e74"
Faker::Number.between(1, 10) #=> 7
Faker::Number.positive #=> 235.59238499107653
@ -242,6 +245,31 @@ Faker::PhoneNumber.phone_number #=> "397.693.1309"
```
### Faker::Hacker
---------------------
Are you having trouble writing tech-savvy dialogue for your latest screenplay?
Worry not! Hollywood-grade technical talk is ready to fill out any form where you need to look smart.
```crystal
# Full Phrase
Faker::Hacker.say_something_smart #=> "Try to compress the SQL interface, maybe it will program the back-end hard drive!"
# Short technical abbreviations
Faker::Hacker.abbreviation #=> "RAM"
# Hacker centric adjectives
Faker::Hacker.adjective #=> "open-source"
# Only the best hacker related nouns
Faker::Hacker.noun #=> "bandwidth"
# Actions that hackers take
Faker::Hacker.verb #=> "bypass"
# Verbs that end in -ing
Faker::Hacker.ingverb #=> "synthesizing"
```
### Faker::Team
```crystal

32
spec/hacker_spec.cr Normal file
View File

@ -0,0 +1,32 @@
require "./spec_helper"
describe Faker::Hacker do
assert { (Faker::Hacker.phrases.size == 8).should be_true }
it "phrases" do
Faker::Hacker.phrases.each do |phrase|
phrase.nil?.should be_false
(phrase == "").should be_false
end
end
it "noun" do
Faker::Hacker.noun.match(/\w+/).should_not eq nil
end
it "abbreviation" do
Faker::Hacker.abbreviation.match(/\w+/).should_not eq nil
end
it "adjective" do
Faker::Hacker.adjective.match(/\w+/).should_not eq nil
end
it "verb" do
Faker::Hacker.verb.match(/\w+/).should_not eq nil
end
it "ingverb" do
Faker::Hacker.ingverb.match(/\w+/).should_not eq nil
end
end

26
src/faker/hacker.cr Normal file
View File

@ -0,0 +1,26 @@
# Port of http://shinytoylabs.com/jargon/
module Faker
class Hacker
def self.say_something_smart
phrases.sample
end
{% for data_type in %w(abbreviation adjective noun verb ingverb) %}
def self.{{data_type.id}}
Faker.fetch(Data["hacker"]["{{data_type.id}}"])
end
{% end %}
def self.phrases
["If we #{verb} the #{noun}, we can get to the #{abbreviation} #{noun} through the #{adjective} #{abbreviation} #{noun}!",
"We need to #{verb} the #{adjective} #{abbreviation} #{noun}!",
"Try to #{verb} the #{abbreviation} #{noun}, maybe it will #{verb} the #{adjective} #{noun}!",
"You can't #{verb} the #{noun} without #{ingverb} the #{adjective} #{abbreviation} #{noun}!",
"Use the #{adjective} #{abbreviation} #{noun}, then you can #{verb} the #{adjective} #{noun}!",
"The #{abbreviation} #{noun} is down, #{verb} the #{adjective} #{noun} so we can #{verb} the #{abbreviation} #{noun}!",
"#{ingverb} the #{noun} won't do anything, we need to #{verb} the #{adjective} #{abbreviation} #{noun}!",
"I'll #{verb} the #{adjective} #{abbreviation} #{noun}, that should #{noun} the #{abbreviation} #{noun}!",
]
end
end
end