Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save muratatak77/85ab126cde8a47691ed8 to your computer and use it in GitHub Desktop.
Save muratatak77/85ab126cde8a47691ed8 to your computer and use it in GitHub Desktop.
Assignment5 ( Git - commit - validation - faker gem using)
1. Assignment5 diye bir klasor olusturalim assignments altimda. Buna bir alias atayalim a5 yazinca ona girsin.
Applications Desktop Documents Downloads Library Movies Music Pictures Public assignment
➜ ~ cd Documents/ror
➜ ror ls
Mercedes.rb assgmnt-5 ctesi-asgn lesson-3-questionss
ara-asgnm assignment3 ders2.txt lesson3.rb
asgmn3 class Car ders3.txt muratatak@muratatak ~ $ rvm gemset list
assg4 classCar.rb gallery.rb rvrs.rb
➜ ror cd assgmnt-5
➜ assgmnt-5 ls
Assignment5.txt asgmn5.rb
➜ assgmnt-5 mkdir assignments
➜ assgmnt-5 ls
Assignment5.txt asgmn5.rb assignments
➜ assgmnt-5 cd assignments
➜ assignments ls
➜ assignments mkdir Assignment5
➜ assignments ls
Assignment5
➜ assignments ls
Assignment5
➜ assignments ls
Assignment5
➜ assignments pwd
/Users/muratatak/Documents/ror/assgmnt-5/assignments
➜ assignments cd
➜ ~ vi .zshrc
➜ ~ vi .zshrc
➜ ~ a5
zsh: command not found: a5
➜ ~ vi .zshrc
➜ ~ vi .zshrc
➜ ~
alias as="cd /Users/muratatak/assignment"
alias o="cd /Users/muratatak"
alias a5="cd /Users/muratatak/Documents/ror/assgmnt-5/assignments/Assignment5"
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="robbyrussell"
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
2. Bu klasore daha once olusturdugumuz user sinifini kopyalayalim ve git reposu olusturarak bir initial commit yapalim.
➜ Assignment5 git init
Initialized empty Git repository in /Users/muratatak/Documents/ror/assgmnt-5/assignments/Assignment5/.git/
➜ Assignment5 git:(master) ✗ ls
user.rb
➜ Assignment5 git:(master) ✗ -ls lash
zsh: command not found: -ls
➜ Assignment5 git:(master) ✗ -ls lah
zsh: command not found: -ls
➜ Assignment5 git:(master) ✗ -ls -lah
zsh: command not found: -ls
➜ Assignment5 git:(master) ✗ ls -lah
total 24
drwxr-xr-x 5 muratatak staff 170B May 28 10:34 .
drwxr-xr-x 4 muratatak staff 136B May 28 10:33 ..
-rw-r--r--@ 1 muratatak staff 6.0K May 28 10:33 .DS_Store
drwxr-xr-x 9 muratatak staff 306B May 28 10:34 .git
-rw-rw-rw-@ 1 muratatak staff 516B May 24 15:07 user.rb
➜ Assignment5 git:(master) ✗ git statsu
git: 'statsu' is not a git command. See 'git --help'.
Did you mean this?
status
➜ Assignment5 git:(master) ✗ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
user.rb
nothing added to commit but untracked files present (use "git add" to track)
➜ Assignment5 git:(master) ✗ git add .
➜ Assignment5 git:(master) ✗ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .DS_Store
new file: user.rb
➜ Assignment5 git:(master) ✗ git commit -m "user.rb added"
[master (root-commit) 6bd3b38] user.rb added
2 files changed, 25 insertions(+)
create mode 100644 .DS_Store
create mode 100644 user.rb
➜ Assignment5 git:(master) git status
On branch master
nothing to commit, working directory clean
➜ Assignment5 git:(master)
3. User sinifina yazilip okunabilen nickname diye bir alan ekleyelim.
class User
include ActiveModel::Validations
attr_accessor :id, :name, :city, :email, :bio, :nickname
#validates :nickname, exclusion: { in: %w(admin) }
validates_each :nickname do |record, attr, value|
puts " #{record} - #{attr} - #{value}"
record.errors.add attr, 'admin word not using ' if value.to_s == "admin"
end
def initialize(opt={})
@id = opt[:id]
@name = opt[:name]
@city = opt[:city]
@email = opt[:email]
@bio = opt[:bio]
@nickname = opt[:nickname]
if self.valid?
if @id == nil
Faker::Number.number(2)
end
if @name == nil
Faker::Name.name
end
if @city == nil
Faker::Address.city
end
if @email == nil
Faker::Internet.free_email
end
if @bio == nil
Faker::Lorem.paragraph(2)
end
if @nickname == nil
Faker::Internet.user_name
end
puts "Kayit yapildi. id: #{@id} - name: #{@name} , city: #{@city} , email: #{@email} , bio: #{bio} , nickname: #{nickname}"
else
puts "Kayit yapilamadi. id: #{@id} - name: #{@name} , city: #{@city} , email: #{@email} , bio: #{bio}"
end
end
end
➜ Assignment5 git:(master) ✗ irb -r active_model
2.1.2 :001 > require './user'
=> true
2.1.2 :002 > require 'faker'
=> true
2.1.2 :003 > u = User.new(nickname:"admin")
#<User:0x007f8aa12db5f8> - nickname - admin
Kayit yapilamadi. id: - name: , city: , email: , bio:
=> #<User:0x007f8aa12db5f8 @id=nil, @name=nil, @city=nil, @email=nil, @bio=nil, @nickname="admin", @validation_context=nil, @errors=#<ActiveModel::Errors:0x007f8aa1256f10 @base=#<User:0x007f8aa12db5f8 ...>, @messages={:nickname=>["admin word not using "]}>>
2.1.2 :004 > u = User.new(nickname:"admidsdn")
#<User:0x007f8aa123d448> - nickname - admidsdn
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
Kayit yapildi. id: - name: , city: , email: , bio: , nickname: admidsdn
=> #<User:0x007f8aa123d448 @id=nil, @name=nil, @city=nil, @email=nil, @bio=nil, @nickname="admidsdn", @validation_context=nil, @errors=#<ActiveModel::Errors:0x007f8aa123d1f0 @base=#<User:0x007f8aa123d448 ...>, @messages={}>>
4. Activemodel validations modulunu kullanarak, "admin" nicki alinmak istendiginde user instance'inin kaydedilmesine izin vermeyelim.
➜ Assignment5 git:(master) ✗ irb -r active_model
2.1.2 :001 > require '/Users/muratatak/Documents/ror/assgmnt-5/assignments/Assignment5/user'
=> true
2.1.2 :002 > require 'faker'
=> true
2.1.2 :003 > user = User.new("","","","","","admin")
#<User:0x007ff73c155708> - nickname - admin
Kayit yapilamadi. id: - name: , city: , email: , bio:
=> #<User:0x007ff73c155708 @id="", @name="", @city="", @email="", @bio="", @nickname="admin", @validation_context=nil, @errors=#<ActiveModel::Errors:0x007ff73b0c1ec8 @base=#<User:0x007ff73c155708 ...>, @messages={:nickname=>["admin word not using "]}>>
2.1.2 :004 > user = User.new("","","","","","admin")
#<User:0x007ff73b0a9e90> - nickname - admin
Kayit yapilamadi. id: - name: , city: , email: , bio:
=> #<User:0x007ff73b0a9e90 @id="", @name="", @city="", @email="", @bio="", @nickname="admin", @validation_context=nil, @errors=#<ActiveModel::Errors:0x007ff73b0a9dc8 @base=#<User:0x007ff73b0a9e90 ...>, @messages={:nickname=>["admin word not using "]}>>
2.1.2 :005 > user = User.new("","","","","","admidsdsdn")
#<User:0x007ff73b090148> - nickname - admidsdsdn
Kayit yapildi. id: - name: , city: , email: , bio:
=> #<User:0x007ff73b090148 @id="", @name="", @city="", @email="", @bio="", @nickname="admidsdsdn", @validation_context=nil, @errors=#<ActiveModel::Errors:0x007ff73b093668 @base=#<User:0x007ff73b090148 ...>, @messages={}>>
2.1.2 :006 >
5. Bunu yaptiktan sonra commit'leyelim ve bu projeyi kendi github hesaplarimiza yukleyelim. Sizden istedigim en son elde edeceginiz github linkleri. Google dostunuzdur :)
➜ Assignment5 git:(master) ✗ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: .DS_Store
modified: user.rb
no changes added to commit (use "git add" and/or "git commit -a")
➜ Assignment5 git:(master) ✗ git add -A
➜ Assignment5 git:(master) ✗ git commit -m "user modified. Add validations"
[master a2b8801] user modified. Add validations
2 files changed, 45 insertions(+), 25 deletions(-)
rewrite user.rb (63%)
➜ Assignment5 git:(master) git remote add origin https://github.com/muratatak77/Assignment5.git
➜ Assignment5 git:(master) git push origin master
Username for 'https://github.com': muratatak77
Password for 'https://muratatak77@github.com':
Counting objects: 8, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 1.41 KiB | 0 bytes/s, done.
Total 8 (delta 2), reused 0 (delta 0)
To https://github.com/muratatak77/Assignment5.git
* [new branch] master -> master
➜ Assignment5 git:(master)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment