Skip to content

Instantly share code, notes, and snippets.

View vsavkin's full-sized avatar

Victor Savkin vsavkin

View GitHub Profile
@vsavkin
vsavkin / ddd_example2_2.rb
Created March 4, 2012 22:01
Refactored sell_book
def sell_book
@book = Book.find(params[:id])
BookSellingService.sell_book(@book)
end
@vsavkin
vsavkin / ddd_example_3.rb
Created March 4, 2012 22:03
Post Sending Tweets
class Post < ActiveRecord::Base
has_many :comments
after_create :send_tweet
def send_tweet
twitter = Twitter.login(username, password)
twitter.send_tweet generate_tweet_from_subject(subject)
end
end
@vsavkin
vsavkin / ddd_example3_2.rb
Created March 4, 2012 22:04
Refactored Post
class Post < ActiveRecord::Base
has_many :comments
end
class TwitterNotification < ActiveRecord::Observer
observe :post
def after_create post
twitter = Twitter.login(username, password)
twitter.send_tweet generate_tweet_from_subject(post.subject)
@vsavkin
vsavkin / ddd_example3_3.rb
Created March 4, 2012 22:05
Twitter Notification
class TwitterNotification < ActiveRecord::Observer
observe :post
def after_create post
TwitterService.send_tweet post.subject
end
end
class TwitterService
def self.send_tweet subject
@vsavkin
vsavkin / ddd_example4.rb
Created March 4, 2012 22:06
Posts Repository
class PostsRepository
def find_by_id id
...
end
def new_posts_of_author author
...
end
def save post
@vsavkin
vsavkin / ddd_example4_2.rb
Created March 4, 2012 22:07
PostsRepository as a module
module PostsRepository
def new_posts_of_author author
...
end
end
class Post
extend PostsRepository
end
@vsavkin
vsavkin / gist:2007950
Created March 9, 2012 18:39
TwitterNotification & TwitterService
class TwitterNotification < ActiveRecord::Observer
observe :post
def after_create post
TwitterService.send_tweet post.subject
end
end
class TwitterService
def self.send_tweet subject
@vsavkin
vsavkin / twitter_service.rb
Created March 9, 2012 18:39
TwitterNotification & TwitterService
class TwitterNotification < ActiveRecord::Observer
observe :post
def after_create post
TwitterService.send_tweet post.subject
end
end
class TwitterService
def self.send_tweet subject
@vsavkin
vsavkin / ddd_example4_21.rb
Created March 9, 2012 22:54
PostsRepository
module PostsRepository
def new_posts_of_author author
...
end
end
class Post < ActiveRecord::Base
extend PostsRepository
end
@vsavkin
vsavkin / ddd_example4_21.rb
Created March 9, 2012 22:55
DDD Example 4
module PostsRepository
def new_posts_of_author author
...
end
end
class Post < ActiveRecord::Base
extend PostsRepository
end